SpyBara
Go Premium

Documentation 2026-06-16 21:57 UTC to 2026-06-17 17:02 UTC

115 files changed +6,511 −1,164. View all changes and history on the product overview
2026
Thu 18 22:00 Wed 17 17:02 Tue 16 21:57 Mon 15 23:02 Sat 13 21:59 Fri 12 22:00 Thu 11 23:01 Wed 10 23:57 Tue 9 06:34 Mon 8 06:52 Sat 6 06:24 Fri 5 06:45 Thu 4 06:52 Wed 3 06:53 Tue 2 06:51

admin-setup.md +4 −3

Details

46 Decidir cómo llega la configuración a los dispositivos46 Decidir cómo llega la configuración a los dispositivos

47</h2>47</h2>

48 48 

49La configuración administrada define la política que tiene prioridad sobre la configuración local del desarrollador. Claude Code las busca en cuatro lugares y usa la primera que encuentra en un dispositivo determinado.49La configuración administrada define la política que tiene prioridad sobre la configuración local del desarrollador. Claude Code comprueba las cuatro fuentes que se indican a continuación en orden de prioridad y aplica la primera que devuelve una configuración no vacía.

50 50 

51| Mecanismo | Entrega | Prioridad | Plataformas |51| Mecanismo | Entrega | Prioridad | Plataformas |

52| :---------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------- | :------------- |52| :---------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------- | :------------- |


74La configuración administrada puede bloquear herramientas, ejecución de sandbox, restringir servidores MCP y fuentes de plugins, y controlar qué hooks se ejecutan. Cada fila es una superficie de control con las claves de configuración que la impulsan.74La configuración administrada puede bloquear herramientas, ejecución de sandbox, restringir servidores MCP y fuentes de plugins, y controlar qué hooks se ejecutan. Cada fila es una superficie de control con las claves de configuración que la impulsan.

75 75 

76| Control | Lo que hace | Configuraciones clave |76| Control | Lo que hace | Configuraciones clave |

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

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

79| [Permission lockdown](/es/permissions#managed-only-settings) | Solo se aplican reglas de permisos administradas; deshabilitar `--dangerously-skip-permissions` | `allowManagedPermissionRulesOnly`, `permissions.disableBypassPermissionsMode` |79| [Permission lockdown](/es/permissions#managed-only-settings) | Solo se aplican reglas de permisos administradas; deshabilitar `--dangerously-skip-permissions` | `allowManagedPermissionRulesOnly`, `permissions.disableBypassPermissionsMode` |

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


85| [Hook restrictions](/es/settings#hook-configuration) | Solo se cargan hooks administrados; restringir URLs de hooks HTTP | `allowManagedHooksOnly`, `allowedHttpHookUrls` |85| [Hook restrictions](/es/settings#hook-configuration) | Solo se cargan hooks administrados; restringir URLs de hooks HTTP | `allowManagedHooksOnly`, `allowedHttpHookUrls` |

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

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

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

88 89 

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

90 91 


122 Verificar e incorporar123 Verificar e incorporar

123</h2>124</h2>

124 125 

125Después de configurar la configuración administrada, haga que un desarrollador ejecute `/status` dentro de Claude Code. La salida incluye una línea que comienza con `Enterprise managed settings` seguida de la fuente entre paréntesis, una de `(remote)`, `(plist)`, `(HKLM)`, `(HKCU)`, o `(file)`. Consulte [Verificar configuración activa](/es/settings#verify-active-settings).126Después de configurar la configuración administrada, haga que un desarrollador ejecute `/status` dentro de Claude Code. En la pestaña **Status**, la línea `Setting sources` muestra `Enterprise managed settings` seguida de la fuente entre paréntesis, una de `(remote)`, `(plist)`, `(HKLM)`, `(HKCU)`, o `(file)`. Consulte [Verificar configuración activa](/es/settings#verify-active-settings).

126 127 

127Comparta estos recursos para ayudar a los desarrolladores a comenzar:128Comparta estos recursos para ayudar a los desarrolladores a comenzar:

128 129 

advisor.md +198 −0 created

Details

1> ## Documentation Index

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

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

4 

5# Escalar decisiones difíciles con la herramienta advisor

6 

7> Empareje su modelo principal con un modelo advisor más fuerte que Claude consulta en momentos clave durante una tarea.

8 

9{/* plan-availability: feature=advisor providers=anthropic */}

10 

11<Note>

12 La herramienta advisor es experimental y requiere Claude Code v2.1.98 o posterior con la API de Anthropic. No está disponible en Amazon Bedrock, Google Vertex AI o Microsoft Foundry. El comportamiento, los precios y la disponibilidad pueden cambiar.

13</Note>

14 

15La herramienta advisor permite que Claude consulte un segundo modelo, típicamente más fuerte, en momentos clave durante una tarea, como antes de comprometerse con un enfoque, cuando se atasca en un error recurrente, o antes de declarar una tarea completada. El advisor recibe la conversación completa, incluidas todas las llamadas a herramientas y resultados, y devuelve orientación que Claude aplica antes de continuar.

16 

17El advisor se ejecuta del lado del servidor en la infraestructura de Anthropic como una [herramienta de servidor](https://platform.claude.com/docs/en/agents-and-tools/tool-use/advisor-tool), disponible tanto para cuentas de suscripción como para cuentas facturadas por API. Usted elige qué modelo actúa como advisor, y Claude decide cuándo llamarlo.

18 

19Esta página cubre cómo habilitar el advisor, qué emparejamientos de modelos se aceptan, qué muestra Claude durante una consulta, y cómo se factura el uso del advisor.

20 

21<h2 id="when-to-use-the-advisor">

22 Cuándo usar el advisor

23</h2>

24 

25El advisor se ajusta a tareas largas y multietapa donde la mayoría de los turnos son rutinarios pero la calidad del plan determina el resultado. Los ejemplos incluyen refactorizaciones grandes, sesiones de depuración donde un error sigue repitiéndose, y tareas que desea que se verifiquen de forma independiente antes de que Claude las declare completadas.

26 

27Añade menos valor en tareas cortas donde hay poco que planificar, o en trabajo donde cada turno necesita el modelo más fuerte. Para esos casos, [cambie el modelo principal](/es/model-config#setting-your-model) en su lugar, o vea [cómo se compara el advisor con opusplan y subagents](#compare-with-related-features) para otras formas de obtener una segunda opinión.

28 

29<h2 id="enable-the-advisor">

30 Habilitar el advisor

31</h2>

32 

33Puede configurar el modelo advisor de tres formas:

34 

35* **Comando `/advisor`**: establezca o cambie el advisor a mitad de sesión y guárdelo como su predeterminado

36* **Configuración `advisorModel`**: configure un predeterminado persistente en su [archivo de configuración](/es/settings)

37* **Bandera `--advisor`**: establezca el advisor para una única sesión al iniciar

38 

39Si alguno de estos establece un modelo advisor, el advisor se habilita para sesiones cuyo modelo principal [lo admite](#choose-an-advisor-model). Para dejar de usarlo, vea [Desactivar el advisor](#turn-the-advisor-off).

40 

41<Note>

42 Para usar Fable 5 como advisor, necesita Claude Code v2.1.170 o posterior y [acceso a Fable 5](/es/model-config#work-with-fable-5) para su organización.

43</Note>

44 

45<h3 id="use-the-/advisor-command">

46 Usar el comando `/advisor`

47</h3>

48 

49Ejecute `/advisor` sin argumentos para abrir un selector que enumere los modelos advisor disponibles, o pase el modelo directamente:

50 

51```

52/advisor opus

53```

54 

55Su selección se guarda en `advisorModel` en su configuración de usuario y persiste entre sesiones. Si su modelo principal actual no admite el advisor, la selección aún se guarda y se activa cuando cambia a un [modelo principal compatible](#choose-an-advisor-model) con [`/model`](/es/model-config#setting-your-model).

56 

57<h3 id="set-advisormodel-in-settings">

58 Establecer `advisorModel` en la configuración

59</h3>

60 

61Para configurar el advisor como predeterminado sin abrir una sesión, establézcalo en su archivo de configuración:

62 

63```json theme={null}

64{

65 "advisorModel": "opus"

66}

67```

68 

69<h3 id="use-the-advisor-flag">

70 Usar la bandera `--advisor`

71</h3>

72 

73Para establecer el advisor para una única sesión sin cambiar su configuración guardada, inicie con la bandera:

74 

75```bash theme={null}

76claude --advisor opus

77```

78 

79La bandera tiene prioridad sobre la configuración `advisorModel` para esa sesión. A diferencia de `/advisor`, que guarda una selección inactiva, la bandera sale con un error si el modelo principal de la sesión no admite el advisor.

80 

81<h2 id="choose-an-advisor-model">

82 Elegir un modelo advisor

83</h2>

84 

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

86 

87| Modelo principal | Advisors aceptados | Notas |

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

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

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

91| Opus 4.6 o posterior | Fable, Opus en o por encima de la versión del modelo principal | Un Opus 4.7 principal con un advisor Opus 4.6 se rechaza |

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

93 

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

95 

96Establezca el advisor como `opus`, `sonnet`, o `fable`. Estos alias se resuelven a la versión más reciente de cada modelo. También puede pasar un ID de modelo completo como `claude-opus-4-8`.

97 

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

99 

100Claude Code valida el emparejamiento antes de enviar una solicitud:

101 

102* Si el advisor es menos capaz que el modelo principal, el advisor no se 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.

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

104 

105<h3 id="common-model-pairings">

106 Emparejamientos de modelos comunes

107</h3>

108 

109Cualquier emparejamiento aceptado funciona. Estas combinaciones equilibran el costo contra la capacidad de diferentes formas:

110 

111| Emparejamiento | Cuándo usar |

112| --------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

113| Sonnet principal + advisor Opus | Sonnet maneja el trabajo rutinario y escala la planificación, fallos ambiguos y verificaciones de finalización a Opus |

114| Sonnet principal + advisor Fable | Orientación de Fable 5 en puntos de decisión sin ejecutar Fable 5 en todo. Requiere v2.1.170 o posterior y acceso a Fable 5 |

115| Haiku principal + advisor Opus | Modelo principal de menor costo con planificación fuerte. Espere un costo más alto que Haiku solo pero menor que cambiar el modelo principal a Sonnet u Opus |

116| Opus principal + advisor Opus | Un segundo Opus revisa el primero. Útil para tareas de alto riesgo donde una verificación independiente importa más que el costo |

117| Fable principal + advisor Fable | Emparejamiento de mayor capacidad cuando Fable 5 está disponible (v2.1.170+). Fable es un nivel superior a Opus y Sonnet, por lo que es el único advisor aceptado para un modelo principal Fable |

118| Sonnet principal + advisor Sonnet | Una segunda opinión de menor costo para detectar descuidos rutinarios |

119 

120<h2 id="when-claude-consults-the-advisor">

121 Cuándo Claude consulta el advisor

122</h2>

123 

124Claude decide cuándo llamar al advisor. Tiende a consultar antes de comprometerse con un enfoque, cuando un error sigue repitiéndose, y antes de declarar una tarea completada, pero el tiempo es impulsado por el modelo en lugar de basarse en reglas.

125 

126Puede solicitar una consulta en su indicación de la misma manera que solicitaría cualquier herramienta, por ejemplo `consulta al advisor antes de continuar`. No hay configuración para limitar o forzar llamadas al advisor; si desea que Claude consulte más o menos a menudo durante una tarea, dígalo en sus instrucciones.

127 

128<h2 id="what-you-see-during-a-session">

129 Qué ve durante una sesión

130</h2>

131 

132Cuando Claude llama al advisor, la transcripción muestra una línea `Advising` con el nombre del modelo advisor mientras la llamada está en progreso. Cuando el resultado regresa, la línea confirma que el advisor ha revisado la conversación. Presione `Ctrl+O` para expandirla y leer la orientación completa del advisor.

133 

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

135 

136El advisor siempre recibe la conversación completa, y Claude controla el tiempo. Para más control o una configuración diferente, vea [cómo se compara el advisor con subagents y opusplan](#compare-with-related-features).

137 

138<h2 id="cost">

139 Costo

140</h2>

141 

142Cada llamada al advisor envía la conversación al modelo advisor, por lo que consume tokens a las tasas del modelo advisor además del uso de su modelo principal. Con facturación por API, los tokens del advisor se cobran a las tasas de entrada y salida del modelo advisor. En planes de suscripción, el uso del advisor cuenta hacia los límites de uso de su plan.

143 

144Claude llama al advisor en puntos de decisión en lugar de en cada turno, por lo que emparejar un modelo principal más rápido con un advisor más fuerte típicamente cuesta menos que ejecutar el modelo más fuerte en todo. El uso del advisor cuenta hacia los totales de sesión mostrados por [`/usage`](/es/costs#track-your-costs).

145 

146Para cómo se reportan los tokens del advisor en respuestas de API, vea [Uso y facturación](https://platform.claude.com/docs/en/agents-and-tools/tool-use/advisor-tool#usage-and-billing) en la documentación de la API de Claude.

147 

148<h2 id="impact-on-prompt-caching">

149 Impacto en el almacenamiento en caché de indicaciones

150</h2>

151 

152Habilitar o deshabilitar el advisor a mitad de sesión no invalida el [caché de indicaciones](/es/prompt-caching) de su modelo principal. A diferencia de [cambiar modelo o nivel de esfuerzo](/es/prompt-caching#actions-that-invalidate-the-cache), alternar `/advisor` mantiene el prefijo en caché intacto, y la orientación devuelta por el advisor se almacena en caché como parte de la transcripción en turnos posteriores.

153 

154La propia lectura del advisor de la conversación no se almacena en caché. Cada llamada al advisor procesa la transcripción completa de nuevo, sin reutilización entre llamadas.

155 

156<h2 id="requirements">

157 Requisitos

158</h2>

159 

160La herramienta advisor requiere todo lo siguiente:

161 

162* **Claude Code v2.1.98 o posterior**: ejecute `claude update` para actualizar.

163* **Solo API de Anthropic**: el advisor es una herramienta ejecutada por servidor. No está disponible en Amazon Bedrock, Google Vertex AI o Microsoft Foundry. A través de una [puerta de enlace LLM](/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.

164* **Modelo principal admitido**: Opus 4.6 o posterior, Sonnet 4.6, o Haiku 4.5. {/* min-version: 2.1.170 */}Fable 5 también califica en Claude Code v2.1.170 o posterior.

165 

166<h2 id="turn-the-advisor-off">

167 Desactivar el advisor

168</h2>

169 

170Para dejar de usar el advisor y borrar su `advisorModel` guardado, ejecute `/advisor off` o elija **No advisor** en el selector `/advisor`:

171 

172```

173/advisor off

174```

175 

176Para deshabilitar la herramienta advisor completamente, incluido el comando `/advisor` y la bandera `--advisor`, establezca `CLAUDE_CODE_DISABLE_ADVISOR_TOOL=1`. Vea [Variables de entorno](/es/env-vars).

177 

178<h2 id="compare-with-related-features">

179 Comparar con características relacionadas

180</h2>

181 

182El advisor es una de varias formas de combinar fortalezas de modelos. Elija según cuándo desee que un segundo modelo esté involucrado.

183 

184| Enfoque | Cuándo se ejecuta el modelo más fuerte | Cómo comienza |

185| ------------------------------------------------------------------ | ---------------------------------------------------------- | ------------------------------------------- |

186| Herramienta advisor | En puntos de decisión a mitad de tarea | Claude la llama cuando necesita orientación |

187| [`opusplan`](/es/model-config#opusplan-model-setting) | Durante el modo plan, luego cambia a Sonnet para ejecución | Usted entra en modo plan |

188| [Subagents](/es/sub-agents#choose-a-model) con `model` establecido | Para toda la subtarea delegada | Claude delega, o usted invoca el subagent |

189| [`/model`](/es/model-config#setting-your-model) | Para todos los turnos posteriores | Usted cambia modelos |

190 

191<h2 id="see-also">

192 Ver también

193</h2>

194 

195* [Configuración de modelos](/es/model-config): cambie modelos, establezca niveles de esfuerzo, y use `opusplan`

196* [Gestionar costos de forma efectiva](/es/costs): rastrear el uso de tokens entre modelos

197* [Herramienta advisor en la API de Claude](https://platform.claude.com/docs/en/agents-and-tools/tool-use/advisor-tool): comprenda la herramienta de servidor subyacente, o úsela directamente desde la API de Mensajes

198* [La estrategia advisor](https://claude.com/blog/the-advisor-strategy): por qué emparejar un modelo principal rápido con un advisor más fuerte funciona

Details

16 16 

17Cada sesión de agente sigue el mismo ciclo:17Cada sesión de agente sigue el mismo ciclo:

18 18 

19<img src="https://mintcdn.com/claude-code/ikqp3_70mqIahteV/images/agent-loop-diagram.svg?fit=max&auto=format&n=ikqp3_70mqIahteV&q=85&s=1c6e8f28d80dba14a7287419656f1237" alt="Bucle del agente: el prompt entra, Claude evalúa, se ramifica a llamadas de herramientas o respuesta final" width="720" height="212" data-path="images/agent-loop-diagram.svg" />19<img src="https://mintcdn.com/claude-code/ikqp3_70mqIahteV/images/agent-loop-diagram.svg?fit=max&auto=format&n=ikqp3_70mqIahteV&q=85&s=1c6e8f28d80dba14a7287419656f1237" alt="Diagrama del bucle del agente: su prompt entra en el bucle agéntico, donde Claude evalúa y solicita llamadas de herramientas cuyos resultados se retroalimentan en otra evaluación, o devuelve la respuesta final" width="720" height="212" data-path="images/agent-loop-diagram.svg" />

20 20 

211. **Recibir prompt.** Claude recibe su prompt, junto con el prompt del sistema, las definiciones de herramientas e historial de conversación. El SDK produce un [`SystemMessage`](#message-types) con subtipo `"init"` que contiene metadatos de sesión.211. **Recibir prompt.** Claude recibe su prompt, junto con el prompt del sistema, las definiciones de herramientas e historial de conversación. El SDK produce un [`SystemMessage`](#message-types) con subtipo `"init"` que contiene metadatos de sesión.

222. **Evaluar y responder.** Claude evalúa el estado actual y determina cómo proceder. Puede responder con texto, solicitar una o más llamadas de herramientas, o ambas. El SDK produce un [`AssistantMessage`](#message-types) que contiene el texto y cualquier solicitud de llamada de herramienta.222. **Evaluar y responder.** Claude evalúa el estado actual y determina cómo proceder. Puede responder con texto, solicitar una o más llamadas de herramientas, o ambas. El SDK produce un [`AssistantMessage`](#message-types) que contiene el texto y cualquier solicitud de llamada de herramienta.

233. **Ejecutar herramientas.** El SDK ejecuta cada herramienta solicitada y recopila los resultados. Cada conjunto de resultados de herramientas se devuelve a Claude para la siguiente decisión. Puede usar [hooks](/es/agent-sdk/hooks) para interceptar, modificar o bloquear llamadas de herramientas antes de que se ejecuten.233. **Ejecutar herramientas.** El SDK ejecuta cada herramienta solicitada y recopila los resultados. Cada conjunto de resultados de herramientas se retroalimenta a Claude para la siguiente decisión. Puede usar [hooks](/es/agent-sdk/hooks) para interceptar, modificar o bloquear llamadas de herramientas antes de que se ejecuten.

244. **Repetir.** Los pasos 2 y 3 se repiten como un ciclo. Cada ciclo completo es un turno. Claude continúa llamando a herramientas y procesando resultados hasta que produce una respuesta sin llamadas de herramientas.244. **Repetir.** Los pasos 2 y 3 se repiten como un ciclo. Cada ciclo completo es un turno. Claude continúa llamando a herramientas y procesando resultados hasta que produce una respuesta sin llamadas de herramientas.

255. **Devolver resultado.** El SDK produce un [`AssistantMessage`](#message-types) final con la respuesta de texto (sin llamadas de herramientas), seguido de un [`ResultMessage`](#message-types) con el texto final, uso de tokens, costo e ID de sesión.255. **Devolver resultado.** El SDK produce un [`AssistantMessage`](#message-types) final con la respuesta de texto (sin llamadas de herramientas), seguido de un [`ResultMessage`](#message-types) con el texto final, uso de tokens, costo e ID de sesión.

26 26 


53 53 

54A medida que se ejecuta el bucle, el SDK produce un flujo de mensajes. Cada mensaje lleva un tipo que le indica en qué etapa del bucle se originó. Los cinco tipos principales son:54A medida que se ejecuta el bucle, el SDK produce un flujo de mensajes. Cada mensaje lleva un tipo que le indica en qué etapa del bucle se originó. Los cinco tipos principales son:

55 55 

56* **`SystemMessage`:** eventos del ciclo de vida de la sesión. El campo `subtype` los distingue: `"init"` es el primer mensaje (metadatos de sesión), y `"compact_boundary"` se dispara después de [compactación](#automatic-compaction). En TypeScript, el límite de compactación es su propio tipo [`SDKCompactBoundaryMessage`](/es/agent-sdk/typescript#sdkcompactboundarymessage) en lugar de un subtipo de `SDKSystemMessage`.56* **`SystemMessage`:** eventos del ciclo de vida de la sesión. El campo `subtype` los distingue:

57 

58 * `"init"`: el primer mensaje con metadatos de sesión

59 * `"compact_boundary"`: se dispara después de [compactación](#automatic-compaction)

60 * `"informational"`: banners de estado de texto sin formato del bucle

61 * `"worker_shutting_down"`: el bucle terminará después del turno actual porque el host se está cerrando o Remote Control se desconectó

62 

63 En TypeScript, cada subtipo que no sea `"init"` es su propio tipo en la unión [`SDKMessage`](/es/agent-sdk/typescript#sdkmessage) en lugar de un subtipo de `SDKSystemMessage`.

57* **`AssistantMessage`:** emitido después de cada respuesta de Claude, incluida la final solo de texto. Contiene bloques de contenido de texto y bloques de llamadas de herramientas de ese turno.64* **`AssistantMessage`:** emitido después de cada respuesta de Claude, incluida la final solo de texto. Contiene bloques de contenido de texto y bloques de llamadas de herramientas de ese turno.

58* **`UserMessage`:** emitido después de cada ejecución de herramienta con el contenido del resultado de la herramienta enviado de vuelta a Claude. También se emite para cualquier entrada de usuario que transmita a mitad del bucle.65* **`UserMessage`:** emitido después de cada ejecución de herramienta con el contenido del resultado de la herramienta enviado de vuelta a Claude. También se emite para cualquier entrada de usuario que transmita a mitad del bucle.

59* **`StreamEvent`:** solo se emite cuando los mensajes parciales están habilitados. Contiene eventos de transmisión de API sin procesar (deltas de texto, fragmentos de entrada de herramientas). Vea [Respuestas de transmisión](/es/agent-sdk/streaming-output).66* **`StreamEvent`:** solo se emite cuando los mensajes parciales están habilitados. Contiene eventos de transmisión de API sin procesar (deltas de texto, fragmentos de entrada de herramientas). Vea [Respuestas de transmisión](/es/agent-sdk/streaming-output).


183La opción `effort` controla cuánto razonamiento aplica Claude. Los niveles de esfuerzo más bajos usan menos tokens por turno y reducen el costo. No todos los modelos soportan el parámetro de esfuerzo. Vea [Esfuerzo](https://platform.claude.com/docs/en/build-with-claude/effort) para qué modelos lo soportan.190La opción `effort` controla cuánto razonamiento aplica Claude. Los niveles de esfuerzo más bajos usan menos tokens por turno y reducen el costo. No todos los modelos soportan el parámetro de esfuerzo. Vea [Esfuerzo](https://platform.claude.com/docs/en/build-with-claude/effort) para qué modelos lo soportan.

184 191 

185| Nivel | Comportamiento | Bueno para |192| Nivel | Comportamiento | Bueno para |

186| :--------- | :-------------------------------------- | :----------------------------------------------------------- |193| :--------- | :-------------------------------------- | :------------------------------------------------------------------- |

187| `"low"` | Razonamiento mínimo, respuestas rápidas | Búsquedas de archivos, listado de directorios |194| `"low"` | Razonamiento mínimo, respuestas rápidas | Búsquedas de archivos, listado de directorios |

188| `"medium"` | Razonamiento equilibrado | Ediciones rutinarias, tareas estándar |195| `"medium"` | Razonamiento equilibrado | Ediciones rutinarias, tareas estándar |

189| `"high"` | Análisis exhaustivo | Refactorizaciones, depuración |196| `"high"` | Análisis exhaustivo | Refactorizaciones, depuración |

190| `"xhigh"` | Profundidad de razonamiento extendida | Tareas de codificación y agentes; recomendado en Opus 4.7 |197| `"xhigh"` | Profundidad de razonamiento extendida | Tareas de codificación y agentes; recomendado en Fable 5 y Opus 4.7+ |

191| `"max"` | Profundidad de razonamiento máxima | Problemas de múltiples pasos que requieren análisis profundo |198| `"max"` | Profundidad de razonamiento máxima | Problemas de múltiples pasos que requieren análisis profundo |

192 199 

193Si no establece `effort`, el SDK de Python deja el parámetro sin establecer y se remite al comportamiento predeterminado del modelo. El SDK de TypeScript tiene como predeterminado `"high"`.200Si no establece `effort`, ambos SDK dejan el parámetro sin establecer y se remiten al comportamiento predeterminado del modelo.

194 201 

195<Note>202<Note>

196 `effort` intercambia latencia y costo de token por profundidad de razonamiento dentro de cada respuesta. [Extended thinking](https://platform.claude.com/docs/en/build-with-claude/extended-thinking) es una característica separada que produce bloques de cadena de pensamiento visibles en la salida. Son independientes: puede establecer `effort: "low"` con extended thinking habilitado, o `effort: "max"` sin él.203 `effort` intercambia latencia y costo de token por profundidad de razonamiento dentro de cada respuesta. [Extended thinking](https://platform.claude.com/docs/en/build-with-claude/extended-thinking) es una característica separada que produce bloques de cadena de pensamiento visibles en la salida. Son independientes: puede establecer `effort: "low"` con extended thinking habilitado, o `effort: "max"` sin él.


205La opción de modo de permiso (`permission_mode` en Python, `permissionMode` en TypeScript) controla si el agente solicita aprobación antes de usar herramientas:212La opción de modo de permiso (`permission_mode` en Python, `permissionMode` en TypeScript) controla si el agente solicita aprobación antes de usar herramientas:

206 213 

207| Modo | Comportamiento |214| Modo | Comportamiento |

208| :------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |215| :------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

209| `"default"` | Las herramientas no cubiertas por reglas de permitir activan su devolución de llamada de aprobación; sin devolución de llamada significa denegar |216| `"default"` | Las herramientas no cubiertas por reglas de permitir activan su devolución de llamada de aprobación; sin devolución de llamada significa denegar |

210| `"acceptEdits"` | Aprueba automáticamente ediciones de archivo y comandos comunes del sistema de archivos (`mkdir`, `touch`, `mv`, `cp`, etc.); otros comandos de Bash siguen reglas predeterminadas |217| `"acceptEdits"` | Aprueba automáticamente ediciones de archivo y comandos comunes del sistema de archivos (`mkdir`, `touch`, `mv`, `cp`, etc.); otros comandos de Bash siguen reglas predeterminadas |

211| `"plan"` | Las herramientas de solo lectura se ejecutan; Claude explora y produce un plan sin editar sus archivos fuente |218| `"plan"` | Claude explora y planifica sin editar sus archivos fuente; las ediciones de archivo nunca se aprueban automáticamente y se solicitan a través de su devolución de llamada `canUseTool` |

212| `"dontAsk"` | Nunca solicita. Las herramientas preaprobadas por [reglas de permiso](/es/settings#permission-settings) se ejecutan, todo lo demás se deniega |219| `"dontAsk"` | Nunca solicita. Las herramientas preaprobadas por [reglas de permiso](/es/settings#permission-settings) se ejecutan, todo lo demás se deniega |

213| `"auto"` (solo TypeScript) | Usa un clasificador de modelo para aprobar o denegar cada llamada de herramienta. Vea [Modo automático](/es/permission-modes#eliminate-prompts-with-auto-mode) para disponibilidad y comportamiento |220| `"auto"` (solo TypeScript) | Usa un clasificador de modelo para aprobar o denegar cada llamada de herramienta. Vea [Modo automático](/es/permission-modes#eliminate-prompts-with-auto-mode) para disponibilidad y comportamiento |

214| `"bypassPermissions"` | Ejecuta todas las herramientas permitidas sin preguntar. No se puede usar cuando se ejecuta como root en Unix. Use solo en entornos aislados donde las acciones del agente no pueden afectar sistemas que le importan |221| `"bypassPermissions"` | Ejecuta todas las herramientas permitidas sin preguntar, a menos que una regla [`ask`](/es/settings#permission-settings) explícita coincida; vea [Cómo se evalúan los permisos](/es/agent-sdk/permissions#how-permissions-are-evaluated) para dónde se encuentran las reglas ask en el orden de precedencia. No se puede usar cuando se ejecuta como root en Unix. Use solo en entornos aislados donde las acciones del agente no pueden afectar sistemas que le importan |

215 222 

216Para aplicaciones interactivas, use `"default"` con una devolución de llamada de aprobación de herramienta para mostrar solicitudes de aprobación. Para agentes autónomos en una máquina de desarrollo, `"acceptEdits"` aprueba automáticamente ediciones de archivo y comandos comunes del sistema de archivos (`mkdir`, `touch`, `mv`, `cp`, etc.) mientras aún controla otros comandos de `Bash` detrás de reglas de permitir. Reserve `"bypassPermissions"` para CI, contenedores u otros entornos aislados. Vea [Permisos](/es/agent-sdk/permissions) para detalles completos.223Para aplicaciones interactivas, use `"default"` con una devolución de llamada de aprobación de herramienta para mostrar solicitudes de aprobación. Para agentes autónomos en una máquina de desarrollo, `"acceptEdits"` aprueba automáticamente ediciones de archivo y comandos comunes del sistema de archivos (`mkdir`, `touch`, `mv`, `cp`, etc.) mientras aún controla otros comandos de `Bash` detrás de reglas de permitir. Reserve `"bypassPermissions"` para CI, contenedores u otros entornos aislados. Vea [Permisos](/es/agent-sdk/permissions) para detalles completos.

217 224 


305Cuando el bucle termina, el `ResultMessage` le dice qué sucedió y le proporciona la salida. El campo `subtype` (disponible en ambos SDK) es la forma principal de verificar el estado de terminación.312Cuando el bucle termina, el `ResultMessage` le dice qué sucedió y le proporciona la salida. El campo `subtype` (disponible en ambos SDK) es la forma principal de verificar el estado de terminación.

306 313 

307| Subtipo de resultado | Qué sucedió | ¿Campo `result` disponible? |314| Subtipo de resultado | Qué sucedió | ¿Campo `result` disponible? |

308| :------------------------------------ | :-------------------------------------------------------------------------------------- | :-------------------------: |315| :------------------------------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------: |

309| `success` | Claude terminó la tarea normalmente | Sí |316| `success` | Claude terminó la tarea normalmente | Sí |

310| `error_max_turns` | Alcanzó el límite de `maxTurns` antes de terminar | No |317| `error_max_turns` | Alcanzó el límite de `maxTurns` antes de terminar | No |

311| `error_max_budget_usd` | Alcanzó el límite de `maxBudgetUsd` antes de terminar | No |318| `error_max_budget_usd` | Alcanzó el límite de `maxBudgetUsd` antes de terminar | No |

312| `error_during_execution` | Un error interrumpió el bucle (por ejemplo, una falla de API o solicitud cancelada) | No |319| `error_during_execution` | Un error interrumpió el bucle (por ejemplo, una falla de API o solicitud cancelada) | No |

313| `error_max_structured_output_retries` | La validación de salida estructurada falló después del límite de reintentos configurado | No |320| `error_max_structured_output_retries` | No se produjo una salida estructurada válida dentro del límite de reintentos configurado: cada intento falló la validación, o una alternativa de modelo retractó la salida completada sin reintento exitoso | No |

314 321 

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

316 323 

Details

272</h3>272</h3>

273 273 

274| Tipo de hook | Mejor para |274| Tipo de hook | Mejor para |

275| :------------------------------------------------------ | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |275| :------------------------------------------------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

276| **Sistema de archivos** (`settings.json`) | Compartir hooks entre sesiones CLI y SDK. Admite `"command"` (scripts de shell), `"http"` (POST a un punto final), `"mcp_tool"` (llamar a la herramienta de un servidor MCP conectado), `"prompt"` (LLM evalúa un mensaje), y `"agent"` (genera un agente verificador). Se ejecutan en el agente principal y en cualquier subagenteque genere. |276| **Sistema de archivos** (`settings.json`) | Compartir hooks entre sesiones CLI y SDK. Admite `"command"` (scripts de shell), `"http"` (POST a un punto final), `"mcp_tool"` (llamar a la herramienta de un servidor MCP conectado), `"prompt"` (LLM evalúa un mensaje), y `"agent"` (genera un agente verificador). Se ejecutan en el agente principal y en cualquier subagente que genere. |

277| **Programático** (devoluciones de llamada en `query()`) | Lógica específica de la aplicación, decisiones estructuradas e integración en proceso. Estas también se ejecutan dentro de subagenetes. La devolución de llamada recibe `agent_id` y `agent_type` para distinguir. |277| **Programático** (devoluciones de llamada en `query()`) | Lógica específica de la aplicación, decisiones estructuradas e integración en proceso. Estas también se ejecutan dentro de subagenetes. La devolución de llamada recibe `agent_id` y `agent_type` para distinguir. |

278 278 

279<Note>279<Note>

Details

257 257 

258<CodeGroup>258<CodeGroup>

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

260 from claude_agent_sdk import ClaudeAgentOptions, query

261 import asyncio

262 

263 

264 async def main():

260 options = ClaudeAgentOptions(265 options = ClaudeAgentOptions(

261 env={266 env={

262 "CLAUDE_CODE_USE_BEDROCK": "1",267 "CLAUDE_CODE_USE_BEDROCK": "1",

263 "ENABLE_PROMPT_CACHING_1H": "1",268 "ENABLE_PROMPT_CACHING_1H": "1",

264 },269 },

265 )270 )

271 

272 async for message in query(prompt="Summarize this project", options=options):

273 print(message)

274 

275 

276 asyncio.run(main())

266 ```277 ```

267 278 

268 ```typescript TypeScript theme={null}279 ```typescript TypeScript theme={null}

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

281 

269 const options = {282 const options = {

270 env: {283 env: {

271 ...process.env,284 ...process.env,


273 ENABLE_PROMPT_CACHING_1H: "1",286 ENABLE_PROMPT_CACHING_1H: "1",

274 },287 },

275 };288 };

289 

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

291 console.log(message);

292 }

276 ```293 ```

277</CodeGroup>294</CodeGroup>

278 295 

Details

10 10 

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

12 12 

13## Referencia rápida13<h2 id="quick-reference">

14 Referencia rápida

15</h2>

14 16 

15| Si desea... | Haga esto |17| Si desea... | Haga esto |

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

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

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

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

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

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

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

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

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

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

26 28 

27## Crear una herramienta personalizada29<h2 id="create-a-custom-tool">

30 Crear una herramienta personalizada

31</h2>

28 32 

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

30 34 


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

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

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

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

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

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

38 42 

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

40 44 

41### Ejemplo de herramienta meteorológica45<h3 id="weather-tool-example">

46 Ejemplo de herramienta meteorológica

47</h3>

42 48 

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

44 50 

45<CodeGroup>51<CodeGroup>

46 ```python Python theme={null}52 ```python Python theme={null}


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

126 132 

127<Tip>133<Tip>

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

129</Tip>135</Tip>

130 136 

131### Llamar a una herramienta personalizada137<h3 id="call-a-custom-tool">

138 Llamar a una herramienta personalizada

139</h3>

132 140 

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

134 142 

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

136 144 

137<CodeGroup>145<CodeGroup>

138 ```python Python theme={null}146 ```python Python theme={null}


176 ```184 ```

177</CodeGroup>185</CodeGroup>

178 186 

179### Agregar más herramientas187<h3 id="add-more-tools">

188 Agregar más herramientas

189</h3>

180 190 

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

182 192 

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

184 194 

185<CodeGroup>195<CodeGroup>

186 ```python Python theme={null}196 ```python Python theme={null}


265 275 

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

267 277 

268### Agregar anotaciones de herramientas278<h3 id="add-tool-annotations">

279 Agregar anotaciones de herramientas

280</h3>

269 281 

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

271 283 


278 290 

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

280 292 

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

282 294 

283<CodeGroup>295<CodeGroup>

284 ```python Python theme={null}296 ```python Python theme={null}


310 322 

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

312 324 

313## Controlar el acceso a herramientas325<h2 id="control-tool-access">

326 Controlar el acceso a herramientas

327</h2>

314 328 

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

316 330 

317### Formato de nombre de herramienta331<h3 id="tool-name-format">

332 Formato de nombre de herramienta

333</h3>

318 334 

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

320 336 

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

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

323 339 

324### Configurar herramientas permitidas340<h3 id="configure-allowed-tools">

341 Configurar herramientas permitidas

342</h3>

325 343 

326La opción `tools` y las listas permitidas/no permitidas afectan dos capas: disponibilidad, que controla si una herramienta aparece en el contexto de Claude, y permiso, que controla si una llamada se aprueba una vez que Claude intenta hacerla. `tools` y las entradas de `disallowedTools` con nombre simple cambian la disponibilidad. `allowedTools` y las reglas de `disallowedTools` con alcance cambian solo el permiso.344La opción `tools` y las listas permitidas/no permitidas afectan dos capas: disponibilidad, que controla si una herramienta aparece en el contexto de Claude, y permiso, que controla si una llamada se aprueba una vez que Claude intenta hacerla. `tools` y las entradas de `disallowedTools` con nombre simple cambian la disponibilidad. `allowedTools` y las reglas de `disallowedTools` con alcance cambian solo el permiso.

327 345 


334 352 

335Para eliminar un integrado completamente, omítalo de `tools` o liste su nombre simple en `disallowedTools` (Python: `disallowed_tools`); ambos mantienen la herramienta fuera del contexto para que Claude nunca la intente. Una regla de `disallowedTools` con alcance bloquea las llamadas coincidentes pero deja la herramienta visible, por lo que Claude puede desperdiciar un turno intentándola. Vea [Configurar permisos](/es/agent-sdk/permissions) para el orden de evaluación completo.353Para eliminar un integrado completamente, omítalo de `tools` o liste su nombre simple en `disallowedTools` (Python: `disallowed_tools`); ambos mantienen la herramienta fuera del contexto para que Claude nunca la intente. Una regla de `disallowedTools` con alcance bloquea las llamadas coincidentes pero deja la herramienta visible, por lo que Claude puede desperdiciar un turno intentándola. Vea [Configurar permisos](/es/agent-sdk/permissions) para el orden de evaluación completo.

336 354 

337## Manejar errores355<h2 id="handle-errors">

356 Manejar errores

357</h2>

338 358 

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

340 360 


437 ```457 ```

438</CodeGroup>458</CodeGroup>

439 459 

440## Devolver imágenes y recursos460<h2 id="return-images-and-resources">

461 Devolver imágenes y recursos

462</h2>

441 463 

442El array `content` en un resultado de herramienta acepta bloques `text`, `image` y `resource`. Puede mezclarlos en la misma respuesta.464El array `content` en un resultado de herramienta acepta bloques `text`, `image`, `audio`, `resource` y `resource_link`. Puede mezclarlos en la misma respuesta. Los bloques de audio se guardan en disco y Claude recibe un bloque de texto con la ruta del archivo guardado. Los bloques de enlace de recurso se convierten en un bloque de texto que contiene el nombre del enlace, el URI y la descripción.

443 465 

444### Imágenes466<h3 id="images">

467 Imágenes

468</h3>

445 469 

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

447 471 


504 ```528 ```

505</CodeGroup>529</CodeGroup>

506 530 

507### Recursos531<h3 id="resources">

532 Recursos

533</h3>

508 534 

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

510 536 


552 578 

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

554 580 

555## Devolver datos estructurados581<h2 id="return-structured-data">

582 Devolver datos estructurados

583</h2>

556 584 

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

558 586 


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

580</Note>608</Note>

581 609 

582## Ejemplo: convertidor de unidades610<h2 id="example-unit-converter">

611 Ejemplo: convertidor de unidades

612</h2>

583 613 

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

585 615 


815 ```845 ```

816</CodeGroup>846</CodeGroup>

817 847 

818## Próximos pasos848<h2 id="next-steps">

849 Próximos pasos

850</h2>

819 851 

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

821 853 


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

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

827 859 

828## Documentación relacionada860<h2 id="related-documentation">

861 Documentación relacionada

862</h2>

829 863 

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

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

Details

729* **Python**: `pip install --upgrade claude-agent-sdk`729* **Python**: `pip install --upgrade claude-agent-sdk`

730* **TypeScript**: `npm install @anthropic-ai/claude-agent-sdk@latest`730* **TypeScript**: `npm install @anthropic-ai/claude-agent-sdk@latest`

731 731 

732<h3 id="user-messages-don-t-have-uuids">732<h3 id="user-messages-dont-have-uuids">

733 Los mensajes de usuario no tienen UUIDs733 Los mensajes de usuario no tienen UUIDs

734</h3>734</h3>

735 735 

Details

10 10 

11* **Bloquear operaciones peligrosas** antes de que se ejecuten, como comandos de shell destructivos o acceso a archivos no autorizado11* **Bloquear operaciones peligrosas** antes de que se ejecuten, como comandos de shell destructivos o acceso a archivos no autorizado

12* **Registrar y auditar** cada llamada de herramienta para cumplimiento, depuración o análisis12* **Registrar y auditar** cada llamada de herramienta para cumplimiento, depuración o análisis

13* **Transformar entradas y salidas** para desinfectar datos, inyectar credenciales o redirigir rutas de archivos13* **Transformar entradas y salidas** para sanitizar datos, inyectar credenciales o redirigir rutas de archivos

14* **Requerir aprobación humana** para acciones sensibles como escrituras en bases de datos o llamadas a API14* **Requerir aprobación humana** para acciones sensibles como escrituras en bases de datos o llamadas a API

15* **Rastrear el ciclo de vida de la sesión** para gestionar estado, limpiar recursos o enviar notificaciones15* **Rastrear el ciclo de vida de la sesión** para gestionar estado, limpiar recursos o enviar notificaciones

16 16 


26 </Step>26 </Step>

27 27 

28 <Step title="El SDK recopila hooks registrados">28 <Step title="El SDK recopila hooks registrados">

29 El SDK verifica si hay hooks registrados para ese tipo de evento. Esto incluye hooks de devolución de llamada que pasa en `options.hooks` y hooks de comandos de shell de archivos de configuración cuando la entrada [`settingSources`](/es/agent-sdk/typescript#settingSources) o [`setting_sources`](/es/agent-sdk/python#settingSources) correspondiente está habilitada, lo cual lo está para las opciones predeterminadas de `query()`.29 El SDK verifica si hay hooks registrados para ese tipo de evento. Esto incluye hooks de devolución de llamada que pasa en `options.hooks` y hooks de comandos de shell de archivos de configuración cuando la entrada [`settingSources`](/es/agent-sdk/typescript#settingsource) o [`setting_sources`](/es/agent-sdk/python#settingsource) correspondiente está habilitada, lo cual lo está para las opciones predeterminadas de `query()`.

30 </Step>30 </Step>

31 31 

32 <Step title="Los matchers filtran qué hooks se ejecutan">32 <Step title="Los matchers filtran qué hooks se ejecutan">

agent-sdk/mcp.md +79 −27

Details

14 Esta página cubre la configuración de MCP para el Agent SDK. Para agregar servidores MCP a la CLI de Claude Code de modo que se carguen en cada proyecto, consulte [Alcances de instalación de MCP](/es/mcp#mcp-installation-scopes).14 Esta página cubre la configuración de MCP para el Agent SDK. Para agregar servidores MCP a la CLI de Claude Code de modo que se carguen en cada proyecto, consulte [Alcances de instalación de MCP](/es/mcp#mcp-installation-scopes).

15</Note>15</Note>

16 16 

17## Inicio rápido17<h2 id="quickstart">

18 Inicio rápido

19</h2>

18 20 

19Este ejemplo se conecta al servidor MCP de [documentación de Claude Code](https://code.claude.com/docs) usando [transporte HTTP](#httpsse-servers) y utiliza [`allowedTools`](#allow-mcp-tools) con un comodín para permitir todas las herramientas del servidor.21Este ejemplo se conecta al servidor MCP de [documentación de Claude Code](https://code.claude.com/docs) usando [transporte HTTP](#http%2Fsse-servers) y utiliza [`allowedTools`](#allow-mcp-tools) con un comodín para permitir todas las herramientas del servidor.

20 22 

21<CodeGroup>23<CodeGroup>

22 ```typescript TypeScript theme={null}24 ```typescript TypeScript theme={null}


70 72 

71El agente se conecta al servidor de documentación, busca información sobre hooks y devuelve los resultados.73El agente se conecta al servidor de documentación, busca información sobre hooks y devuelve los resultados.

72 74 

73## Agregar un servidor MCP75<h2 id="add-an-mcp-server">

76 Agregar un servidor MCP

77</h2>

74 78 

75Puede configurar servidores MCP en código al llamar a `query()`, o en un archivo `.mcp.json` cargado a través de [`settingSources`](#from-a-config-file).79Puede configurar servidores MCP en código al llamar a `query()`, o en un archivo `.mcp.json` cargado a través de [`settingSources`](#from-a-config-file).

76 80 

77### En código81<h3 id="in-code">

82 En código

83</h3>

78 84 

79Pase servidores MCP directamente en la opción `mcpServers`:85Pase servidores MCP directamente en la opción `mcpServers`:

80 86 


129 ```135 ```

130</CodeGroup>136</CodeGroup>

131 137 

132### Desde un archivo de configuración138<h3 id="from-a-config-file">

139 Desde un archivo de configuración

140</h3>

133 141 

134Cree un archivo `.mcp.json` en la raíz de su proyecto. El archivo se recoge cuando la fuente de configuración `project` está habilitada, que lo está para las opciones predeterminadas de `query()`. Si establece `settingSources` explícitamente, incluya `"project"` para que este archivo se cargue:142Cree un archivo `.mcp.json` en la raíz de su proyecto. El archivo se recoge cuando la fuente de configuración `project` está habilitada, que lo está para las opciones predeterminadas de `query()`. Si establece `settingSources` explícitamente, incluya `"project"` para que este archivo se cargue:

135 143 


144}152}

145```153```

146 154 

147## Permitir herramientas MCP155<h2 id="allow-mcp-tools">

156 Permitir herramientas MCP

157</h2>

148 158 

149Las herramientas MCP requieren permiso explícito antes de que Claude pueda usarlas. Sin permiso, Claude verá que las herramientas están disponibles pero no podrá llamarlas.159Las herramientas MCP requieren permiso explícito antes de que Claude pueda usarlas. Sin permiso, Claude verá que las herramientas están disponibles pero no podrá llamarlas.

150 160 

151### Convención de nomenclatura de herramientas161<h3 id="tool-naming-convention">

162 Convención de nomenclatura de herramientas

163</h3>

152 164 

153Las herramientas MCP siguen el patrón de nomenclatura `mcp__<server-name>__<tool-name>`. Por ejemplo, un servidor GitHub llamado `"github"` con una herramienta `list_issues` se convierte en `mcp__github__list_issues`.165Las herramientas MCP siguen el patrón de nomenclatura `mcp__<server-name>__<tool-name>`. Por ejemplo, un servidor GitHub llamado `"github"` con una herramienta `list_issues` se convierte en `mcp__github__list_issues`.

154 166 

155### Aprobación automática con allowedTools167<h3 id="auto-approve-with-allowedtools">

168 Aprobación automática con allowedTools

169</h3>

156 170 

157Use `allowedTools` para aprobar automáticamente herramientas MCP específicas para que Claude pueda usarlas sin un aviso de permiso:171Use `allowedTools` para aprobar automáticamente herramientas MCP específicas para que Claude pueda usarlas sin un aviso de permiso:

158 172 


177 **Prefiera `allowedTools` sobre modos de permiso para acceso a MCP.** `permissionMode: "acceptEdits"` no aprueba automáticamente herramientas MCP (solo ediciones de archivos y comandos Bash del sistema de archivos). `permissionMode: "bypassPermissions"` sí aprueba automáticamente herramientas MCP pero también desactiva todos los demás avisos de seguridad, lo que es más amplio de lo necesario. Un comodín en `allowedTools` otorga exactamente el servidor MCP que desea y nada más. Consulte [Modos de permiso](/es/agent-sdk/permissions#permission-modes) para una comparación completa.191 **Prefiera `allowedTools` sobre modos de permiso para acceso a MCP.** `permissionMode: "acceptEdits"` no aprueba automáticamente herramientas MCP (solo ediciones de archivos y comandos Bash del sistema de archivos). `permissionMode: "bypassPermissions"` sí aprueba automáticamente herramientas MCP pero también desactiva todos los demás avisos de seguridad, lo que es más amplio de lo necesario. Un comodín en `allowedTools` otorga exactamente el servidor MCP que desea y nada más. Consulte [Modos de permiso](/es/agent-sdk/permissions#permission-modes) para una comparación completa.

178</Note>192</Note>

179 193 

180### Descubrir herramientas disponibles194<h3 id="discover-available-tools">

195 Descubrir herramientas disponibles

196</h3>

181 197 

182Para ver qué herramientas proporciona un servidor MCP, consulte la documentación del servidor o conéctese al servidor e inspeccione el mensaje de inicialización `system`:198Para ver qué herramientas proporciona un servidor MCP, consulte la documentación del servidor o conéctese al servidor e inspeccione el mensaje de inicialización `system`:

183 199 


189}205}

190```206```

191 207 

192## Tipos de transporte208<h2 id="transport-types">

209 Tipos de transporte

210</h2>

193 211 

194Los servidores MCP se comunican con su agente utilizando diferentes protocolos de transporte. Consulte la documentación del servidor para ver qué transporte admite:212Los servidores MCP se comunican con su agente utilizando diferentes protocolos de transporte. Consulte la documentación del servidor para ver qué transporte admite:

195 213 


197* Si los documentos le dan una **URL**, use HTTP o SSE215* Si los documentos le dan una **URL**, use HTTP o SSE

198* Si está construyendo sus propias herramientas en código, use un servidor MCP SDK216* Si está construyendo sus propias herramientas en código, use un servidor MCP SDK

199 217 

200### Servidores stdio218<h3 id="stdio-servers">

219 Servidores stdio

220</h3>

201 221 

202Procesos locales que se comunican a través de stdin/stdout. Use esto para servidores MCP que ejecuta en la misma máquina:222Procesos locales que se comunican a través de stdin/stdout. Use esto para servidores MCP que ejecuta en la misma máquina:

203 223 


253 </Tab>273 </Tab>

254</Tabs>274</Tabs>

255 275 

256### Servidores HTTP/SSE276<h3 id="http/sse-servers">

277 Servidores HTTP/SSE

278</h3>

257 279 

258Use HTTP o SSE para servidores MCP alojados en la nube y APIs remotas:280Use HTTP o SSE para servidores MCP alojados en la nube y APIs remotas:

259 281 


311 333 

312Para el transporte HTTP transmisible, use `"type": "http"` en su lugar. En `.mcp.json` y otros archivos de configuración JSON, `"streamable-http"` se acepta como un alias para `"http"`. La opción programática `mcpServers` acepta solo `"http"`.334Para el transporte HTTP transmisible, use `"type": "http"` en su lugar. En `.mcp.json` y otros archivos de configuración JSON, `"streamable-http"` se acepta como un alias para `"http"`. La opción programática `mcpServers` acepta solo `"http"`.

313 335 

314### Servidores MCP SDK336<h3 id="sdk-mcp-servers">

337 Servidores MCP SDK

338</h3>

315 339 

316Defina herramientas personalizadas directamente en el código de su aplicación en lugar de ejecutar un proceso de servidor separado. Consulte la [guía de herramientas personalizadas](/es/agent-sdk/custom-tools) para detalles de implementación.340Defina herramientas personalizadas directamente en el código de su aplicación en lugar de ejecutar un proceso de servidor separado. Consulte la [guía de herramientas personalizadas](/es/agent-sdk/custom-tools) para detalles de implementación.

317 341 

318## Búsqueda de herramientas MCP342<h2 id="mcp-tool-search">

343 Búsqueda de herramientas MCP

344</h2>

319 345 

320Cuando tiene muchas herramientas MCP configuradas, las definiciones de herramientas pueden consumir una parte significativa de su ventana de contexto. La búsqueda de herramientas resuelve esto al retener las definiciones de herramientas del contexto y cargar solo las que Claude necesita para cada turno.346Cuando tiene muchas herramientas MCP configuradas, las definiciones de herramientas pueden consumir una parte significativa de su ventana de contexto. La búsqueda de herramientas resuelve esto al retener las definiciones de herramientas del contexto y cargar solo las que Claude necesita para cada turno.

321 347 


323 349 

324Para más detalles, incluidas las mejores prácticas y el uso de búsqueda de herramientas con herramientas SDK personalizadas, consulte la [guía de búsqueda de herramientas](/es/agent-sdk/tool-search).350Para más detalles, incluidas las mejores prácticas y el uso de búsqueda de herramientas con herramientas SDK personalizadas, consulte la [guía de búsqueda de herramientas](/es/agent-sdk/tool-search).

325 351 

326## Autenticación352<h2 id="authentication">

353 Autenticación

354</h2>

327 355 

328La mayoría de los servidores MCP requieren autenticación para acceder a servicios externos. Pase credenciales a través de variables de entorno en la configuración del servidor.356La mayoría de los servidores MCP requieren autenticación para acceder a servicios externos. Pase credenciales a través de variables de entorno en la configuración del servidor.

329 357 

330### Pasar credenciales a través de variables de entorno358<h3 id="pass-credentials-via-environment-variables">

359 Pasar credenciales a través de variables de entorno

360</h3>

331 361 

332Use el campo `env` para pasar claves API, tokens y otras credenciales al servidor MCP:362Use el campo `env` para pasar claves API, tokens y otras credenciales al servidor MCP:

333 363 


387 417 

388Consulte [Listar problemas de un repositorio](#list-issues-from-a-repository) para un ejemplo completo y funcional con registro de depuración.418Consulte [Listar problemas de un repositorio](#list-issues-from-a-repository) para un ejemplo completo y funcional con registro de depuración.

389 419 

390### Encabezados HTTP para servidores remotos420<h3 id="http-headers-for-remote-servers">

421 Encabezados HTTP para servidores remotos

422</h3>

391 423 

392Para servidores HTTP y SSE, pase encabezados de autenticación directamente en la configuración del servidor:424Para servidores HTTP y SSE, pase encabezados de autenticación directamente en la configuración del servidor:

393 425 


445 </Tab>477 </Tab>

446</Tabs>478</Tabs>

447 479 

448### Autenticación OAuth2480<h3 id="oauth2-authentication">

481 Autenticación OAuth2

482</h3>

449 483 

450La [especificación MCP admite OAuth 2.1](https://modelcontextprotocol.io/specification/2025-03-26/basic/authorization) para autorización. El SDK no maneja flujos OAuth automáticamente, pero puede pasar tokens de acceso a través de encabezados después de completar el flujo OAuth en su aplicación:484La [especificación MCP admite OAuth 2.1](https://modelcontextprotocol.io/specification/2025-03-26/basic/authorization) para autorización. El SDK no maneja flujos OAuth automáticamente, pero puede pasar tokens de acceso a través de encabezados después de completar el flujo OAuth en su aplicación:

451 485 


485 ```519 ```

486</CodeGroup>520</CodeGroup>

487 521 

488## Ejemplos522<h2 id="examples">

523 Ejemplos

524</h2>

489 525 

490### Listar problemas de un repositorio526<h3 id="list-issues-from-a-repository">

527 Listar problemas de un repositorio

528</h3>

491 529 

492Este ejemplo se conecta al [servidor GitHub MCP](https://github.com/modelcontextprotocol/servers/tree/main/src/github) para enumerar problemas recientes. El ejemplo incluye registro de depuración para verificar la conexión MCP y las llamadas de herramientas.530Este ejemplo se conecta al [servidor GitHub MCP](https://github.com/modelcontextprotocol/servers/tree/main/src/github) para enumerar problemas recientes. El ejemplo incluye registro de depuración para verificar la conexión MCP y las llamadas de herramientas.

493 531 


584 ```622 ```

585</CodeGroup>623</CodeGroup>

586 624 

587### Consultar una base de datos625<h3 id="query-a-database">

626 Consultar una base de datos

627</h3>

588 628 

589Este ejemplo utiliza el [servidor Postgres MCP](https://github.com/modelcontextprotocol/servers/tree/main/src/postgres) para consultar una base de datos. La cadena de conexión se pasa como argumento al servidor. El agente descubre automáticamente el esquema de la base de datos, escribe la consulta SQL y devuelve los resultados:629Este ejemplo utiliza el [servidor Postgres MCP](https://github.com/modelcontextprotocol/servers/tree/main/src/postgres) para consultar una base de datos. La cadena de conexión se pasa como argumento al servidor. El agente descubre automáticamente el esquema de la base de datos, escribe la consulta SQL y devuelve los resultados:

590 630 


655 ```695 ```

656</CodeGroup>696</CodeGroup>

657 697 

658## Manejo de errores698<h2 id="error-handling">

699 Manejo de errores

700</h2>

659 701 

660Los servidores MCP pueden fallar al conectarse por varias razones: el proceso del servidor podría no estar instalado, las credenciales podrían ser inválidas, o un servidor remoto podría ser inaccesible.702Los servidores MCP pueden fallar al conectarse por varias razones: el proceso del servidor podría no estar instalado, las credenciales podrían ser inválidas, o un servidor remoto podría ser inaccesible.

661 703 


717 ```759 ```

718</CodeGroup>760</CodeGroup>

719 761 

720## Solución de problemas762<h2 id="troubleshooting">

763 Solución de problemas

764</h2>

721 765 

722### El servidor muestra estado "failed"766<h3 id="server-shows-failed-status">

767 El servidor muestra estado "failed"

768</h3>

723 769 

724Verifique el mensaje `init` para ver qué servidores no se conectaron:770Verifique el mensaje `init` para ver qué servidores no se conectaron:

725 771 


740* **Cadena de conexión inválida**: Para servidores de base de datos, verifique el formato de la cadena de conexión y que la base de datos sea accesible.786* **Cadena de conexión inválida**: Para servidores de base de datos, verifique el formato de la cadena de conexión y que la base de datos sea accesible.

741* **Problemas de red**: Para servidores HTTP/SSE remotos, verifique que la URL sea accesible y que los firewalls permitan la conexión.787* **Problemas de red**: Para servidores HTTP/SSE remotos, verifique que la URL sea accesible y que los firewalls permitan la conexión.

742 788 

743### Las herramientas no se están llamando789<h3 id="tools-not-being-called">

790 Las herramientas no se están llamando

791</h3>

744 792 

745Si Claude ve herramientas pero no las usa, verifique que haya otorgado permiso con `allowedTools`:793Si Claude ve herramientas pero no las usa, verifique que haya otorgado permiso con `allowedTools`:

746 794 


755};803};

756```804```

757 805 

758### Tiempos de espera de conexión806<h3 id="connection-timeouts">

807 Tiempos de espera de conexión

808</h3>

759 809 

760El SDK de MCP tiene un tiempo de espera predeterminado de 60 segundos para conexiones de servidor. Si su servidor tarda más en iniciarse, la conexión fallará. Para servidores que necesitan más tiempo de inicio, considere:810El SDK de MCP tiene un tiempo de espera predeterminado de 60 segundos para conexiones de servidor. Si su servidor tarda más en iniciarse, la conexión fallará. Para servidores que necesitan más tiempo de inicio, considere:

761 811 


763* Precalentar el servidor antes de iniciar su agente813* Precalentar el servidor antes de iniciar su agente

764* Verificar los registros del servidor para causas de inicialización lenta814* Verificar los registros del servidor para causas de inicialización lenta

765 815 

766## Recursos relacionados816<h2 id="related-resources">

817 Recursos relacionados

818</h2>

767 819 

768* **[Guía de herramientas personalizadas](/es/agent-sdk/custom-tools)**: Construya su propio servidor MCP que se ejecute en proceso con su aplicación SDK820* **[Guía de herramientas personalizadas](/es/agent-sdk/custom-tools)**: Construya su propio servidor MCP que se ejecute en proceso con su aplicación SDK

769* **[Permisos](/es/agent-sdk/permissions)**: Controle qué herramientas MCP puede usar su agente con `allowedTools` y `disallowedTools`821* **[Permisos](/es/agent-sdk/permissions)**: Controle qué herramientas MCP puede usar su agente con `allowedTools` y `disallowedTools`

Details

12 12 

13El SDK de Claude Code ha sido renombrado a **Claude Agent SDK** y su documentación ha sido reorganizada. Este cambio refleja las capacidades más amplias del SDK para construir agentes de IA más allá de solo tareas de codificación.13El SDK de Claude Code ha sido renombrado a **Claude Agent SDK** y su documentación ha sido reorganizada. Este cambio refleja las capacidades más amplias del SDK para construir agentes de IA más allá de solo tareas de codificación.

14 14 

15<h2 id="what-s-changed">15<h2 id="whats-changed">

16 Qué ha cambiado16 Qué ha cambiado

17</h2>17</h2>

18 18 


82}82}

83```83```

84 84 

85¡Eso es todo! No se requieren otros cambios de código.85**5. Revise [cambios importantes](#breaking-changes)**

86 

87Realice los cambios de código necesarios para completar la migración.

86 88 

87<h3 id="for-python-projects">89<h3 id="for-python-projects">

88 Para proyectos de Python90 Para proyectos de Python


172 174 

173<CodeGroup>175<CodeGroup>

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

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

178 

175 // ANTES (v0.0.x) - Utilizaba el prompt del sistema de Claude Code de forma predeterminada179 // ANTES (v0.0.x) - Utilizaba el prompt del sistema de Claude Code de forma predeterminada

176 const result = query({ prompt: "Hello" });180 const before = query({ prompt: "Hello" });

177 181 

178 // DESPUÉS (v0.1.0) - Utiliza un prompt del sistema mínimo de forma predeterminada182 // DESPUÉS (v0.1.0) - Utiliza un prompt del sistema mínimo de forma predeterminada

179 // Para obtener el comportamiento anterior, solicite explícitamente el preset de Claude Code:183 // Para obtener el comportamiento anterior, solicite explícitamente el preset de Claude Code:

180 const result = query({184 const presetResult = query({

181 prompt: "Hello",185 prompt: "Hello",

182 options: {186 options: {

183 systemPrompt: { type: "preset", preset: "claude_code" }187 systemPrompt: { type: "preset", preset: "claude_code" }


185 });189 });

186 190 

187 // O use un prompt del sistema personalizado:191 // O use un prompt del sistema personalizado:

188 const result = query({192 const customResult = query({

189 prompt: "Hello",193 prompt: "Hello",

190 options: {194 options: {

191 systemPrompt: "You are a helpful coding assistant"195 systemPrompt: "You are a helpful coding assistant"


233 237 

234<CodeGroup>238<CodeGroup>

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

236 const result = query({240 import { query } from "@anthropic-ai/claude-agent-sdk";

241 

242 const isolatedResult = query({

237 prompt: "Hello",243 prompt: "Hello",

238 options: {244 options: {

239 settingSources: [] // No se carga configuración del sistema de archivos245 settingSources: [] // No se carga configuración del sistema de archivos


241 });247 });

242 248 

243 // O cargue solo fuentes específicas:249 // O cargue solo fuentes específicas:

244 const result = query({250 const projectOnlyResult = query({

245 prompt: "Hello",251 prompt: "Hello",

246 options: {252 options: {

247 settingSources: ["project"] // Solo configuración del proyecto253 settingSources: ["project"] // Solo configuración del proyecto

Details

347 Cuándo usar CLAUDE.md347 Cuándo usar CLAUDE.md

348</h3>348</h3>

349 349 

350Use CLAUDE.md para instrucciones que deben aplicarse a cada sesión en un proyecto, independientemente de qué indicación del sistema use la sesión: estándares de codificación, comandos comunes, contexto de arquitectura y convenciones del equipo. CLAUDE.md se confirma en su repositorio, por lo que se mantiene sincronizado con el código que describe. Consulte [When to add to CLAUDE.md](/es/memory#when-to-add-to-claude-md) para obtener orientación completa.350Use CLAUDE.md para instrucciones que deben aplicarse a cada sesión en un proyecto, independientemente de qué indicación del sistema use la sesión: estándares de codificación, comandos comunes, contexto de arquitectura y convenciones del equipo. CLAUDE.md se confirma en su repositorio, por lo que se mantiene sincronizado con el código que describe. Consulte [Cuándo agregar a CLAUDE.md](/es/memory#when-to-add-to-claude-md) para obtener orientación completa.

351 351 

352Los archivos CLAUDE.md se cargan cuando la fuente de configuración `project` está habilitada, que lo está para las opciones predeterminadas de `query()`. Si establece `settingSources` en TypeScript o `setting_sources` en Python explícitamente, incluya `'project'` para mantener la carga de CLAUDE.md a nivel de proyecto.352Los archivos CLAUDE.md se cargan cuando la fuente de configuración `project` está habilitada, que lo está para las opciones predeterminadas de `query()`. Si establece `settingSources` en TypeScript o `setting_sources` en Python explícitamente, incluya `'project'` para mantener la carga de CLAUDE.md a nivel de proyecto.

353 353 


388 Cuándo usar `systemPrompt` personalizado388 Cuándo usar `systemPrompt` personalizado

389</h3>389</h3>

390 390 

391Use un indicador personalizado cuando la superficie, identidad o modelo de permisos de su agente difiera del de Claude Code, como se describe en [Decide on a starting point](#decide-on-a-starting-point). Usted define el conjunto completo de instrucciones, incluida cualquier orientación de herramientas y reglas de seguridad que su agente necesite.391Use un indicador personalizado cuando la superficie, identidad o modelo de permisos de su agente difiera del de Claude Code, como se describe en [Decidir sobre un punto de partida](#decide-on-a-starting-point). Usted define el conjunto completo de instrucciones, incluida cualquier orientación de herramientas y reglas de seguridad que su agente necesite.

392 392 

393**Mejor para:**393**Mejor para:**

394 394 

Details

108Debido a que el proceso secundario hereda el entorno de su aplicación de forma predeterminada, puede lograr el mismo resultado exportando estas variables en un Dockerfile, manifiesto de Kubernetes o perfil de shell y omitiendo `options.env` completamente.108Debido a que el proceso secundario hereda el entorno de su aplicación de forma predeterminada, puede lograr el mismo resultado exportando estas variables en un Dockerfile, manifiesto de Kubernetes o perfil de shell y omitiendo `options.env` completamente.

109 109 

110<Note>110<Note>

111 El exportador `console` escribe telemetría en la salida estándar, que el SDK utiliza111 El exportador `console` escribe telemetría en la salida estándar, que el SDK utiliza como su canal de mensajes. No establezca `console` como un valor de exportador cuando se ejecute a través del SDK. Para inspeccionar telemetría localmente, apunte `OTEL_EXPORTER_OTLP_ENDPOINT` a un recopilador local o un contenedor Jaeger todo en uno en su lugar.

112 como su canal de mensajes. No establezca `console` como un valor de exportador cuando se ejecute

113 a través del SDK. Para inspeccionar telemetría localmente, apunte

114 `OTEL_EXPORTER_OTLP_ENDPOINT` a un recopilador local o un contenedor Jaeger

115 todo en uno en su lugar.

116</Note>112</Note>

117 113 

118<h3 id="flush-telemetry-from-short-lived-calls">114<h3 id="flush-telemetry-from-short-lived-calls">


199 ...process.env,195 ...process.env,

200 // ... exporter configuration ...196 // ... exporter configuration ...

201 OTEL_SERVICE_NAME: "support-triage-agent",197 OTEL_SERVICE_NAME: "support-triage-agent",

202 OTEL_RESOURCE_ATTRIBUTES:198 OTEL_RESOURCE_ATTRIBUTES":

203 "service.version=1.4.0,deployment.environment=production",199 "service.version=1.4.0,deployment.environment=production",

204 },200 },

205 };201 };

Details

27 Verifique las reglas `deny` (de `disallowed_tools` y [settings.json](/es/settings#permission-settings)). Si una regla de denegar coincide, la herramienta se bloquea, incluso en modo `bypassPermissions`. Las reglas de nombre simple como `Bash` eliminan la herramienta del contexto de Claude antes de que comience esta evaluación, por lo que solo se verifican las reglas con alcance como `Bash(rm *)` en este paso.27 Verifique las reglas `deny` (de `disallowed_tools` y [settings.json](/es/settings#permission-settings)). Si una regla de denegar coincide, la herramienta se bloquea, incluso en modo `bypassPermissions`. Las reglas de nombre simple como `Bash` eliminan la herramienta del contexto de Claude antes de que comience esta evaluación, por lo que solo se verifican las reglas con alcance como `Bash(rm *)` en este paso.

28 </Step>28 </Step>

29 29 

30 <Step title="Reglas de preguntar">

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

32 </Step>

33 

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

31 Aplique el [modo de permiso](#permission-modes) activo. `bypassPermissions` aprueba todo lo que llega a este paso. `acceptEdits` aprueba operaciones de archivo. Otros modos se descartan.35 Aplique el [modo de permiso](#permission-modes) activo. `bypassPermissions` aprueba todo lo que llega a este paso. `acceptEdits` aprueba operaciones de archivo. `plan` enruta herramientas de edición de archivo y escritura de shell a su devolución de llamada `canUseTool` independientemente de las reglas de permitir, por lo que las operaciones de escritura no pueden ser aprobadas automáticamente mientras se planifica. Otros modos se descartan.

32 </Step>36 </Step>

33 37 

34 <Step title="Reglas de permitir">38 <Step title="Reglas de permitir">


40 </Step>44 </Step>

41</Steps>45</Steps>

42 46 

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

44 48 

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

46 50 


54`allowed_tools` y `disallowed_tools` (TypeScript: `allowedTools` / `disallowedTools`) agregan entradas a las listas de reglas de permitir y denegar en el flujo de evaluación anterior. Las reglas de permitir solo afectan la aprobación: una herramienta no listada en `allowed_tools` sigue estando disponible para Claude y se descarta al modo de permiso. Las reglas de denegar se comportan de manera diferente dependiendo de si nombran una herramienta o delimitan un patrón dentro de una.58`allowed_tools` y `disallowed_tools` (TypeScript: `allowedTools` / `disallowedTools`) agregan entradas a las listas de reglas de permitir y denegar en el flujo de evaluación anterior. Las reglas de permitir solo afectan la aprobación: una herramienta no listada en `allowed_tools` sigue estando disponible para Claude y se descarta al modo de permiso. Las reglas de denegar se comportan de manera diferente dependiendo de si nombran una herramienta o delimitan un patrón dentro de una.

55 59 

56| Opción | Efecto |60| Opción | Efecto |

57| :-------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |61| :-------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

58| `allowed_tools=["Read", "Grep"]` | `Read` y `Grep` se aprueban automáticamente. Las herramientas no listadas aquí aún existen y se descartan al modo de permiso y `canUseTool`. |62| `allowed_tools=["Read", "Grep"]` | `Read` y `Grep` se aprueban automáticamente. Las herramientas no listadas aquí aún existen y se descartan al modo de permiso y `canUseTool`. |

59| `disallowed_tools=["Bash"]` | La definición de la herramienta `Bash` se elimina de la solicitud. Claude no ve la herramienta y no puede intentarla. |63| `disallowed_tools=["Bash"]` | La definición de la herramienta `Bash` se elimina de la solicitud. Claude no ve la herramienta y no puede intentarla. |

60| `disallowed_tools=["Bash(rm *)"]` | `Bash` permanece disponible. Las llamadas que coinciden con `rm *` se deniegan en cada modo de permiso, incluido `bypassPermissions`. Otras llamadas de `Bash` se descartan al modo de permiso. |64| `disallowed_tools=["Bash(rm *)"]` | `Bash` permanece disponible. Las llamadas que coinciden con `rm *` se deniegan en cada modo de permiso, incluido `bypassPermissions`. Otras llamadas de `Bash` se descartan al modo de permiso. |

65| `disallowed_tools=["*"]` | Cada definición de herramienta se elimina de la solicitud. Los patrones globales de nombres de herramientas se admiten en reglas de denegar: `"*"` coincide con cada herramienta y `"mcp__*"` coincide con cada herramienta MCP en todos los servidores. |

66 

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

61 68 

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

63 70 


87El SDK admite estos modos de permiso:94El SDK admite estos modos de permiso:

88 95 

89| Modo | Descripción | Comportamiento de herramientas |96| Modo | Descripción | Comportamiento de herramientas |

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

91| `default` | Comportamiento de permiso estándar | Sin aprobaciones automáticas; las herramientas no coincidentes activan su devolución de llamada `canUseTool` |98| `default` | Comportamiento de permiso estándar | Sin aprobaciones automáticas; las herramientas no coincidentes activan su devolución de llamada `canUseTool` |

92| `dontAsk` | Denegar en lugar de solicitar | Cualquier cosa no pre-aprobada por `allowed_tools` o reglas se deniega; `canUseTool` nunca se llama |99| `dontAsk` | Denegar en lugar de solicitar | Cualquier cosa no pre-aprobada por `allowed_tools` o reglas se deniega; `canUseTool` nunca se llama |

93| `acceptEdits` | Auto-aceptar ediciones de archivo | Las ediciones de archivo y [operaciones del sistema de archivos](#accept-edits-mode-acceptedits) (`mkdir`, `rm`, `mv`, etc.) se aprueban automáticamente |100| `acceptEdits` | Auto-aceptar ediciones de archivo | Las ediciones de archivo y [operaciones del sistema de archivos](#accept-edits-mode-acceptedits) (`mkdir`, `rm`, `mv`, etc.) se aprueban automáticamente |

94| `bypassPermissions` | Omitir todas las verificaciones de permiso | Todas las herramientas se ejecutan sin solicitudes de permiso (usar con cuidado) |101| `bypassPermissions` | Omitir todas las verificaciones de permiso | Las herramientas se ejecutan sin solicitudes de permiso, a menos que una [regla `ask` explícita](#how-permissions-are-evaluated) coincida (usar con cuidado) |

95| `plan` | Modo de planificación | Las herramientas de solo lectura se ejecutan; Claude analiza y planifica sin editar sus archivos fuente |102| `plan` | Modo de planificación | Claude explora y planifica sin editar sus archivos fuente; las ediciones de archivo nunca se aprueban automáticamente y se solicitan a través de su devolución de llamada `canUseTool` |

96| `auto` (solo TypeScript) | Aprobaciones clasificadas por modelo | Un clasificador de modelo aprueba o deniega cada llamada de herramienta. Consulte [Modo Auto](/es/permission-modes#eliminate-prompts-with-auto-mode) para disponibilidad |103| `auto` (solo TypeScript) | Aprobaciones clasificadas por modelo | Un clasificador de modelo aprueba o deniega cada llamada de herramienta. Consulte [Modo Auto](/es/permission-modes#eliminate-prompts-with-auto-mode) para disponibilidad |

97 104 

98<Warning>105<Warning>

99 **Herencia de subagentos:** Cuando el padre usa `bypassPermissions`, `acceptEdits` o `auto`, todos los subagentos heredan ese modo y no se puede anular por subagentos. Los subagentos pueden tener diferentes indicaciones del sistema y comportamiento menos restringido que su agente principal, por lo que heredar `bypassPermissions` les otorga acceso completo y autónomo al sistema sin solicitudes de aprobación.106 **Herencia de subagentos:** Cuando el padre usa `bypassPermissions`, `acceptEdits` o `auto`, todos los subagentos heredan ese modo y no se puede anular por subagentos. Los subagentos pueden tener diferentes indicaciones del sistema y comportamiento menos restringido que su agente principal, por lo que heredar `bypassPermissions` les otorga acceso completo y autónomo al sistema. Una [regla `ask` explícita](#how-permissions-are-evaluated) aún fuerza una solicitud.

100</Warning>107</Warning>

101 108 

102<h3 id="set-permission-mode">109<h3 id="set-permission-mode">


226 233 

227**Usar cuando:** confía en las ediciones de Claude y desea una iteración más rápida, como durante la creación de prototipos o cuando trabaja en un directorio aislado.234**Usar cuando:** confía en las ediciones de Claude y desea una iteración más rápida, como durante la creación de prototipos o cuando trabaja en un directorio aislado.

228 235 

229<h4 id="don-t-ask-mode-dontask">236<h4 id="dont-ask-mode-dontask">

230 Modo no preguntar (`dontAsk`)237 Modo no preguntar (`dontAsk`)

231</h4>238</h4>

232 239 


250 Modo de planificación (`plan`)257 Modo de planificación (`plan`)

251</h4>258</h4>

252 259 

253Restringe Claude a herramientas de solo lectura. Claude puede leer archivos y ejecutar comandos de shell de solo lectura para explorar la base de código pero no edita sus archivos fuente. Claude puede usar `AskUserQuestion` para aclarar requisitos antes de finalizar el plan. Consulte [Manejar aprobaciones e entrada del usuario](/es/agent-sdk/user-input#handle-clarifying-questions) para manejar estas solicitudes.260Claude explora la base de código y produce un plan sin editar sus archivos fuente. Las herramientas de solo lectura se ejecutan como en modo predeterminado. Las ediciones de archivo nunca se aprueban automáticamente en modo de planificación, incluso cuando una regla de permitir coincide. Se solicitan a través de su devolución de llamada `canUseTool` en su lugar. Claude puede usar `AskUserQuestion` para aclarar requisitos antes de finalizar el plan. Consulte [Manejar aprobaciones e entrada del usuario](/es/agent-sdk/user-input#handle-clarifying-questions) para manejar estas solicitudes.

254 261 

255**Usar cuando:** desea que Claude proponga cambios sin ejecutarlos, como durante la revisión de código o cuando necesita aprobar cambios antes de que se realicen.262**Usar cuando:** desea que Claude proponga cambios sin ejecutarlos, como durante la revisión de código o cuando necesita aprobar cambios antes de que se realicen.

256 263 

Details

132) -> Callable[[Callable[[Any], Awaitable[dict[str, Any]]]], SdkMcpTool[Any]]132) -> Callable[[Callable[[Any], Awaitable[dict[str, Any]]]], SdkMcpTool[Any]]

133```133```

134 134 

135<h4 id="parameters">135<h4 id="parameters-1">

136 Parámetros136 Parámetros

137</h4>137</h4>

138 138 


165 }165 }

166 ```166 ```

167 167 

168<h4 id="returns">168<h4 id="returns-1">

169 Devuelve169 Devuelve

170</h4>170</h4>

171 171 


228) -> McpSdkServerConfig228) -> McpSdkServerConfig

229```229```

230 230 

231<h4 id="parameters">231<h4 id="parameters-2">

232 Parámetros232 Parámetros

233</h4>233</h4>

234 234 


238| `version` | `str` | `"1.0.0"` | Cadena de versión del servidor |238| `version` | `str` | `"1.0.0"` | Cadena de versión del servidor |

239| `tools` | `list[SdkMcpTool[Any]] \| None` | `None` | Lista de funciones de herramienta creadas con el decorador `@tool` |239| `tools` | `list[SdkMcpTool[Any]] \| None` | `None` | Lista de funciones de herramienta creadas con el decorador `@tool` |

240 240 

241<h4 id="returns">241<h4 id="returns-2">

242 Devuelve242 Devuelve

243</h4>243</h4>

244 244 

245Devuelve un objeto `McpSdkServerConfig` que se puede pasar a `ClaudeAgentOptions.mcp_servers`.245Devuelve un objeto `McpSdkServerConfig` que se puede pasar a `ClaudeAgentOptions.mcp_servers`.

246 246 

247<h4 id="example">247<h4 id="example-1">

248 Ejemplo248 Ejemplo

249</h4>249</h4>

250 250 


289) -> list[SDKSessionInfo]289) -> list[SDKSessionInfo]

290```290```

291 291 

292<h4 id="parameters">292<h4 id="parameters-3">

293 Parámetros293 Parámetros

294</h4>294</h4>

295 295 


316| `tag` | `str \| None` | Etiqueta de sesión establecida por el usuario (ver [`tag_session()`](#tag_session)) |316| `tag` | `str \| None` | Etiqueta de sesión establecida por el usuario (ver [`tag_session()`](#tag_session)) |

317| `created_at` | `int \| None` | Hora de creación de sesión en milisegundos desde la época |317| `created_at` | `int \| None` | Hora de creación de sesión en milisegundos desde la época |

318 318 

319<h4 id="example">319<h4 id="example-2">

320 Ejemplo320 Ejemplo

321</h4>321</h4>

322 322 


344) -> list[SessionMessage]344) -> list[SessionMessage]

345```345```

346 346 

347<h4 id="parameters">347<h4 id="parameters-4">

348 Parámetros348 Parámetros

349</h4>349</h4>

350 350 


367| `message` | `Any` | Contenido del mensaje sin procesar |367| `message` | `Any` | Contenido del mensaje sin procesar |

368| `parent_tool_use_id` | `None` | Reservado para uso futuro |368| `parent_tool_use_id` | `None` | Reservado para uso futuro |

369 369 

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

371 Ejemplo371 Ejemplo

372</h4>372</h4>

373 373 


394) -> SDKSessionInfo | None394) -> SDKSessionInfo | None

395```395```

396 396 

397<h4 id="parameters">397<h4 id="parameters-5">

398 Parámetros398 Parámetros

399</h4>399</h4>

400 400 


405 405 

406Devuelve [`SDKSessionInfo`](#return-type-sdksessioninfo), o `None` si la sesión no se encuentra.406Devuelve [`SDKSessionInfo`](#return-type-sdksessioninfo), o `None` si la sesión no se encuentra.

407 407 

408<h4 id="example">408<h4 id="example-4">

409 Ejemplo409 Ejemplo

410</h4>410</h4>

411 411 


433) -> None433) -> None

434```434```

435 435 

436<h4 id="parameters">436<h4 id="parameters-6">

437 Parámetros437 Parámetros

438</h4>438</h4>

439 439 


445 445 

446Genera `ValueError` si `session_id` no es un UUID válido o `title` está vacío; `FileNotFoundError` si la sesión no se puede encontrar.446Genera `ValueError` si `session_id` no es un UUID válido o `title` está vacío; `FileNotFoundError` si la sesión no se puede encontrar.

447 447 

448<h4 id="example">448<h4 id="example-5">

449 Ejemplo449 Ejemplo

450</h4>450</h4>

451 451 


473) -> None473) -> None

474```474```

475 475 

476<h4 id="parameters">476<h4 id="parameters-7">

477 Parámetros477 Parámetros

478</h4>478</h4>

479 479 

480| Parámetro | Tipo | Predeterminado | Descripción |480| Parámetro | Tipo | Predeterminado | Descripción |

481| :----------- | :------------ | :------------- | :--------------------------------------------------------------------------------------------- |481| :----------- | :------------ | :------------- | :--------------------------------------------------------------------------------------------- |

482| `session_id` | `str` | requerido | UUID de la sesión a etiquetar |482| `session_id` | `str` | requerido | UUID de la sesión a etiquetar |

483| `tag` | `str \| None` | requerido | Cadena de etiqueta, o `None` para borrar. Desinfectada de Unicode antes de almacenar |483| `tag` | `str \| None` | requerido | Cadena de etiqueta, o `None` para borrar. Sanitizada de Unicode antes de almacenar |

484| `directory` | `str \| None` | `None` | Ruta del directorio del proyecto. Cuando se omite, busca en todos los directorios del proyecto |484| `directory` | `str \| None` | `None` | Ruta del directorio del proyecto. Cuando se omite, busca en todos los directorios del proyecto |

485 485 

486Genera `ValueError` si `session_id` no es un UUID válido o `tag` está vacío después de la desinfección; `FileNotFoundError` si la sesión no se puede encontrar.486Genera `ValueError` si `session_id` no es un UUID válido o `tag` está vacío después de la sanitización; `FileNotFoundError` si la sesión no se puede encontrar.

487 487 

488<h4 id="example">488<h4 id="example-6">

489 Ejemplo489 Ejemplo

490</h4>490</h4>

491 491 


897```897```

898 898 

899| Propiedad | Tipo | Predeterminado | Descripción |899| Propiedad | Tipo | Predeterminado | Descripción |

900| :---------------------------- | :------------------------------------------------------------------------------------ | :--------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |900| :---------------------------- | :------------------------------------------------------------------------------------ | :--------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

901| `tools` | `list[str] \| ToolsPreset \| None` | `None` | Configuración de herramientas. Use `{"type": "preset", "preset": "claude_code"}` para las herramientas predeterminadas de Claude Code |901| `tools` | `list[str] \| ToolsPreset \| None` | `None` | Configuración de herramientas. Use `{"type": "preset", "preset": "claude_code"}` para las herramientas predeterminadas de Claude Code |

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

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

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

905| `strict_mcp_config` | `bool` | `False` | Cuando es `True`, use solo los servidores pasados en `mcp_servers` e ignore el proyecto `.mcp.json`, la configuración del usuario, los servidores MCP proporcionados por plugins, y [conectores de claude.ai](/es/mcp#use-mcp-servers-from-claude-ai). Se asigna a la bandera CLI `--strict-mcp-config` |905| `strict_mcp_config` | `bool` | `False` | Cuando es `True`, use solo los servidores pasados en `mcp_servers` e ignore el proyecto `.mcp.json`, la configuración del usuario, los servidores MCP proporcionados por plugins, y [conectores de claude.ai](/es/mcp#use-mcp-servers-from-claude-ai). Se asigna a la bandera CLI `--strict-mcp-config` |


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

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

909| `max_turns` | `int \| None` | `None` | Número máximo de turnos agentes (viajes de ronda de uso de herramientas) |909| `max_turns` | `int \| None` | `None` | Número máximo de turnos agentes (viajes de ronda de uso de herramientas) |

910| `max_budget_usd` | `float \| None` | `None` | Detener la consulta cuando la estimación de costo del lado del cliente alcance este valor en USD. Comparado con la misma estimación que `total_cost_usd`; ver [Track cost and usage](/es/agent-sdk/cost-tracking) para advertencias de precisión |910| `max_budget_usd` | `float \| None` | `None` | Detener la consulta cuando la estimación de costo del lado del cliente alcance este valor en USD. Comparado con la misma estimación que `total_cost_usd`; ver [Rastrear costo y uso](/es/agent-sdk/cost-tracking) para advertencias de precisión |

911| `disallowed_tools` | `list[str]` | `[]` | Herramientas para denegar. Un nombre simple como `"Bash"` elimina la herramienta del contexto de Claude. Una regla con alcance como `"Bash(rm *)"` deja la herramienta disponible y deniega llamadas coincidentes en cada modo de permiso, incluyendo `bypassPermissions`. Ver [Permissions](/es/agent-sdk/permissions#allow-and-deny-rules) |911| `disallowed_tools` | `list[str]` | `[]` | Herramientas para denegar. Un nombre simple como `"Bash"` elimina la herramienta del contexto de Claude. Una regla con alcance como `"Bash(rm *)"` deja la herramienta disponible y deniega llamadas coincidentes en cada modo de permiso, incluyendo `bypassPermissions`. Ver [Permisos](/es/agent-sdk/permissions#allow-and-deny-rules) |

912| `enable_file_checkpointing` | `bool` | `False` | Habilitar el seguimiento de cambios de archivo para rebobinar. Ver [File checkpointing](/es/agent-sdk/file-checkpointing) |912| `enable_file_checkpointing` | `bool` | `False` | Habilitar el seguimiento de cambios de archivo para rebobinar. Ver [File checkpointing](/es/agent-sdk/file-checkpointing) |

913| `model` | `str \| None` | `None` | Modelo Claude a usar |913| `model` | `str \| None` | `None` | Alias de modelo Claude o nombre de modelo completo. Ver [valores aceptados e IDs específicos del proveedor](/es/model-config#available-models) |

914| `fallback_model` | `str \| None` | `None` | Modelo de respaldo a usar si el modelo principal falla |914| `fallback_model` | `str \| None` | `None` | Modelo de respaldo a usar si el modelo principal falla |

915| `betas` | `list[SdkBeta]` | `[]` | Características beta a habilitar. Ver [`SdkBeta`](#sdkbeta) para opciones disponibles |915| `betas` | `list[SdkBeta]` | `[]` | Características beta a habilitar. Ver [`SdkBeta`](#sdkbeta) para opciones disponibles |

916| `output_format` | `dict[str, Any] \| None` | `None` | Formato de salida para respuestas estructuradas (por ejemplo, `{"type": "json_schema", "schema": {...}}`). Ver [Structured outputs](/es/agent-sdk/structured-outputs) para detalles |916| `output_format` | `dict[str, Any] \| None` | `None` | Formato de salida para respuestas estructuradas (por ejemplo, `{"type": "json_schema", "schema": {...}}`). Ver [Salidas estructuradas](/es/agent-sdk/structured-outputs) para detalles |

917| `permission_prompt_tool_name` | `str \| None` | `None` | Nombre de herramienta MCP para solicitudes de permiso |917| `permission_prompt_tool_name` | `str \| None` | `None` | Nombre de herramienta MCP para solicitudes de permiso |

918| `cwd` | `str \| Path \| None` | `None` | Directorio de trabajo actual |918| `cwd` | `str \| Path \| None` | `None` | Directorio de trabajo actual |

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

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

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

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

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

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

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

926| `stderr` | `Callable[[str], None] \| None` | `None` | Función de devolución de llamada para salida stderr del CLI |926| `stderr` | `Callable[[str], None] \| None` | `None` | Función de devolución de llamada para salida stderr del CLI |

927| `can_use_tool` | [`CanUseTool`](#canusetool) ` \| None` | `None` | Función de devolución de llamada de permiso de herramienta. Ver [Permission types](#canusetool) para detalles |927| `can_use_tool` | [`CanUseTool`](#canusetool) ` \| None` | `None` | Función de devolución de llamada de permiso de herramienta. Ver [Tipos de permiso](#canusetool) para detalles |

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

929| `user` | `str \| None` | `None` | Identificador de usuario |929| `user` | `str \| None` | `None` | Identificador de usuario |

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


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

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

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

935| `sandbox` | [`SandboxSettings`](#sandboxsettings) ` \| None` | `None` | Configurar el comportamiento de sandbox programáticamente. Ver [Sandbox settings](#sandboxsettings) para detalles |935| `sandbox` | [`SandboxSettings`](#sandboxsettings) ` \| None` | `None` | Configurar el comportamiento de sandbox programáticamente. Ver [Configuración de sandbox](#sandboxsettings) para detalles |

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

937| `skills` | `list[str] \| Literal["all"] \| None` | `None` | Skills disponibles para la sesión. Pase `"all"` para habilitar cada skill descubierto, o una lista de nombres de skills. Cuando se establece, el SDK agrega la herramienta Skill a `allowed_tools` automáticamente. Si también pasa `tools`, incluya `"Skill"` en esa lista. Ver [Skills](/es/agent-sdk/skills) |937| `skills` | `list[str] \| Literal["all"] \| None` | `None` | Skills disponibles para la sesión. Pase `"all"` para habilitar cada skill descubierto, o una lista de nombres de skills. Cuando se establece, el SDK agrega la herramienta Skill a `allowed_tools` automáticamente. Si también pasa `tools`, incluya `"Skill"` en esa lista. Ver [Skills](/es/agent-sdk/skills) |

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

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

940| `effort` | [`EffortLevel`](#effortlevel) ` \| None` | `None` | Nivel de esfuerzo para la profundidad del pensamiento |940| `effort` | [`EffortLevel`](#effortlevel) ` \| None` | `None` | Nivel de esfuerzo para la profundidad del pensamiento. Ver [ajustar el nivel de esfuerzo](/es/model-config#adjust-effort-level) |

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

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

943 943 

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


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

961* `CLAUDE_CODE_MAX_RETRIES`: máximo de reintentos de API. Predeterminado `10`. Cada reintento obtiene su propia ventana `API_TIMEOUT_MS`, por lo que el tiempo de pared en el peor caso es aproximadamente `API_TIMEOUT_MS × (CLAUDE_CODE_MAX_RETRIES + 1)` más backoff.961* `CLAUDE_CODE_MAX_RETRIES`: máximo de reintentos de API. Predeterminado `10`. Cada reintento obtiene su propia ventana `API_TIMEOUT_MS`, por lo que el tiempo de pared en el peor caso es aproximadamente `API_TIMEOUT_MS × (CLAUDE_CODE_MAX_RETRIES + 1)` más backoff.

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

963* `CLAUDE_ENABLE_STREAM_WATCHDOG=1` con `CLAUDE_STREAM_IDLE_TIMEOUT_MS`: aborta la solicitud cuando los encabezados han llegado pero el cuerpo de la respuesta deja de transmitir. Desactivado de forma predeterminada. `CLAUDE_STREAM_IDLE_TIMEOUT_MS` tiene un valor predeterminado de `300000` y se fija a ese mínimo. La solicitud abortada pasa por la ruta de reintento normal.963* `CLAUDE_ENABLE_STREAM_WATCHDOG=1` con `CLAUDE_STREAM_IDLE_TIMEOUT_MS`: aborta la solicitud cuando los encabezados han llegado pero el cuerpo de la respuesta deja de transmitir. Cuando `CLAUDE_ENABLE_STREAM_WATCHDOG` no está establecido, el valor predeterminado es controlado por el servidor en la API directa de Anthropic y desactivado en otros proveedores. `CLAUDE_STREAM_IDLE_TIMEOUT_MS` tiene un valor predeterminado de `300000` y se fija a ese mínimo. La solicitud abortada pasa por la ruta de reintento normal.

964 964 

965<h3 id="outputformat">965<h3 id="outputformat">

966 `OutputFormat`966 `OutputFormat`


996```996```

997 997 

998| Campo | Requerido | Descripción |998| Campo | Requerido | Descripción |

999| :------------------------- | :-------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |999| :------------------------- | :-------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

1000| `type` | Sí | Debe ser `"preset"` para usar un prompt del sistema preset |1000| `type` | Sí | Debe ser `"preset"` para usar un prompt del sistema preset |

1001| `preset` | Sí | Debe ser `"claude_code"` para usar el prompt del sistema de Claude Code |1001| `preset` | Sí | Debe ser `"claude_code"` para usar el prompt del sistema de Claude Code |

1002| `append` | No | Instrucciones adicionales para agregar al prompt del sistema preset |1002| `append` | No | Instrucciones adicionales para agregar al prompt del sistema preset |

1003| `exclude_dynamic_sections` | No | Mover contexto por sesión como directorio de trabajo, estado de git y rutas de memoria del prompt del sistema al primer mensaje del usuario. Mejora la reutilización de caché de prompt en usuarios y máquinas. Ver [Modify system prompts](/es/agent-sdk/modifying-system-prompts#improve-prompt-caching-across-users-and-machines) |1003| `exclude_dynamic_sections` | No | Mover contexto por sesión como directorio de trabajo, estado de git y rutas de memoria del prompt del sistema al primer mensaje del usuario. Mejora la reutilización de caché de prompt en usuarios y máquinas. Ver [Modificar prompts del sistema](/es/agent-sdk/modifying-system-prompts#improve-prompt-caching-across-users-and-machines) |

1004 1004 

1005<h3 id="settingsource">1005<h3 id="settingsource">

1006 `SettingSource`1006 `SettingSource`


1016| :---------- | :------------------------------------------------------------- | :---------------------------- |1016| :---------- | :------------------------------------------------------------- | :---------------------------- |

1017| `"user"` | Configuración global del usuario | `~/.claude/settings.json` |1017| `"user"` | Configuración global del usuario | `~/.claude/settings.json` |

1018| `"project"` | Configuración del proyecto compartido (controlada por versión) | `.claude/settings.json` |1018| `"project"` | Configuración del proyecto compartido (controlada por versión) | `.claude/settings.json` |

1019| `"local"` | Configuración del proyecto local (gitignored) | `.claude/settings.local.json` |1019| `"local"` | Configuración del proyecto local (no controlada por versión) | `.claude/settings.local.json` |

1020 1020 

1021<h4 id="default-behavior">1021<h4 id="default-behavior">

1022 Comportamiento predeterminado1022 Comportamiento predeterminado

1023</h4>1023</h4>

1024 1024 

1025Cuando `setting_sources` se omite o es `None`, `query()` carga la misma configuración del sistema de archivos que el CLI de Claude Code: usuario, proyecto y local. La configuración de política administrada se carga en todos los casos. Ver [What settingSources does not control](/es/agent-sdk/claude-code-features#what-settingsources-does-not-control) para entradas que se leen independientemente de esta opción, y cómo deshabilitarlas.1025Cuando `setting_sources` se omite o es `None`, `query()` carga la misma configuración del sistema de archivos que el CLI de Claude Code: usuario, proyecto y local. La configuración de política administrada se carga en todos los casos. Ver [Qué settingSources no controla](/es/agent-sdk/claude-code-features#what-settingsources-does-not-control) para entradas que se leen independientemente de esta opción, y cómo deshabilitarlas.

1026 1026 

1027<h4 id="why-use-setting_sources">1027<h4 id="why-use-setting_sources">

1028 Por qué usar setting\_sources1028 Por qué usar setting\_sources


1160```1160```

1161 1161 

1162| Campo | Requerido | Descripción |1162| Campo | Requerido | Descripción |

1163| :---------------- | :-------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |1163| :---------------- | :-------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

1164| `description` | Sí | Descripción en lenguaje natural de cuándo usar este agente |1164| `description` | Sí | Descripción en lenguaje natural de cuándo usar este agente |

1165| `prompt` | Sí | El prompt del sistema del agente |1165| `prompt` | Sí | El prompt del sistema del agente |

1166| `tools` | No | Matriz de nombres de herramientas permitidas. Si se omite, hereda todas las herramientas |1166| `tools` | No | Matriz de nombres de herramientas permitidas. Si se omite, hereda todas las herramientas |

1167| `disallowedTools` | No | Matriz de nombres de herramientas a eliminar del conjunto de herramientas del agente |1167| `disallowedTools` | No | Matriz de nombres de herramientas a eliminar del conjunto de herramientas del agente. También se aceptan patrones a nivel de servidor MCP: `mcp__server` o `mcp__server__*` elimina cada herramienta de ese servidor, y `mcp__*` elimina cada herramienta MCP de cualquier servidor |

1168| `model` | No | Anulación de modelo para este agente. Acepta un alias como `"sonnet"`, `"opus"`, `"haiku"`, o `"inherit"`, o un ID de modelo completo. Si se omite, usa el modelo principal |1168| `model` | No | Anulación de modelo para este agente. Acepta un alias como `"sonnet"`, `"opus"`, `"haiku"`, o `"inherit"`, o un ID de modelo completo. Si se omite, usa el modelo principal |

1169| `skills` | No | Lista de nombres de skills para precargar en el contexto del agente al inicio. Los skills no listados siguen siendo invocables a través de la herramienta Skill |1169| `skills` | No | Lista de nombres de skills para precargar en el contexto del agente al inicio. Los skills no listados siguen siendo invocables a través de la herramienta Skill |

1170| `memory` | No | Fuente de memoria para este agente: `"user"`, `"project"`, o `"local"` |1170| `memory` | No | Fuente de memoria para este agente: `"user"`, `"project"`, o `"local"` |


1189PermissionMode = Literal[1189PermissionMode = Literal[

1190 "default", # Standard permission behavior1190 "default", # Standard permission behavior

1191 "acceptEdits", # Auto-accept file edits1191 "acceptEdits", # Auto-accept file edits

1192 "plan", # Planning mode - read-only tools only1192 "plan", # Planning mode - explore without editing

1193 "dontAsk", # Deny anything not pre-approved instead of prompting1193 "dontAsk", # Deny anything not pre-approved instead of prompting

1194 "bypassPermissions", # Bypass all permission checks (use with caution)1194 "bypassPermissions", # Bypass permission checks; explicit ask rules still prompt (use with caution)

1195]1195]

1196```1196```

1197 1197 


1206 "low", # Minimal thinking, fastest responses1206 "low", # Minimal thinking, fastest responses

1207 "medium", # Moderate thinking1207 "medium", # Moderate thinking

1208 "high", # Deep reasoning1208 "high", # Deep reasoning

1209 "xhigh", # Extended reasoning (Opus 4.7 only; falls back to "high" on other models)1209 "xhigh", # Extended reasoning (Opus 4.8 and Opus 4.7; falls back to "high" on other models)

1210 "max", # Maximum effort1210 "max", # Maximum effort

1211]1211]

1212```1212```


1432Use con el campo `betas` en `ClaudeAgentOptions` para habilitar características beta.1432Use con el campo `betas` en `ClaudeAgentOptions` para habilitar características beta.

1433 1433 

1434<Warning>1434<Warning>

1435 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 Sonnet 4.6, Claude Opus 4.6, o Claude Opus 4.7](https://platform.claude.com/docs/en/about-claude/models/overview), que incluyen contexto de 1M a precios estándar sin encabezado beta requerido.1435 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 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.

1436</Warning>1436</Warning>

1437 1437 

1438<h3 id="mcpsdkserverconfig">1438<h3 id="mcpsdkserverconfig">


1706 uuid: str | None = None1706 uuid: str | None = None

1707```1707```

1708 1708 

1709El campo `subtype` determina cuáles otros campos se rellenan. Es uno de `"success"`, `"error_during_execution"`, `"error_max_turns"`, `"error_max_budget_usd"`, o `"error_max_structured_output_retries"`. La clase de datos de Python aplana todas las variantes en una forma, por lo que los campos que no se aplican al subtipo devuelto son `None`.

1710 

1711Varios campos llevan detalle de diagnóstico cuando la conversación termina en un error:

1712 

1713* `is_error`: `True` cuando la conversación terminó en un estado de error. Siempre `True` en los subtipos `error_*`. En `subtype="success"` es `True` cuando la solicitud del modelo final falló, lo que significa que el bucle del agente se completó pero la última llamada a la API devolvió un error.

1714* `api_error_status`: el código de estado HTTP del error de API de terminación. `None` cuando el turno terminó sin uno. Se rellena solo en `subtype="success"`.

1715* `result`: texto del mensaje del asistente final en `subtype="success"`, o `None` en los subtipos `error_*`. Cuando `subtype="success"` e `is_error=True`, esto contiene la cadena de error de API si una está disponible pero puede estar vacía, así que verifique `api_error_status` y el contenido anterior de `AssistantMessage` para obtener detalles.

1716* `errors`: cadenas de error a nivel de bucle como el mensaje de máx-turnos. Se rellena solo en los subtipos `error_*`.

1717 

1709El dict `usage` contiene las siguientes claves cuando está presente:1718El dict `usage` contiene las siguientes claves cuando está presente:

1710 1719 

1711| Clave | Tipo | Descripción |1720| Clave | Tipo | Descripción |


3625 Establezca `"failIfUnavailable": True` en su configuración de sandbox para detener en su lugar. La clave aún no está declarada en `SandboxSettings`, pero el SDK la reenvía a Claude Code, que la respeta. `query()` luego reporta un `ResultMessage` con `subtype="error_during_execution"` y la razón en `errors`. Observe ese subtipo en lugar de esperar que `query()` lance una excepción antes de ceder mensajes.3634 Establezca `"failIfUnavailable": True` en su configuración de sandbox para detener en su lugar. La clave aún no está declarada en `SandboxSettings`, pero el SDK la reenvía a Claude Code, que la respeta. `query()` luego reporta un `ResultMessage` con `subtype="error_during_execution"` y la razón en `errors`. Observe ese subtipo en lugar de esperar que `query()` lance una excepción antes de ceder mensajes.

3626</Note>3635</Note>

3627 3636 

3628<h4 id="example-usage">3637<h4 id="example-usage-1">

3629 Ejemplo de uso3638 Ejemplo de uso

3630</h4>3639</h4>

3631 3640 

Details

340**Modos de permiso** controlan cuánta supervisión humana desea:340**Modos de permiso** controlan cuánta supervisión humana desea:

341 341 

342| Modo | Comportamiento | Caso de uso |342| Modo | Comportamiento | Caso de uso |

343| ------------------------ | -------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------ |343| ------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------ |

344| `acceptEdits` | Aprueba automáticamente ediciones de archivo y comandos comunes del sistema de archivos, pregunta por otras acciones | Flujos de trabajo de desarrollo confiables |344| `acceptEdits` | Aprueba automáticamente ediciones de archivo y comandos comunes del sistema de archivos, pregunta por otras acciones | Flujos de trabajo de desarrollo confiables |

345| `dontAsk` | Deniega cualquier cosa que no esté en `allowedTools` | Agentes sin cabeza bloqueados |345| `dontAsk` | Deniega cualquier cosa que no esté en `allowedTools` | Agentes sin cabeza bloqueados |

346| `auto` (solo TypeScript) | Un clasificador de modelo aprueba o deniega cada llamada de herramienta | Agentes autónomos con protecciones de seguridad |346| `auto` (solo TypeScript) | Un clasificador de modelo aprueba o deniega cada llamada de herramienta | Agentes autónomos con protecciones de seguridad |

347| `bypassPermissions` | Ejecuta cada herramienta sin indicadores | CI en sandbox, entornos completamente confiables |347| `bypassPermissions` | Ejecuta cada herramienta sin indicadores, a menos que una [regla `ask` explícita](/es/agent-sdk/permissions#how-permissions-are-evaluated) coincida | CI en sandbox, entornos completamente confiables |

348| `default` | Requiere una devolución de llamada `canUseTool` para manejar la aprobación | Flujos de aprobación personalizados |348| `default` | Requiere una devolución de llamada `canUseTool` para manejar la aprobación | Flujos de aprobación personalizados |

349 349 

350El ejemplo anterior utiliza el modo `acceptEdits`, que aprueba automáticamente las operaciones de archivo para que el agente pueda ejecutarse sin indicadores interactivos. Si desea solicitar a los usuarios la aprobación, utilice el modo `default` y proporcione una devolución de llamada [`canUseTool`](/es/agent-sdk/user-input) que recopile la entrada del usuario. Para más control, consulte [Permisos](/es/agent-sdk/permissions).350El ejemplo anterior utiliza el modo `acceptEdits`, que aprueba automáticamente las operaciones de archivo para que el agente pueda ejecutarse sin indicadores interactivos. Si desea solicitar a los usuarios la aprobación, utilice el modo `default` y proporcione una devolución de llamada [`canUseTool`](/es/agent-sdk/user-input) que recopile la entrada del usuario. Para más control, consulte [Permisos](/es/agent-sdk/permissions).

Details

50 50 

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

52 # Exported from claude_agent_sdk as52 # Exported from claude_agent_sdk as

53 # SessionStore, SessionKey, SessionStoreEntry.53 // SessionStore, SessionKey, SessionStoreEntry.

54 54 

55 class SessionKey(TypedDict):55 class SessionKey(TypedDict):

56 project_key: str56 project_key: str


150 ```150 ```

151</CodeGroup>151</CodeGroup>

152 152 

153La segunda consulta imprime un resumen de los archivos de la primera consulta, lo que muestra que el agente reanudó con contexto completo desde el almacén.

154 

153<h2 id="write-your-own-adapter">155<h2 id="write-your-own-adapter">

154 Escribe tu propio adaptador156 Escribe tu propio adaptador

155</h2>157</h2>


248`forkSession({ sessionStore })` lee las entradas de origen, reescribe cada campo `sessionId` y remapea UUIDs de mensajes, luego anexa las entradas transformadas bajo una clave nueva. Una copia a nivel de adaptador o un atajo `CopyObject` produciría una transcripción que aún hace referencia al ID de sesión anterior, por lo que el SDK no usa uno.250`forkSession({ sessionStore })` lee las entradas de origen, reescribe cada campo `sessionId` y remapea UUIDs de mensajes, luego anexa las entradas transformadas bajo una clave nueva. Una copia a nivel de adaptador o un atajo `CopyObject` produciría una transcripción que aún hace referencia al ID de sesión anterior, por lo que el SDK no usa uno.

249 251 

250<h3 id="subagent-transcripts">252<h3 id="subagent-transcripts">

251 Transcripciones de subagenteor253 Transcripciones de subagente

252</h3>254</h3>

253 255 

254Las transcripciones de subagenteor se reflejan bajo `subpath: "subagents/agent-<id>"`. `listSubagents({ sessionStore })` requiere que el adaptador implemente `listSubkeys`; `getSubagentMessages({ sessionStore })` lo usa cuando está disponible pero vuelve al subpath directo cuando no está definido. La reanudación también llama a `listSubkeys` para restaurar archivos de subagenteor; sin él, solo se materializa la transcripción principal.256Las transcripciones de subagente se reflejan bajo `subpath: "subagents/agent-<id>"`. `listSubagents({ sessionStore })` requiere que el adaptador implemente `listSubkeys`; `getSubagentMessages({ sessionStore })` lo usa cuando está disponible pero vuelve al subpath directo cuando no está definido. La reanudación también llama a `listSubkeys` para restaurar archivos de subagente; sin él, solo se materializa la transcripción principal.

255 257 

256<h3 id="retention">258<h3 id="retention">

257 Retención259 Retención

Details

230 ```230 ```

231 231 

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

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

234 

235 const sessionId = "..."; // The ID you captured in the previous example

236 

233 // Earlier session analyzed the code; now build on that analysis237 // Earlier session analyzed the code; now build on that analysis

234 for await (const message of query({238 for await (const message of query({

235 prompt: "Now implement the refactoring you suggested",239 prompt: "Now implement the refactoring you suggested",


245 ```249 ```

246</CodeGroup>250</CodeGroup>

247 251 

252Debería ver una respuesta que se basa en el análisis anterior en lugar de comenzar de nuevo. Eso confirma que el agente reanudó la sesión con su contexto anterior intacto.

253 

248<Tip>254<Tip>

249 Si una llamada `resume` devuelve una sesión nueva en lugar del historial esperado, la causa más común es un `cwd` no coincidente. Las sesiones se almacenan bajo `~/.claude/projects/<encoded-cwd>/*.jsonl`, donde `<encoded-cwd>` es el directorio de trabajo absoluto con cada carácter no alfanumérico reemplazado por `-` (entonces `/Users/me/proj` se convierte en `-Users-me-proj`). Si su llamada resume se ejecuta desde un directorio diferente, el SDK busca en el lugar incorrecto. El archivo de sesión también necesita existir en la máquina actual.255 Si una llamada `resume` devuelve una sesión nueva en lugar del historial esperado, la causa más común es un `cwd` no coincidente. Las sesiones se almacenan bajo `~/.claude/projects/<encoded-cwd>/*.jsonl`, o bajo `$CLAUDE_CONFIG_DIR/projects/<encoded-cwd>/*.jsonl` si establece la variable de entorno `CLAUDE_CONFIG_DIR`, donde `<encoded-cwd>` es el directorio de trabajo absoluto con cada carácter no alfanumérico reemplazado por `-` (entonces `/Users/me/proj` se convierte en `-Users-me-proj`). Si su llamada resume se ejecuta desde un directorio diferente, el SDK busca en el lugar incorrecto. El archivo de sesión también necesita existir en la máquina actual.

250</Tip>256</Tip>

251 257 

252Para reanudar sesiones entre máquinas o en entornos sin servidor, refleje transcripciones en almacenamiento compartido con un adaptador [`SessionStore`](/es/agent-sdk/session-storage).258Para reanudar sesiones entre máquinas o en entornos sin servidor, refleje transcripciones en almacenamiento compartido con un adaptador [`SessionStore`](/es/agent-sdk/session-storage).


268 # Fork: branch from session_id into a new session274 # Fork: branch from session_id into a new session

269 forked_id = None275 forked_id = None

270 async for message in query(276 async for message in query(

271 prompt="Instead of JWT, implement OAuth2 for the auth module",277 prompt="Instead of JWT, outline how OAuth2 would work for the auth module",

272 options=ClaudeAgentOptions(278 options=ClaudeAgentOptions(

273 resume=session_id,279 resume=session_id,

274 fork_session=True,280 fork_session=True,

281 max_turns=5,

275 ),282 ),

276 ):283 ):

277 if isinstance(message, ResultMessage):284 if isinstance(message, ResultMessage):


291 ```298 ```

292 299 

293 ```typescript TypeScript theme={null}300 ```typescript TypeScript theme={null}

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

302 

303 const sessionId = "..."; // The ID you captured in the previous example

304 

294 // Fork: branch from sessionId into a new session305 // Fork: branch from sessionId into a new session

295 let forkedId: string | undefined;306 let forkedId: string | undefined;

296 307 

297 for await (const message of query({308 for await (const message of query({

298 prompt: "Instead of JWT, implement OAuth2 for the auth module",309 prompt: "Instead of JWT, outline how OAuth2 would work for the auth module",

299 options: {310 options: {

300 resume: sessionId,311 resume: sessionId,

301 forkSession: true312 forkSession: true,

313 maxTurns: 5

302 }314 }

303 })) {315 })) {

304 if (message.type === "system" && message.subtype === "init") {316 if (message.type === "system" && message.subtype === "init") {


323 ```335 ```

324</CodeGroup>336</CodeGroup>

325 337 

338Debería ver que `forkedId` difiere del ID de sesión original. Reanudar la sesión original aún continúa el hilo JWT, lo que confirma que la bifurcación no modificó el historial original.

339 

326<h2 id="resume-across-hosts">340<h2 id="resume-across-hosts">

327 Reanudar entre hosts341 Reanudar entre hosts

328</h2>342</h2>

Details

101 parent_tool_use_id: string | null;101 parent_tool_use_id: string | null;

102 uuid: UUID;102 uuid: UUID;

103 session_id: string;103 session_id: string;

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

104 };105 };

105 ```106 ```

106</CodeGroup>107</CodeGroup>

Details

218 ```218 ```

219</CodeGroup>219</CodeGroup>

220 220 

221<Note>

222 En el SDK de TypeScript, si su generador de mensajes lanza una excepción, por ejemplo cuando falta un archivo que lee, la secuencia termina con un error que dice `Claude Code process aborted by user` en lugar del error original, así que verifique el código dentro de su generador primero cuando vea ese mensaje. El error también puede estar precedido por una línea minificada larga del código fuente del SDK agrupado, así que lea hasta el final de la salida para encontrar el texto del error.

223 

224 En el SDK de Python, una excepción del generador se registra en el nivel de depuración y la sesión se detiene sin generar una excepción, así que si una sesión de streaming se cuelga sin salida, habilite el registro de depuración y verifique su generador.

225</Note>

226 

221<h2 id="single-message-input">227<h2 id="single-message-input">

222 Entrada de Mensaje Único228 Entrada de Mensaje Único

223</h2>229</h2>


247 * Conversaciones naturales de múltiples turnos253 * Conversaciones naturales de múltiples turnos

248</Warning>254</Warning>

249 255 

250<h3 id="implementation-example">256Si una consulta termina con un resultado de error, como `error_max_turns`, una llamada única a `query()` genera un error que incluye el texto de fallo después de ceder el mensaje de resultado final, así que envuelva el bucle en un bloque try si su código necesita continuar. Consulte [Manejar el resultado](/es/agent-sdk/agent-loop#handle-the-result) para los subtipos de resultado.

257 

258<h3 id="implementation-example-1">

251 Ejemplo de Implementación259 Ejemplo de Implementación

252</h3>260</h3>

253 261 

Details

245* `type`: Establezca en `"json_schema"` para salidas estructuradas245* `type`: Establezca en `"json_schema"` para salidas estructuradas

246* `schema`: Un objeto [JSON Schema](https://json-schema.org/understanding-json-schema/about) que define su estructura de salida. Puede generar esto a partir de un esquema Zod con `z.toJSONSchema()` o un modelo Pydantic con `.model_json_schema()`246* `schema`: Un objeto [JSON Schema](https://json-schema.org/understanding-json-schema/about) que define su estructura de salida. Puede generar esto a partir de un esquema Zod con `z.toJSONSchema()` o un modelo Pydantic con `.model_json_schema()`

247 247 

248El SDK admite características estándar de JSON Schema, incluidos todos los tipos básicos (objeto, matriz, cadena, número, booleano, nulo), `enum`, `const`, `required`, objetos anidados y definiciones `$ref`. Para la lista completa de características admitidas y limitaciones, consulte [Limitaciones de JSON Schema](https://platform.claude.com/docs/en/build-with-claude/structured-outputs#json-schema-limitations).248El SDK admite características estándar de JSON Schema, incluidos todos los tipos básicos (objeto, matriz, cadena, número, booleano, nulo), `enum`, `const`, `required`, objetos anidados y definiciones `$ref`. Para la lista completa de características admitidas y limitaciones, consulte [Limitaciones de JSON Schema](https://platform.claude.com/docs/es/build-with-claude/structured-outputs#json-schema-limitations).

249 249 

250<h2 id="example-todo-tracking-agent">250<h2 id="example-todo-tracking-agent">

251 Ejemplo: Agente de seguimiento de TODO251 Ejemplo: Agente de seguimiento de TODO


358 Manejo de errores358 Manejo de errores

359</h2>359</h2>

360 360 

361La generación de salida estructurada puede fallar cuando el agente no puede producir JSON válido que coincida con su esquema. Esto típicamente sucede cuando el esquema es demasiado complejo para la tarea, la tarea en sí es ambigua, o el agente alcanza su límite de reintentos intentando corregir errores de validación.361La generación de salida estructurada puede fallar cuando el agente no puede producir JSON válido que coincida con su esquema. Esto típicamente sucede cuando el esquema es demasiado complejo para la tarea, la tarea en sí es ambigua, o el agente alcanza su límite de reintentos intentando corregir errores de validación. También puede suceder sin ninguna falla de validación: una [alternativa de modelo](/es/model-config#automatic-model-fallback) puede retraer una salida ya completada a mitad de la transmisión, y si ningún reintento la reemplaza, la ejecución termina con el mismo error. Verifique el campo `errors` en el mensaje de resultado para distinguir las dos causas antes de depurar su esquema.

362 362 

363Cuando ocurre un error, el mensaje de resultado tiene un `subtype` que indica qué salió mal:363Cuando ocurre un error, el mensaje de resultado tiene un `subtype` que indica qué salió mal:

364 364 

365| Subtype | Significado |365| Subtype | Significado |

366| ------------------------------------- | ---------------------------------------------------------------------- |366| ------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ |

367| `success` | La salida fue generada y validada exitosamente |367| `success` | La salida fue generada y validada exitosamente |

368| `error_max_structured_output_retries` | El agente no pudo producir salida válida después de múltiples intentos |368| `error_max_structured_output_retries` | Ninguna salida válida sobrevivió después de múltiples intentos (fallos de validación, o una retracción de alternativa de modelo sin reintento exitoso) |

369 369 

370El ejemplo a continuación verifica el campo `subtype` para determinar si la salida fue generada exitosamente o si necesita manejar una falla:370El ejemplo a continuación verifica el campo `subtype` para determinar si la salida fue generada exitosamente o si necesita manejar una falla:

371 371 

372<CodeGroup>372<CodeGroup>

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

374 for await (const msg of query({374 for await (const msg of query({

375 prompt: "Extraiga información de contacto del documento",375 prompt: "Extract contact info from the document",

376 options: {376 options: {

377 outputFormat: {377 outputFormat: {

378 type: "json_schema",378 type: "json_schema",


382 })) {382 })) {

383 if (msg.type === "result") {383 if (msg.type === "result") {

384 if (msg.subtype === "success" && msg.structured_output) {384 if (msg.subtype === "success" && msg.structured_output) {

385 // Usar la salida validada385 // Use the validated output

386 console.log(msg.structured_output);386 console.log(msg.structured_output);

387 } else if (msg.subtype === "error_max_structured_output_retries") {387 } else if (msg.subtype === "error_max_structured_output_retries") {

388 // Manejar la falla - reintentar con solicitud más simple, recurrir a no estructurado, etc.388 // Handle the failure - retry with simpler prompt, fall back to unstructured, etc.

389 console.error("No se pudo producir salida válida");389 console.error("Could not produce valid output");

390 }390 }

391 }391 }

392 }392 }


394 394 

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

396 async for message in query(396 async for message in query(

397 prompt="Extraiga información de contacto del documento",397 prompt="Extract contact info from the document",

398 options=ClaudeAgentOptions(398 options=ClaudeAgentOptions(

399 output_format={"type": "json_schema", "schema": contact_schema}399 output_format={"type": "json_schema", "schema": contact_schema}

400 ),400 ),

401 ):401 ):

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

403 if message.subtype == "success" and message.structured_output:403 if message.subtype == "success" and message.structured_output:

404 # Usar la salida validada404 # Use the validated output

405 print(message.structured_output)405 print(message.structured_output)

406 elif message.subtype == "error_max_structured_output_retries":406 elif message.subtype == "error_max_structured_output_retries":

407 # Manejar la falla407 # Handle the failure

408 print("No se pudo producir salida válida")408 print("Could not produce valid output")

409 ```409 ```

410</CodeGroup>410</CodeGroup>

411 411 

Details

41 Paralelización41 Paralelización

42</h3>42</h3>

43 43 

44Múltiples subagentes pueden ejecutarse simultáneamente, acelerando dramáticamente flujos de trabajo complejos.44Múltiples subagentes pueden ejecutarse simultáneamente, por lo que las subtareas independientes se completan en el tiempo del más lento en lugar de la suma de todos ellos.

45 45 

46**Ejemplo:** durante una revisión de código, puede ejecutar los subagentes `style-checker`, `security-scanner` y `test-coverage` simultáneamente, reduciendo el tiempo de revisión de minutos a segundos.46**Ejemplo:** durante una revisión de código, puede ejecutar los subagentes `style-checker`, `security-scanner` y `test-coverage` simultáneamente en lugar de secuencialmente.

47 47 

48<h3 id="specialized-instructions-and-knowledge">48<h3 id="specialized-instructions-and-knowledge">

49 Instrucciones y conocimiento especializados49 Instrucciones y conocimiento especializados


178</h3>178</h3>

179 179 

180| Campo | Tipo | Requerido | Descripción |180| Campo | Tipo | Requerido | Descripción |

181| :---------------- | :---------------------------------------------------------- | :-------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |181| :---------------- | :---------------------------------------------------------- | :-------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

182| `description` | `string` | Sí | Descripción en lenguaje natural de cuándo usar este agente |182| `description` | `string` | Sí | Descripción en lenguaje natural de cuándo usar este agente |

183| `prompt` | `string` | Sí | El prompt del sistema del agente que define su rol y comportamiento |183| `prompt` | `string` | Sí | El prompt del sistema del agente que define su rol y comportamiento |

184| `tools` | `string[]` | No | Matriz de nombres de herramientas permitidas. Si se omite, hereda todas las herramientas |184| `tools` | `string[]` | No | Matriz de nombres de herramientas permitidas. Si se omite, hereda todas las herramientas |

185| `disallowedTools` | `string[]` | No | Matriz de nombres de herramientas a eliminar del conjunto de herramientas del agente |185| `disallowedTools` | `string[]` | No | Matriz de nombres de herramientas a eliminar del conjunto de herramientas del agente. También se aceptan patrones a nivel de servidor MCP: `mcp__server` o `mcp__server__*` elimina todas las herramientas de ese servidor, y `mcp__*` elimina todas las herramientas MCP de cualquier servidor |

186| `model` | `string` | No | Anulación de modelo para este agente. Acepta un alias como `'sonnet'`, `'opus'`, `'haiku'`, `'inherit'`, o un ID de modelo completo. Por defecto es el modelo principal si se omite |186| `model` | `string` | No | Anulación de modelo para este agente. Acepta un alias como `'fable'`, `'opus'`, `'sonnet'`, `'haiku'`, `'inherit'`, o un ID de modelo completo. Por defecto es el modelo principal si se omite |

187| `skills` | `string[]` | No | Lista de nombres de skills a precargar en el contexto del agente al inicio. Los skills no listados permanecen invocables a través de la herramienta Skill |187| `skills` | `string[]` | No | Lista de nombres de skills a precargar en el contexto del agente al inicio. Los skills no listados permanecen invocables a través de la herramienta Skill |

188| `memory` | `'user' \| 'project' \| 'local'` | No | Fuente de memoria para este agente |188| `memory` | `'user' \| 'project' \| 'local'` | No | Fuente de memoria para este agente |

189| `mcpServers` | `(string \| object)[]` | No | Servidores MCP disponibles para este agente, por nombre o configuración en línea |189| `mcpServers` | `(string \| object)[]` | No | Servidores MCP disponibles para este agente, por nombre o configuración en línea |

190| `initialPrompt` | `string` | No | Se envía automáticamente como el primer turno del usuario cuando este agente se ejecuta como el agente del hilo principal. Se ignora cuando el agente se invoca como subagente |

190| `maxTurns` | `number` | No | Número máximo de turnos de agente antes de que el agente se detenga |191| `maxTurns` | `number` | No | Número máximo de turnos de agente antes de que el agente se detenga |

191| `background` | `boolean` | No | Ejecutar este agente como una tarea de fondo no bloqueante cuando se invoca |192| `background` | `boolean` | No | Ejecutar este agente como una tarea de fondo no bloqueante cuando se invoca |

192| `effort` | `'low' \| 'medium' \| 'high' \| 'xhigh' \| 'max' \| number` | No | Nivel de esfuerzo de razonamiento para este agente |193| `effort` | `'low' \| 'medium' \| 'high' \| 'xhigh' \| 'max' \| number` | No | Nivel de esfuerzo de razonamiento para este agente |


195En el SDK de Python, estos nombres de campo usan camelCase para coincidir con el formato de cable. Consulte la referencia [`AgentDefinition`](/es/agent-sdk/python#agentdefinition) para obtener detalles.196En el SDK de Python, estos nombres de campo usan camelCase para coincidir con el formato de cable. Consulte la referencia [`AgentDefinition`](/es/agent-sdk/python#agentdefinition) para obtener detalles.

196 197 

197<Note>198<Note>

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

199</Note>200</Note>

200 201 

201<h3 id="filesystem-based-definition-alternative">202<h3 id="filesystem-based-definition-alternative">


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

216 217 

217| El subagente recibe | El subagente no recibe |218| El subagente recibe | El subagente no recibe |

218| :------------------------------------------------------------------------------------------ | :---------------------------------------------------------------------------------- |219| :-------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------- |

219| Su propio prompt del sistema (`AgentDefinition.prompt`) y el prompt de la herramienta Agent | El historial de conversación del padre o resultados de herramientas |220| Su propio prompt del sistema (`AgentDefinition.prompt`) y el prompt de la herramienta Agent | El historial de conversación del padre o resultados de herramientas |

220| CLAUDE.md del proyecto (cargado a través de `settingSources`) | Contenido de skill precargado, a menos que esté listado en `AgentDefinition.skills` |221| CLAUDE.md del proyecto (cargado a través de [`settingSources`](/es/agent-sdk/claude-code-features#control-filesystem-settings-with-settingsources)) | Contenido de skill precargado, a menos que esté listado en `AgentDefinition.skills` |

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

222 223 

223<Note>224<Note>


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

337</Note>338</Note>

338 339 

339Este ejemplo itera a través de mensajes transmitidos, registrando cuándo se invoca un subagente y cuándo los mensajes posteriores se originan dentro del contexto de ejecución de ese subagente.340La estructura del mensaje difiere entre SDKs. En Python, los bloques de contenido se acceden directamente a través de `message.content`. En TypeScript, `SDKAssistantMessage` envuelve el mensaje de la API de Claude, por lo que el contenido se accede a través de `message.message.content`.

340 341 

341<Note>342Este ejemplo itera a través de mensajes transmitidos, registrando cuándo se invoca un subagente y cuándo los mensajes posteriores se originan dentro del contexto de ejecución de ese subagente.

342 La estructura del mensaje difiere entre SDKs. En Python, los bloques de contenido se acceden directamente a través de `message.content`. En TypeScript, `SDKAssistantMessage` envuelve el mensaje de la API de Claude, por lo que el contenido se accede a través de `message.message.content`.

343</Note>

344 343 

345<CodeGroup>344<CodeGroup>

346 ```python Python theme={null}345 ```python Python theme={null}


427 426 

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

429 428 

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

431 430 

4321. **Capture el ID de sesión**: Extraiga `session_id` de los mensajes durante la primera consulta4311. **Capture el ID de sesión**: Extraiga `session_id` de los mensajes durante la primera consulta

4332. **Extraiga el ID del agente**: Analice `agentId` del contenido del mensaje4322. **Extraiga el ID del agente**: Analice `agentId` del texto del resultado de la herramienta Agent

4343. **Reanude la sesión**: Pase `resume: sessionId` en las opciones de la segunda consulta e incluya el ID del agente en su prompt4333. **Reanude la sesión**: Pase `resume: sessionId` en las opciones de la segunda consulta e incluya el ID del agente en su prompt

435 434 

436<Note>435<Note>

437 Debe reanudar la misma sesión para acceder a la transcripción del subagente. Cada llamada `query()` inicia una nueva sesión por defecto, así que pase `resume: sessionId` para continuar en la misma sesión.436 Debe reanudar la misma sesión para acceder a la transcripción del subagente. Cada llamada `query()` inicia una nueva sesión por defecto, así que pase `resume: sessionId` para continuar en la misma sesión.

438 437 

439 Si está usando un agente personalizado (no uno integrado), también necesita pasar la misma definición de agente en el parámetro `agents` para ambas consultas.438 Cuando use un agente personalizado, pase la misma definición de agente en el parámetro `agents` para ambas consultas.

440</Note>439</Note>

441 440 

442El ejemplo a continuación demuestra este flujo: la primera consulta ejecuta un subagente y captura el ID de sesión e ID de agente, luego la segunda consulta reanuda la sesión para hacer una pregunta de seguimiento que requiere contexto del primer análisis.441El ejemplo a continuación define un agente personalizado `endpoint-finder`. La primera consulta lo ejecuta y captura el ID de sesión e ID de agente del resultado de la herramienta Agent, luego la segunda consulta reanuda la sesión para hacer una pregunta de seguimiento que requiere contexto del primer análisis.

443 442 

444<CodeGroup>443<CodeGroup>

445 ```typescript TypeScript theme={null}

446 import { query, type SDKMessage } from "@anthropic-ai/claude-agent-sdk";

447 

448 // Helper to extract agentId from message content

449 // Stringify to avoid traversing different block types (TextBlock, ToolResultBlock, etc.)

450 function extractAgentId(message: SDKMessage): string | undefined {

451 if (message.type !== "assistant" && message.type !== "user") return undefined;

452 // Stringify the content so we can search it without traversing nested blocks

453 const content = JSON.stringify(message.message.content);

454 const match = content.match(/agentId:\s*([a-f0-9-]+)/);

455 return match?.[1];

456 }

457 

458 let agentId: string | undefined;

459 let sessionId: string | undefined;

460 

461 // First invocation - use the Explore agent to find API endpoints

462 for await (const message of query({

463 prompt: "Use the Explore agent to find all API endpoints in this codebase",

464 options: { allowedTools: ["Read", "Grep", "Glob", "Agent"] }

465 })) {

466 // Capture session_id from ResultMessage (needed to resume this session)

467 if ("session_id" in message) sessionId = message.session_id;

468 // Search message content for the agentId (appears in Agent tool results)

469 const extractedId = extractAgentId(message);

470 if (extractedId) agentId = extractedId;

471 // Print the final result

472 if ("result" in message) console.log(message.result);

473 }

474 

475 // Second invocation - resume and ask follow-up

476 if (agentId && sessionId) {

477 for await (const message of query({

478 prompt: `Resume agent ${agentId} and list the top 3 most complex endpoints`,

479 options: { allowedTools: ["Read", "Grep", "Glob", "Agent"], resume: sessionId }

480 })) {

481 if ("result" in message) console.log(message.result);

482 }

483 }

484 ```

485 

486 ```python Python theme={null}444 ```python Python theme={null}

487 import asyncio445 import asyncio

488 import json

489 import re446 import re

490 from claude_agent_sdk import query, ClaudeAgentOptions447 from claude_agent_sdk import query, ClaudeAgentOptions, AgentDefinition, ToolResultBlock

448 

449 AGENTS = {

450 "endpoint-finder": AgentDefinition(

451 description="Locates and catalogs API endpoints in a codebase.",

452 prompt="You find and document API endpoints. Report each endpoint's path, method, and handler.",

453 tools=["Read", "Grep", "Glob"],

454 )

455 }

491 456 

492 457 

493 def extract_agent_id(text: str) -> str | None:458 def extract_agent_id(block: ToolResultBlock) -> str | None:

494 """Extract agentId from Agent tool result text."""459 """Extract agentId from an Agent tool result's text content."""

495 match = re.search(r"agentId:\s*([a-f0-9-]+)", text)460 parts = block.content if isinstance(block.content, list) else [{"text": block.content}]

496 return match.group(1) if match else None461 for part in parts:

462 if match := re.search(r"agentId:\s*([\w-]+)", part.get("text") or ""):

463 return match.group(1)

464 return None

497 465 

498 466 

499 async def main():467 async def main():

500 agent_id = None468 agent_id = None

501 session_id = None469 session_id = None

502 470 

503 # First invocation - use the Explore agent to find API endpoints471 # First invocation - run the endpoint-finder subagent

504 async for message in query(472 async for message in query(

505 prompt="Use the Explore agent to find all API endpoints in this codebase",473 prompt="Use the endpoint-finder agent to find all API endpoints in this codebase",

506 options=ClaudeAgentOptions(allowed_tools=["Read", "Grep", "Glob", "Agent"]),474 options=ClaudeAgentOptions(allowed_tools=["Read", "Grep", "Glob", "Agent"], agents=AGENTS),

507 ):475 ):

508 # Capture session_id from ResultMessage (needed to resume this session)476 # Capture session_id from ResultMessage (needed to resume this session)

509 if hasattr(message, "session_id"):477 if hasattr(message, "session_id"):

510 session_id = message.session_id478 session_id = message.session_id

511 # Search message content for the agentId (appears in Agent tool results)479 # Search tool results for the agentId trailer

512 if hasattr(message, "content"):480 for block in getattr(message, "content", None) or []:

513 # Stringify the content so we can search it without traversing nested blocks481 if isinstance(block, ToolResultBlock):

514 content_str = json.dumps(message.content, default=str)482 agent_id = extract_agent_id(block) or agent_id

515 extracted = extract_agent_id(content_str)

516 if extracted:

517 agent_id = extracted

518 # Print the final result483 # Print the final result

519 if hasattr(message, "result"):484 if hasattr(message, "result"):

520 print(message.result)485 print(message.result)


524 async for message in query(489 async for message in query(

525 prompt=f"Resume agent {agent_id} and list the top 3 most complex endpoints",490 prompt=f"Resume agent {agent_id} and list the top 3 most complex endpoints",

526 options=ClaudeAgentOptions(491 options=ClaudeAgentOptions(

527 allowed_tools=["Read", "Grep", "Glob", "Agent"], resume=session_id492 allowed_tools=["Read", "Grep", "Glob", "Agent"], agents=AGENTS, resume=session_id

528 ),493 ),

529 ):494 ):

530 if hasattr(message, "result"):495 if hasattr(message, "result"):


533 498 

534 asyncio.run(main())499 asyncio.run(main())

535 ```500 ```

501 

502 ```typescript TypeScript theme={null}

503 import { query, type SDKMessage } from "@anthropic-ai/claude-agent-sdk";

504 

505 const agents = {

506 "endpoint-finder": {

507 description: "Locates and catalogs API endpoints in a codebase.",

508 prompt: "You find and document API endpoints. Report each endpoint's path, method, and handler.",

509 tools: ["Read", "Grep", "Glob"]

510 }

511 };

512 

513 // Stringify content to search for agentId without traversing nested block types

514 function extractAgentId(message: SDKMessage): string | undefined {

515 if (message.type !== "assistant" && message.type !== "user") return undefined;

516 const content = JSON.stringify(message.message.content);

517 const match = content.match(/agentId:\s*([\w-]+)/);

518 return match?.[1];

519 }

520 

521 let agentId: string | undefined;

522 let sessionId: string | undefined;

523 

524 // First invocation - run the endpoint-finder subagent

525 for await (const message of query({

526 prompt: "Use the endpoint-finder agent to find all API endpoints in this codebase",

527 options: { allowedTools: ["Read", "Grep", "Glob", "Agent"], agents }

528 })) {

529 // Capture session_id from ResultMessage (needed to resume this session)

530 if ("session_id" in message) sessionId = message.session_id;

531 // Search message content for the agentId (appears in Agent tool results)

532 const extractedId = extractAgentId(message);

533 if (extractedId) agentId = extractedId;

534 // Print the final result

535 if ("result" in message) console.log(message.result);

536 }

537 

538 // Second invocation - resume and ask follow-up

539 if (agentId && sessionId) {

540 for await (const message of query({

541 prompt: `Resume agent ${agentId} and list the top 3 most complex endpoints`,

542 options: { allowedTools: ["Read", "Grep", "Glob", "Agent"], agents, resume: sessionId }

543 })) {

544 if ("result" in message) console.log(message.result);

545 }

546 }

547 ```

536</CodeGroup>548</CodeGroup>

537 549 

538Las transcripciones de subagentes persisten independientemente de la conversación principal:550Las transcripciones de subagentes persisten independientemente de la conversación principal:


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

542* **Limpieza automática**: Las transcripciones se limpian en función de la configuración `cleanupPeriodDays` (predeterminado: 30 días).554* **Limpieza automática**: Las transcripciones se limpian en función de la configuración `cleanupPeriodDays` (predeterminado: 30 días).

543 555 

544<h2 id="tool-restrictions">556<h2 id="tool-restrictions-1">

545 Restricciones de herramientas557 Restricciones de herramientas

546</h2>558</h2>

547 559 

Details

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

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

219 219 

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

221 

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

221 223 

222<CodeGroup>224<CodeGroup>

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


233 const input = block.input as { subject: string };235 const input = block.input as { subject: string };

234 console.log(`+ ${input.subject}`);236 console.log(`+ ${input.subject}`);

235 } else if (block.name === "TaskUpdate") {237 } else if (block.name === "TaskUpdate") {

236 const input = block.input as { taskId: string; status?: string };238 const input = block.input as {

237 if (input.status) console.log(` ${input.taskId} -> ${input.status}`);239 taskId?: string;

240 id?: string;

241 task_id?: string;

242 status?: string;

243 };

244 const taskId = input.taskId ?? input.id ?? input.task_id;

245 if (taskId && input.status) console.log(` ${taskId} -> ${input.status}`);

238 }246 }

239 }247 }

240 }248 }


254 if block.name == "TaskCreate":262 if block.name == "TaskCreate":

255 print(f"+ {block.input['subject']}")263 print(f"+ {block.input['subject']}")

256 elif block.name == "TaskUpdate" and block.input.get("status"):264 elif block.name == "TaskUpdate" and block.input.get("status"):

257 print(f" {block.input['taskId']} -> {block.input['status']}")265 task_id = (

266 block.input.get("taskId")

267 or block.input.get("id")

268 or block.input.get("task_id")

269 )

270 if task_id:

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

258 ```272 ```

259</CodeGroup>273</CodeGroup>

260 274 

Details

100}): Promise<WarmQuery>;100}): Promise<WarmQuery>;

101```101```

102 102 

103<h4 id="parameters">103<h4 id="parameters-1">

104 Parámetros104 Parámetros

105</h4>105</h4>

106 106 


109| `options` | [`Options`](#options) | Objeto de configuración opcional. Igual que el parámetro `options` para `query()` |109| `options` | [`Options`](#options) | Objeto de configuración opcional. Igual que el parámetro `options` para `query()` |

110| `initializeTimeoutMs` | `number` | Tiempo máximo en milisegundos para esperar la inicialización del subproceso. Por defecto es `60000`. Si la inicialización no se completa a tiempo, la promesa se rechaza con un error de tiempo de espera |110| `initializeTimeoutMs` | `number` | Tiempo máximo en milisegundos para esperar la inicialización del subproceso. Por defecto es `60000`. Si la inicialización no se completa a tiempo, la promesa se rechaza con un error de tiempo de espera |

111 111 

112<h4 id="returns">112<h4 id="returns-1">

113 Devuelve113 Devuelve

114</h4>114</h4>

115 115 


149): SdkMcpToolDefinition<Schema>;149): SdkMcpToolDefinition<Schema>;

150```150```

151 151 

152<h4 id="parameters">152<h4 id="parameters-2">

153 Parámetros153 Parámetros

154</h4>154</h4>

155 155 


204}): McpSdkServerConfigWithInstance;204}): McpSdkServerConfigWithInstance;

205```205```

206 206 

207<h4 id="parameters">207<h4 id="parameters-3">

208 Parámetros208 Parámetros

209</h4>209</h4>

210 210 


224function listSessions(options?: ListSessionsOptions): Promise<SDKSessionInfo[]>;224function listSessions(options?: ListSessionsOptions): Promise<SDKSessionInfo[]>;

225```225```

226 226 

227<h4 id="parameters">227<h4 id="parameters-4">

228 Parámetros228 Parámetros

229</h4>229</h4>

230 230 


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

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

253 253 

254<h4 id="example">254<h4 id="example-1">

255 Ejemplo255 Ejemplo

256</h4>256</h4>

257 257 


280): Promise<SessionMessage[]>;280): Promise<SessionMessage[]>;

281```281```

282 282 

283<h4 id="parameters">283<h4 id="parameters-5">

284 Parámetros284 Parámetros

285</h4>285</h4>

286 286 


296</h4>296</h4>

297 297 

298| Propiedad | Tipo | Descripción |298| Propiedad | Tipo | Descripción |

299| :------------------- | :---------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |299| :------------------- | :---------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------- |

300| `type` | `"user" \| "assistant"` | Rol del mensaje |300| `type` | `"user" \| "assistant"` | Rol del mensaje |

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

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

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

304| `parent_tool_use_id` | `string \| null` | Para mensajes de subagenteagente, 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 |304| `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 |

305 305 

306<h4 id="example">306<h4 id="example-2">

307 Ejemplo307 Ejemplo

308</h4>308</h4>

309 309 


337): Promise<SDKSessionInfo | undefined>;337): Promise<SDKSessionInfo | undefined>;

338```338```

339 339 

340<h4 id="parameters">340<h4 id="parameters-6">

341 Parámetros341 Parámetros

342</h4>342</h4>

343 343 


362): Promise<void>;362): Promise<void>;

363```363```

364 364 

365<h4 id="parameters">365<h4 id="parameters-7">

366 Parámetros366 Parámetros

367</h4>367</h4>

368 368 


386): Promise<void>;386): Promise<void>;

387```387```

388 388 

389<h4 id="parameters">389<h4 id="parameters-8">

390 Parámetros390 Parámetros

391</h4>391</h4>

392 392 


412): Promise<ResolvedSettings>;412): Promise<ResolvedSettings>;

413```413```

414 414 

415<h4 id="parameters">415<h4 id="parameters-9">

416 Parámetros416 Parámetros

417</h4>417</h4>

418 418 


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

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

439 439 

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

441 Ejemplo441 Ejemplo

442</h4>442</h4>

443 443 


481| `debug` | `boolean` | `false` | Habilite el modo de depuración para el proceso de Claude Code |481| `debug` | `boolean` | `false` | Habilite el modo de depuración para el proceso de Claude Code |

482| `debugFile` | `string` | `undefined` | Escriba registros de depuración en una ruta de archivo específica. Habilita implícitamente el modo de depuración |482| `debugFile` | `string` | `undefined` | Escriba registros de depuración en una ruta de archivo específica. Habilita implícitamente el modo de depuración |

483| `disallowedTools` | `string[]` | `[]` | Herramientas a negar. Un nombre simple como `"Bash"` elimina la herramienta del contexto de Claude. Una regla con alcance como `"Bash(rm *)"` deja la herramienta disponible y niega las llamadas coincidentes en cada modo de permiso, incluyendo `bypassPermissions`. Vea [Permissions](/es/agent-sdk/permissions#allow-and-deny-rules) |483| `disallowedTools` | `string[]` | `[]` | Herramientas a negar. Un nombre simple como `"Bash"` elimina la herramienta del contexto de Claude. Una regla con alcance como `"Bash(rm *)"` deja la herramienta disponible y niega las llamadas coincidentes en cada modo de permiso, incluyendo `bypassPermissions`. Vea [Permissions](/es/agent-sdk/permissions#allow-and-deny-rules) |

484| `effort` | `'low' \| 'medium' \| 'high' \| 'xhigh' \| 'max'` | `'high'` | Controla cuánto esfuerzo pone Claude en su respuesta. Funciona con el pensamiento adaptativo para guiar la profundidad del pensamiento |484| `effort` | `'low' \| 'medium' \| 'high' \| 'xhigh' \| 'max'` | Predeterminado del modelo | Controla cuánto esfuerzo pone Claude en su respuesta. Funciona con el pensamiento adaptativo para guiar la profundidad del pensamiento. Vea [adjust the effort level](/es/model-config#adjust-effort-level) |

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

486| `env` | `Record<string, string \| undefined>` | `process.env` | Variables de entorno. Cuando se establece, esto reemplaza el entorno del subproceso en lugar de fusionarse con `process.env`, así que pase `{ ...process.env, YOUR_VAR: 'value' }` para mantener variables heredadas como `PATH`. Vea [Handle slow or stalled API responses](#handle-slow-or-stalled-api-responses) para un ejemplo de este patrón, y [Environment variables](/es/env-vars) para variables que la CLI subyacente lee. Establezca `CLAUDE_AGENT_SDK_CLIENT_APP` para identificar su aplicación en el encabezado User-Agent |486| `env` | `Record<string, string \| undefined>` | `process.env` | Variables de entorno. Cuando se establece, esto reemplaza el entorno del subproceso en lugar de fusionarse con `process.env`, así que pase `{ ...process.env, YOUR_VAR: 'value' }` para mantener variables heredadas como `PATH`. Vea [Handle slow or stalled API responses](#handle-slow-or-stalled-api-responses) para un ejemplo de este patrón, y [Environment variables](/es/env-vars) para variables que la CLI subyacente lee. Establezca `CLAUDE_AGENT_SDK_CLIENT_APP` para identificar su aplicación en el encabezado User-Agent |

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


499| `maxThinkingTokens` | `number` | `undefined` | *Deprecado:* Use `thinking` en su lugar. Tokens máximos para el proceso de pensamiento |499| `maxThinkingTokens` | `number` | `undefined` | *Deprecado:* Use `thinking` en su lugar. Tokens máximos para el proceso de pensamiento |

500| `maxTurns` | `number` | `undefined` | Número máximo de turnos agentes (viajes de ronda de uso de herramientas) |500| `maxTurns` | `number` | `undefined` | Número máximo de turnos agentes (viajes de ronda de uso de herramientas) |

501| `mcpServers` | `Record<string, [`McpServerConfig`](#mcpserverconfig)>` | `{}` | Configuraciones de servidor MCP |501| `mcpServers` | `Record<string, [`McpServerConfig`](#mcpserverconfig)>` | `{}` | Configuraciones de servidor MCP |

502| `model` | `string` | Predeterminado de CLI | Modelo Claude a usar |502| `model` | `string` | Predeterminado de CLI | Alias de modelo Claude o nombre de modelo completo. Vea [accepted values and provider-specific IDs](/es/model-config#available-models) |

503| `onElicitation` | `(request: ElicitationRequest, options: { signal: AbortSignal }) => Promise<ElicitationResult>` | `undefined` | Devolución de llamada para manejar solicitudes de elicitación de MCP. Se llama cuando un servidor MCP solicita entrada del usuario y ningún hook la maneja primero. Cuando no se proporciona, las solicitudes de elicitación no manejadas se rechazan automáticamente |503| `onElicitation` | `(request: ElicitationRequest, options: { signal: AbortSignal }) => Promise<ElicitationResult>` | `undefined` | Devolución de llamada para manejar solicitudes de elicitación de MCP. Se llama cuando un servidor MCP solicita entrada del usuario y ningún hook la maneja primero. Cuando no se proporciona, las solicitudes de elicitación no manejadas se rechazan automáticamente |

504| `outputFormat` | `{ type: 'json_schema', schema: JSONSchema }` | `undefined` | Defina el formato de salida para los resultados del agente. Vea [Structured outputs](/es/agent-sdk/structured-outputs) para detalles |504| `outputFormat` | `{ type: 'json_schema', schema: JSONSchema }` | `undefined` | Defina el formato de salida para los resultados del agente. Vea [Structured outputs](/es/agent-sdk/structured-outputs) para detalles |

505| `outputStyle` | `string` | `undefined` | No es un campo `Options`. Establezca `outputStyle` en el objeto [`settings`](/es/settings) en línea o en un archivo de configuración en su lugar. Vea [Activate an output style](/es/agent-sdk/modifying-system-prompts#activate-an-output-style) |505| `outputStyle` | `string` | `undefined` | No es un campo `Options`. Establezca `outputStyle` en el objeto [`settings`](/es/settings) en línea o en un archivo de configuración en su lugar. Vea [Activate an output style](/es/agent-sdk/modifying-system-prompts#activate-an-output-style) |


507| `permissionMode` | [`PermissionMode`](#permissionmode) | `'default'` | Modo de permiso para la sesión |507| `permissionMode` | [`PermissionMode`](#permissionmode) | `'default'` | Modo de permiso para la sesión |

508| `permissionPromptToolName` | `string` | `undefined` | Nombre de herramienta MCP para solicitudes de permiso |508| `permissionPromptToolName` | `string` | `undefined` | Nombre de herramienta MCP para solicitudes de permiso |

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

510| `planModeInstructions` | `string` | `undefined` | Instrucciones de flujo de trabajo personalizado para modo de plan. Cuando `permissionMode` es `'plan'`, esta cadena reemplaza el cuerpo de flujo de trabajo de modo de plan 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 |510| `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 |

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

512| `promptSuggestions` | `boolean` | `false` | Habilite sugerencias de mensaje. Emite un mensaje `prompt_suggestion` después de cada turno con un mensaje de usuario predicho siguiente |512| `promptSuggestions` | `boolean` | `false` | Habilite sugerencias de mensaje. Emite un mensaje `prompt_suggestion` después de cada turno con un mensaje de usuario predicho siguiente |

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


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

554* `CLAUDE_CODE_MAX_RETRIES`: máximo de reintentos de API. Predeterminado `10`. Cada reintento obtiene su propia ventana `API_TIMEOUT_MS`, por lo que el tiempo de pared en el peor caso es aproximadamente `API_TIMEOUT_MS × (CLAUDE_CODE_MAX_RETRIES + 1)` más retroceso.554* `CLAUDE_CODE_MAX_RETRIES`: máximo de reintentos de API. Predeterminado `10`. Cada reintento obtiene su propia ventana `API_TIMEOUT_MS`, por lo que el tiempo de pared en el peor caso es aproximadamente `API_TIMEOUT_MS × (CLAUDE_CODE_MAX_RETRIES + 1)` más retroceso.

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

556* `CLAUDE_ENABLE_STREAM_WATCHDOG=1` con `CLAUDE_STREAM_IDLE_TIMEOUT_MS`: aborta la solicitud cuando los encabezados han llegado pero el cuerpo de respuesta deja de transmitirse. Desactivado de forma predeterminada. `CLAUDE_STREAM_IDLE_TIMEOUT_MS` tiene un valor predeterminado de `300000` y se fija a ese mínimo. La solicitud abortada pasa por la ruta de reintento normal.556* `CLAUDE_ENABLE_STREAM_WATCHDOG=1` con `CLAUDE_STREAM_IDLE_TIMEOUT_MS`: aborta la solicitud cuando los encabezados han llegado pero el cuerpo de respuesta deja de transmitirse. Cuando `CLAUDE_ENABLE_STREAM_WATCHDOG` no está establecido, el predeterminado es controlado por el servidor en la API directa de Anthropic y desactivado en otros proveedores. `CLAUDE_STREAM_IDLE_TIMEOUT_MS` tiene un valor predeterminado de `300000` y se fija a ese mínimo. La solicitud abortada pasa por la ruta de reintento normal.

557 557 

558<h3 id="query-object">558<h3 id="query-object">

559 Objeto `Query`559 Objeto `Query`


658}658}

659```659```

660 660 

661<h4 id="methods">661<h4 id="methods-1">

662 Métodos662 Métodos

663</h4>663</h4>

664 664 


717```717```

718 718 

719| Campo | Requerido | Descripción |719| Campo | Requerido | Descripción |

720| :------------------------------------ | :-------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |720| :------------------------------------ | :-------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

721| `description` | Sí | Descripción en lenguaje natural de cuándo usar este agente |721| `description` | Sí | Descripción en lenguaje natural de cuándo usar este agente |

722| `tools` | No | Matriz de nombres de herramientas permitidas. Si se omite, hereda todas las herramientas del padre. Para precargar Skills en el contexto del agente, use el campo `skills` en lugar de enumerar `'Skill'` aquí |722| `tools` | No | Matriz de nombres de herramientas permitidas. Si se omite, hereda todas las herramientas del padre. Para precargar Skills en el contexto del agente, use el campo `skills` en lugar de enumerar `'Skill'` aquí |

723| `disallowedTools` | No | Matriz de nombres de herramientas a desautorizar explícitamente para este agente |723| `disallowedTools` | No | Matriz de nombres de herramientas a desautorizar explícitamente para este agente. Los patrones de nivel de servidor MCP también se aceptan: `mcp__server` o `mcp__server__*` elimina cada herramienta de ese servidor, y `mcp__*` elimina cada herramienta MCP de cualquier servidor |

724| `prompt` | Sí | El mensaje del sistema del agente |724| `prompt` | Sí | El mensaje del sistema del agente |

725| `model` | No | Anulación de modelo para este agente. Acepta un alias como `'sonnet'`, `'opus'`, `'haiku'`, `'inherit'`, o un ID de modelo completo. Si se omite o es `'inherit'`, usa el modelo principal |725| `model` | No | Anulación de modelo para este agente. Acepta un alias como `'fable'`, `'opus'`, `'sonnet'`, `'haiku'`, `'inherit'`, o un ID de modelo completo. Si se omite o es `'inherit'`, usa el modelo principal |

726| `mcpServers` | No | Especificaciones de servidor MCP para este agente |726| `mcpServers` | No | Especificaciones de servidor MCP para este agente |

727| `skills` | No | Matriz de nombres de skills a precargar en el contexto del agente |727| `skills` | No | Matriz de nombres de skills a precargar en el contexto del agente |

728| `initialPrompt` | No | Auto-enviado como el primer turno de usuario cuando este agente se ejecuta como el agente del hilo principal |728| `initialPrompt` | No | Auto-enviado como el primer turno de usuario cuando este agente se ejecuta como el agente del hilo principal |


759| :---------- | :------------------------------------------------------------ | :---------------------------- |759| :---------- | :------------------------------------------------------------ | :---------------------------- |

760| `'user'` | Configuración global del usuario | `~/.claude/settings.json` |760| `'user'` | Configuración global del usuario | `~/.claude/settings.json` |

761| `'project'` | Configuración de proyecto compartida (controlada por versión) | `.claude/settings.json` |761| `'project'` | Configuración de proyecto compartida (controlada por versión) | `.claude/settings.json` |

762| `'local'` | Configuración de proyecto local (gitignored) | `.claude/settings.local.json` |762| `'local'` | Configuración de proyecto local (no controlada por versión) | `.claude/settings.local.json` |

763 763 

764<h4 id="default-behavior">764<h4 id="default-behavior">

765 Comportamiento predeterminado765 Comportamiento predeterminado


874type PermissionMode =874type PermissionMode =

875 | "default" // Comportamiento de permiso estándar875 | "default" // Comportamiento de permiso estándar

876 | "acceptEdits" // Auto-aceptar ediciones de archivo876 | "acceptEdits" // Auto-aceptar ediciones de archivo

877 | "bypassPermissions" // Omitir todas las verificaciones de permiso877 | "bypassPermissions" // Omitir todas las verificaciones de permiso; las reglas de solicitud explícita aún solicitan

878 | "plan" // Modo de planificación - solo herramientas de lectura878 | "plan" // Modo de planificación - explorar sin editar

879 | "dontAsk" // No solicitar permisos, negar si no está preaprobado879 | "dontAsk" // No solicitar permisos, negar si no está preaprobado

880 | "auto"; // Usar un clasificador de modelo para aprobar o negar cada llamada de herramienta880 | "auto"; // Usar un clasificador de modelo para aprobar o negar cada llamada de herramienta

881```881```


1035type SdkPluginConfig = {1035type SdkPluginConfig = {

1036 type: "local";1036 type: "local";

1037 path: string;1037 path: string;

1038 skipMcpDiscovery?: boolean;

1038};1039};

1039```1040```

1040 1041 

1041| Campo | Tipo | Descripción |1042| Campo | Tipo | Descripción |

1042| :----- | :-------- | :---------------------------------------------------------------- |1043| :----------------- | :-------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

1043| `type` | `'local'` | Debe ser `'local'` (actualmente solo se soportan plugins locales) |1044| `type` | `'local'` | Debe ser `'local'` (actualmente solo se soportan plugins locales) |

1044| `path` | `string` | Ruta absoluta o relativa al directorio del plugin |1045| `path` | `string` | Ruta absoluta o relativa al directorio del plugin |

1046| `skipMcpDiscovery` | `boolean` | Cuando es `true`, el SDK carga skills, hooks, agentes y comandos de este plugin pero no lee su `.mcp.json` o manifest `mcpServers`. Establezca esto cuando su aplicación sea propietaria de las conexiones MCP del plugin. |

1045 1047 

1046**Ejemplo:**1048**Ejemplo:**

1047 1049 


1086 | SDKTaskProgressMessage1088 | SDKTaskProgressMessage

1087 | SDKTaskUpdatedMessage1089 | SDKTaskUpdatedMessage

1088 | SDKSessionStateChangedMessage1090 | SDKSessionStateChangedMessage

1091 | SDKWorkerShuttingDownMessage

1089 | SDKCommandsChangedMessage1092 | SDKCommandsChangedMessage

1090 | SDKNotificationMessage1093 | SDKNotificationMessage

1091 | SDKFilesPersistedEvent1094 | SDKFilesPersistedEvent


1096 | SDKPermissionDeniedMessage1099 | SDKPermissionDeniedMessage

1097 | SDKPromptSuggestionMessage1100 | SDKPromptSuggestionMessage

1098 | SDKAPIRetryMessage1101 | SDKAPIRetryMessage

1099 | SDKMirrorErrorMessage;1102 | SDKMirrorErrorMessage

1103 | SDKInformationalMessage;

1100```1104```

1101 1105 

1102<h3 id="sdkassistantmessage">1106<h3 id="sdkassistantmessage">


1183 result: string;1187 result: string;

1184 stop_reason: string | null;1188 stop_reason: string | null;

1185 ttft_ms?: number;1189 ttft_ms?: number;

1190 ttft_stream_ms?: number;

1186 total_cost_usd: number;1191 total_cost_usd: number;

1187 usage: NonNullableUsage;1192 usage: NonNullableUsage;

1188 modelUsage: { [modelName: string]: ModelUsage };1193 modelUsage: { [modelName: string]: ModelUsage };


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

1222 1227 

1223* `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.1228* `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.

1224* `ttft_ms`: tiempo hasta el primer token en milisegundos. Presente solo en el brazo de éxito.1229* `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.

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

1225* `terminal_reason`: por qué terminó el bucle. Uno de `"completed"`, `"max_turns"`, `"tool_deferred"`, `"aborted_streaming"`, `"aborted_tools"`, `"hook_stopped"`, `"stop_hook_prevented"`, `"blocking_limit"`, `"rapid_refill_breaker"`, `"prompt_too_long"`, `"image_error"`, o `"model_error"`.1231* `terminal_reason`: por qué terminó el bucle. Uno de `"completed"`, `"max_turns"`, `"tool_deferred"`, `"aborted_streaming"`, `"aborted_tools"`, `"hook_stopped"`, `"stop_hook_prevented"`, `"blocking_limit"`, `"rapid_refill_breaker"`, `"prompt_too_long"`, `"image_error"`, o `"model_error"`.

1226* `fast_mode_state`: uno de `"on"`, `"off"`, o `"cooldown"`.1232* `fast_mode_state`: uno de `"on"`, `"off"`, o `"cooldown"`.

1227 1233 


1273 parent_tool_use_id: string | null;1279 parent_tool_use_id: string | null;

1274 uuid: UUID;1280 uuid: UUID;

1275 session_id: string;1281 session_id: string;

1282 ttft_ms?: number; // Tiempo hasta el primer token en ms, presente solo en eventos message_start

1276};1283};

1277```1284```

1278 1285 


1295};1302};

1296```1303```

1297 1304 

1305<h3 id="sdkinformationalmessage">

1306 `SDKInformationalMessage`

1307</h3>

1308 

1309Pancarta 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. Renderice `content` como texto sin formato en el `level` dado.

1310 

1311```typescript theme={null}

1312type SDKInformationalMessage = {

1313 type: "system";

1314 subtype: "informational";

1315 content: string;

1316 level: "info" | "notice" | "suggestion" | "warning";

1317 tool_use_id?: string;

1318 prevent_continuation?: boolean;

1319 uuid: UUID;

1320 session_id: string;

1321};

1322```

1323 

1324<h3 id="sdkworkershuttingdownmessage">

1325 `SDKWorkerShuttingDownMessage`

1326</h3>

1327 

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

1329 

1330```typescript theme={null}

1331type SDKWorkerShuttingDownMessage = {

1332 type: "system";

1333 subtype: "worker_shutting_down";

1334 reason: string;

1335 uuid: UUID;

1336 session_id: string;

1337};

1338```

1339 

1298<h3 id="sdkplugininstallmessage">1340<h3 id="sdkplugininstallmessage">

1299 `SDKPluginInstallMessage`1341 `SDKPluginInstallMessage`

1300</h3>1342</h3>


1369type SDKMessageOrigin =1411type SDKMessageOrigin =

1370 | { kind: "human" }1412 | { kind: "human" }

1371 | { kind: "channel"; server: string }1413 | { kind: "channel"; server: string }

1372 | { kind: "peer"; from: string; name?: string }1414 | { kind: "peer"; from: string; name?: string; senderTaskId?: string }

1373 | { kind: "task-notification" }1415 | { kind: "task-notification" }

1374 | { kind: "coordinator" };1416 | { kind: "coordinator" }

1417 | { kind: "auto-continuation" };

1375```1418```

1376 1419 

1377| `kind` | Significado |1420| `kind` | Significado |

1378| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |1421| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

1379| `human` | Entrada directa del usuario final. En mensajes de usuario, una `origin` ausente también significa entrada humana. |1422| `human` | Entrada directa del usuario final. En mensajes de usuario, una `origin` ausente también significa entrada humana. |

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

1381| `peer` | Mensaje de otra sesión de agente a través de `SendMessage`. `from` es la dirección del remitente; `name` es el nombre para mostrar del remitente cuando está disponible. |1424| `peer` | Reservado para mensajes de otra sesión de agente. `from` es la dirección del remitente y `name` es el nombre para mostrar del remitente cuando está disponible. `senderTaskId` es el ID de tarea del subagente de fondo en proceso que envió el mensaje; ausente para pares entre sesiones. El Agent SDK no emite este origen; trátelo como un origen desconocido. |

1382| `task-notification` | Turno sintético inyectado después de que finalizó una tarea de fondo. Consulte [`SDKTaskNotificationMessage`](#sdktasknotificationmessage). |1425| `task-notification` | Turno sintético inyectado después de que finalizó una tarea de fondo. Consulte [`SDKTaskNotificationMessage`](#sdktasknotificationmessage). |

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

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

1384 1428 

1385<h2 id="hook-types">1429<h2 id="hook-types">

1386 Tipos de Hook1430 Tipos de Hook


1712type TeammateIdleHookInput = BaseHookInput & {1756type TeammateIdleHookInput = BaseHookInput & {

1713 hook_event_name: "TeammateIdle";1757 hook_event_name: "TeammateIdle";

1714 teammate_name: string;1758 teammate_name: string;

1759 /** @deprecated since v2.1.178. Carries the session-derived team name; will be removed. */

1715 team_name: string;1760 team_name: string;

1716};1761};

1717```1762```


1727 task_subject: string;1772 task_subject: string;

1728 task_description?: string;1773 task_description?: string;

1729 teammate_name?: string;1774 teammate_name?: string;

1775 /** @deprecated since v2.1.178. Carries the session-derived team name; will be removed. */

1730 team_name?: string;1776 team_name?: string;

1731};1777};

1732```1778```


1934 description: string;1980 description: string;

1935 prompt: string;1981 prompt: string;

1936 subagent_type: string;1982 subagent_type: string;

1937 model?: "sonnet" | "opus" | "haiku";1983 model?: "sonnet" | "opus" | "haiku" | "fable";

1938 resume?: string;1984 resume?: string;

1939 run_in_background?: boolean;1985 run_in_background?: boolean;

1940 max_turns?: number;1986 max_turns?: number;

1941 name?: string;1987 name?: string;

1942 team_name?: string;

1943 mode?: "acceptEdits" | "bypassPermissions" | "default" | "dontAsk" | "plan";1988 mode?: "acceptEdits" | "bypassPermissions" | "default" | "dontAsk" | "plan";

1944 isolation?: "worktree";1989 isolation?: "worktree";

1945};1990};


2385 | WorkflowOutput;2430 | WorkflowOutput;

2386```2431```

2387 2432 

2388<h3 id="agent">2433<h3 id="agent-1">

2389 Agent2434 Agent

2390</h3>2435</h3>

2391 2436 


2397 status: "completed";2442 status: "completed";

2398 agentId: string;2443 agentId: string;

2399 content: Array<{ type: "text"; text: string }>;2444 content: Array<{ type: "text"; text: string }>;

2445 resolvedModel?: string;

2400 totalToolUseCount: number;2446 totalToolUseCount: number;

2401 totalDurationMs: number;2447 totalDurationMs: number;

2402 totalTokens: number;2448 totalTokens: number;


2421 status: "async_launched";2467 status: "async_launched";

2422 agentId: string;2468 agentId: string;

2423 description: string;2469 description: string;

2470 resolvedModel?: string;

2424 prompt: string;2471 prompt: string;

2425 outputFile: string;2472 outputFile: string;

2426 canReadOutputFile?: boolean;2473 canReadOutputFile?: boolean;


2434 2481 

2435Devuelve el resultado del subagente. Discriminado en el campo `status`: `"completed"` para tareas terminadas, `"async_launched"` para tareas de fondo, y `"sub_agent_entered"` para subagentes interactivos.2482Devuelve el resultado del subagente. Discriminado en el campo `status`: `"completed"` para tareas terminadas, `"async_launched"` para tareas de fondo, y `"sub_agent_entered"` para subagentes interactivos.

2436 2483 

2437<h3 id="askuserquestion">2484El campo `resolvedModel` en las variantes `completed` y `async_launched` nombra el modelo en el que el subagente realmente se ejecutó, que puede diferir del modelo `model` solicitado cuando [`availableModels`](/es/model-config#restrict-model-selection) u otra anulación se aplica. {/* min-version: 2.1.174 */}Este campo requiere Claude Code v2.1.174 o posterior.

2485 

2486<h3 id="askuserquestion-1">

2438 AskUserQuestion2487 AskUserQuestion

2439</h3>2488</h3>

2440 2489 


2455 2504 

2456Devuelve las preguntas hechas y las respuestas del usuario. `response` se establece cuando el usuario escribió una respuesta de forma libre en lugar de responder las preguntas estructuradas; cuando está presente, Claude recibe "El usuario respondió: …" en lugar de la lista de respuestas por pregunta.2505Devuelve las preguntas hechas y las respuestas del usuario. `response` se establece cuando el usuario escribió una respuesta de forma libre en lugar de responder las preguntas estructuradas; cuando está presente, Claude recibe "El usuario respondió: …" en lugar de la lista de respuestas por pregunta.

2457 2506 

2458<h3 id="bash">2507<h3 id="bash-1">

2459 Bash2508 Bash

2460</h3>2509</h3>

2461 2510 


2480 2529 

2481Devuelve la salida del comando con stdout/stderr divididos. Los comandos de fondo incluyen un `backgroundTaskId`.2530Devuelve la salida del comando con stdout/stderr divididos. Los comandos de fondo incluyen un `backgroundTaskId`.

2482 2531 

2483<h3 id="monitor">2532<h3 id="monitor-1">

2484 Monitor2533 Monitor

2485</h3>2534</h3>

2486 2535 


2496 2545 

2497Devuelve el ID de tarea de fondo para el monitor en ejecución. Use este ID con `TaskStop` para cancelar la vigilancia temprano.2546Devuelve el ID de tarea de fondo para el monitor en ejecución. Use este ID con `TaskStop` para cancelar la vigilancia temprano.

2498 2547 

2499<h3 id="edit">2548<h3 id="edit-1">

2500 Edit2549 Edit

2501</h3>2550</h3>

2502 2551 


2530 2579 

2531Devuelve el diff estructurado de la operación de edición.2580Devuelve el diff estructurado de la operación de edición.

2532 2581 

2533<h3 id="read">2582<h3 id="read-1">

2534 Read2583 Read

2535</h3>2584</h3>

2536 2585 


2590 2639 

2591Devuelve el contenido del archivo en un formato apropiado para el tipo de archivo. Discriminado en el campo `type`.2640Devuelve el contenido del archivo en un formato apropiado para el tipo de archivo. Discriminado en el campo `type`.

2592 2641 

2593<h3 id="write">2642<h3 id="write-1">

2594 Write2643 Write

2595</h3>2644</h3>

2596 2645 


2622 2671 

2623Devuelve el resultado de escritura con información de diff estructurado.2672Devuelve el resultado de escritura con información de diff estructurado.

2624 2673 

2625<h3 id="glob">2674<h3 id="glob-1">

2626 Glob2675 Glob

2627</h3>2676</h3>

2628 2677 


2639 2688 

2640Devuelve rutas de archivo que coinciden con el patrón glob, ordenadas por hora de modificación.2689Devuelve rutas de archivo que coinciden con el patrón glob, ordenadas por hora de modificación.

2641 2690 

2642<h3 id="grep">2691<h3 id="grep-1">

2643 Grep2692 Grep

2644</h3>2693</h3>

2645 2694 


2660 2709 

2661Devuelve resultados de búsqueda. La forma varía por `mode`: lista de archivos, contenido con coincidencias o conteos de coincidencias.2710Devuelve resultados de búsqueda. La forma varía por `mode`: lista de archivos, contenido con coincidencias o conteos de coincidencias.

2662 2711 

2663<h3 id="taskstop">2712<h3 id="taskstop-1">

2664 TaskStop2713 TaskStop

2665</h3>2714</h3>

2666 2715 


2677 2726 

2678Devuelve confirmación después de detener la tarea de fondo.2727Devuelve confirmación después de detener la tarea de fondo.

2679 2728 

2680<h3 id="notebookedit">2729<h3 id="notebookedit-1">

2681 NotebookEdit2730 NotebookEdit

2682</h3>2731</h3>

2683 2732 


2699 2748 

2700Devuelve el resultado de la edición del cuaderno con contenido de archivo original y actualizado.2749Devuelve el resultado de la edición del cuaderno con contenido de archivo original y actualizado.

2701 2750 

2702<h3 id="webfetch">2751<h3 id="webfetch-1">

2703 WebFetch2752 WebFetch

2704</h3>2753</h3>

2705 2754 


2718 2767 

2719Devuelve el contenido obtenido con estado HTTP y metadatos.2768Devuelve el contenido obtenido con estado HTTP y metadatos.

2720 2769 

2721<h3 id="websearch">2770<h3 id="websearch-1">

2722 WebSearch2771 WebSearch

2723</h3>2772</h3>

2724 2773 


2740 2789 

2741Devuelve resultados de búsqueda de la web.2790Devuelve resultados de búsqueda de la web.

2742 2791 

2743<h3 id="workflow">2792<h3 id="workflow-1">

2744 Workflow2793 Workflow

2745</h3>2794</h3>

2746 2795 


2770| `scriptPath` | `string` | Ruta al script de flujo de trabajo persistido para esta ejecución. Edítelo y páselo como `scriptPath` para volver a ejecutar sin reenviar el script |2819| `scriptPath` | `string` | Ruta al script de flujo de trabajo persistido para esta ejecución. Edítelo y páselo como `scriptPath` para volver a ejecutar sin reenviar el script |

2771| `error` | `string` | Se establece cuando el script falla su verificación de sintaxis. Cuando está presente, la ejecución no se inició a pesar del estado `async_launched` |2820| `error` | `string` | Se establece cuando el script falla su verificación de sintaxis. Cuando está presente, la ejecución no se inició a pesar del estado `async_launched` |

2772 2821 

2773<h3 id="todowrite">2822<h3 id="todowrite-1">

2774 TodoWrite2823 TodoWrite

2775</h3>2824</h3>

2776 2825 


2797 A partir de TypeScript Agent SDK 0.3.142, `TodoWrite` está deshabilitado de forma predeterminada. Use `TaskCreate`, `TaskGet`, `TaskUpdate`, y `TaskList` en su lugar. Consulte [Migrar a herramientas de tareas](/es/agent-sdk/todo-tracking#migrate-to-task-tools) para actualizar su código de monitoreo, o establezca `CLAUDE_CODE_ENABLE_TASKS=0` para revertir a `TodoWrite`.2846 A partir de TypeScript Agent SDK 0.3.142, `TodoWrite` está deshabilitado de forma predeterminada. Use `TaskCreate`, `TaskGet`, `TaskUpdate`, y `TaskList` en su lugar. Consulte [Migrar a herramientas de tareas](/es/agent-sdk/todo-tracking#migrate-to-task-tools) para actualizar su código de monitoreo, o establezca `CLAUDE_CODE_ENABLE_TASKS=0` para revertir a `TodoWrite`.

2798</Note>2847</Note>

2799 2848 

2800<h3 id="taskcreate">2849<h3 id="taskcreate-1">

2801 TaskCreate2850 TaskCreate

2802</h3>2851</h3>

2803 2852 


2814 2863 

2815Devuelve la tarea creada con su ID asignado.2864Devuelve la tarea creada con su ID asignado.

2816 2865 

2817<h3 id="taskupdate">2866<h3 id="taskupdate-1">

2818 TaskUpdate2867 TaskUpdate

2819</h3>2868</h3>

2820 2869 


2835 2884 

2836Devuelve el resultado de la actualización, incluyendo qué campos cambiaron.2885Devuelve el resultado de la actualización, incluyendo qué campos cambiaron.

2837 2886 

2838<h3 id="taskget">2887<h3 id="taskget-1">

2839 TaskGet2888 TaskGet

2840</h3>2889</h3>

2841 2890 


2856 2905 

2857Devuelve el registro de tarea completo, o `null` cuando el ID no se encuentra.2906Devuelve el registro de tarea completo, o `null` cuando el ID no se encuentra.

2858 2907 

2859<h3 id="tasklist">2908<h3 id="tasklist-1">

2860 TaskList2909 TaskList

2861</h3>2910</h3>

2862 2911 


2876 2925 

2877Devuelve una instantánea de todas las tareas en la lista actual.2926Devuelve una instantánea de todas las tareas en la lista actual.

2878 2927 

2879<h3 id="exitplanmode">2928<h3 id="exitplanmode-1">

2880 ExitPlanMode2929 ExitPlanMode

2881</h3>2930</h3>

2882 2931 


2895 2944 

2896Devuelve el estado del plan después de salir del modo de planificación.2945Devuelve el estado del plan después de salir del modo de planificación.

2897 2946 

2898<h3 id="listmcpresources">2947<h3 id="listmcpresources-1">

2899 ListMcpResources2948 ListMcpResources

2900</h3>2949</h3>

2901 2950 


2913 2962 

2914Devuelve una matriz de recursos MCP disponibles.2963Devuelve una matriz de recursos MCP disponibles.

2915 2964 

2916<h3 id="readmcpresource">2965<h3 id="readmcpresource-1">

2917 ReadMcpResource2966 ReadMcpResource

2918</h3>2967</h3>

2919 2968 


2931 2980 

2932Devuelve el contenido del recurso MCP solicitado.2981Devuelve el contenido del recurso MCP solicitado.

2933 2982 

2934<h3 id="enterworktree">2983<h3 id="enterworktree-1">

2935 EnterWorktree2984 EnterWorktree

2936</h3>2985</h3>

2937 2986 


3010type PermissionUpdateDestination =3059type PermissionUpdateDestination =

3011 | "userSettings" // Configuración global del usuario3060 | "userSettings" // Configuración global del usuario

3012 | "projectSettings" // Configuración del proyecto por directorio3061 | "projectSettings" // Configuración del proyecto por directorio

3013 | "localSettings" // Configuración local gitignored3062 | "localSettings" // Configuración local del proyecto

3014 | "session" // Solo sesión actual3063 | "session" // Solo sesión actual

3015 | "cliArg"; // Argumento CLI3064 | "cliArg"; // Argumento CLI

3016```3065```


3049```3098```

3050 3099 

3051<Warning>3100<Warning>

3052 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 Sonnet 4.6, Claude Opus 4.6, o Claude Opus 4.7](https://platform.claude.com/docs/es/about-claude/models/overview), que incluyen contexto de 1M a precios estándar sin encabezado beta requerido.3101 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 Sonnet 4.6, Claude Opus 4.6, Claude Opus 4.7 o Claude Opus 4.8](https://platform.claude.com/docs/es/about-claude/models/overview), que incluyen contexto de 1M a precios estándar sin encabezado beta requerido.

3053</Warning>3102</Warning>

3054 3103 

3055<h3 id="slashcommand">3104<h3 id="slashcommand">


3236 `CallToolResult`3285 `CallToolResult`

3237</h3>3286</h3>

3238 3287 

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

3240 3289 

3241```typescript theme={null}3290```typescript theme={null}

3242type CallToolResult = {3291type CallToolResult = {

3243 content: Array<{3292 content: Array<{

3244 type: "text" | "image" | "resource";3293 type: "text" | "image" | "audio" | "resource" | "resource_link";

3245 // Los campos adicionales varían por tipo3294 // Los campos adicionales varían por tipo

3246 }>;3295 }>;

3247 structuredContent?: Record<string, unknown>;3296 structuredContent?: Record<string, unknown>;

Details

16 16 

17Esta guía le muestra cómo detectar cada tipo de solicitud y responder apropiadamente.17Esta guía le muestra cómo detectar cada tipo de solicitud y responder apropiadamente.

18 18 

19## Detectar cuándo Claude necesita entrada19<h2 id="detect-when-claude-needs-input">

20 Detectar cuándo Claude necesita entrada

21</h2>

20 22 

21Pase un callback `canUseTool` en sus opciones de consulta. El callback se activa cada vez que Claude necesita entrada del usuario, recibiendo el nombre de la herramienta y la entrada como argumentos:23Pase un callback `canUseTool` en sus opciones de consulta. El callback se activa cada vez que Claude necesita entrada del usuario, recibiendo el nombre de la herramienta y la entrada como argumentos:

22 24 


49 Para permitir o denegar automáticamente herramientas sin solicitar a los usuarios, use [hooks](/es/agent-sdk/hooks) en su lugar. Los hooks se ejecutan antes de `canUseTool` y pueden permitir, denegar o modificar solicitudes según su propia lógica. También puede usar el [`PermissionRequest` hook](/es/agent-sdk/hooks#available-hooks) para enviar notificaciones externas (Slack, correo electrónico, push) cuando Claude está esperando aprobación.51 Para permitir o denegar automáticamente herramientas sin solicitar a los usuarios, use [hooks](/es/agent-sdk/hooks) en su lugar. Los hooks se ejecutan antes de `canUseTool` y pueden permitir, denegar o modificar solicitudes según su propia lógica. También puede usar el [`PermissionRequest` hook](/es/agent-sdk/hooks#available-hooks) para enviar notificaciones externas (Slack, correo electrónico, push) cuando Claude está esperando aprobación.

50</Note>52</Note>

51 53 

52## Manejar solicitudes de aprobación de herramientas54<h2 id="handle-tool-approval-requests">

55 Manejar solicitudes de aprobación de herramientas

56</h2>

53 57 

54Una vez que haya pasado un callback `canUseTool` en sus opciones de consulta, se activa cuando Claude quiere usar una herramienta que no está aprobada automáticamente. Su callback recibe tres argumentos:58Una vez que haya pasado un callback `canUseTool` en sus opciones de consulta, se activa cuando Claude quiere usar una herramienta que no está aprobada automáticamente. Su callback recibe tres argumentos:

55 59 


197 201 

198Este ejemplo usa un flujo s/n donde cualquier entrada que no sea `y` se trata como una denegación. En la práctica, podría construir una interfaz de usuario más rica que permita a los usuarios modificar la solicitud, proporcionar retroalimentación o redirigir a Claude completamente. Vea [Responder a solicitudes de herramientas](#respond-to-tool-requests) para todas las formas en que puede responder.202Este ejemplo usa un flujo s/n donde cualquier entrada que no sea `y` se trata como una denegación. En la práctica, podría construir una interfaz de usuario más rica que permita a los usuarios modificar la solicitud, proporcionar retroalimentación o redirigir a Claude completamente. Vea [Responder a solicitudes de herramientas](#respond-to-tool-requests) para todas las formas en que puede responder.

199 203 

200### Responder a solicitudes de herramientas204<h3 id="respond-to-tool-requests">

205 Responder a solicitudes de herramientas

206</h3>

201 207 

202Su callback devuelve uno de dos tipos de respuesta:208Su callback devuelve uno de dos tipos de respuesta:

203 209 


407 </Tab>413 </Tab>

408</Tabs>414</Tabs>

409 415 

410## Manejar preguntas aclaratorias416<h2 id="handle-clarifying-questions">

417 Manejar preguntas aclaratorias

418</h2>

411 419 

412Cuando Claude necesita más dirección en una tarea con múltiples enfoques válidos, llama a la herramienta `AskUserQuestion`. Esto activa su callback `canUseTool` con `toolName` establecido en `AskUserQuestion`. La entrada contiene las preguntas de Claude como opciones de opción múltiple, que muestra al usuario y devuelve sus selecciones.420Cuando Claude necesita más dirección en una tarea con múltiples enfoques válidos, llama a la herramienta `AskUserQuestion`. Esto activa su callback `canUseTool` con `toolName` establecido en `AskUserQuestion`. La entrada contiene las preguntas de Claude como opciones de opción múltiple, que muestra al usuario y devuelve sus selecciones.

413 421 


551 </Step>559 </Step>

552</Steps>560</Steps>

553 561 

554### Formato de pregunta562<h3 id="question-format">

563 Formato de pregunta

564</h3>

555 565 

556La entrada contiene las preguntas generadas por Claude en un array `questions`. Cada pregunta tiene estos campos:566La entrada contiene las preguntas generadas por Claude en un array `questions`. Cada pregunta tiene estos campos:

557 567 

558| Campo | Descripción |568| Campo | Descripción |

559| ------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |569| ------------- | ------------------------------------------------------------------------------------------------------------------------------------------- |

560| `question` | El texto completo de la pregunta a mostrar |570| `question` | El texto completo de la pregunta a mostrar |

561| `header` | Etiqueta corta para la pregunta (máximo 12 caracteres) |571| `header` | Etiqueta corta para la pregunta (máximo 12 caracteres) |

562| `options` | Array de 2-4 opciones, cada una con `label` y `description`. TypeScript: opcionalmente `preview` (vea [abajo](#option-previews-type-script)) |572| `options` | Array de 2-4 opciones, cada una con `label` y `description`. TypeScript: opcionalmente `preview` (vea [abajo](#option-previews-typescript)) |

563| `multiSelect` | Si es `true`, los usuarios pueden seleccionar múltiples opciones |573| `multiSelect` | Si es `true`, los usuarios pueden seleccionar múltiples opciones |

564 574 

565La estructura que su callback recibe:575La estructura que su callback recibe:


580}590}

581```591```

582 592 

583#### Vistas previas de opciones (TypeScript)593<h4 id="option-previews-typescript">

594 Vistas previas de opciones (TypeScript)

595</h4>

584 596 

585`toolConfig.askUserQuestion.previewFormat` agrega un campo `preview` a cada opción para que su aplicación pueda mostrar una maqueta visual junto a la etiqueta. Sin esta configuración, Claude no genera vistas previas y el campo está ausente.597`toolConfig.askUserQuestion.previewFormat` agrega un campo `preview` a cada opción para que su aplicación pueda mostrar una maqueta visual junto a la etiqueta. Sin esta configuración, Claude no genera vistas previas y el campo está ausente.

586 598 


621}633}

622```634```

623 635 

624### Formato de respuesta636<h3 id="response-format">

637 Formato de respuesta

638</h3>

625 639 

626Devuelva un objeto `answers` que asigne cada campo `question` de la pregunta a la `label` de la opción seleccionada:640Devuelva un objeto `answers` que asigne cada campo `question` de la pregunta a la `label` de la opción seleccionada:

627 641 


645}659}

646```660```

647 661 

648#### Admitir entrada de texto libre662<h4 id="support-free-text-input">

663 Admitir entrada de texto libre

664</h4>

649 665 

650Las opciones predefinidas de Claude no siempre cubrirán lo que los usuarios quieren. Para permitir que los usuarios escriban su propia respuesta:666Las opciones predefinidas de Claude no siempre cubrirán lo que los usuarios quieren. Para permitir que los usuarios escriban su propia respuesta:

651 667 


654 670 

655Vea el [ejemplo completo](#complete-example) a continuación para una implementación completa.671Vea el [ejemplo completo](#complete-example) a continuación para una implementación completa.

656 672 

657### Ejemplo completo673<h3 id="complete-example">

674 Ejemplo completo

675</h3>

658 676 

659Claude hace preguntas aclaratorias cuando necesita entrada del usuario para proceder. Por ejemplo, cuando se le pide que ayude a decidir sobre una pila de tecnología para una aplicación móvil, Claude podría preguntar sobre multiplataforma vs nativo, preferencias de backend o plataformas objetivo. Estas preguntas ayudan a Claude a tomar decisiones que coincidan con las preferencias del usuario en lugar de adivinar.677Claude hace preguntas aclaratorias cuando necesita entrada del usuario para proceder. Por ejemplo, cuando se le pide que ayude a decidir sobre una pila de tecnología para una aplicación móvil, Claude podría preguntar sobre multiplataforma vs nativo, preferencias de backend o plataformas objetivo. Estas preguntas ayudan a Claude a tomar decisiones que coincidan con las preferencias del usuario en lugar de adivinar.

660 678 


821 ```839 ```

822</CodeGroup>840</CodeGroup>

823 841 

824## Limitaciones842<h2 id="limitations">

843 Limitaciones

844</h2>

825 845 

826* **Subagentes**: `AskUserQuestion` no está disponible actualmente en subagentes generados a través de la herramienta Agent846* **Subagentes**: `AskUserQuestion` no está disponible actualmente en subagentes generados a través de la herramienta Agent

827* **Límites de preguntas**: cada llamada `AskUserQuestion` admite 1-4 preguntas con 2-4 opciones cada una847* **Límites de preguntas**: cada llamada `AskUserQuestion` admite 1-4 preguntas con 2-4 opciones cada una

828 848 

829## Otras formas de obtener entrada del usuario849<h2 id="other-ways-to-get-user-input">

850 Otras formas de obtener entrada del usuario

851</h2>

830 852 

831El callback `canUseTool` y la herramienta `AskUserQuestion` cubren la mayoría de escenarios de aprobación y aclaración, pero el SDK ofrece otras formas de obtener entrada de los usuarios:853El callback `canUseTool` y la herramienta `AskUserQuestion` cubren la mayoría de escenarios de aprobación y aclaración, pero el SDK ofrece otras formas de obtener entrada de los usuarios:

832 854 

833### Entrada de flujo855<h3 id="streaming-input">

856 Entrada de flujo

857</h3>

834 858 

835Use [entrada de flujo](/es/agent-sdk/streaming-vs-single-mode) cuando necesite:859Use [entrada de flujo](/es/agent-sdk/streaming-vs-single-mode) cuando necesite:

836 860 


840 864 

841La entrada de flujo es ideal para interfaces conversacionales donde los usuarios interactúan con el agente durante toda la ejecución, no solo en puntos de aprobación.865La entrada de flujo es ideal para interfaces conversacionales donde los usuarios interactúan con el agente durante toda la ejecución, no solo en puntos de aprobación.

842 866 

843### Herramientas personalizadas867<h3 id="custom-tools">

868 Herramientas personalizadas

869</h3>

844 870 

845Use [herramientas personalizadas](/es/agent-sdk/custom-tools) cuando necesite:871Use [herramientas personalizadas](/es/agent-sdk/custom-tools) cuando necesite:

846 872 


850 876 

851Las herramientas personalizadas le dan control total sobre la interacción, pero requieren más trabajo de implementación que usar el callback `canUseTool` integrado.877Las herramientas personalizadas le dan control total sobre la interacción, pero requieren más trabajo de implementación que usar el callback `canUseTool` integrado.

852 878 

853## Recursos relacionados879<h2 id="related-resources">

880 Recursos relacionados

881</h2>

854 882 

855* [Configurar permisos](/es/agent-sdk/permissions): configurar modos y reglas de permisos883* [Configurar permisos](/es/agent-sdk/permissions): configurar modos y reglas de permisos

856* [Controlar la ejecución con hooks](/es/agent-sdk/hooks): ejecutar código personalizado en puntos clave del ciclo de vida del agente884* [Controlar la ejecución con hooks](/es/agent-sdk/hooks): ejecutar código personalizado en puntos clave del ciclo de vida del agente

agent-teams.md +33 −46

Details

7> Coordine múltiples instancias de Claude Code trabajando juntas como un equipo, con tareas compartidas, mensajería entre agentes y gestión centralizada.7> Coordine múltiples instancias de Claude Code trabajando juntas como un equipo, con tareas compartidas, mensajería entre agentes y gestión centralizada.

8 8 

9<Warning>9<Warning>

10 Los equipos de agentes son experimentales y están deshabilitados por defecto. Habilítelos agregando `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` a su [settings.json](/es/settings) o entorno. Los equipos de agentes tienen [limitaciones conocidas](#limitations) alrededor de la reanudación de sesiones, coordinación de tareas y comportamiento de apagado.10 Los equipos de agentes son experimentales y están deshabilitados por defecto. Habilítelos agregando `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` a su [settings.json](/es/settings) o entorno. Sin esa variable, ningún equipo se configura al inicio de la sesión, no se escriben directorios de equipo, y Claude no genera ni propone compañeros de equipo. Los equipos de agentes tienen [limitaciones conocidas](#limitations) alrededor de la reanudación de sesiones, coordinación de tareas y comportamiento de apagado.

11</Warning>11</Warning>

12 12 

13Los equipos de agentes le permiten coordinar múltiples instancias de Claude Code trabajando juntas. Una sesión actúa como el líder del equipo, coordinando el trabajo, asignando tareas y sintetizando resultados. Los compañeros de equipo trabajan de forma independiente, cada uno en su propia ventana de contexto, y se comunican directamente entre sí.13Los equipos de agentes le permiten coordinar múltiples instancias de Claude Code trabajando juntas. Una sesión actúa como el líder del equipo, coordinando el trabajo, asignando tareas y sintetizando resultados. Los compañeros de equipo trabajan de forma independiente, cada uno en su propia ventana de contexto, y se comunican directamente entre sí.


15A diferencia de los [subagents](/es/sub-agents), que se ejecutan dentro de una única sesión y solo pueden reportar al agente principal, también puede interactuar directamente con compañeros de equipo individuales sin pasar por el líder.15A diferencia de los [subagents](/es/sub-agents), que se ejecutan dentro de una única sesión y solo pueden reportar al agente principal, también puede interactuar directamente con compañeros de equipo individuales sin pasar por el líder.

16 16 

17<Note>17<Note>

18 Los equipos de agentes requieren Claude Code v2.1.32 o posterior. Verifique su versión con `claude --version`.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](/es/hooks#taskcreated) lleva el nombre derivado de la sesión y está deprecado.

19</Note>19</Note>

20 20 

21Esta página cubre:21Esta página cubre:


78 Inicie su primer equipo de agentes78 Inicie su primer equipo de agentes

79</h2>79</h2>

80 80 

81Después de habilitar los equipos de agentes, dígale a Claude que cree un equipo de agentes y describa la tarea y la estructura del equipo que desea en lenguaje natural. Claude crea el equipo, genera compañeros de equipo y coordina el trabajo según su indicación.81Después de habilitar los equipos de agentes, describa la tarea y los compañeros de equipo que desea en lenguaje natural. Claude los genera y coordina el trabajo según su indicación.

82 82 

83Este ejemplo funciona bien porque los tres roles son independientes y pueden explorar el problema sin esperar el uno al otro:83Este ejemplo funciona bien porque los tres roles son independientes y pueden explorar el problema sin esperar el uno al otro:

84 84 

85```text theme={null}85```text theme={null}

86Estoy diseñando una herramienta CLI que ayuda a los desarrolladores a rastrear86Estoy diseñando una herramienta CLI que ayuda a los desarrolladores a rastrear

87comentarios TODO en su base de código. Crea un equipo de agentes para explorar87comentarios TODO en su base de código. Genere tres compañeros de equipo para explorar

88esto desde diferentes ángulos: un compañero de equipo en UX, uno en arquitectura88esto desde diferentes ángulos: uno en UX, uno en arquitectura técnica, uno jugando

89técnica, uno jugando al abogado del diablo.89al abogado del diablo.

90```90```

91 91 

92A partir de ahí, Claude crea un equipo con una [lista de tareas compartida](/es/interactive-mode#task-list), genera compañeros de equipo para cada perspectiva, los hace explorar el problema, sintetiza hallazgos e intenta [limpiar el equipo](#clean-up-the-team) cuando termina.92A partir de ahí, Claude completa una [lista de tareas compartida](/es/interactive-mode#task-list), genera compañeros de equipo para cada perspectiva, los hace explorar el problema, y sintetiza hallazgos cuando termina.

93 93 

94La terminal del líder enumera todos los compañeros de equipo y en qué están trabajando. Use Shift+Down para ciclar a través de compañeros de equipo y enviarles un mensaje directamente. Después del último compañero de equipo, Shift+Down vuelve al líder.94La terminal del líder enumera todos los compañeros de equipo y en qué están trabajando. Use Shift+Down para ciclar a través de compañeros de equipo y enviarles un mensaje directamente. Después del último compañero de equipo, Shift+Down vuelve al líder.

95 95 


114 `tmux` tiene limitaciones conocidas en ciertos sistemas operativos y tradicionalmente funciona mejor en macOS. Usar `tmux -CC` en iTerm2 es el punto de entrada sugerido en `tmux`.114 `tmux` tiene limitaciones conocidas en ciertos sistemas operativos y tradicionalmente funciona mejor en macOS. Usar `tmux -CC` en iTerm2 es el punto de entrada sugerido en `tmux`.

115</Note>115</Note>

116 116 

117El valor predeterminado es `"auto"`, que usa paneles divididos si ya está ejecutándose dentro de una sesión tmux, y en proceso de lo contrario. La configuración `"tmux"` habilita el modo de panel dividido y detecta automáticamente si usar tmux o iTerm2 según su terminal. Para anular, configure [`teammateMode`](/es/settings#available-settings) en `~/.claude/settings.json`:117El valor predeterminado es `"auto"`, que usa paneles divididos si ya está ejecutándose dentro de una sesión tmux o su terminal es iTerm2, y en proceso de lo contrario. La configuración `"tmux"` habilita el modo de panel dividido y detecta automáticamente si usar tmux o iTerm2 según su terminal. Para anular, configure [`teammateMode`](/es/settings#available-settings) en `~/.claude/settings.json`:

118 118 

119```json theme={null}119```json theme={null}

120{120{


140Claude decide el número de compañeros de equipo a generar según su tarea, o puede especificar exactamente lo que desea:140Claude decide el número de compañeros de equipo a generar según su tarea, o puede especificar exactamente lo que desea:

141 141 

142```text theme={null}142```text theme={null}

143Crea un equipo con 4 compañeros de equipo para refactorizar estos módulos en paralelo.143Spawn 4 teammates to refactor these modules in parallel. Use Sonnet for

144Usa Sonnet para cada compañero de equipo.144each teammate.

145```145```

146 146 

147Los compañeros de equipo no heredan la selección `/model` del líder de forma predeterminada. Para cambiar el modelo utilizado cuando el indicador no especifica uno, configure **Modelo de compañero de equipo predeterminado** en `/config`. Seleccione **Predeterminado (modelo del líder)** para que los compañeros de equipo sigan el modelo actual del líder.147Los compañeros de equipo no heredan la selección `/model` del líder de forma predeterminada. Para cambiar el modelo utilizado cuando el indicador no especifica uno, configure **Modelo de compañero de equipo predeterminado** en `/config`. Seleccione **Predeterminado (modelo del líder)** para que los compañeros de equipo sigan el modelo actual del líder.


153Para tareas complejas o riesgosas, puede requerir que los compañeros de equipo planifiquen antes de implementar. El compañero de equipo trabaja en modo de plan de solo lectura hasta que el líder apruebe su enfoque:153Para tareas complejas o riesgosas, puede requerir que los compañeros de equipo planifiquen antes de implementar. El compañero de equipo trabaja en modo de plan de solo lectura hasta que el líder apruebe su enfoque:

154 154 

155```text theme={null}155```text theme={null}

156Genera un compañero de equipo arquitecto para refactorizar el módulo de autenticación.156Spawn an architect teammate to refactor the authentication module.

157Requiere aprobación de plan antes de que hagan cambios.157Require plan approval before they make any changes.

158```158```

159 159 

160Cuando un compañero de equipo termina de planificar, envía una solicitud de aprobación de plan al líder. El líder revisa el plan y lo aprueba o lo rechaza con retroalimentación. Si se rechaza, el compañero de equipo permanece en modo de plan, revisa según la retroalimentación y reenvía. Una vez aprobado, el compañero de equipo sale del modo de plan y comienza la implementación.160Cuando un compañero de equipo termina de planificar, envía una solicitud de aprobación de plan al líder. El líder revisa el plan y lo aprueba o lo rechaza con retroalimentación. Si se rechaza, el compañero de equipo permanece en modo de plan, revisa según la retroalimentación y reenvía. Una vez aprobado, el compañero de equipo sale del modo de plan y comienza la implementación.


187 Apagar compañeros de equipo187 Apagar compañeros de equipo

188</h3>188</h3>

189 189 

190Para terminar gracefully la sesión de un compañero de equipo:190Para terminar gracefully la sesión de un compañero de equipo, refiriéndose a él por nombre. Por ejemplo, con un compañero de equipo llamado investigador:

191 191 

192```text theme={null}192```text theme={null}

193Pídele al compañero de equipo investigador que se apague193Ask the researcher teammate to shut down

194```194```

195 195 

196El líder envía una solicitud de apagado. El compañero de equipo puede aprobar, saliendo gracefully, o rechazar con una explicación.196El líder envía una solicitud de apagado. El compañero de equipo puede aprobar, saliendo gracefully, o rechazar con una explicación.

197 197 

198<h3 id="clean-up-the-team">198Los directorios compartidos del equipo se limpian automáticamente cuando finaliza la sesión, por lo que no hay un paso de limpieza separado. Vea [Arquitectura](#architecture) para saber qué directorios se eliminan y cuáles persisten para sesiones reanudadas.

199 Limpiar el equipo

200</h3>

201 

202Cuando haya terminado, pídele al líder que limpie:

203 

204```text theme={null}

205Limpia el equipo

206```

207 

208Esto elimina los recursos compartidos del equipo. Cuando el líder ejecuta la limpieza, verifica si hay compañeros de equipo activos y falla si alguno aún se está ejecutando, así que apáguelos primero.

209 

210<Warning>

211 Siempre use el líder para limpiar. Los compañeros de equipo no deben ejecutar la limpieza porque su contexto de equipo puede no resolverse correctamente, dejando potencialmente recursos en un estado inconsistente.

212</Warning>

213 199 

214<h3 id="enforce-quality-gates-with-hooks">200<h3 id="enforce-quality-gates-with-hooks">

215 Aplicar puertas de calidad con hooks201 Aplicar puertas de calidad con hooks


231 Cómo Claude inicia equipos de agentes217 Cómo Claude inicia equipos de agentes

232</h3>218</h3>

233 219 

234Hay dos formas en que los equipos de agentes se inician:220Un equipo de agentes se forma cuando se genera el primer compañero de equipo, con la sesión principal actuando como el líder. Hay dos formas en que se generan los compañeros de equipo:

235 221 

236* **Usted solicita un equipo**: dé a Claude una tarea que se beneficie del trabajo paralelo y solicite explícitamente un equipo de agentes. Claude crea uno según sus instrucciones.222* **Usted solicita compañeros de equipo**: dé a Claude una tarea que se beneficie del trabajo paralelo y solicite explícitamente compañeros de equipo. Claude los genera según sus instrucciones.

237* **Claude propone un equipo**: si Claude determina que su tarea se beneficiaría del trabajo paralelo, puede sugerir crear un equipo. Usted confirma antes de que proceda.223* **Claude propone compañeros de equipo**: si Claude determina que su tarea se beneficiaría del trabajo paralelo, puede sugerir generar compañeros de equipo. Usted confirma antes de que proceda.

238 224 

239En ambos casos, usted mantiene el control. Claude no creará un equipo sin su aprobación.225En ambos casos, usted mantiene el control. Claude no generará compañeros de equipo sin su aprobación.

240 226 

241<h3 id="architecture">227<h3 id="architecture">

242 Arquitectura228 Arquitectura


245Un equipo de agentes consiste en:231Un equipo de agentes consiste en:

246 232 

247| Componente | Rol |233| Componente | Rol |

248| :----------------------- | :------------------------------------------------------------------------------------------------------- |234| :----------------------- | :----------------------------------------------------------------------------------------- |

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

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

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

252| **Buzón** | Sistema de mensajería para comunicación entre agentes |238| **Buzón** | Sistema de mensajería para comunicación entre agentes |


255 241 

256El sistema gestiona las dependencias de tareas automáticamente. Cuando un compañero de equipo completa una tarea de la que otras tareas dependen, las tareas bloqueadas se desbloquean sin intervención manual.242El sistema gestiona las dependencias de tareas automáticamente. Cuando un compañero de equipo completa una tarea de la que otras tareas dependen, las tareas bloqueadas se desbloquean sin intervención manual.

257 243 

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

259 245 

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

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

262 248 

263Claude Code genera ambos automáticamente cuando crea un equipo y los actualiza a medida que los compañeros de equipo se unen, se quedan inactivos o se van. La configuración del equipo contiene estado de tiempo de ejecución como IDs de sesión e IDs de panel tmux, así que no la edite manualmente ni la pre-autorice: sus cambios se sobrescriben en la siguiente actualización de estado.249Claude Code genera ambos automáticamente al inicio de la sesión y los actualiza a medida que los compañeros de equipo se unen, se quedan inactivos o se van. El directorio de configuración del equipo se elimina cuando la sesión termina. El directorio de lista de tareas persiste localmente y nunca se carga, por lo que las sesiones reanudadas mantienen sus tareas. La retención se rige por el mismo [`cleanupPeriodDays`](/es/settings#available-settings) que ya controla para transcripciones de sesión.

250 

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

264 252 

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

266 254 


364Los compañeros de equipo cargan contexto de proyecto automáticamente, incluyendo CLAUDE.md, MCP servers y skills, pero no heredan el historial de conversación del líder. Vea [Contexto y comunicación](#context-and-communication) para detalles. Incluya detalles específicos de la tarea en la indicación de generación:352Los compañeros de equipo cargan contexto de proyecto automáticamente, incluyendo CLAUDE.md, MCP servers y skills, pero no heredan el historial de conversación del líder. Vea [Contexto y comunicación](#context-and-communication) para detalles. Incluya detalles específicos de la tarea en la indicación de generación:

365 353 

366```text theme={null}354```text theme={null}

367Genera un compañero de equipo revisor de seguridad con la indicación: "Revisa el módulo355Spawn a security reviewer teammate with the prompt: "Review the authentication module

368de autenticación en src/auth/ para vulnerabilidades de seguridad. Enfócate en manejo356at src/auth/ for security vulnerabilities. Focus on token handling, session

369de tokens, gestión de sesiones y validación de entrada. La aplicación usa tokens JWT357management, and input validation. The app uses JWT tokens stored in

370almacenados en cookies httpOnly. Reporta cualquier problema con calificaciones de358httpOnly cookies. Report any issues with severity ratings."

371severidad."

372```359```

373 360 

374<h3 id="choose-an-appropriate-team-size">361<h3 id="choose-an-appropriate-team-size">


406A veces el líder comienza a implementar tareas por sí mismo en lugar de esperar a los compañeros de equipo. Si nota esto:393A veces el líder comienza a implementar tareas por sí mismo en lugar de esperar a los compañeros de equipo. Si nota esto:

407 394 

408```text theme={null}395```text theme={null}

409Espera a que tus compañeros de equipo completen sus tareas antes de proceder396Wait for your teammates to complete their tasks before proceeding

410```397```

411 398 

412<h3 id="start-with-research-and-review">399<h3 id="start-with-research-and-review">


486* **Sin reanudación de sesión con compañeros de equipo en proceso**: `/resume` y `/rewind` no restauran compañeros de equipo en proceso. Después de reanudar una sesión, el líder puede intentar enviar mensajes a compañeros de equipo que ya no existen. Si esto sucede, dígale al líder que genere nuevos compañeros de equipo.473* **Sin reanudación de sesión con compañeros de equipo en proceso**: `/resume` y `/rewind` no restauran compañeros de equipo en proceso. Después de reanudar una sesión, el líder puede intentar enviar mensajes a compañeros de equipo que ya no existen. Si esto sucede, dígale al líder que genere nuevos compañeros de equipo.

487* **El estado de la tarea puede retrasarse**: los compañeros de equipo a veces no marcan las tareas como completadas, lo que bloquea tareas dependientes. Si una tarea parece atrapada, verifique si el trabajo está realmente hecho y actualice el estado de la tarea manualmente o dígale al líder que empuje al compañero de equipo.474* **El estado de la tarea puede retrasarse**: los compañeros de equipo a veces no marcan las tareas como completadas, lo que bloquea tareas dependientes. Si una tarea parece atrapada, verifique si el trabajo está realmente hecho y actualice el estado de la tarea manualmente o dígale al líder que empuje al compañero de equipo.

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

489* **Un equipo por sesión**: un líder solo puede gestionar un equipo a la vez. Limpie el equipo actual antes de iniciar uno nuevo.476* **Un equipo por sesión**: una sesión tiene exactamente un equipo, limitado a esa sesión. No puede crear equipos nombrados adicionales ni compartir un equipo entre sesiones.

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

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

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

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

494 481 

agent-view.md +18 −9

Details

143 143 

144El resumen de una línea en cada fila es generado por un [modelo de clase Haiku](/es/model-config) para que la fila pueda decirle qué está haciendo la sesión, qué necesita o qué produjo sin abrir la transcripción. Mientras una sesión está funcionando activamente, el resumen se actualiza como máximo una vez cada 15 segundos, más una vez cuando cada turno termina.144El resumen de una línea en cada fila es generado por un [modelo de clase Haiku](/es/model-config) para que la fila pueda decirle qué está haciendo la sesión, qué necesita o qué produjo sin abrir la transcripción. Mientras una sesión está funcionando activamente, el resumen se actualiza como máximo una vez cada 15 segundos, más una vez cuando cada turno termina.

145 145 

146A partir de v2.1.161, cuando la sesión está ejecutando dos o más elementos de trabajo paralelos, como subagentes, comandos shell en segundo plano o monitores, aparece un recuento `done/total` como `2/5` antes del texto del resumen.

147 

146Cada actualización es una solicitud corta de clase Haiku a través de su proveedor normal, facturada y manejada bajo los mismos [términos de uso de datos](/es/data-usage) que la sesión misma. En proveedores de terceros como Bedrock, Vertex AI, Microsoft Foundry y puertas de enlace personalizadas, la solicitud se revierte al modelo principal de la sesión cuando no hay ningún modelo Haiku configurado. Establezca [`ANTHROPIC_DEFAULT_HAIKU_MODEL`](/es/model-config#environment-variables) para elegir el modelo para estos resúmenes en esos proveedores.148Cada actualización es una solicitud corta de clase Haiku a través de su proveedor normal, facturada y manejada bajo los mismos [términos de uso de datos](/es/data-usage) que la sesión misma. En proveedores de terceros como Bedrock, Vertex AI, Microsoft Foundry y puertas de enlace personalizadas, la solicitud se revierte al modelo principal de la sesión cuando no hay ningún modelo Haiku configurado. Establezca [`ANTHROPIC_DEFAULT_HAIKU_MODEL`](/es/model-config#environment-variables) para elegir el modelo para estos resúmenes en esos proveedores.

147 149 

148<h3 id="pull-request-status">150<h3 id="pull-request-status">


170 172 

171Presione `Space` en una fila seleccionada para abrir el panel de vista previa. Muestra qué necesita la sesión de usted, su salida más reciente y cualquier solicitud de extracción que haya abierto. La mayoría de las veces esto es suficiente, y nunca necesita abrir la transcripción completa.173Presione `Space` en una fila seleccionada para abrir el panel de vista previa. Muestra qué necesita la sesión de usted, su salida más reciente y cualquier solicitud de extracción que haya abierto. La mayoría de las veces esto es suficiente, y nunca necesita abrir la transcripción completa.

172 174 

175A partir de v2.1.161, cuando la sesión está ejecutando elementos de trabajo paralelos, el panel también nombra el que más tiempo lleva ejecutándose y cuánto tiempo ha estado en ejecución, para que pueda ver en qué está esperando la sesión sin conectarse.

176 

173Escriba una respuesta en el panel de vista previa y presione `Enter` para enviarla a esa sesión. Cuando la sesión está haciendo una pregunta de opción múltiple, el panel de vista previa muestra las opciones y puede presionar una tecla numérica para elegir una. Para otras sesiones bloqueadas, presione `Tab` para llenar la entrada con una respuesta sugerida que puede editar antes de enviar. Prefije una respuesta con `!` para enviar un comando Bash en su lugar.177Escriba una respuesta en el panel de vista previa y presione `Enter` para enviarla a esa sesión. Cuando la sesión está haciendo una pregunta de opción múltiple, el panel de vista previa muestra las opciones y puede presionar una tecla numérica para elegir una. Para otras sesiones bloqueadas, presione `Tab` para llenar la entrada con una respuesta sugerida que puede editar antes de enviar. Prefije una respuesta con `!` para enviar un comando Bash en su lugar.

174 178 

175Con [dictado de voz](/es/voice-dictation) habilitado, mantenga o toque su tecla de pulsar para hablar mientras la entrada de respuesta está enfocada para dictar una respuesta en lugar de escribirla. Lo mismo funciona en la entrada de distribución en la parte inferior de la vista de agentes.179A partir de v2.1.145, con [dictado de voz](/es/voice-dictation) habilitado, mantenga o toque su tecla de pulsar para hablar mientras la entrada de respuesta está enfocada para dictar una respuesta en lugar de escribirla. Lo mismo funciona en la entrada de distribución en la parte inferior de la vista de agentes.

176 180 

177Use `↑` y `↓` para echar un vistazo a sesiones adyacentes sin cerrar el panel, o `→` para conectarse.181Use `↑` y `↓` para echar un vistazo a sesiones adyacentes sin cerrar el panel, o `→` para conectarse.

178 182 


224| `a:<name>` | Sesiones que ejecutan el agente nombrado |228| `a:<name>` | Sesiones que ejecutan el agente nombrado |

225| `s:<state>` | Sesiones en el estado dado, como `s:working`. También acepta `s:blocked` para todo lo que lo espera a usted |229| `s:<state>` | Sesiones en el estado dado, como `s:working`. También acepta `s:blocked` para todo lo que lo espera a usted |

226| `#<number>` o una URL de PR | La sesión que trabaja en esa solicitud de extracción |230| `#<number>` o una URL de PR | La sesión que trabaja en esa solicitud de extracción |

231| Cualquier otra URL | La sesión cuyo primer mensaje contenía esa URL |

227 232 

228<h3 id="keyboard-shortcuts">233<h3 id="keyboard-shortcuts">

229 Atajos de teclado234 Atajos de teclado


478Cada sesión en segundo plano tiene un ID corto que puede usar desde el shell. El ID se imprime cuando inicia una sesión con `claude --bg`, y el ID de cada sesión es su nombre de directorio bajo `~/.claude/jobs/`. Estos comandos son útiles para scripting o cuando no desea abrir la vista de agentes.483Cada sesión en segundo plano tiene un ID corto que puede usar desde el shell. El ID se imprime cuando inicia una sesión con `claude --bg`, y el ID de cada sesión es su nombre de directorio bajo `~/.claude/jobs/`. Estos comandos son útiles para scripting o cuando no desea abrir la vista de agentes.

479 484 

480| Comando | Propósito |485| Comando | Propósito |

481| :--------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |486| :--------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

482| `claude agents` | Abrir la vista de agentes |487| `claude agents` | Abrir la vista de agentes |

483| `claude agents --cwd <path>` | Abrir la vista de agentes limitada a sesiones iniciadas bajo `<path>` |488| `claude agents --cwd <path>` | Abrir la vista de agentes limitada a sesiones iniciadas bajo `<path>` |

484| `claude agents --json` | Imprimir sesiones activas como un array JSON y salir. Cada entrada tiene `pid`, `cwd`, `kind` y `startedAt`, más `sessionId`, `name` y `status` cuando están configurados. Combinar con `--cwd <path>` para filtrar |489| `claude agents --json` | Imprimir sesiones activas como un array JSON y salir: cada sesión activa, más sesiones en segundo plano que aún están funcionando o bloqueadas incluso cuando su proceso ha salido. Agregue `--all` para incluir también sesiones en segundo plano completadas. Cada entrada tiene `cwd`, `kind` y `startedAt`. Las entradas en segundo plano también tienen `id`, utilizable con `claude attach`/`logs`/`stop`, y `state`: uno de `working`, `blocked`, `done`, `failed` o `stopped`. `pid` y `status` están presentes solo mientras el proceso está activo, más `waitingFor` cuando el estado es `waiting`, que indica en qué está bloqueada la sesión, como `permission prompt` o `input needed`; `sessionId` y `name` aparecen cuando están configurados. Combinar con `--cwd <path>` para filtrar |

485| `claude attach <id>` | Conectarse a una sesión en esta terminal |490| `claude attach <id>` | Conectarse a una sesión en esta terminal |

486| `claude logs <id>` | Imprimir la salida reciente de la sesión |491| `claude logs <id>` | Imprimir la salida reciente de la sesión |

487| `claude stop <id>` | Detener una sesión. También acepta `claude kill` |492| `claude stop <id>` | Detener una sesión. También acepta `claude kill` |


530 535 

531Cada sesión en segundo plano tiene la variable de entorno `CLAUDE_JOB_DIR` establecida en su directorio `~/.claude/jobs/<id>`, por lo que los comandos de shell que ejecuta la sesión pueden escribir archivos temporales en `$CLAUDE_JOB_DIR/tmp` sin colisionar con sesiones paralelas.536Cada sesión en segundo plano tiene la variable de entorno `CLAUDE_JOB_DIR` establecida en su directorio `~/.claude/jobs/<id>`, por lo que los comandos de shell que ejecuta la sesión pueden escribir archivos temporales en `$CLAUDE_JOB_DIR/tmp` sin colisionar con sesiones paralelas.

532 537 

533Para inspeccionar este estado sin leer los archivos directamente, ejecute `claude daemon status`. Informa si el supervisor es accesible, su ID de proceso y versión, el directorio de socket y cuántas sesiones en segundo plano están activas. `/doctor` incluye un resumen de la misma verificación. En Windows, `claude daemon status` expone el error de archivo subyacente cuando el archivo de clave de tubería del daemon está bloqueado o no es legible en lugar de informar una falla de conexión genérica.538Para inspeccionar este estado sin leer los archivos directamente, ejecute `claude daemon status`. Informa si el supervisor es accesible, su ID de proceso y versión, el directorio de socket y cuántas sesiones en segundo plano están activas. `/doctor` incluye un resumen de la misma verificación.

539 

540El comando también advierte cuando el supervisor en ejecución está en una versión diferente a la de `claude` que invocó, lo que sucede después de una actualización en la que el supervisor aún no se ha reiniciado. La advertencia muestra ambas versiones y le indica que ejecute `claude daemon stop --any` para adoptar la nueva versión. Cuando Claude Code se instala como un servicio del sistema operativo, el comando sugerido es `claude daemon stop` sin la bandera.

541 

542En Windows, `claude daemon status` expone el error de archivo subyacente cuando el archivo de clave de tubería del daemon está bloqueado o no es legible en lugar de informar una falla de conexión genérica.

534 543 

535<h3 id="turn-off-agent-view">544<h3 id="turn-off-agent-view">

536 Desactivar la vista de agentes545 Desactivar la vista de agentes


556 565 

557Antes de distribuir su primera sesión, la vista de agentes muestra una breve sugerencia de incorporación con mensajes de ejemplo en lugar de la lista de sesiones. Escriba un mensaje en la entrada en la parte inferior y presione `Enter` para distribuir su primera sesión.566Antes de distribuir su primera sesión, la vista de agentes muestra una breve sugerencia de incorporación con mensajes de ejemplo en lugar de la lista de sesiones. Escriba un mensaje en la entrada en la parte inferior y presione `Enter` para distribuir su primera sesión.

558 567 

559<h3 id="cannot-open-agents-because-background-tasks-are-running">568<h3 id="cannot-open-agents-because-work-is-running-in-the-background">

560 No se pueden abrir agentes porque hay tareas en segundo plano en ejecución569 No se pueden abrir agentes porque hay trabajo en ejecución en segundo plano

561</h3>570</h3>

562 571 

563Si presionar `←` para poner en segundo plano la sesión actual muestra `Cannot open agents — N background task(s) running`, la sesión tiene trabajo en vuelo como un subagente, un flujo de trabajo dinámico o un comando de shell en segundo plano, y el atajo no lo abandonará silenciosamente. Ejecute `/tasks` para ver qué se está ejecutando, luego `/bg` para confirmar abandonarlos. Vea [Desde dentro de una sesión](#from-inside-a-session) para saber qué se transfiere y qué no cuando pone en segundo plano.572Si presionar `←` para poner en segundo plano la sesión actual muestra `Cannot open agents — N still running in the background`, la sesión tiene trabajo en vuelo como un subagente, un flujo de trabajo dinámico o un comando de shell en segundo plano, y el atajo no lo abandonará silenciosamente. Ejecute `/tasks` para ver qué se está ejecutando, luego `/bg` para confirmar abandonarlos. Vea [Desde dentro de una sesión](#from-inside-a-session) para saber qué se transfiere y qué no cuando pone en segundo plano.

564 573 

565<h3 id="prompt-rejected-as-too-short">574<h3 id="prompt-rejected-as-too-short">

566 Mensaje rechazado por ser demasiado corto575 Mensaje rechazado por ser demasiado corto


569La entrada de distribución espera una descripción de tarea, no un abridor conversacional. Un mensaje más corto de cuatro caracteres se rechaza con una sugerencia `Too short` para que una pulsación de tecla extraviada no inicie una sesión. Describa lo que desea que haga la sesión, como `investigate the flaky checkout test`.578La entrada de distribución espera una descripción de tarea, no un abridor conversacional. Un mensaje más corto de cuatro caracteres se rechaza con una sugerencia `Too short` para que una pulsación de tecla extraviada no inicie una sesión. Describa lo que desea que haga la sesión, como `investigate the flaky checkout test`.

570 579 

571<h3 id="sessions-show-as-failed-after-shutdown">580<h3 id="sessions-show-as-failed-after-shutdown">

572 Las sesiones se muestran como detenidas después del apagado581 Las sesiones se muestran como fallidas después del apagado

573</h3>582</h3>

574 583 

575Apagar o reiniciar su máquina detiene las sesiones en segundo plano en ejecución, por lo que se muestran como detenidas cuando abre la vista de agentes la próxima vez. Conéctese, eche un vistazo o responda a cualquiera de ellas y la sesión se reiniciará desde donde se quedó.584Apagar o reiniciar su máquina detiene las sesiones en segundo plano en ejecución, por lo que se muestran como fallidas cuando abre la vista de agentes la próxima vez. Conéctese, eche un vistazo o responda a cualquiera de ellas y la sesión se reiniciará desde donde se quedó.

576 585 

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

578 587 

agents.md +2 −2

Details

9[Subagentes](/es/sub-agents), [vista de agentes](/es/agent-view), [equipos de agentes](/es/agent-teams) y [flujos de trabajo dinámicos](/es/workflows) cada uno paraleliza el trabajo de una manera diferente. El correcto depende de si desea permanecer en cada conversación usted mismo, delegar tareas y volver a verificar más tarde, o si desea que Claude coordine un grupo de trabajadores para usted.9[Subagentes](/es/sub-agents), [vista de agentes](/es/agent-view), [equipos de agentes](/es/agent-teams) y [flujos de trabajo dinámicos](/es/workflows) cada uno paraleliza el trabajo de una manera diferente. El correcto depende de si desea permanecer en cada conversación usted mismo, delegar tareas y volver a verificar más tarde, o si desea que Claude coordine un grupo de trabajadores para usted.

10 10 

11| Enfoque | Lo que le proporciona | Úselo cuando |11| Enfoque | Lo que le proporciona | Úselo cuando |

12| :------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |12| :------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

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

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

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

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

17 17 

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

19 19 

Details

6 6 

7> Aprenda a configurar Claude Code a través de Amazon Bedrock, incluyendo configuración, configuración de IAM y solución de problemas.7> Aprenda a configurar Claude Code a través de Amazon Bedrock, incluyendo configuración, configuración de IAM y solución de problemas.

8 8 

9export const ContactSalesCard = ({surface}) => {

10 const utm = content => `utm_source=claude_code&utm_medium=docs&utm_content=${surface}_${content}`;

11 const iconArrowRight = (size = 13) => <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2.5" strokeLinecap="round" strokeLinejoin="round" aria-hidden="true">

12 <line x1="5" y1="12" x2="19" y2="12" />

13 <polyline points="12 5 19 12 12 19" />

14 </svg>;

15 const STYLES = `

16.cc-cs {

17 --cs-slate: #141413;

18 --cs-clay: #d97757;

19 --cs-clay-deep: #c6613f;

20 --cs-gray-000: #ffffff;

21 --cs-gray-700: #3d3d3a;

22 --cs-border-default: rgba(31, 30, 29, 0.15);

23 font-family: inherit;

24}

25.dark .cc-cs {

26 --cs-slate: #f0eee6;

27 --cs-gray-000: #262624;

28 --cs-gray-700: #bfbdb4;

29 --cs-border-default: rgba(240, 238, 230, 0.14);

30}

31.cc-cs-card {

32 display: flex; align-items: center; justify-content: space-between;

33 gap: 16px; padding: 14px 16px; margin: 0;

34 background: var(--cs-gray-000); border: 0.5px solid var(--cs-border-default);

35 border-radius: 8px; flex-wrap: wrap;

36}

37.cc-cs-text { font-size: 13px; color: var(--cs-gray-700); line-height: 1.5; flex: 1; min-width: 240px; }

38.cc-cs-text strong { font-weight: 550; color: var(--cs-slate); }

39.cc-cs-actions { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }

40.cc-cs-btn-clay {

41 display: inline-flex; align-items: center; gap: 8px;

42 background: var(--cs-clay-deep); color: #fff; border: none;

43 border-radius: 8px; padding: 8px 14px;

44 font-size: 13px; font-weight: 500;

45 transition: background-color 0.15s; white-space: nowrap;

46}

47.cc-cs-btn-clay:hover { background: var(--cs-clay); }

48.cc-cs-btn-ghost {

49 display: inline-flex; align-items: center; gap: 8px;

50 background: transparent; color: var(--cs-gray-700);

51 border: 0.5px solid var(--cs-border-default);

52 border-radius: 8px; padding: 8px 14px;

53 font-size: 13px; font-weight: 500;

54}

55.cc-cs-btn-ghost:hover { background: rgba(0, 0, 0, 0.04); }

56.dark .cc-cs-btn-ghost:hover { background: rgba(255, 255, 255, 0.04); }

57@media (max-width: 720px) {

58 .cc-cs-actions { width: 100%; }

59}

60`;

61 return <div className="cc-cs not-prose">

62 <style>{STYLES}</style>

63 <div className="cc-cs-card">

64 <div className="cc-cs-text">

65 <strong>Deploying Claude Code across your organization?</strong> Talk to sales about enterprise plans, SSO, and centralized billing.

66 </div>

67 <div className="cc-cs-actions">

68 <a href={`https://claude.com/pricing?${utm('view_plans')}#plans-business`} className="cc-cs-btn-ghost">

69 View plans

70 </a>

71 <a href={`https://claude.com/contact-sales?${utm('contact_sales')}`} className="cc-cs-btn-clay">

72 Contact sales {iconArrowRight()}

73 </a>

74 </div>

75 </div>

76 </div>;

77};

78 

79<ContactSalesCard surface="bedrock" />

80 

9<h2 id="prerequisites">81<h2 id="prerequisites">

10 Requisitos previos82 Requisitos previos

11</h2>83</h2>


141 "Credentials": {213 "Credentials": {

142 "AccessKeyId": "value",214 "AccessKeyId": "value",

143 "SecretAccessKey": "value",215 "SecretAccessKey": "value",

144 "SessionToken": "value"216 "SessionToken": "value",

217 "Expiration": "2026-01-01T00:00:00Z"

145 }218 }

146}219}

147```220```

148 221 

222`Expiration` es opcional. {/* min-version: 2.1.176 */}A partir de Claude Code v2.1.176, cuando el comando devuelve un `Expiration` válido en ISO 8601, Claude Code almacena en caché las credenciales hasta cinco minutos antes de esa hora. Sin él, o en versiones anteriores, las credenciales se almacenan en caché durante una hora.

223 

149<h3 id="3-configure-claude-code">224<h3 id="3-configure-claude-code">

150 3. Configurar Claude Code225 3. Configurar Claude Code

151</h3>226</h3>


155```bash theme={null}230```bash theme={null}

156# Enable Bedrock integration231# Enable Bedrock integration

157export CLAUDE_CODE_USE_BEDROCK=1232export CLAUDE_CODE_USE_BEDROCK=1

158export AWS_REGION=us-east-1 # or your preferred region233export AWS_REGION=us-east-1 # optional if your AWS profile already sets a region

159 234 

160# Optional: Override the AWS region for the small/fast model (Bedrock and Mantle).235# Optional: Override the AWS region for the small/fast model (Bedrock and Mantle).

161# On Bedrock, has no effect without ANTHROPIC_DEFAULT_HAIKU_MODEL236# On Bedrock, has no effect without ANTHROPIC_DEFAULT_HAIKU_MODEL


168 243 

169Al habilitar Bedrock para Claude Code, tenga en cuenta lo siguiente:244Al habilitar Bedrock para Claude Code, tenga en cuenta lo siguiente:

170 245 

171* `AWS_REGION` es una variable de entorno requerida. Claude Code no lee desde el archivo de configuración `.aws` para esta configuración.246* {/* min-version: 2.1.172 */}A partir de v2.1.172, solo necesita establecer `AWS_REGION` para anular la región de su perfil de AWS o cuando su perfil no tiene región. Claude Code resuelve la región en este orden:

247 

248 * `AWS_REGION`

249 * `AWS_DEFAULT_REGION`

250 * la `region` establecida en su perfil de AWS activo, leída primero desde el archivo de credenciales compartidas de AWS y luego desde el archivo de configuración compartida, coincidiendo con la precedencia del SDK de AWS

251 * `us-east-1`

252 

253 El perfil activo es `AWS_PROFILE` si está establecido, de lo contrario `default`. Establezca `AWS_SHARED_CREDENTIALS_FILE` o `AWS_CONFIG_FILE` para apuntar a rutas de archivo no predeterminadas. Ejecute `/status` para ver la región resuelta. Cuando la región proviene de sus archivos de configuración de AWS o del fallback predeterminado, `/status` también anota la fuente. En v2.1.171 y anteriores, Claude Code no lee los archivos de configuración de AWS, así que establezca `AWS_REGION` explícitamente.

172* Cuando se usa Bedrock, el comando `/logout` no está disponible ya que la autenticación se maneja a través de credenciales de AWS.254* Cuando se usa Bedrock, el comando `/logout` no está disponible ya que la autenticación se maneja a través de credenciales de AWS.

173* La herramienta WebSearch no está disponible en Bedrock. Vea [Comportamiento de la herramienta WebSearch](/es/tools-reference#websearch-tool-behavior).255* La herramienta WebSearch no está disponible en Bedrock. Vea [Comportamiento de la herramienta WebSearch](/es/tools-reference#websearch-tool-behavior).

174* Puede usar archivos de configuración para variables de entorno como `AWS_PROFILE` que no desea filtrar a otros procesos. Vea [Configuración](/es/settings) para más información.256* Puede usar archivos de configuración para variables de entorno como `AWS_PROFILE` que no desea filtrar a otros procesos. Vea [Configuración](/es/settings) para más información.


178</h3>260</h3>

179 261 

180<Warning>262<Warning>

181 Fije versiones de modelo específicas al implementar para múltiples usuarios. Sin fijar, alias de modelo como `sonnet` y `opus` se resuelven a la versión más reciente, que puede no estar disponible aún en su cuenta de Bedrock cuando Anthropic lanza una actualización. Claude Code [retrocede](#startup-model-checks) a la versión anterior al inicio cuando la más reciente no está disponible, pero fijar le permite controlar cuándo sus usuarios se mueven a un nuevo modelo.263 Fije versiones de modelo específicas al implementar para múltiples usuarios. Sin fijar, alias de modelo como `sonnet` y `opus` se resuelven al valor predeterminado integrado de Claude Code para Bedrock, que puede estar rezagado con respecto a la versión más reciente y puede que aún no esté disponible en su cuenta. Claude Code [retrocede](#startup-model-checks) a la versión anterior al inicio cuando el valor predeterminado no está disponible, pero fijar le permite controlar cuándo sus usuarios se mueven a un nuevo modelo.

182</Warning>264</Warning>

183 265 

184Establezca estas variables de entorno en IDs de modelo de Bedrock específicos.266Establezca estas variables de entorno en IDs de modelo de Bedrock específicos.


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

192```274```

193 275 

194Estas variables utilizan IDs de perfil de inferencia entre regiones (con el prefijo `us.`). Si utiliza un prefijo de región diferente o perfiles de inferencia de aplicación, ajuste en consecuencia. Para IDs de modelo actuales y heredados, vea [Descripción general de modelos](https://platform.claude.com/docs/en/about-claude/models/overview). Vea [Configuración de modelo](/es/model-config#pin-models-for-third-party-deployments) para la lista completa de variables de entorno.276Estas variables utilizan IDs de perfil de inferencia entre regiones (con el prefijo `us.`). Si utiliza un prefijo de región diferente o perfiles de inferencia de aplicación, ajuste en consecuencia. En regiones de AWS GovCloud, utilice el prefijo `us-gov.`. Para IDs de modelo actuales y heredados, vea [Descripción general de modelos](https://platform.claude.com/docs/en/about-claude/models/overview). Vea [Configuración de modelo](/es/model-config#pin-models-for-third-party-deployments) para la lista completa de variables de entorno.

195 277 

196Claude Code utiliza estos modelos predeterminados cuando no se establecen variables de fijación:278Claude Code utiliza estos modelos predeterminados cuando no se establecen variables de fijación:

197 279 


366export AWS_REGION=us-east-1448export AWS_REGION=us-east-1

367```449```

368 450 

369Claude Code construye la URL del punto final desde `AWS_REGION`. Para anularla para un punto final personalizado o puerta de enlace, establezca `ANTHROPIC_BEDROCK_MANTLE_BASE_URL`.451Claude Code construye la URL del punto final desde la región de AWS. A partir de v2.1.172, la región se resuelve con la misma precedencia que [Bedrock anterior](#3-configure-claude-code); las versiones anteriores utilizan solo `AWS_REGION`. Para anular la URL para un punto final personalizado o puerta de enlace, establezca `ANTHROPIC_BEDROCK_MANTLE_BASE_URL`.

370 452 

371Ejecute `/status` dentro de Claude Code para confirmar. La línea del proveedor muestra `Amazon Bedrock (Mantle)` cuando Mantle está activo.453Ejecute `/status` dentro de Claude Code para confirmar. La línea del proveedor muestra `Amazon Bedrock (Mantle)` cuando Mantle está activo.

372 454 

Details

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

137* **Aviso de helper lento**: si `apiKeyHelper` tarda más de 10 segundos en devolver una clave, Claude Code muestra un aviso de advertencia en la barra de símbolo del sistema mostrando el tiempo transcurrido. Si ve este aviso regularmente, verifique si su script de credenciales se puede optimizar.137* **Aviso de helper lento**: si `apiKeyHelper` tarda más de 10 segundos en devolver una clave, Claude Code muestra un aviso de advertencia en la barra de símbolo del sistema mostrando el tiempo transcurrido. Si ve este aviso regularmente, verifique si su script de credenciales se puede optimizar.

138 138 

139`apiKeyHelper`, `ANTHROPIC_API_KEY` y `ANTHROPIC_AUTH_TOKEN` se aplican solo a sesiones de CLI de terminal. Claude Desktop y sesiones remotas usan OAuth exclusivamente y no llaman a `apiKeyHelper` ni leen variables de entorno de clave API.139`apiKeyHelper`, `ANTHROPIC_API_KEY` y `ANTHROPIC_AUTH_TOKEN` se aplican solo a sesiones de CLI de terminal. Claude Desktop y sesiones en la nube usan OAuth exclusivamente y no llaman a `apiKeyHelper` ni leen variables de entorno de clave API.

140 140 

141<h3 id="authentication-precedence">141<h3 id="authentication-precedence">

142 Precedencia de autenticación142 Precedencia de autenticación

Details

6 6 

7> Indique al clasificador del modo automático qué repositorios, buckets y dominios confía su organización. Establezca el contexto del entorno, anule las reglas de bloqueo y permiso predeterminadas e inspeccione su configuración efectiva con los subcomandos de CLI del modo automático.7> Indique al clasificador del modo automático qué repositorios, buckets y dominios confía su organización. Establezca el contexto del entorno, anule las reglas de bloqueo y permiso predeterminadas e inspeccione su configuración efectiva con los subcomandos de CLI del modo automático.

8 8 

9[El modo automático](/es/permission-modes#eliminate-prompts-with-auto-mode) permite que Claude Code se ejecute sin solicitudes de permiso al enrutar cada llamada de herramienta a través de un clasificador que bloquea cualquier cosa irreversible, destructiva o dirigida fuera de su entorno. Utilice el bloque de configuración `autoMode` para indicar a ese clasificador qué repositorios, buckets y dominios confía su organización, de modo que deje de bloquear operaciones internas rutinarias.9[El modo automático](/es/permission-modes#eliminate-prompts-with-auto-mode) permite que Claude Code se ejecute sin solicitudes de permiso rutinarias al enrutar llamadas de herramienta a través de un clasificador que bloquea cualquier cosa irreversible, destructiva o dirigida fuera de su entorno. Las reglas de denegación y solicitud explícita se evalúan antes del clasificador y aún bloquean o solicitan. Utilice el bloque de configuración `autoMode` para indicar a ese clasificador qué repositorios, buckets y dominios confía su organización, de modo que deje de bloquear operaciones internas rutinarias.

10 10 

11<Note>11<Note>

12 El modo automático está disponible para todos los usuarios en la API de Anthropic. En Amazon Bedrock, Google Cloud Vertex AI y Microsoft Foundry, primero debe [establecer `CLAUDE_CODE_ENABLE_AUTO_MODE`](/es/permission-modes#enable-auto-mode-on-bedrock-vertex-ai-or-foundry). Si Claude Code informa que el modo automático no está disponible para su cuenta, consulte los [requisitos completos](/es/permission-modes#eliminate-prompts-with-auto-mode), que también cubren los modelos compatibles y la habilitación de administrador en los planes Team y Enterprise.12 El modo automático está disponible para todos los usuarios en la API de Anthropic. En Amazon Bedrock, Google Cloud Vertex AI y Microsoft Foundry, primero debe [establecer `CLAUDE_CODE_ENABLE_AUTO_MODE`](/es/permission-modes#enable-auto-mode-on-bedrock-vertex-ai-or-foundry). Si Claude Code informa que el modo automático no está disponible para su cuenta, consulte los [requisitos completos](/es/permission-modes#eliminate-prompts-with-auto-mode), que también cubren los modelos compatibles y la habilitación de administrador en los planes Team y Enterprise.


35| Ámbito | Archivo | Usar para |35| Ámbito | Archivo | Usar para |

36| :------------------------------- | :-------------------------------------------------------- | :------------------------------------------------------------------- |36| :------------------------------- | :-------------------------------------------------------- | :------------------------------------------------------------------- |

37| Un desarrollador | `~/.claude/settings.json` | Infraestructura de confianza personal |37| Un desarrollador | `~/.claude/settings.json` | Infraestructura de confianza personal |

38| Un proyecto, un desarrollador | `.claude/settings.local.json` | Buckets o servicios de confianza por proyecto, gitignored |38| Un proyecto, un desarrollador | `.claude/settings.local.json` | Buckets o servicios de confianza por proyecto |

39| En toda la organización | [Configuración administrada](/es/server-managed-settings) | Infraestructura de confianza distribuida a todos los desarrolladores |39| En toda la organización | [Configuración administrada](/es/server-managed-settings) | Infraestructura de confianza distribuida a todos los desarrolladores |

40| Bandera `--settings` o Agent SDK | JSON en línea | Anulaciones por invocación para automatización |40| Bandera `--settings` o Agent SDK | JSON en línea | Anulaciones por invocación para automatización |

41 41 


188Para reaccionar a las denegaciones mediante programación, utilice el [hook `PermissionDenied`](/es/hooks#permissiondenied).188Para reaccionar a las denegaciones mediante programación, utilice el [hook `PermissionDenied`](/es/hooks#permissiondenied).

189 189 

190<h2 id="see-also">190<h2 id="see-also">

191 See also191 Ver también

192</h2>192</h2>

193 193 

194* [Permission modes](/es/permission-modes#eliminate-prompts-with-auto-mode): qué es el modo automático, qué bloquea de forma predeterminada y cómo habilitarlo194* [Modos de permiso](/es/permission-modes#eliminate-prompts-with-auto-mode): qué es el modo automático, qué bloquea de forma predeterminada y cómo habilitarlo

195* [Managed settings](/es/server-managed-settings): implemente la configuración `autoMode` en toda su organización195* [Configuración administrada](/es/server-managed-settings): implemente la configuración `autoMode` en toda su organización

196* [Permissions](/es/permissions): reglas de permiso, pregunta y denegación que se aplican antes de que se ejecute el clasificador196* [Permisos](/es/permissions): reglas de permiso, pregunta y denegación que se aplican antes de que se ejecute el clasificador

197* [Settings](/es/settings): la referencia de configuración completa, incluida la clave `autoMode`197* [Configuración](/es/settings): la referencia de configuración completa, incluida la clave `autoMode`

champion-kit.md +1 −1

Details

4 4 

5# Kit de campeón5# Kit de campeón

6 6 

7> Un manual para ingenieros que defienden Claude Code internamente: qué compartir, cómo responder preguntas y cómo aumentar la adopción en tu equipo.7> Un manual para ingenieros que defienden Claude Code internamente: qué compartir, cómo responder preguntas y cómo aumentar la adopción en su equipo.

8 8 

9Esta página es para ingenieros individuales que ya están usando Claude Code y quieren ayudar a su equipo a adoptarlo. Cubre qué compartir, cómo responder las preguntas que recibirá, un manual de treinta días y respuestas a preocupaciones comunes.9Esta página es para ingenieros individuales que ya están usando Claude Code y quieren ayudar a su equipo a adoptarlo. Cubre qué compartir, cómo responder las preguntas que recibirá, un manual de treinta días y respuestas a preocupaciones comunes.

10 10 

channels.md +12 −12

Details

29Para crear su propio channel, consulte la [referencia de Channels](/es/channels-reference).29Para crear su propio channel, consulte la [referencia de Channels](/es/channels-reference).

30 30 

31<h2 id="supported-channels">31<h2 id="supported-channels">

32 Channels compatibles32 Canales compatibles

33</h2>33</h2>

34 34 

35Cada channel compatible es un plugin que requiere [Bun](https://bun.sh). Para una demostración práctica del flujo de plugins antes de conectar una plataforma real, pruebe el [inicio rápido de fakechat](#quickstart).35Cada canal compatible es un plugin que requiere [Bun](https://bun.sh). Para una demostración práctica del flujo de plugins antes de conectar una plataforma real, pruebe el [inicio rápido de fakechat](#quickstart).

36 36 

37<Tabs>37<Tabs>

38 <Tab title="Telegram">38 <Tab title="Telegram">


65 Esto lo guarda en `~/.claude/channels/telegram/.env`. También puede establecer `TELEGRAM_BOT_TOKEN` en su entorno de shell antes de lanzar Claude Code.65 Esto lo guarda en `~/.claude/channels/telegram/.env`. También puede establecer `TELEGRAM_BOT_TOKEN` en su entorno de shell antes de lanzar Claude Code.

66 </Step>66 </Step>

67 67 

68 <Step title="Reiniciar con channels habilitados">68 <Step title="Reiniciar con canales habilitados">

69 Salga de Claude Code y reinicie con la bandera de channel. Esto inicia el plugin de Telegram, que comienza a sondear mensajes de su bot:69 Salga de Claude Code y reinicie con la bandera de canal. Esto inicia el plugin de Telegram, que comienza a sondear mensajes de su bot:

70 70 

71 ```bash theme={null}71 ```bash theme={null}

72 claude --channels plugin:telegram@claude-plugins-official72 claude --channels plugin:telegram@claude-plugins-official


76 <Step title="Emparejar su cuenta">76 <Step title="Emparejar su cuenta">

77 Abra Telegram y envíe cualquier mensaje a su bot. El bot responde con un código de emparejamiento.77 Abra Telegram y envíe cualquier mensaje a su bot. El bot responde con un código de emparejamiento.

78 78 

79 <Note>Si su bot no responde, asegúrese de que Claude Code se esté ejecutando con `--channels` del paso anterior. El bot solo puede responder mientras el channel está activo.</Note>79 <Note>Si su bot no responde, asegúrese de que Claude Code se esté ejecutando con `--channels` del paso anterior. El bot solo puede responder mientras el canal está activo.</Note>

80 80 

81 De vuelta en Claude Code, ejecute:81 De vuelta en Claude Code, ejecute:

82 82 


140 Esto lo guarda en `~/.claude/channels/discord/.env`. También puede establecer `DISCORD_BOT_TOKEN` en su entorno de shell antes de lanzar Claude Code.140 Esto lo guarda en `~/.claude/channels/discord/.env`. También puede establecer `DISCORD_BOT_TOKEN` en su entorno de shell antes de lanzar Claude Code.

141 </Step>141 </Step>

142 142 

143 <Step title="Reiniciar con channels habilitados">143 <Step title="Reiniciar con canales habilitados">

144 Salga de Claude Code y reinicie con la bandera de channel. Esto conecta el plugin de Discord para que su bot pueda recibir y responder a mensajes:144 Salga de Claude Code y reinicie con la bandera de canal. Esto conecta el plugin de Discord para que su bot pueda recibir y responder a mensajes:

145 145 

146 ```bash theme={null}146 ```bash theme={null}

147 claude --channels plugin:discord@claude-plugins-official147 claude --channels plugin:discord@claude-plugins-official


151 <Step title="Emparejar su cuenta">151 <Step title="Emparejar su cuenta">

152 Envíe un mensaje directo a su bot en Discord. El bot responde con un código de emparejamiento.152 Envíe un mensaje directo a su bot en Discord. El bot responde con un código de emparejamiento.

153 153 

154 <Note>Si su bot no responde, asegúrese de que Claude Code se esté ejecutando con `--channels` del paso anterior. El bot solo puede responder mientras el channel está activo.</Note>154 <Note>Si su bot no responde, asegúrese de que Claude Code se esté ejecutando con `--channels` del paso anterior. El bot solo puede responder mientras el canal está activo.</Note>

155 155 

156 De vuelta en Claude Code, ejecute:156 De vuelta en Claude Code, ejecute:

157 157 


171 <Tab title="iMessage">171 <Tab title="iMessage">

172 Vea el [código fuente completo de iMessage](https://github.com/anthropics/claude-plugins-official/tree/main/external_plugins/imessage).172 Vea el [código fuente completo de iMessage](https://github.com/anthropics/claude-plugins-official/tree/main/external_plugins/imessage).

173 173 

174 El channel de iMessage lee su base de datos de Mensajes directamente y envía respuestas a través de AppleScript. Requiere macOS y no necesita token de bot ni servicio externo.174 El canal de iMessage lee su base de datos de Mensajes directamente y envía respuestas a través de AppleScript. Requiere macOS y no necesita token de bot ni servicio externo.

175 175 

176 <Steps>176 <Steps>

177 <Step title="Otorgar Acceso Completo al Disco">177 <Step title="Otorgar Acceso Completo al Disco">


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

191 </Step>191 </Step>

192 192 

193 <Step title="Reiniciar con channels habilitados">193 <Step title="Reiniciar con canales habilitados">

194 Salga de Claude Code y reinicie con la bandera de channel:194 Salga de Claude Code y reinicie con la bandera de canal:

195 195 

196 ```bash theme={null}196 ```bash theme={null}

197 claude --channels plugin:imessage@claude-plugins-official197 claude --channels plugin:imessage@claude-plugins-official


217 </Tab>217 </Tab>

218</Tabs>218</Tabs>

219 219 

220También puede [crear su propio channel](/es/channels-reference) para sistemas que aún no tienen un plugin.220También puede [crear su propio canal](/es/channels-reference) para sistemas que aún no tienen un plugin.

221 221 

222<h2 id="quickstart">222<h2 id="quickstart">

223 Inicio rápido223 Inicio rápido

Details

142 claude --dangerously-load-development-channels server:webhook142 claude --dangerously-load-development-channels server:webhook

143 ```143 ```

144 144 

145 La primera vez que inicies una sesión en este proyecto, Claude Code solicita consentimiento antes de usar el nuevo servidor de `.mcp.json`. El diálogo informa "Nuevo servidor MCP encontrado en este proyecto: webhook". Selecciona **Usar este servidor MCP** para continuar.

146 

145 Cuando Claude Code se inicia, lee tu configuración de MCP, genera tu `webhook.ts` como un subproceso, y el oyente HTTP se inicia automáticamente en el puerto que configuraste (8788 en este ejemplo). No necesitas ejecutar el servidor tú mismo.147 Cuando Claude Code se inicia, lee tu configuración de MCP, genera tu `webhook.ts` como un subproceso, y el oyente HTTP se inicia automáticamente en el puerto que configuraste (8788 en este ejemplo). No necesitas ejecutar el servidor tú mismo.

146 148 

149 Un aviso tenue debajo del banner de inicio confirma que el canal está registrado: `Channels (experimental) messages from server:webhook inject directly in this session · restart without --dangerously-load-development-channels to stop`.

150 

147 Si ves "bloqueado por política de organización", tu administrador de organización necesita [habilitar canales](/es/channels#enterprise-controls) primero.151 Si ves "bloqueado por política de organización", tu administrador de organización necesita [habilitar canales](/es/channels#enterprise-controls) primero.

148 152 

149 En una terminal separada, simula un webhook enviando un POST HTTP con un mensaje a tu servidor. Este ejemplo envía una alerta de fallo de compilación al puerto 8788 (o el puerto que configuraste):153 En una terminal separada, simula un webhook enviando un POST HTTP con un mensaje a tu servidor. Este ejemplo envía una alerta de fallo de compilación al puerto 8788 (o el puerto que configuraste):


753curl -d "list the files in this directory" -H "X-Sender: dev" localhost:8788757curl -d "list the files in this directory" -H "X-Sender: dev" localhost:8788

754```758```

755 759 

756El diálogo de permiso local se abre en tu terminal de Claude Code. Un momento después la solicitud aparece en el flujo `/events`, incluyendo el ID de cinco letras. Apruébalo desde el lado remoto:760Listar archivos es de solo lectura, por lo que Claude lo ejecuta sin aprobación. El diálogo de permiso se abre cuando Claude llama a la herramienta `reply` para enviar su respuesta de vuelta. El diálogo local se abre en tu terminal de Claude Code, y un momento después la solicitud para `mcp__webhook__reply` aparece en el flujo `/events`, incluyendo el ID de cinco letras. Apruébalo desde el lado remoto:

757 761 

758```bash theme={null}762```bash theme={null}

759curl -d "yes <id>" -H "X-Sender: dev" localhost:8788763curl -d "yes <id>" -H "X-Sender: dev" localhost:8788

760```764```

761 765 

762El diálogo local se cierra y la herramienta se ejecuta. La respuesta de Claude vuelve a través de la herramienta `reply` y también llega al flujo.766El diálogo local se cierra, la herramienta `reply` se ejecuta, y la respuesta de Claude llega al flujo.

763 767 

764Las tres piezas específicas del canal en este archivo:768Las tres piezas específicas del canal en este archivo:

765 769 


784* [Canales](/es/channels) para instalar y usar Telegram, Discord, iMessage o la demostración fakechat, y para habilitar canales para una organización de equipo o empresa788* [Canales](/es/channels) para instalar y usar Telegram, Discord, iMessage o la demostración fakechat, y para habilitar canales para una organización de equipo o empresa

785* [Implementaciones de canal de trabajo](https://github.com/anthropics/claude-plugins-official/tree/main/external_plugins) para código de servidor completo con flujos de emparejamiento, herramientas de respuesta y archivos adjuntos789* [Implementaciones de canal de trabajo](https://github.com/anthropics/claude-plugins-official/tree/main/external_plugins) para código de servidor completo con flujos de emparejamiento, herramientas de respuesta y archivos adjuntos

786* [MCP](/es/mcp) para el protocolo subyacente que implementan los servidores de canal790* [MCP](/es/mcp) para el protocolo subyacente que implementan los servidores de canal

787* [Complementos](/es/plugins) para empaquetar tu canal para que los usuarios puedan instalarlo con `/plugin install`791* [Plugins](/es/plugins) para empaquetar su canal para que los usuarios puedan instalarlo con `/plugin install`

chrome.md +2 −1

Details

264 Ver también264 Ver también

265</h2>265</h2>

266 266 

267* [Usar la computadora](/es/computer-use): controlar aplicaciones nativas de macOS cuando una tarea no se puede realizar en un navegador

267* [Usar Claude Code en VS Code](/es/vs-code#automate-browser-tasks-with-chrome): automatización del navegador en la extensión de VS Code268* [Usar Claude Code en VS Code](/es/vs-code#automate-browser-tasks-with-chrome): automatización del navegador en la extensión de VS Code

268* [Referencia de CLI](/es/cli-reference): banderas de línea de comandos incluyendo `--chrome`269* [Referencia de CLI](/es/cli-reference): banderas de línea de comandos incluyendo `--chrome`

269* [Flujos de trabajo comunes](/es/common-workflows): más formas de usar Claude Code270* [Flujos de trabajo comunes](/es/common-workflows): más formas de usar Claude Code

270* [Datos y privacidad](/es/data-usage): cómo Claude Code maneja tus datos271* [Datos y privacidad](/es/data-usage): cómo Claude Code maneja sus datos

271* [Comenzar con Claude en Chrome](https://support.claude.com/en/articles/12012173-getting-started-with-claude-in-chrome): documentación completa para la extensión de Chrome, incluyendo atajos de teclado, programación y permisos272* [Comenzar con Claude en Chrome](https://support.claude.com/en/articles/12012173-getting-started-with-claude-in-chrome): documentación completa para la extensión de Chrome, incluyendo atajos de teclado, programación y permisos

Details

59 59 

60Cada sesión se ejecuta en una VM nueva administrada por Anthropic con su repositorio clonado. Esta sección cubre qué está disponible cuando comienza una sesión y cómo personalizarlo.60Cada sesión se ejecuta en una VM nueva administrada por Anthropic con su repositorio clonado. Esta sección cubre qué está disponible cuando comienza una sesión y cómo personalizarlo.

61 61 

62<h3 id="what-s-available-in-cloud-sessions">62<h3 id="whats-available-in-cloud-sessions">

63 Qué está disponible en sesiones en la nube63 Qué está disponible en sesiones en la nube

64</h3>64</h3>

65 65 

66Las sesiones en la nube comienzan desde un clon nuevo de su repositorio. Cualquier cosa comprometida con el repositorio está disponible. Cualquier cosa que haya instalado o configurado solo en su propia máquina no lo está.66Las sesiones en la nube comienzan desde un clon nuevo de su repositorio. Cualquier cosa comprometida con el repositorio está disponible. Cualquier cosa que haya instalado o configurado solo en su propia máquina no lo está.

67 67 

68| | Disponible en sesiones en la nube | Por qué |68| | Disponible en sesiones en la nube | Por qué |

69| :--------------------------------------------------------------------------- | :-------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------- |69| :---------------------------------------------------------------------------- | :-------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

70| Su `CLAUDE.md` del repositorio | Sí | Parte del clon |70| Su `CLAUDE.md` del repositorio | Sí | Parte del clon |

71| Sus hooks `.claude/settings.json` del repositorio | Sí | Parte del clon |71| Sus hooks `.claude/settings.json` del repositorio | Sí | Parte del clon |

72| Sus servidores MCP `.mcp.json` del repositorio | Sí | Parte del clon |72| Sus servidores MCP `.mcp.json` del repositorio | Sí | Parte del clon |


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

75| Plugins declarados en `.claude/settings.json` | Sí | Instalados al inicio de la sesión desde el [marketplace](/es/plugin-marketplaces) que declaró. Requiere acceso a la red para llegar a la fuente del marketplace |75| Plugins declarados en `.claude/settings.json` | Sí | Instalados al inicio de la sesión desde el [marketplace](/es/plugin-marketplaces) que declaró. Requiere acceso a la red para llegar a la fuente del marketplace |

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

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

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

78| Servidores MCP que agregó con `claude mcp add` | No | Esos escriben en su configuración de usuario local, no en el repositorio. Declare el servidor en [`.mcp.json`](/es/mcp#project-scope) en su lugar |79| Servidores MCP que agregó con `claude mcp add` | No | Esos escriben en su configuración de usuario local, no en el repositorio. Declare el servidor en [`.mcp.json`](/es/mcp#project-scope) en su lugar |

79| Tokens de API estáticos y credenciales | No | Aún no existe un almacén de secretos dedicado. Vea a continuación |80| Tokens de API estáticos y credenciales | No | Aún no existe un almacén de secretos dedicado. Vea a continuación |


353* Protección contra solicitudes maliciosas354* Protección contra solicitudes maliciosas

354* Limitación de velocidad y prevención de abuso355* Limitación de velocidad y prevención de abuso

355* Filtrado de contenido para mayor seguridad356* Filtrado de contenido para mayor seguridad

357* Un registro de auditoría a nivel de DNS de los nombres de host solicitados

356 358 

357<h3 id="default-allowed-domains">359<h3 id="default-allowed-domains">

358 Dominios permitidos predeterminados360 Dominios permitidos predeterminados


745| `/context` | Sí | Muestra qué está actualmente en la ventana de contexto |747| `/context` | Sí | Muestra qué está actualmente en la ventana de contexto |

746| `/clear` | No | Inicie una nueva sesión desde la barra lateral en su lugar |748| `/clear` | No | Inicie una nueva sesión desde la barra lateral en su lugar |

747 749 

748La compactación automática se ejecuta automáticamente cuando la ventana de contexto se acerca a la capacidad, igual que en la CLI. Para activarla antes, establezca [`CLAUDE_AUTOCOMPACT_PCT_OVERRIDE`](/es/env-vars) en sus [variables de entorno](#configure-your-environment). Por ejemplo, `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE=70` compacta al 70% de capacidad en lugar del predeterminado \~95%. Para cambiar el tamaño de ventana efectivo para cálculos de compactación, use [`CLAUDE_CODE_AUTO_COMPACT_WINDOW`](/es/env-vars).750La compactación automática se ejecuta automáticamente cuando la ventana de contexto se acerca a la capacidad. Para activarla antes, establezca [`CLAUDE_AUTOCOMPACT_PCT_OVERRIDE`](/es/env-vars) en sus [variables de entorno](#configure-your-environment). Por ejemplo, `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE=70` compacta al 70% de capacidad en lugar de esperar hasta que la ventana esté casi llena. Para cambiar el tamaño de ventana efectivo para cálculos de compactación, use [`CLAUDE_CODE_AUTO_COMPACT_WINDOW`](/es/env-vars).

749 751 

750Los [subagentes](/es/sub-agents) funcionan de la misma manera que lo hacen localmente. Claude puede generarlos con la herramienta Task para descargar investigación o trabajo paralelo en una ventana de contexto separada, manteniendo la conversación principal más ligera. Los subagentes definidos en su `.claude/agents/` del repositorio se recogen automáticamente. Los [equipos de agentes](/es/agent-teams) están deshabilitados de forma predeterminada pero se pueden habilitar agregando `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` a sus [variables de entorno](#configure-your-environment).752Los [subagentes](/es/sub-agents) funcionan de la misma manera que lo hacen localmente. Claude puede generarlos con la herramienta Task para descargar investigación o trabajo paralelo en una ventana de contexto separada, manteniendo la conversación principal más ligera. Los subagentes definidos en su `.claude/agents/` del repositorio se recogen automáticamente. Los [equipos de agentes](/es/agent-teams) están deshabilitados de forma predeterminada pero se pueden habilitar agregando `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` a sus [variables de entorno](#configure-your-environment).

751 753 

claude-directory.md +1427 −1

Details

6 6 

7> Dónde Claude Code lee CLAUDE.md, settings.json, hooks, skills, commands, subagents, workflows, rules y auto memory. Explore el directorio .claude en su proyecto y ~/.claude en su directorio de inicio.7> Dónde Claude Code lee CLAUDE.md, settings.json, hooks, skills, commands, subagents, workflows, rules y auto memory. Explore el directorio .claude en su proyecto y ~/.claude en su directorio de inicio.

8 8 

9export const ClaudeExplorer = () => {

10 const A = useMemo(() => ({href, children}) => <a href={href} style={{

11 color: 'var(--ce-accent)',

12 textDecoration: 'none',

13 borderBottom: '1px dotted var(--ce-accent)'

14 }}>{children}</a>, []);

15 const C = useMemo(() => ({children}) => <code style={{

16 fontFamily: 'var(--ce-mono)',

17 fontSize: '0.92em',

18 padding: '1px 4px',

19 borderRadius: '3px',

20 background: 'var(--ce-surface)',

21 border: '0.5px solid var(--ce-border-subtle)'

22 }}>{children}</code>, []);

23 const commandsNote = useMemo(() => <>Commands and skills are now the same mechanism. For new workflows, use <A href="/en/skills">skills/</A> instead: same <C>/name</C> invocation, plus you can bundle supporting files.</>, []);

24 const FILE_TREE = useMemo(() => ({

25 project: {

26 label: 'your-project/',

27 children: [{

28 id: 'claude-md',

29 label: 'CLAUDE.md',

30 type: 'file',

31 icon: 'md',

32 color: '#6A9BCC',

33 badge: 'committed',

34 oneLiner: 'Project instructions Claude reads every session',

35 when: 'Loaded into context at the start of every session',

36 description: 'Project-specific instructions that shape how Claude works in this repository. Put your conventions, common commands, and architectural context here so Claude operates with the same assumptions your team does.',

37 tips: ['Target under 200 lines. Longer files still load in full but may reduce adherence', <>CLAUDE.md loads into every session. If something only matters for specific tasks, move it to a <A href="/en/skills">skill</A> or a path-scoped <A href="/en/memory#organize-rules-with-claude/rules/">rule</A> so it loads only when needed</>, 'List the commands you run most, like build, test, and format, so Claude knows them without you spelling them out each time', <>Run <C>/memory</C> to open and edit CLAUDE.md from within a session</>, <>Also works at <C>.claude/CLAUDE.md</C> if you prefer to keep the project root clean</>],

38 exampleIntro: 'This example is for a TypeScript and React project. It lists the build and test commands, the framework conventions Claude should follow, and project-specific rules like export style and file layout.',

39 example: `# Project conventions

40 

41## Commands

42- Build: \`npm run build\`

43- Test: \`npm test\`

44- Lint: \`npm run lint\`

45 

46## Stack

47- TypeScript with strict mode

48- React 19, functional components only

49 

50## Rules

51- Named exports, never default exports

52- Tests live next to source: \`foo.ts\` -> \`foo.test.ts\`

53- All API routes return \`{ data, error }\` shape`,

54 docsLink: '/en/memory'

55 }, {

56 id: 'mcp-json',

57 label: '.mcp.json',

58 type: 'file',

59 icon: 'json',

60 color: '#9B7BC4',

61 badge: 'committed',

62 oneLiner: 'Project-scoped MCP servers, shared with your team',

63 when: <>Servers connect when the session begins. Tool schemas are deferred by default and load on demand via <A href="/en/mcp#scale-with-mcp-tool-search">tool search</A></>,

64 description: <>Configures Model Context Protocol (MCP) servers that give Claude access to external tools: databases, APIs, browsers, and more. This file holds the project-scoped servers your whole team uses. Personal servers you want to keep to yourself go in <C>~/.claude.json</C> instead.</>,

65 tips: [<>Use environment variable references for secrets: <C>{'${GITHUB_TOKEN}'}</C></>, <>Lives at the project root, not inside <C>.claude/</C></>, <>For servers only you need, run <C>claude mcp add --scope user</C>. This writes to <C>~/.claude.json</C> instead of <C>.mcp.json</C></>],

66 exampleIntro: <>This example configures the GitHub MCP server so Claude can read issues and open pull requests. The <C>{'${GITHUB_TOKEN}'}</C> reference is read from your shell environment when Claude Code starts the server, so the token never lands in the file.</>,

67 example: `{

68 "mcpServers": {

69 "github": {

70 "command": "npx",

71 "args": ["-y", "@modelcontextprotocol/server-github"],

72 "env": {

73 "GITHUB_TOKEN": "\${GITHUB_TOKEN}"

74 }

75 }

76 }

77}`,

78 docsLink: '/en/mcp'

79 }, {

80 id: 'worktreeinclude',

81 label: '.worktreeinclude',

82 type: 'file',

83 icon: 'md',

84 color: '#8FA876',

85 badge: 'committed',

86 oneLiner: 'Gitignored files to copy into new worktrees',

87 when: <>Read when Claude creates a git worktree via <C>--worktree</C>, the <C>EnterWorktree</C> tool, or subagent <C>isolation: worktree</C></>,

88 description: <>Lists gitignored files to copy from your main repository into each new worktree. Worktrees are fresh checkouts, so untracked files like <C>.env</C> are missing by default. Patterns here use <C>.gitignore</C> syntax. Only files that match a pattern and are also gitignored get copied, so tracked files are never duplicated.</>,

89 tips: [<>Lives at the project root, not inside <C>.claude/</C></>, <>Git-only: if you configure a <A href="/en/hooks#worktreecreate">WorktreeCreate hook</A> for a different VCS, this file is not read. Copy files inside your hook script instead</>, <>Also applies to parallel sessions in the <A href="/en/desktop#work-in-parallel-with-sessions">desktop app</A></>],

90 exampleIntro: 'This example copies your local environment files and a secrets config into every worktree Claude creates. Comments start with # and blank lines are ignored, same as .gitignore.',

91 example: `# Local environment

92.env

93.env.local

94 

95# API credentials

96config/secrets.json`,

97 docsLink: '/en/worktrees#copy-gitignored-files-into-worktrees'

98 }, {

99 id: 'dot-claude',

100 label: '.claude/',

101 type: 'folder',

102 icon: 'folder',

103 color: 'var(--ce-accent)',

104 oneLiner: 'Project-level configuration, rules, and extensions',

105 description: 'Everything Claude Code reads that is specific to this project. If you use git, commit most files here so your team shares them; a few, like settings.local.json, are automatically gitignored. Each file badge shows which.',

106 children: [{

107 id: 'settings-json',

108 label: 'settings.json',

109 type: 'file',

110 icon: 'json',

111 color: 'var(--ce-text-3)',

112 badge: 'committed',

113 oneLiner: 'Permissions, hooks, and configuration',

114 when: <>Overrides global <C>~/.claude/settings.json</C>. Local settings, CLI flags, and managed settings override this</>,

115 description: 'Settings that Claude Code applies directly. Permissions control which commands and tools Claude can use; hooks run your scripts at specific points in a session. Unlike CLAUDE.md, which Claude reads as guidance, these are enforced whether Claude follows them or not.',

116 contains: [<><A href="/en/permissions">permissions</A>: allow, deny, or prompt before Claude uses specific tools or commands</>, <><A href="/en/hooks">hooks</A>: run your own scripts on events like before a tool call or after a file edit</>, <><A href="/en/statusline">statusLine</A>: customize the line shown at the bottom while Claude works</>, <><A href="/en/settings#available-settings">model</A>: pick a default model for this project</>, <><A href="/en/settings#environment-variables">env</A>: environment variables set in every session</>, <><A href="/en/output-styles">outputStyle</A>: select a custom system-prompt style from output-styles/</>],

117 tips: [<>Bash permission patterns support wildcards: <C>Bash(npm test *)</C> matches any command starting with <C>npm test</C></>, <>Array settings like <C>permissions.allow</C> combine across all scopes; scalar settings like <C>model</C> use the most specific value</>],

118 exampleIntro: <>This example allows <C>npm test</C> and <C>npm run</C> commands without prompting, blocks <C>rm -rf</C>, and runs Prettier on files after Claude edits or writes them.</>,

119 example: `{

120 "permissions": {

121 "allow": [

122 "Bash(npm test *)",

123 "Bash(npm run *)"

124 ],

125 "deny": [

126 "Bash(rm -rf *)"

127 ]

128 },

129 "hooks": {

130 "PostToolUse": [{

131 "matcher": "Edit|Write",

132 "hooks": [{

133 "type": "command",

134 "command": "jq -r '.tool_input.file_path' | xargs npx prettier --write"

135 }]

136 }]

137 }

138}`,

139 docsLink: '/en/settings'

140 }, {

141 id: 'settings-local-json',

142 label: 'settings.local.json',

143 type: 'file',

144 icon: 'json',

145 color: 'var(--ce-text-3)',

146 badge: 'gitignored',

147 oneLiner: 'Your personal settings overrides for this project',

148 when: 'Highest of the user-editable settings files; CLI flags and managed settings still take precedence',

149 description: 'Personal settings that take precedence over the project defaults. Same JSON format as settings.json, but not committed. Use this when you need different permissions or defaults than the team config.',

150 tips: [<>Same schema as settings.json. Array settings like <C>permissions.allow</C> combine across scopes; scalar settings like <C>model</C> use the local value</>, <>Claude Code adds this file to <C>~/.config/git/ignore</C> the first time it writes one. If you use a custom <C>core.excludesFile</C>, add the pattern there too. To share the ignore rule with your team, also add it to the project <C>.gitignore</C></>],

151 exampleIntro: 'This example adds Docker permissions on top of whatever the team settings.json allows.',

152 example: `{

153 "permissions": {

154 "allow": [

155 "Bash(docker *)"

156 ]

157 }

158}`,

159 docsLink: '/en/settings'

160 }, {

161 id: 'rules',

162 label: 'rules/',

163 type: 'folder',

164 icon: 'folder',

165 color: '#9B7BC4',

166 oneLiner: 'Topic-scoped instructions, optionally gated by file paths',

167 when: <>Rules without <C>paths:</C> load at session start. Rules with <C>paths:</C> load when a matching file enters context</>,

168 description: [<>Project instructions split into topic files that can load conditionally based on file paths. A rule without <C>paths:</C> frontmatter loads at session start like CLAUDE.md; a rule with <C>paths:</C> loads only when Claude reads a matching file.</>, <>Like CLAUDE.md, rules are guidance Claude reads, not configuration Claude Code enforces. For guaranteed behavior use <A href="/en/hooks">hooks</A> or <A href="/en/permissions">permissions</A>.</>],

169 tips: [<>Use <C>paths:</C> frontmatter with globs to scope rules to directories or file types</>, <>Subdirectories work: <C>.claude/rules/frontend/react.md</C> is discovered automatically</>, 'When CLAUDE.md approaches 200 lines, start splitting into rules'],

170 docsLink: '/en/memory#organize-rules-with-claude/rules/',

171 children: [{

172 id: 'rule-testing',

173 label: 'testing.md',

174 type: 'file',

175 icon: 'md',

176 color: '#9B7BC4',

177 badge: 'committed',

178 oneLiner: 'Test conventions scoped to test files',

179 when: <>Loaded when Claude reads a file matching the <C>paths:</C> globs below</>,

180 description: <>An example rule that only loads when Claude is working on test files. The <C>paths:</C> globs in the frontmatter define which files trigger it; here, anything ending in .test.ts or .test.tsx. For other files, this rule is not loaded into context.</>,

181 example: `---

182paths:

183 - "**/*.test.ts"

184 - "**/*.test.tsx"

185---

186 

187# Testing Rules

188 

189- Use descriptive test names: "should [expected] when [condition]"

190- Mock external dependencies, not internal modules

191- Clean up side effects in afterEach`

192 }, {

193 id: 'rule-api',

194 label: 'api-design.md',

195 type: 'file',

196 icon: 'md',

197 color: '#9B7BC4',

198 badge: 'committed',

199 oneLiner: 'API conventions scoped to backend code',

200 when: <>Loaded when Claude reads a file matching the <C>paths:</C> glob below</>,

201 description: <>A second example showing a rule scoped to backend code. The <C>paths:</C> glob matches files under src/api/, so these conventions load only when Claude is editing API routes.</>,

202 example: `---

203paths:

204 - "src/api/**/*.ts"

205---

206 

207# API Design Rules

208 

209- All endpoints must validate input with Zod schemas

210- Return shape: { data: T } | { error: string }

211- Rate limit all public endpoints`

212 }]

213 }, {

214 id: 'skills',

215 label: 'skills/',

216 type: 'folder',

217 icon: 'folder',

218 color: '#D4A843',

219 oneLiner: 'Reusable prompts you or Claude invoke by name',

220 when: <>Invoked with <C>/skill-name</C> or when Claude matches the task to a skill</>,

221 description: <>Each skill is a folder with a SKILL.md file plus any supporting files it needs. By default, both you and Claude can invoke a skill. Use frontmatter to control that: <C>disable-model-invocation: true</C> for user-only workflows like <C>/deploy</C>, or <C>user-invocable: false</C> to hide from the <C>/</C> menu while Claude can still invoke it.</>,

222 tips: [<>Skills accept arguments: <C>/deploy staging</C> passes "staging" as <C>$ARGUMENTS</C>. Use <C>$0</C>, <C>$1</C>, and so on for positional access</>, <>The <C>description</C> frontmatter determines when Claude auto-invokes the skill</>, 'Bundle reference docs alongside SKILL.md. Claude knows the skill directory path and can read supporting files when you mention them'],

223 docsLink: '/en/skills',

224 children: [{

225 id: 'skill-review',

226 label: 'security-review/',

227 type: 'folder',

228 icon: 'folder',

229 color: '#D4A843',

230 oneLiner: 'A skill bundling SKILL.md with supporting files',

231 children: [{

232 id: 'skill-review-md',

233 label: 'SKILL.md',

234 type: 'file',

235 icon: 'md',

236 color: '#D4A843',

237 badge: 'committed',

238 oneLiner: 'Entrypoint: trigger, invocability, instructions',

239 when: <>User types <C>/security-review &lt;target&gt;</C>; Claude cannot auto-invoke this skill</>,

240 description: [<>This skill uses <C>disable-model-invocation: true</C> so only you can trigger it; Claude never invokes it on its own.</>, <>The <C>!`...`</C> line runs a shell command and injects its output into the prompt. <C>$ARGUMENTS</C> substitutes whatever you typed after the skill name. Claude sees the skill directory path, so mentioning a bundled file like checklist.md lets Claude read it.</>],

241 example: `---

242description: Reviews code changes for security vulnerabilities, authentication gaps, and injection risks

243disable-model-invocation: true

244argument-hint: <branch-or-path>

245---

246 

247## Diff to review

248 

249!\`git diff $ARGUMENTS\`

250 

251Audit the changes above for:

252 

2531. Injection vulnerabilities (SQL, XSS, command)

2542. Authentication and authorization gaps

2553. Hardcoded secrets or credentials

256 

257Use checklist.md in this skill directory for the full review checklist.

258 

259Report findings with severity ratings and remediation steps.`

260 }, {

261 id: 'skill-checklist',

262 label: 'checklist.md',

263 type: 'file',

264 icon: 'md',

265 color: '#D4A843',

266 badge: 'committed',

267 oneLiner: 'Supporting file bundled with the skill',

268 when: 'Claude reads it on demand while running the skill',

269 description: <>Skills can bundle any supporting files: reference docs, templates, scripts. The skill directory path is prepended to SKILL.md, so Claude can read bundled files by name. For scripts in bash injection commands, use the <C>{'${CLAUDE_SKILL_DIR}'}</C> placeholder.</>,

270 example: `# Security Review Checklist

271 

272## Input Validation

273- [ ] All user input sanitized before DB queries

274- [ ] File upload MIME types validated

275- [ ] Path traversal prevented on file operations

276 

277## Authentication

278- [ ] JWT tokens expire after 24 hours

279- [ ] API keys stored in environment variables

280- [ ] Passwords hashed with bcrypt or argon2`

281 }]

282 }]

283 }, {

284 id: 'commands',

285 label: 'commands/',

286 type: 'folder',

287 icon: 'folder',

288 color: '#788C5D',

289 oneLiner: <>Single-file prompts invoked with <C>/name</C></>,

290 note: commandsNote,

291 when: <>User types <C>/command-name</C></>,

292 description: <>A file at <C>commands/deploy.md</C> creates <C>/deploy</C> the same way a skill at <C>skills/deploy/SKILL.md</C> does, and both can be auto-invoked by Claude. Skills use a directory with SKILL.md, letting you bundle reference docs, templates, or scripts alongside the prompt.</>,

293 tips: [<>Use <C>$ARGUMENTS</C> in the file to accept parameters: <C>/fix-issue 123</C></>, 'If a skill and command share a name, the skill takes precedence', 'New commands should usually be skills instead; commands remain supported'],

294 docsLink: '/en/skills',

295 children: [{

296 id: 'cmd-example',

297 label: 'fix-issue.md',

298 type: 'file',

299 icon: 'md',

300 color: '#788C5D',

301 badge: 'committed',

302 oneLiner: <>Invoked as <C>/fix-issue &lt;number&gt;</C></>,

303 note: commandsNote,

304 description: [<>An example command for fixing a GitHub issue. Type <C>/fix-issue 123</C> and the <C>!`...`</C> line runs <C>gh issue view 123</C> in your shell, injecting the output into the prompt before Claude sees it.</>, <><C>$ARGUMENTS</C> substitutes whatever you typed after the command name. For positional access, use <C>$0</C> <C>$1</C> and so on.</>],

305 example: `---

306argument-hint: <issue-number>

307---

308 

309!\`gh issue view $ARGUMENTS\`

310 

311Investigate and fix the issue above.

312 

3131. Trace the bug to its root cause

3142. Implement the fix

3153. Write or update tests

3164. Summarize what you changed and why`

317 }]

318 }, {

319 id: 'output-styles',

320 label: 'output-styles/',

321 type: 'folder',

322 icon: 'folder',

323 color: '#5AA7A7',

324 oneLiner: 'Project-scoped output styles, if your team shares any',

325 when: 'Applied at session start when selected via the outputStyle setting',

326 description: <>Output styles are usually personal, so most live in <C>~/.claude/output-styles/</C>. Put one here if your team shares a style, like a review mode everyone uses. See <A href="#ce-global-output-styles">the Global tab</A> for the full explanation and example.</>,

327 docsLink: '/en/output-styles',

328 children: []

329 }, {

330 id: 'agents',

331 label: 'agents/',

332 type: 'folder',

333 icon: 'folder',

334 color: '#C46686',

335 oneLiner: 'Specialized subagents with their own context window',

336 when: 'Runs in its own context window when you or Claude invoke it',

337 description: 'Each markdown file defines a subagent with its own system prompt, tool access, and optionally its own model. Subagents run in a fresh context window, keeping the main conversation clean. Useful for parallel work or isolated tasks.',

338 tips: ['Each agent gets a fresh context window, separate from your main session', <>Restrict tool access per agent with the <C>tools:</C> frontmatter field</>, 'Type @ and pick an agent from the autocomplete to delegate directly'],

339 docsLink: '/en/sub-agents',

340 children: [{

341 id: 'agent-reviewer',

342 label: 'code-reviewer.md',

343 type: 'file',

344 icon: 'md',

345 color: '#C46686',

346 badge: 'committed',

347 oneLiner: 'Subagent for isolated code review',

348 when: 'Claude spawns it for review tasks, or you @-mention it from the autocomplete',

349 description: <>An example subagent restricted to read-only tools. The <C>description</C> frontmatter tells Claude when to delegate to it automatically; <C>tools:</C> limits it to Read, Grep, and Glob so it can inspect code but never edit. The body becomes the subagent's system prompt.</>,

350 example: `---

351name: code-reviewer

352description: Reviews code for correctness, security, and maintainability

353tools: Read, Grep, Glob

354---

355 

356You are a senior code reviewer. Review for:

357 

3581. Correctness: logic errors, edge cases, null handling

3592. Security: injection, auth bypass, data exposure

3603. Maintainability: naming, complexity, duplication

361 

362Every finding must include a concrete fix.`

363 }]

364 }, {

365 id: 'workflows',

366 label: 'workflows/',

367 type: 'folder',

368 icon: 'folder',

369 color: '#C46686',

370 oneLiner: 'Dynamic workflow scripts that orchestrate many subagents',

371 when: 'Loaded at startup; each file becomes a /<name> command',

372 description: <>Each <C>.js</C> file is a <A href="/en/workflows">dynamic workflow</A>: a script the runtime executes to spawn and coordinate many subagents. Workflows are written by Claude and saved here from <C>/workflows</C> rather than authored from scratch.</>,

373 tips: [<>Save a run from <C>/workflows</C> with <C>s</C> to create one of these</>, <>A project workflow takes precedence over a personal one in <C>~/.claude/workflows/</C> with the same name</>],

374 docsLink: '/en/workflows'

375 }, {

376 id: 'agent-memory',

377 label: 'agent-memory/',

378 type: 'folder',

379 icon: 'folder',

380 color: '#C46686',

381 badge: 'committed',

382 autogen: true,

383 oneLiner: 'Subagent persistent memory, separate from your main session auto memory',

384 when: 'First 200 lines (capped at 25KB) of MEMORY.md loaded into the subagent system prompt when it runs',

385 description: <>Subagents with <C>memory: project</C> in their frontmatter get a dedicated memory directory here. This is distinct from your <A href="/en/memory#auto-memory">main session auto memory</A> at <C>~/.claude/projects/</C>: each subagent reads and writes its own MEMORY.md, not yours.</>,

386 tips: [<>Only created for subagents that set the <C>memory:</C> frontmatter field</>, <>This directory holds project-scoped subagent memory, meant to be shared with your team. To keep memory out of version control use <C>memory: local</C>, which writes to <C>.claude/agent-memory-local/</C> instead. For cross-project memory use <C>memory: user</C>, which writes to <C>~/.claude/agent-memory/</C></>, <>The main session auto memory is a different feature; see <C>~/.claude/projects/</C> in the Global tab</>],

387 docsLink: '/en/sub-agents#enable-persistent-memory',

388 children: [{

389 id: 'agent-memory-sub',

390 label: '<agent-name>/',

391 type: 'folder',

392 icon: 'folder',

393 color: '#C46686',

394 autogen: true,

395 children: [{

396 id: 'agent-memory-md',

397 label: 'MEMORY.md',

398 type: 'file',

399 icon: 'md',

400 color: '#C46686',

401 badge: 'committed',

402 autogen: true,

403 oneLiner: 'The subagent writes and maintains this file automatically',

404 when: 'Loaded into the subagent system prompt when the subagent starts',

405 description: <>Works the same as your <A href="/en/memory#auto-memory">main auto memory</A>: the subagent creates and updates this file itself. You do not write it. The subagent reads it at the start of each task and writes back what it learns.</>,

406 example: `# code-reviewer memory

407 

408## Patterns seen

409- Project uses custom Result<T, E> type, not exceptions

410- Auth middleware expects Bearer token in Authorization header

411- Tests use factory functions in test/factories/

412 

413## Recurring issues

414- Missing null checks on API responses (src/api/*)

415- Unhandled promise rejections in background jobs`

416 }]

417 }]

418 }]

419 }]

420 },

421 global: {

422 label: '~/',

423 children: [{

424 id: 'claude-json',

425 label: '.claude.json',

426 type: 'file',

427 icon: 'json',

428 color: 'var(--ce-text-3)',

429 badge: 'local',

430 oneLiner: 'App state and UI preferences',

431 when: <>Read at session start for your preferences and MCP servers. Claude Code writes back to it when you change settings in <C>/config</C> or approve trust prompts</>,

432 description: <>Holds state that does not belong in settings.json: theme, OAuth session, per-project trust decisions, your personal MCP servers, and UI toggles. Mostly managed through <C>/config</C> rather than editing directly.</>,

433 tips: [<>IDE toggles like <C>autoConnectIde</C> and <C>externalEditorContext</C> live here, not in settings.json</>, <>The <C>projects</C> key tracks per-project state like trust-dialog acceptance and last-session metrics. Permission rules you approve in-session go to <C>.claude/settings.local.json</C> instead</>, <>MCP servers here are yours only: user scope applies across all projects, local scope is per-project but not committed. Team-shared servers go in <C>.mcp.json</C> at the project root instead</>],

434 example: `{

435 "autoConnectIde": true,

436 "externalEditorContext": true,

437 "mcpServers": {

438 "my-tools": {

439 "command": "npx",

440 "args": ["-y", "@example/mcp-server"]

441 }

442 }

443}`,

444 docsLink: '/en/settings#global-config-settings'

445 }, {

446 id: 'global-dot-claude',

447 label: '.claude/',

448 type: 'folder',

449 icon: 'folder',

450 color: 'var(--ce-accent)',

451 oneLiner: 'Your personal configuration across all projects',

452 description: 'The global counterpart to your project .claude/ directory. Files here apply to every project you work in and are never committed to any repository.',

453 children: [{

454 id: 'global-claude-md',

455 label: 'CLAUDE.md',

456 type: 'file',

457 icon: 'md',

458 color: '#6A9BCC',

459 badge: 'local',

460 oneLiner: 'Personal preferences across every project',

461 when: 'Loaded at the start of every session, in every project',

462 description: 'Your global instruction file. Loaded alongside the project CLAUDE.md at session start, so both are in context together. When instructions conflict, project-level instructions take priority. Keep this to preferences that apply everywhere: response style, commit format, personal conventions.',

463 tips: ['Keep it short since it loads into context for every project, alongside that project\'s own CLAUDE.md', 'Good for response style, commit format, and personal conventions'],

464 example: `# Global preferences

465 

466- Keep explanations concise

467- Use conventional commit format

468- Show the terminal command to verify changes

469- Prefer composition over inheritance`,

470 docsLink: '/en/memory'

471 }, {

472 id: 'global-settings',

473 label: 'settings.json',

474 type: 'file',

475 icon: 'json',

476 color: 'var(--ce-text-3)',

477 badge: 'local',

478 oneLiner: 'Default settings for all projects',

479 when: 'Your defaults. Project and local settings.json override any keys you also set there',

480 description: [<>Same keys as project <C>settings.json</C>: permissions, hooks, model, environment variables, and the rest. Put settings here that you want in every project, like permissions you always allow, a preferred model, or a notification hook that runs regardless of which project you're in.</>, <>Settings follow a precedence order: project <C>settings.json</C> overrides any matching keys you set here. This is different from CLAUDE.md, where global and project files are both loaded into context rather than merged key by key.</>],

481 example: `{

482 "permissions": {

483 "allow": [

484 "Bash(git log *)",

485 "Bash(git diff *)"

486 ]

487 }

488}`,

489 docsLink: '/en/settings'

490 }, {

491 id: 'keybindings',

492 label: 'keybindings.json',

493 type: 'file',

494 icon: 'json',

495 color: 'var(--ce-text-3)',

496 badge: 'local',

497 oneLiner: 'Custom keyboard shortcuts',

498 when: 'Read at session start and hot-reloaded when you edit the file',

499 description: <>Rebind keyboard shortcuts in the interactive CLI. Run <C>/keybindings</C> to create or open this file with a schema reference. Ctrl+C, Ctrl+D, Ctrl+M, and Caps Lock are reserved and cannot be rebound.</>,

500 exampleIntro: <>This example binds <C>Ctrl+E</C> to open your external editor and unbinds <C>Ctrl+U</C> by setting it to <C>null</C>. The <C>context</C> field scopes bindings to a specific part of the CLI, here the main chat input.</>,

501 example: `{

502 "$schema": "https://www.schemastore.org/claude-code-keybindings.json",

503 "$docs": "https://code.claude.com/docs/en/keybindings",

504 "bindings": [

505 {

506 "context": "Chat",

507 "bindings": {

508 "ctrl+e": "chat:externalEditor",

509 "ctrl+u": null

510 }

511 }

512 ]

513}`,

514 docsLink: '/en/keybindings'

515 }, {

516 id: 'themes',

517 label: 'themes/',

518 type: 'folder',

519 icon: 'folder',

520 color: '#5AA7A7',

521 oneLiner: 'Custom color themes',

522 when: <>Read at session start and hot-reloaded when files change. Listed in <C>/theme</C></>,

523 description: <>Each <C>.json</C> file defines a custom color theme: a built-in <C>base</C> preset plus an <C>overrides</C> map of color tokens. Create one interactively with <C>/theme</C> or write the JSON by hand. Selecting a custom theme stores <C>custom:&lt;slug&gt;</C> as your theme preference.</>,

524 example: `{

525 "name": "Dracula",

526 "base": "dark",

527 "overrides": {

528 "claude": "#bd93f9",

529 "error": "#ff5555",

530 "success": "#50fa7b"

531 }

532}`,

533 docsLink: '/en/terminal-config#create-a-custom-theme',

534 children: []

535 }, {

536 id: 'global-projects',

537 label: 'projects/',

538 type: 'folder',

539 icon: 'folder',

540 color: '#E8A45C',

541 autogen: true,

542 oneLiner: "Auto memory: Claude's notes to itself, per project",

543 when: 'MEMORY.md loaded at session start; topic files read on demand',

544 description: 'Auto memory lets Claude accumulate knowledge across sessions without you writing anything. Claude saves notes as it works: build commands, debugging insights, architecture notes. Each project gets its own memory directory keyed by the repository path.',

545 tips: [<>On by default. Toggle with <C>/memory</C> or <C>autoMemoryEnabled</C> in settings</>, 'MEMORY.md is the index loaded each session. The first 200 lines, or 25KB, whichever comes first, are read', 'Topic files like debugging.md are read on demand, not at startup', 'These are plain markdown. Edit or delete them anytime'],

546 docsLink: '/en/memory#auto-memory',

547 children: [{

548 id: 'memory-dir',

549 label: '<project>/memory/',

550 type: 'folder',

551 icon: 'folder',

552 color: '#E8A45C',

553 autogen: true,

554 oneLiner: "Claude's accumulated knowledge for one project",

555 children: [{

556 id: 'memory-md',

557 label: 'MEMORY.md',

558 type: 'file',

559 icon: 'md',

560 color: '#E8A45C',

561 badge: 'local',

562 autogen: true,

563 oneLiner: 'Claude writes and maintains this file automatically',

564 when: 'First 200 lines (capped at 25KB) loaded at session start',

565 description: 'Claude creates and updates this file as it works; you do not write it yourself. It acts as an index that Claude reads at the start of every session, pointing to topic files for detail. You can edit or delete it, but Claude will keep updating it.',

566 example: `# Memory Index

567 

568## Project

569- [build-and-test.md](build-and-test.md): npm run build (~45s), Vitest, dev server on 3001

570- [architecture.md](architecture.md): API client singleton, refresh-token auth

571 

572## Reference

573- [debugging.md](debugging.md): auth token rotation and DB connection troubleshooting`,

574 docsLink: '/en/memory'

575 }, {

576 id: 'memory-topic',

577 label: 'debugging.md',

578 type: 'file',

579 icon: 'md',

580 color: '#E8A45C',

581 badge: 'local',

582 autogen: true,

583 oneLiner: 'Topic notes Claude writes when MEMORY.md gets long',

584 when: 'Claude reads this when a related task comes up',

585 description: 'An example of a topic file Claude creates when MEMORY.md grows too long. Claude picks the filename based on what it splits out: debugging.md, architecture.md, build-commands.md, or similar. You never create these yourself. Claude reads a topic file back only when the current task relates to it.',

586 example: `---

587name: Debugging patterns

588description: Auth token rotation and database connection troubleshooting for this project

589type: reference

590---

591 

592## Auth Token Issues

593- Refresh token rotation: old token invalidated immediately

594- If 401 after refresh: check clock skew between client and server

595 

596## Database Connection Drops

597- Connection pool: max 10 in dev, 50 in prod

598- Always check \`docker compose ps\` first`

599 }]

600 }]

601 }, {

602 id: 'global-rules',

603 label: 'rules/',

604 type: 'folder',

605 icon: 'folder',

606 color: '#9B7BC4',

607 oneLiner: 'User-level rules that apply to every project',

608 when: <>Rules without <C>paths:</C> load at session start. Rules with <C>paths:</C> load when a matching file enters context</>,

609 description: 'Same as project .claude/rules/ but applies everywhere. Use this for conventions you want across all your work, like personal code style or commit message format.',

610 docsLink: '/en/memory#organize-rules-with-claude/rules/',

611 children: []

612 }, {

613 id: 'global-skills',

614 label: 'skills/',

615 type: 'folder',

616 icon: 'folder',

617 color: '#D4A843',

618 oneLiner: 'Personal skills available in every project',

619 when: <>Invoked with <C>/skill-name</C> in any project</>,

620 description: 'Skills you built for yourself that work everywhere. Same structure as project skills: each is a folder with SKILL.md, scoped to your user account instead of a single project.',

621 docsLink: '/en/skills',

622 children: []

623 }, {

624 id: 'global-commands',

625 label: 'commands/',

626 type: 'folder',

627 icon: 'folder',

628 color: '#788C5D',

629 oneLiner: 'Personal single-file commands available in every project',

630 note: commandsNote,

631 when: <>User types <C>/command-name</C> in any project</>,

632 description: 'Same as project commands/ but scoped to your user account. Each markdown file becomes a command available everywhere.',

633 docsLink: '/en/skills',

634 children: []

635 }, {

636 id: 'global-output-styles',

637 label: 'output-styles/',

638 type: 'folder',

639 icon: 'folder',

640 color: '#5AA7A7',

641 oneLiner: 'Custom system-prompt sections that adjust how Claude works',

642 when: 'Applied at session start when selected via the outputStyle setting',

643 description: [<>Each markdown file defines an output style: a section appended to the system prompt that, by default, also drops the built-in software-engineering task instructions. Use this to adapt Claude Code for uses beyond coding, or to add teaching or review modes.</>, <>Select a built-in or custom style with <C>/config</C> or the <C>outputStyle</C> key in settings. Styles here are available in every project; project-level styles with the same name take precedence.</>],

644 tips: ['Built-in styles Explanatory and Learning are included with Claude Code; custom styles go here', <>Set <C>keep-coding-instructions: true</C> in frontmatter to keep the default task instructions alongside your additions</>, 'Changes take effect on the next session since the system prompt is fixed at startup for caching'],

645 docsLink: '/en/output-styles',

646 children: [{

647 id: 'output-style-example',

648 label: 'teaching.md',

649 type: 'file',

650 icon: 'md',

651 color: '#5AA7A7',

652 badge: 'local',

653 oneLiner: 'Example style that adds explanations and leaves small changes for you',

654 when: <>Active when <C>outputStyle</C> in settings is set to <C>teaching</C></>,

655 description: <>This style appends instructions to the system prompt: Claude adds a "Why this approach" note after each task and leaves TODO(human) markers for changes under 10 lines instead of writing them itself. Select it by setting <C>outputStyle</C> to the filename without .md, or to the <C>name</C> field if you set one in frontmatter.</>,

656 example: `---

657description: Explains reasoning and asks you to implement small pieces

658keep-coding-instructions: true

659---

660 

661After completing each task, add a brief "Why this approach" note

662explaining the key design decision.

663 

664When a change is under 10 lines, ask the user to implement it

665themselves by leaving a TODO(human) marker instead of writing it.`

666 }]

667 }, {

668 id: 'global-agents',

669 label: 'agents/',

670 type: 'folder',

671 icon: 'folder',

672 color: '#C46686',

673 oneLiner: 'Personal subagents available in every project',

674 when: 'Claude delegates or you @-mention in any project',

675 description: 'Subagents defined here are available across all your projects. Same format as project agents.',

676 docsLink: '/en/sub-agents',

677 children: []

678 }, {

679 id: 'global-workflows',

680 label: 'workflows/',

681 type: 'folder',

682 icon: 'folder',

683 color: '#C46686',

684 oneLiner: 'Personal dynamic workflows available in every project',

685 when: 'Loaded at startup; each file becomes a /<name> command',

686 description: <>Workflow scripts saved here are available across all your projects. A project workflow with the same name in <C>.claude/workflows/</C> takes precedence.</>,

687 docsLink: '/en/workflows',

688 children: []

689 }, {

690 id: 'global-agent-memory',

691 label: 'agent-memory/',

692 type: 'folder',

693 icon: 'folder',

694 color: '#C46686',

695 autogen: true,

696 oneLiner: <>Persistent memory for subagents with <C>memory: user</C></>,

697 when: 'Loaded into the subagent system prompt when the subagent starts',

698 description: <>Subagents with <C>memory: user</C> in their frontmatter store knowledge here that persists across all projects. For project-scoped subagent memory, see <C>.claude/agent-memory/</C> instead.</>,

699 docsLink: '/en/sub-agents#enable-persistent-memory',

700 children: []

701 }]

702 }]

703 }

704 }), []);

705 const BADGE_STYLES = useMemo(() => ({

706 committed: {

707 bg: 'rgba(85,138,66,0.08)',

708 color: 'var(--ce-badge-committed)',

709 border: 'rgba(85,138,66,0.15)',

710 label: 'committed'

711 },

712 gitignored: {

713 bg: 'rgba(217,119,87,0.06)',

714 color: 'var(--ce-badge-gitignored)',

715 border: 'rgba(217,119,87,0.15)',

716 label: 'gitignored'

717 },

718 local: {

719 bg: 'rgba(115,114,108,0.06)',

720 color: 'var(--ce-badge-local)',

721 border: 'rgba(115,114,108,0.12)',

722 label: 'local only'

723 },

724 autogen: {

725 bg: 'rgba(232,164,92,0.1)',

726 color: 'var(--ce-badge-autogen)',

727 border: 'rgba(232,164,92,0.2)',

728 label: 'Claude writes'

729 }

730 }), []);

731 const allNodes = useMemo(() => {

732 const flatten = (nodes, acc, path, parentId) => {

733 for (const node of nodes) {

734 const nextPath = [...path, node.label];

735 acc[node.id] = {

736 ...node,

737 path: nextPath,

738 parentId

739 };

740 if (node.children) flatten(node.children, acc, nextPath, node.id);

741 }

742 return acc;

743 };

744 const project = flatten(FILE_TREE.project.children, {}, [FILE_TREE.project.label]);

745 const global = flatten(FILE_TREE.global.children, {}, [FILE_TREE.global.label]);

746 for (const id in project) project[id].root = 'project';

747 for (const id in global) global[id].root = 'global';

748 return {

749 ...project,

750 ...global

751 };

752 }, [FILE_TREE]);

753 const allFolderIds = useMemo(() => Object.keys(allNodes).filter(id => allNodes[id].type === 'folder'), [allNodes]);

754 const DEFAULT_EXPANDED = ['dot-claude', 'rules', 'skills', 'skill-review', 'commands', 'agents', 'agent-memory', 'agent-memory-sub', 'global-dot-claude', 'global-output-styles', 'global-projects', 'memory-dir'];

755 const [mounted, setMounted] = useState(false);

756 const [activeRoot, setActiveRoot] = useState('project');

757 const [selectedId, setSelectedId] = useState('claude-md');

758 const [expandedFolders, setExpandedFolders] = useState(() => new Set(DEFAULT_EXPANDED));

759 const [forceMobile, setForceMobile] = useState(false);

760 const [copiedId, setCopiedId] = useState(null);

761 const [isFullscreen, setIsFullscreen] = useState(false);

762 const copyTimeoutRef = useRef(null);

763 const rootRef = useRef(null);

764 useEffect(() => {

765 setMounted(true);

766 const applyHash = scroll => {

767 const hash = window.location.hash.slice(1);

768 if (!hash.startsWith('ce-')) return;

769 const id = hash.slice(3);

770 const node = allNodes[id];

771 if (!node) return;

772 setActiveRoot(node.root);

773 setSelectedId(id);

774 setExpandedFolders(new Set(allFolderIds));

775 if (scroll && rootRef.current) rootRef.current.scrollIntoView({

776 behavior: 'smooth',

777 block: 'start'

778 });

779 };

780 applyHash(false);

781 const onHashChange = () => applyHash(true);

782 const onFsChange = () => setIsFullscreen(!!document.fullscreenElement);

783 window.addEventListener('hashchange', onHashChange);

784 document.addEventListener('fullscreenchange', onFsChange);

785 return () => {

786 if (copyTimeoutRef.current) clearTimeout(copyTimeoutRef.current);

787 window.removeEventListener('hashchange', onHashChange);

788 document.removeEventListener('fullscreenchange', onFsChange);

789 };

790 }, []);

791 useEffect(() => {

792 if (!mounted || !rootRef.current) return;

793 const hash = window.location.hash.slice(1);

794 if (hash.startsWith('ce-') && allNodes[hash.slice(3)]) {

795 rootRef.current.scrollIntoView({

796 behavior: 'smooth',

797 block: 'start'

798 });

799 }

800 }, [mounted]);

801 if (!mounted) return null;

802 const selected = allNodes[selectedId];

803 const tree = FILE_TREE[activeRoot];

804 const isCopied = copiedId === selected.id;

805 const toggleFolder = id => {

806 const next = new Set(expandedFolders);

807 next.has(id) ? next.delete(id) : next.add(id);

808 setExpandedFolders(next);

809 };

810 const switchRoot = root => {

811 if (root === activeRoot) return;

812 setActiveRoot(root);

813 const firstId = FILE_TREE[root].children[0].id;

814 setSelectedId(firstId);

815 try {

816 history.replaceState(null, '', '#ce-' + firstId);

817 } catch (e) {}

818 };

819 const toggleFullscreen = () => {

820 if (!rootRef.current) return;

821 if (document.fullscreenElement) document.exitFullscreen(); else rootRef.current.requestFullscreen().catch(() => {});

822 };

823 const selectNode = n => {

824 setSelectedId(n.id);

825 if (n.type === 'folder' && !expandedFolders.has(n.id)) toggleFolder(n.id);

826 try {

827 history.replaceState(null, '', '#ce-' + n.id);

828 } catch (e) {}

829 };

830 const iconBtn = {

831 width: 28,

832 flexShrink: 0,

833 borderRadius: '6px',

834 border: 'none',

835 cursor: 'pointer',

836 background: 'transparent',

837 color: 'var(--ce-text-4)',

838 display: 'flex',

839 alignItems: 'center',

840 justifyContent: 'center'

841 };

842 const visibleFolderIds = allFolderIds.filter(id => allNodes[id].root === activeRoot);

843 const allExpanded = visibleFolderIds.every(id => expandedFolders.has(id));

844 const toggleAllFolders = () => {

845 const next = new Set(expandedFolders);

846 visibleFolderIds.forEach(id => allExpanded ? next.delete(id) : next.add(id));

847 setExpandedFolders(next);

848 };

849 const onTreeKeyDown = e => {

850 if (!['ArrowDown', 'ArrowUp', 'ArrowRight', 'ArrowLeft'].includes(e.key)) return;

851 const visible = [];

852 const walk = nodes => {

853 for (const n of nodes) {

854 visible.push(n.id);

855 if (n.children && expandedFolders.has(n.id)) walk(n.children);

856 }

857 };

858 walk(tree.children);

859 const i = visible.indexOf(selectedId);

860 if (i === -1) return;

861 e.preventDefault();

862 if (e.key === 'ArrowDown' && i < visible.length - 1) selectNode(allNodes[visible[i + 1]]); else if (e.key === 'ArrowUp' && i > 0) selectNode(allNodes[visible[i - 1]]); else if (e.key === 'ArrowRight' && selected.type === 'folder') {

863 if (!expandedFolders.has(selectedId)) toggleFolder(selectedId); else if (selected.children && selected.children.length) selectNode(allNodes[selected.children[0].id]);

864 } else if (e.key === 'ArrowLeft') {

865 if (selected.type === 'folder' && expandedFolders.has(selectedId)) toggleFolder(selectedId); else if (selected.parentId) selectNode(allNodes[selected.parentId]);

866 }

867 };

868 const copyExample = (id, text) => {

869 const done = () => {

870 setCopiedId(id);

871 if (copyTimeoutRef.current) clearTimeout(copyTimeoutRef.current);

872 copyTimeoutRef.current = setTimeout(() => setCopiedId(null), 2000);

873 };

874 const fallback = () => {

875 const ta = document.createElement('textarea');

876 ta.value = text;

877 ta.style.position = 'fixed';

878 ta.style.opacity = '0';

879 document.body.appendChild(ta);

880 ta.select();

881 try {

882 if (document.execCommand('copy')) done();

883 } catch (e) {}

884 document.body.removeChild(ta);

885 };

886 if (navigator.clipboard) {

887 navigator.clipboard.writeText(text).then(done, fallback);

888 } else {

889 fallback();

890 }

891 };

892 const renderIcon = (icon, color, size) => {

893 const sz = size || 14;

894 if (icon === 'folder') {

895 return <svg width={sz} height={sz} viewBox="0 0 14 14" fill="none">

896 <path d="M1.5 3.5a1 1 0 0 1 1-1h2.6l1 1.2h5.4a1 1 0 0 1 1 1v5.8a1 1 0 0 1-1 1h-9a1 1 0 0 1-1-1V3.5z" fill={color} fillOpacity="0.15" stroke={color} strokeWidth="1" />

897 </svg>;

898 }

899 if (icon === 'json') {

900 return <svg width={sz} height={sz} viewBox="0 0 14 14" fill="none">

901 <rect x="2" y="1.5" width="10" height="11" rx="1.5" fill={color} fillOpacity="0.15" stroke={color} strokeWidth="1" />

902 <text x="7" y="9" fontSize="6" fontFamily="monospace" fill={color} textAnchor="middle" fontWeight="700">{'{}'}</text>

903 </svg>;

904 }

905 return <svg width={sz} height={sz} viewBox="0 0 14 14" fill="none">

906 <rect x="2" y="1.5" width="10" height="11" rx="1.5" fill={color} fillOpacity="0.15" stroke={color} strokeWidth="1" />

907 <line x1="4.5" y1="5" x2="9.5" y2="5" stroke={color} strokeWidth="1" />

908 <line x1="4.5" y1="7" x2="9.5" y2="7" stroke={color} strokeWidth="1" />

909 <line x1="4.5" y1="9" x2="8" y2="9" stroke={color} strokeWidth="1" />

910 </svg>;

911 };

912 const renderNode = (node, depth) => {

913 const isFolder = node.type === 'folder';

914 const isExpanded = expandedFolders.has(node.id);

915 const isSelected = selectedId === node.id;

916 return <div key={node.id}>

917 <button role="treeitem" tabIndex={-1} onClick={() => selectNode(node)} aria-selected={isSelected} aria-expanded={isFolder ? isExpanded : undefined} style={{

918 display: 'flex',

919 alignItems: 'center',

920 gap: '5px',

921 width: '100%',

922 padding: `4px 8px 4px ${8 + depth * 16}px`,

923 background: isSelected ? 'var(--ce-accent-bg)' : 'transparent',

924 borderTop: 'none',

925 borderRight: 'none',

926 borderBottom: 'none',

927 borderLeft: isSelected ? '2px solid var(--ce-accent)' : '2px solid transparent',

928 outline: 'none',

929 cursor: 'pointer',

930 textAlign: 'left',

931 fontFamily: 'var(--ce-mono)',

932 fontSize: '13.5px',

933 color: isSelected ? 'var(--ce-accent)' : 'var(--ce-text-2)',

934 fontWeight: isSelected ? 550 : 400,

935 transition: 'all 0.1s'

936 }}>

937 {isFolder ? <span onClick={e => {

938 e.stopPropagation();

939 toggleFolder(node.id);

940 }} style={{

941 fontSize: '14px',

942 color: 'var(--ce-text-4)',

943 width: '20px',

944 height: '20px',

945 display: 'inline-flex',

946 alignItems: 'center',

947 justifyContent: 'center',

948 cursor: 'pointer',

949 borderRadius: '4px',

950 marginLeft: '-6px',

951 flexShrink: 0

952 }} onMouseEnter={e => {

953 e.currentTarget.style.background = 'var(--ce-arrow-hover)';

954 e.currentTarget.style.color = 'var(--ce-text-2)';

955 }} onMouseLeave={e => {

956 e.currentTarget.style.background = 'transparent';

957 e.currentTarget.style.color = 'var(--ce-text-4)';

958 }}>{isExpanded ? '▾' : '▸'}</span> : <span style={{

959 width: '14px',

960 flexShrink: 0

961 }} />}

962 {renderIcon(node.icon, node.color)}

963 <span style={{

964 flex: 1,

965 overflow: 'hidden',

966 textOverflow: 'ellipsis',

967 whiteSpace: 'nowrap'

968 }}>{node.label}</span>

969 {node.badge && BADGE_STYLES[node.badge] && <span title={BADGE_STYLES[node.badge].label} style={{

970 width: 6,

971 height: 6,

972 borderRadius: '50%',

973 background: BADGE_STYLES[node.badge].color,

974 flexShrink: 0,

975 opacity: 0.7

976 }} />}

977 </button>

978 {isFolder && isExpanded && node.children && <div role="group">{node.children.map(child => renderNode(child, depth + 1))}</div>}

979 </div>;

980 };

981 return <>

982 <style>{`

983 .ce-root {

984 --ce-mono: var(--font-mono, ui-monospace, monospace);

985 --ce-accent: #D97757;

986 --ce-accent-bg: rgba(217,119,87,0.06);

987 --ce-accent-border: rgba(217,119,87,0.12);

988 --ce-bg: #fff;

989 --ce-surface: #FAFAF7;

990 --ce-surface-hover: #F0EEE6;

991 --ce-border: #E8E6DC;

992 --ce-border-subtle: #F0EEE6;

993 --ce-text: #141413;

994 --ce-text-2: #5E5D59;

995 --ce-text-3: #73726C;

996 --ce-text-4: #9C9A92;

997 --ce-text-5: #B8B6AE;

998 --ce-sep: #D1CFC5;

999 --ce-code-header: #F5F4ED;

1000 --ce-code-bg: #1A1918;

1001 --ce-arrow-hover: rgba(0,0,0,0.08);

1002 --ce-badge-committed: #3d6b2e;

1003 --ce-badge-gitignored: #b85c3a;

1004 --ce-badge-local: #5e5d59;

1005 --ce-badge-autogen: #b07520;

1006 --ce-when-text: #4a7fb5;

1007 }

1008 .dark .ce-root {

1009 --ce-bg: #1a1918;

1010 --ce-surface: #232221;

1011 --ce-surface-hover: #2e2d2b;

1012 --ce-border: #3a3936;

1013 --ce-border-subtle: #2e2d2b;

1014 --ce-text: #e8e6dc;

1015 --ce-text-2: #c4c2b8;

1016 --ce-text-3: #9c9a92;

1017 --ce-text-4: #73726c;

1018 --ce-text-5: #5e5d59;

1019 --ce-sep: #4a4946;

1020 --ce-code-header: #2e2d2b;

1021 --ce-code-bg: #0d0d0c;

1022 --ce-arrow-hover: rgba(255,255,255,0.08);

1023 --ce-badge-committed: #6fa85c;

1024 --ce-badge-gitignored: #e08a60;

1025 --ce-badge-local: #9c9a92;

1026 --ce-badge-autogen: #e8a45c;

1027 --ce-when-text: #8bb4e0;

1028 }

1029 .ce-mobile-fallback { display: none; border: 1px solid rgba(0,0,0,0.1); background: rgba(0,0,0,0.03); }

1030 .dark .ce-mobile-fallback { border-color: rgba(255,255,255,0.15); background: rgba(255,255,255,0.04); }

1031 @media (max-width: 700px) {

1032 .ce-root:not(.ce-force) { display: none !important; }

1033 .ce-mobile-fallback { display: block; }

1034 }

1035 `}</style>

1036 {!forceMobile && <div className="ce-mobile-fallback" style={{

1037 padding: '14px 16px',

1038 borderRadius: '8px',

1039 fontSize: '14px'

1040 }}>

1041 The interactive explorer works best on a larger screen. See the <a href="#file-reference" style={{

1042 color: '#D97757'

1043 }}>file reference table</a> below, or <button onClick={() => setForceMobile(true)} style={{

1044 border: 'none',

1045 background: 'none',

1046 padding: 0,

1047 color: '#D97757',

1048 textDecoration: 'underline',

1049 cursor: 'pointer',

1050 font: 'inherit'

1051 }}>show the explorer anyway</button>.

1052 </div>}

1053 <div ref={rootRef} className={forceMobile ? 'ce-root ce-force' : 'ce-root'} style={{

1054 borderRadius: isFullscreen ? 0 : '12px',

1055 border: '1px solid var(--ce-border)',

1056 background: 'var(--ce-bg)',

1057 display: 'flex',

1058 alignItems: 'stretch',

1059 overflow: 'hidden',

1060 fontFamily: 'var(--font-sans, -apple-system, sans-serif)',

1061 ...isFullscreen && ({

1062 height: '100vh'

1063 })

1064 }}>

1065 {}

1066 <div style={{

1067 width: 'min(240px, 35%)',

1068 minWidth: '180px',

1069 flexShrink: 0,

1070 borderRight: '1px solid var(--ce-border-subtle)',

1071 background: 'var(--ce-surface)',

1072 display: 'flex',

1073 flexDirection: 'column'

1074 }}>

1075 <div style={{

1076 padding: '8px 8px 4px',

1077 borderBottom: '1px solid var(--ce-border-subtle)',

1078 display: 'flex',

1079 gap: '4px'

1080 }}>

1081 {['project', 'global'].map(root => <button key={root} onClick={() => switchRoot(root)} style={{

1082 flex: 1,

1083 padding: '6px 0',

1084 borderRadius: '6px',

1085 border: 'none',

1086 cursor: 'pointer',

1087 fontFamily: 'var(--ce-mono)',

1088 fontSize: '11.5px',

1089 background: activeRoot === root ? 'var(--ce-accent-bg)' : 'transparent',

1090 color: activeRoot === root ? 'var(--ce-accent)' : 'var(--ce-text-4)',

1091 fontWeight: activeRoot === root ? 600 : 430

1092 }}>

1093 {root === 'project' ? 'Project' : 'Global (~/)'}

1094 </button>)}

1095 <button onClick={toggleAllFolders} title={allExpanded ? 'Collapse all' : 'Expand all'} style={{

1096 ...iconBtn,

1097 fontSize: 11

1098 }}>

1099 {allExpanded ? '⊟' : '⊞'}

1100 </button>

1101 <button onClick={toggleFullscreen} title={isFullscreen ? 'Exit fullscreen' : 'Fullscreen'} style={{

1102 ...iconBtn,

1103 fontSize: 13

1104 }}>

1105 {isFullscreen ? '⤡' : '⛶'}

1106 </button>

1107 </div>

1108 <div role="tree" aria-label="Configuration files" tabIndex={0} onKeyDown={onTreeKeyDown} style={{

1109 padding: '6px 0',

1110 overflowY: 'auto',

1111 flex: 1,

1112 outline: 'none'

1113 }}>

1114 {tree.children.map(node => renderNode(node, 0))}

1115 </div>

1116 </div>

1117 

1118 {}

1119 <div style={{

1120 flex: 1,

1121 minWidth: 0,

1122 padding: '20px 24px',

1123 minHeight: '400px',

1124 overflowY: 'auto'

1125 }}>

1126 <span aria-live="polite" style={{

1127 position: 'absolute',

1128 width: 1,

1129 height: 1,

1130 overflow: 'hidden',

1131 clip: 'rect(0 0 0 0)'

1132 }}>{selected.label} selected</span>

1133 {}

1134 <div style={{

1135 fontFamily: 'var(--ce-mono)',

1136 fontSize: '11px',

1137 color: 'var(--ce-text-4)',

1138 marginBottom: '10px',

1139 cursor: 'default'

1140 }}>

1141 {selected.path.map((seg, i) => <span key={i}>

1142 <span style={{

1143 color: i === selected.path.length - 1 ? 'var(--ce-accent)' : 'var(--ce-text-4)'

1144 }}>{seg.replace(/\/$/, '')}</span>

1145 {i < selected.path.length - 1 && <span style={{

1146 color: 'var(--ce-sep)'

1147 }}> / </span>}

1148 </span>)}

1149 </div>

1150 

1151 {}

1152 <div style={{

1153 display: 'flex',

1154 alignItems: 'flex-start',

1155 gap: '10px',

1156 marginBottom: '10px'

1157 }}>

1158 <span style={{

1159 flexShrink: 0,

1160 display: 'flex'

1161 }}>{renderIcon(selected.icon, selected.color, 24)}</span>

1162 <div style={{

1163 flex: 1,

1164 minWidth: 0

1165 }}>

1166 <div style={{

1167 fontSize: '22px',

1168 fontWeight: 600,

1169 color: 'var(--ce-text)',

1170 letterSpacing: '-0.3px',

1171 lineHeight: '26px'

1172 }}>{selected.label}</div>

1173 {selected.oneLiner && <div style={{

1174 fontSize: '15px',

1175 color: 'var(--ce-text-3)',

1176 marginTop: '3px'

1177 }}>{selected.oneLiner}</div>}

1178 </div>

1179 <div style={{

1180 display: 'flex',

1181 gap: '4px',

1182 flexShrink: 0

1183 }}>

1184 {[selected.autogen && 'autogen', selected.badge].filter(Boolean).map(k => {

1185 const s = BADGE_STYLES[k];

1186 if (!s) return null;

1187 return <span key={k} style={{

1188 fontFamily: 'var(--ce-mono)',

1189 fontSize: '10px',

1190 fontWeight: 600,

1191 textTransform: 'uppercase',

1192 letterSpacing: '0.3px',

1193 padding: '2px 6px',

1194 borderRadius: '4px',

1195 background: s.bg,

1196 color: s.color,

1197 border: `0.5px solid ${s.border}`

1198 }}>{s.label}</span>;

1199 })}

1200 </div>

1201 </div>

1202 

1203 {}

1204 {selected.note && <div style={{

1205 padding: '10px 12px',

1206 borderRadius: '8px',

1207 marginBottom: '14px',

1208 background: 'rgba(217,119,87,0.06)',

1209 border: '1px solid rgba(217,119,87,0.2)',

1210 borderLeft: '3px solid var(--ce-accent)',

1211 fontSize: '15px',

1212 color: 'var(--ce-text-2)',

1213 lineHeight: 1.6

1214 }}>

1215 {selected.note}

1216 </div>}

1217 

1218 {}

1219 {selected.when && <div style={{

1220 padding: '8px 12px',

1221 borderRadius: '6px',

1222 background: 'rgba(106,155,204,0.06)',

1223 border: '0.5px solid rgba(106,155,204,0.12)',

1224 fontSize: '15px',

1225 color: 'var(--ce-when-text)',

1226 marginBottom: '16px'

1227 }}>

1228 <div style={{

1229 fontSize: '10px',

1230 fontWeight: 700,

1231 textTransform: 'uppercase',

1232 letterSpacing: '0.4px',

1233 opacity: 0.65,

1234 marginBottom: '3px'

1235 }}>When it loads</div>

1236 <div style={{

1237 fontWeight: 500

1238 }}>{selected.when}</div>

1239 </div>}

1240 

1241 {}

1242 {selected.description && <div style={{

1243 fontSize: '16px',

1244 color: 'var(--ce-text-2)',

1245 lineHeight: 1.65,

1246 marginBottom: '16px'

1247 }}>

1248 {Array.isArray(selected.description) ? selected.description.map((para, i) => <div key={i} style={{

1249 marginBottom: i < selected.description.length - 1 ? '12px' : 0

1250 }}>{para}</div>) : selected.description}

1251 </div>}

1252 

1253 {}

1254 {selected.contains && selected.contains.length > 0 && <div style={{

1255 marginBottom: '16px'

1256 }}>

1257 <div style={{

1258 fontSize: '11px',

1259 fontWeight: 700,

1260 color: 'var(--ce-text-4)',

1261 textTransform: 'uppercase',

1262 letterSpacing: '0.4px',

1263 marginBottom: '8px'

1264 }}>Common keys</div>

1265 {selected.contains.map((item, i) => <div key={i} style={{

1266 display: 'flex',

1267 gap: '7px',

1268 fontSize: '15px',

1269 color: 'var(--ce-text-2)',

1270 lineHeight: 1.5,

1271 marginBottom: '5px'

1272 }}>

1273 <span style={{

1274 fontSize: '7px',

1275 color: 'var(--ce-text-4)',

1276 marginTop: '6px'

1277 }}>●</span>

1278 <span>{item}</span>

1279 </div>)}

1280 </div>}

1281 

1282 {}

1283 {selected.tips && selected.tips.length > 0 && <div style={{

1284 padding: '12px 14px',

1285 borderRadius: '8px',

1286 background: 'var(--ce-surface)',

1287 border: '1px solid var(--ce-border-subtle)',

1288 marginBottom: '16px'

1289 }}>

1290 <div style={{

1291 fontSize: '11px',

1292 fontWeight: 700,

1293 color: 'var(--ce-accent)',

1294 textTransform: 'uppercase',

1295 letterSpacing: '0.4px',

1296 marginBottom: '6px'

1297 }}>Tips</div>

1298 {selected.tips.map((tip, i) => <div key={i} style={{

1299 display: 'flex',

1300 gap: '7px',

1301 fontSize: '14.5px',

1302 color: 'var(--ce-text-2)',

1303 marginBottom: i < selected.tips.length - 1 ? '5px' : 0

1304 }}>

1305 <span style={{

1306 fontSize: '7px',

1307 color: 'var(--ce-accent)',

1308 marginTop: '6px'

1309 }}>●</span>

1310 <span>{tip}</span>

1311 </div>)}

1312 </div>}

1313 

1314 {}

1315 {selected.example && <div style={{

1316 marginBottom: '16px'

1317 }}>

1318 {selected.exampleIntro && <div style={{

1319 fontSize: '15px',

1320 color: 'var(--ce-text-2)',

1321 lineHeight: 1.6,

1322 marginBottom: '10px'

1323 }}>

1324 {selected.exampleIntro}

1325 </div>}

1326 <div style={{

1327 display: 'flex',

1328 justifyContent: 'space-between',

1329 alignItems: 'center',

1330 padding: '6px 10px',

1331 background: 'var(--ce-code-header)',

1332 border: '1px solid var(--ce-border)',

1333 borderRadius: '8px 8px 0 0'

1334 }}>

1335 <span style={{

1336 fontFamily: 'var(--ce-mono)',

1337 fontSize: '11px',

1338 fontWeight: 600,

1339 color: 'var(--ce-text-3)'

1340 }}>{selected.label}</span>

1341 <button onClick={() => copyExample(selected.id, selected.example)} style={{

1342 padding: '3px 8px',

1343 borderRadius: '4px',

1344 fontSize: '11px',

1345 fontWeight: 600,

1346 cursor: 'pointer',

1347 transition: 'all 0.15s',

1348 background: isCopied ? 'rgba(85,138,66,0.08)' : 'var(--ce-code-header)',

1349 border: isCopied ? '0.5px solid rgba(85,138,66,0.2)' : '0.5px solid var(--ce-border)',

1350 color: isCopied ? '#558A42' : 'var(--ce-text-3)'

1351 }}>

1352 {isCopied ? '✓ Copied' : 'Copy'}

1353 </button>

1354 </div>

1355 <pre style={{

1356 margin: 0,

1357 padding: '12px 14px',

1358 background: 'var(--ce-code-bg)',

1359 color: '#E8E6DC',

1360 fontFamily: 'var(--ce-mono)',

1361 fontSize: '13px',

1362 lineHeight: 1.65,

1363 borderRadius: '0 0 8px 8px',

1364 overflowX: 'auto',

1365 whiteSpace: 'pre'

1366 }}>{selected.example}</pre>

1367 </div>}

1368 

1369 {}

1370 {selected.docsLink && <a href={selected.docsLink} style={{

1371 display: 'inline-flex',

1372 padding: '5px 12px',

1373 borderRadius: '6px',

1374 background: 'var(--ce-accent-bg)',

1375 border: '1px solid var(--ce-accent-border)',

1376 color: 'var(--ce-accent)',

1377 fontSize: '12px',

1378 fontWeight: 600,

1379 textDecoration: 'none'

1380 }}>Full docs →</a>}

1381 

1382 {}

1383 {selected.children && selected.children.length > 0 && <div style={{

1384 marginTop: '20px'

1385 }}>

1386 <div style={{

1387 fontSize: '11px',

1388 fontWeight: 700,

1389 color: 'var(--ce-text-4)',

1390 textTransform: 'uppercase',

1391 letterSpacing: '0.4px',

1392 marginBottom: '8px'

1393 }}>Contents</div>

1394 <div style={{

1395 display: 'flex',

1396 flexDirection: 'column',

1397 gap: '4px'

1398 }}>

1399 {selected.children.map(child => <button key={child.id} onClick={() => selectNode(child)} style={{

1400 display: 'flex',

1401 alignItems: 'center',

1402 gap: '8px',

1403 padding: '6px 8px',

1404 width: '100%',

1405 background: 'var(--ce-surface)',

1406 borderRadius: '6px',

1407 border: 'none',

1408 cursor: 'pointer',

1409 textAlign: 'left',

1410 transition: 'background 0.1s'

1411 }} onMouseEnter={e => e.currentTarget.style.background = 'var(--ce-surface-hover)'} onMouseLeave={e => e.currentTarget.style.background = 'var(--ce-surface)'}>

1412 {renderIcon(child.icon, child.color, 13)}

1413 <span style={{

1414 fontFamily: 'var(--ce-mono)',

1415 fontSize: '12px',

1416 color: 'var(--ce-text-2)'

1417 }}>{child.label}</span>

1418 {child.oneLiner && <span style={{

1419 fontSize: '11px',

1420 color: 'var(--ce-text-4)',

1421 overflow: 'hidden',

1422 textOverflow: 'ellipsis',

1423 whiteSpace: 'nowrap'

1424 }}>{child.oneLiner}</span>}

1425 </button>)}

1426 </div>

1427 </div>}

1428 </div>

1429 </div>

1430 </>;

1431};

1432 

9Claude Code lee instrucciones, configuración, skills, subagents y memoria desde su directorio de proyecto y desde `~/.claude` en su directorio de inicio. Confirme archivos de proyecto en git para compartirlos con su equipo; los archivos en `~/.claude` son configuración personal que se aplica en todos sus proyectos.1433Claude Code lee instrucciones, configuración, skills, subagents y memoria desde su directorio de proyecto y desde `~/.claude` en su directorio de inicio. Confirme archivos de proyecto en git para compartirlos con su equipo; los archivos en `~/.claude` son configuración personal que se aplica en todos sus proyectos.

10 1434 

11En Windows, `~/.claude` se resuelve a `%USERPROFILE%\.claude`. Si establece [`CLAUDE_CONFIG_DIR`](/es/env-vars), cada ruta `~/.claude` en esta página vive bajo ese directorio en su lugar.1435En Windows, `~/.claude` se resuelve a `%USERPROFILE%\.claude`. Si establece [`CLAUDE_CONFIG_DIR`](/es/env-vars), cada ruta `~/.claude` en esta página vive bajo ese directorio en su lugar.


18 1442 

19Haga clic en los archivos del árbol para ver qué hace cada uno, cuándo se carga y un ejemplo.1443Haga clic en los archivos del árbol para ver qué hace cada uno, cuándo se carga y un ejemplo.

20 1444 

21<h2 id="what-s-not-shown">1445<ClaudeExplorer />

1446 

1447<h2 id="what’s-not-shown">

22 Lo que no se muestra1448 Lo que no se muestra

23</h2>1449</h2>

24 1450 

Details

6 6 

7> Configure Claude Code para usar la API de Claude operada por Anthropic con autenticación de AWS, control de acceso IAM y facturación de AWS Marketplace.7> Configure Claude Code para usar la API de Claude operada por Anthropic con autenticación de AWS, control de acceso IAM y facturación de AWS Marketplace.

8 8 

9export const ContactSalesCard = ({surface}) => {

10 const utm = content => `utm_source=claude_code&utm_medium=docs&utm_content=${surface}_${content}`;

11 const iconArrowRight = (size = 13) => <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2.5" strokeLinecap="round" strokeLinejoin="round" aria-hidden="true">

12 <line x1="5" y1="12" x2="19" y2="12" />

13 <polyline points="12 5 19 12 12 19" />

14 </svg>;

15 const STYLES = `

16.cc-cs {

17 --cs-slate: #141413;

18 --cs-clay: #d97757;

19 --cs-clay-deep: #c6613f;

20 --cs-gray-000: #ffffff;

21 --cs-gray-700: #3d3d3a;

22 --cs-border-default: rgba(31, 30, 29, 0.15);

23 font-family: inherit;

24}

25.dark .cc-cs {

26 --cs-slate: #f0eee6;

27 --cs-gray-000: #262624;

28 --cs-gray-700: #bfbdb4;

29 --cs-border-default: rgba(240, 238, 230, 0.14);

30}

31.cc-cs-card {

32 display: flex; align-items: center; justify-content: space-between;

33 gap: 16px; padding: 14px 16px; margin: 0;

34 background: var(--cs-gray-000); border: 0.5px solid var(--cs-border-default);

35 border-radius: 8px; flex-wrap: wrap;

36}

37.cc-cs-text { font-size: 13px; color: var(--cs-gray-700); line-height: 1.5; flex: 1; min-width: 240px; }

38.cc-cs-text strong { font-weight: 550; color: var(--cs-slate); }

39.cc-cs-actions { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }

40.cc-cs-btn-clay {

41 display: inline-flex; align-items: center; gap: 8px;

42 background: var(--cs-clay-deep); color: #fff; border: none;

43 border-radius: 8px; padding: 8px 14px;

44 font-size: 13px; font-weight: 500;

45 transition: background-color 0.15s; white-space: nowrap;

46}

47.cc-cs-btn-clay:hover { background: var(--cs-clay); }

48.cc-cs-btn-ghost {

49 display: inline-flex; align-items: center; gap: 8px;

50 background: transparent; color: var(--cs-gray-700);

51 border: 0.5px solid var(--cs-border-default);

52 border-radius: 8px; padding: 8px 14px;

53 font-size: 13px; font-weight: 500;

54}

55.cc-cs-btn-ghost:hover { background: rgba(0, 0, 0, 0.04); }

56.dark .cc-cs-btn-ghost:hover { background: rgba(255, 255, 255, 0.04); }

57@media (max-width: 720px) {

58 .cc-cs-actions { width: 100%; }

59}

60`;

61 return <div className="cc-cs not-prose">

62 <style>{STYLES}</style>

63 <div className="cc-cs-card">

64 <div className="cc-cs-text">

65 <strong>Deploying Claude Code across your organization?</strong> Talk to sales about enterprise plans, SSO, and centralized billing.

66 </div>

67 <div className="cc-cs-actions">

68 <a href={`https://claude.com/pricing?${utm('view_plans')}#plans-business`} className="cc-cs-btn-ghost">

69 View plans

70 </a>

71 <a href={`https://claude.com/contact-sales?${utm('contact_sales')}`} className="cc-cs-btn-clay">

72 Contact sales {iconArrowRight()}

73 </a>

74 </div>

75 </div>

76 </div>;

77};

78 

79export const Experiment = ({flag, treatment, children}) => {

80 const VID_KEY = 'exp_vid';

81 const CONSENT_COUNTRIES = new Set(['AT', 'BE', 'BG', 'HR', 'CY', 'CZ', 'DK', 'EE', 'FI', 'FR', 'DE', 'GR', 'HU', 'IE', 'IT', 'LV', 'LT', 'LU', 'MT', 'NL', 'PL', 'PT', 'RO', 'SK', 'SI', 'ES', 'SE', 'RE', 'GP', 'MQ', 'GF', 'YT', 'BL', 'MF', 'PM', 'WF', 'PF', 'NC', 'AW', 'CW', 'SX', 'FO', 'GL', 'AX', 'GB', 'UK', 'AI', 'BM', 'IO', 'VG', 'KY', 'FK', 'GI', 'MS', 'PN', 'SH', 'TC', 'GG', 'JE', 'IM', 'CA', 'BR', 'IN']);

82 const fnv1a = s => {

83 let h = 0x811c9dc5;

84 for (let i = 0; i < s.length; i++) {

85 h ^= s.charCodeAt(i);

86 h += (h << 1) + (h << 4) + (h << 7) + (h << 8) + (h << 24);

87 }

88 return h >>> 0;

89 };

90 const bucket = (seed, vid) => fnv1a(fnv1a(seed + vid) + '') % 10000 < 5000 ? 'control' : 'treatment';

91 const [decision] = useState(() => {

92 const params = new URLSearchParams(location.search);

93 const preBucketed = document.documentElement.dataset['gb_' + flag.replace(/-/g, '_')];

94 const force = params.get('gb-force');

95 if (force) {

96 for (const p of force.split(',')) {

97 const [k, v] = p.split(':');

98 if (k === flag) return {

99 variant: v || 'treatment',

100 track: false

101 };

102 }

103 }

104 if (navigator.globalPrivacyControl) {

105 return {

106 variant: 'control',

107 track: false

108 };

109 }

110 const prefsMatch = document.cookie.match(/(?:^|; )anthropic-consent-preferences=([^;]+)/);

111 if (prefsMatch) {

112 try {

113 if (JSON.parse(decodeURIComponent(prefsMatch[1])).analytics !== true) {

114 return {

115 variant: 'control',

116 track: false

117 };

118 }

119 } catch {

120 return {

121 variant: 'control',

122 track: false

123 };

124 }

125 } else {

126 const country = params.get('country')?.toUpperCase() || (document.cookie.match(/(?:^|; )cf_geo=([A-Z]{2})/) || [])[1];

127 if (!country || CONSENT_COUNTRIES.has(country)) {

128 return {

129 variant: 'control',

130 track: false

131 };

132 }

133 }

134 let vid;

135 try {

136 const ajsMatch = document.cookie.match(/(?:^|; )ajs_anonymous_id=([^;]+)/);

137 if (ajsMatch) {

138 vid = decodeURIComponent(ajsMatch[1]).replace(/^"|"$/g, '');

139 } else {

140 vid = localStorage.getItem(VID_KEY);

141 if (!vid) {

142 vid = crypto.randomUUID();

143 }

144 document.cookie = `ajs_anonymous_id=${vid}; domain=.claude.com; path=/; Secure; SameSite=Lax; max-age=31536000`;

145 }

146 try {

147 localStorage.setItem(VID_KEY, vid);

148 } catch {}

149 } catch {

150 return {

151 variant: 'control',

152 track: false

153 };

154 }

155 const variant = preBucketed === '1' ? 'treatment' : preBucketed === '0' ? 'control' : bucket(flag, vid);

156 return {

157 variant,

158 track: true,

159 vid

160 };

161 });

162 useEffect(() => {

163 if (!decision.track) return;

164 fetch('https://api.anthropic.com/api/event_logging/v2/batch', {

165 method: 'POST',

166 headers: {

167 'Content-Type': 'application/json',

168 'x-service-name': 'claude_code_docs'

169 },

170 body: JSON.stringify({

171 events: [{

172 event_type: 'GrowthbookExperimentEvent',

173 event_data: {

174 device_id: decision.vid,

175 anonymous_id: decision.vid,

176 timestamp: new Date().toISOString(),

177 experiment_id: flag,

178 variation_id: decision.variant === 'treatment' ? 1 : 0,

179 environment: 'production'

180 }

181 }]

182 }),

183 keepalive: true

184 }).catch(() => {});

185 }, []);

186 return decision.variant === 'treatment' ? treatment : children;

187};

188 

189<Experiment flag="docs-contact-sales-cta" treatment={<ContactSalesCard surface="claude_platform_on_aws" />} />

190 

9Claude Platform on AWS es la API de Claude operada por Anthropic con autenticación de AWS, control de acceso IAM y facturación de AWS Marketplace. Las solicitudes llegan directamente a la API de Anthropic, por lo que obtiene los mismos modelos y características que la [Claude API](https://platform.claude.com/docs) en el mismo calendario de lanzamientos. Se autentica con credenciales de AWS o una clave API de espacio de trabajo, y paga a través de AWS Marketplace.191Claude Platform on AWS es la API de Claude operada por Anthropic con autenticación de AWS, control de acceso IAM y facturación de AWS Marketplace. Las solicitudes llegan directamente a la API de Anthropic, por lo que obtiene los mismos modelos y características que la [Claude API](https://platform.claude.com/docs) en el mismo calendario de lanzamientos. Se autentica con credenciales de AWS o una clave API de espacio de trabajo, y paga a través de AWS Marketplace.

10 192 

11Utilice esta guía para dirigir Claude Code a un espacio de trabajo que ya haya aprovisionado a través de Claude Platform on AWS. Para la suscripción de AWS y la configuración del espacio de trabajo que viene antes, consulte la [documentación de Claude Platform on AWS](https://platform.claude.com/docs/en/build-with-claude/claude-platform-on-aws).193Utilice esta guía para dirigir Claude Code a un espacio de trabajo que ya haya aprovisionado a través de Claude Platform on AWS. Para la suscripción de AWS y la configuración del espacio de trabajo que viene antes, consulte la [documentación de Claude Platform on AWS](https://platform.claude.com/docs/en/build-with-claude/claude-platform-on-aws).


92 3. Fijar versiones de modelo274 3. Fijar versiones de modelo

93</h3>275</h3>

94 276 

95Claude Platform on AWS utiliza los mismos ID de modelo que la API de Claude directa. Los alias predeterminados `opus`, `sonnet` y `haiku` se resuelven a las versiones más recientes disponibles en su espacio de trabajo.277Claude Platform on AWS utiliza los mismos ID de modelo que la API de Claude directa. Los 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 4.7.

96 278 

97Si 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:279Si 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:

98 280 

99```bash theme={null}281```bash theme={null}

282export ANTHROPIC_DEFAULT_FABLE_MODEL=claude-fable-5

100export ANTHROPIC_DEFAULT_OPUS_MODEL=claude-opus-4-7283export ANTHROPIC_DEFAULT_OPUS_MODEL=claude-opus-4-7

101export ANTHROPIC_DEFAULT_SONNET_MODEL=claude-sonnet-4-6284export ANTHROPIC_DEFAULT_SONNET_MODEL=claude-sonnet-4-6

102export ANTHROPIC_DEFAULT_HAIKU_MODEL=claude-haiku-4-5285export ANTHROPIC_DEFAULT_HAIKU_MODEL=claude-haiku-4-5


104 287 

105Para la lista completa de ID de modelo y alias, consulte [Descripción general de modelos](https://platform.claude.com/docs/en/about-claude/models/overview). Para otras variables relacionadas con modelos, consulte [Configuración de modelo](/es/model-config).288Para la lista completa de ID de modelo y alias, consulte [Descripción general de modelos](https://platform.claude.com/docs/en/about-claude/models/overview). Para otras variables relacionadas con modelos, consulte [Configuración de modelo](/es/model-config).

106 289 

107[Prompt caching](/es/prompt-caching) está habilitado automáticamente. Para solicitar un TTL de caché de 1 hora en lugar del predeterminado de 5 minutos, establezca `ENABLE_PROMPT_CACHING_1H=1`. Las escrituras de caché de 1 hora se facturan a una tasa más alta. Consulte [precios de prompt caching](https://platform.claude.com/docs/en/build-with-claude/prompt-caching#pricing) para conocer las tarifas.290[Prompt caching](/es/prompt-caching) está habilitado automáticamente. Para solicitar un TTL de caché de 1 hora en lugar del predeterminado de 5 minutos, establezca `ENABLE_PROMPT_CACHING_1H=1`. La API factura las escrituras de caché de 1 hora a una tasa más alta. Consulte [precios de prompt caching](https://platform.claude.com/docs/en/build-with-claude/prompt-caching#pricing) para conocer las tarifas.

108 291 

109<h2 id="use-the-agent-sdk">292<h2 id="use-the-agent-sdk">

110 Usar el Agent SDK293 Usar el Agent SDK


157 `403 Forbidden` o `AccessDenied` en cada solicitud340 `403 Forbidden` o `AccessDenied` en cada solicitud

158</h3>341</h3>

159 342 

160El principal de IAM que Claude Code resolvió probablemente carece de permiso para invocar el servicio de Anthropic en su espacio de trabajo. Verifique el rol adjunto a su perfil de AWS o al ejecutor que inició Claude Code, y verifique que tenga las acciones `aws-external-anthropic` documentadas en la [referencia de acciones de IAM](https://platform.claude.com/docs/en/api/claude-platform-on-aws-iam-actions).343El principal de IAM que Claude Code resolvió probablemente carece de permiso para invocar el servicio de Anthropic en su espacio de trabajo. Verifique el rol adjunto a su perfil de AWS o al ejecutor que inició Claude Code, y verifique que tenga las acciones `aws-external-anthropic` documentadas en la [referencia de acciones de IAM](https://platform.claude.com/docs/es/api/claude-platform-on-aws-iam-actions).

161 344 

162Si estableció `ANTHROPIC_AWS_API_KEY`, la clave tiene prioridad sobre SigV4 y una clave obsoleta produce el mismo error. Regenere la clave en la Consola de AWS en **Claude Platform on AWS → API keys** o desactive la variable para volver a sus credenciales de AWS.345Si estableció `ANTHROPIC_AWS_API_KEY`, la clave tiene prioridad sobre SigV4 y una clave obsoleta produce el mismo error. Regenere la clave en la Consola de AWS en **Claude Platform on AWS → API keys** o desactive la variable para volver a sus credenciales de AWS.

163 346 

cli-reference.md +11 −9

Details

13Puede iniciar sesiones, canalizar contenido, reanudar conversaciones y administrar actualizaciones con estos comandos:13Puede iniciar sesiones, canalizar contenido, reanudar conversaciones y administrar actualizaciones con estos comandos:

14 14 

15| Comando | Descripción | Ejemplo |15| Comando | Descripción | Ejemplo |

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

17| `claude` | Iniciar sesión interactiva | `claude` |17| `claude` | Iniciar sesión interactiva | `claude` |

18| `claude "query"` | Iniciar sesión interactiva con indicación inicial | `claude "explain this project"` |18| `claude "query"` | Iniciar sesión interactiva con indicación inicial | `claude "explain this project"` |

19| `claude -p "query"` | Consultar a través de SDK, luego salir | `claude -p "explain this function"` |19| `claude -p "query"` | Consultar a través de SDK, luego salir | `claude -p "explain this function"` |


26| `claude auth login` | Inicie sesión en su cuenta de Anthropic. Use `--email` para rellenar previamente su dirección de correo electrónico, `--sso` para forzar la autenticación SSO y `--console` para iniciar sesión con Anthropic Console para facturación de uso de API en lugar de una suscripción a Claude | `claude auth login --console` |26| `claude auth login` | Inicie sesión en su cuenta de Anthropic. Use `--email` para rellenar previamente su dirección de correo electrónico, `--sso` para forzar la autenticación SSO y `--console` para iniciar sesión con Anthropic Console para facturación de uso de API en lugar de una suscripción a Claude | `claude auth login --console` |

27| `claude auth logout` | Cerrar sesión en su cuenta de Anthropic | `claude auth logout` |27| `claude auth logout` | Cerrar sesión en su cuenta de Anthropic | `claude auth logout` |

28| `claude auth status` | Mostrar estado de autenticación como JSON. Use `--text` para salida legible por humanos. Sale con código 0 si ha iniciado sesión, 1 si no | `claude auth status` |28| `claude auth status` | Mostrar estado de autenticación como JSON. Use `--text` para salida legible por humanos. Sale con código 0 si ha iniciado sesión, 1 si no | `claude auth status` |

29| `claude agents` | Abrir [vista de agentes](/es/agent-view) para monitorear y enviar sesiones de fondo paralelas. Use `--cwd <path>` para mostrar solo sesiones iniciadas en ese directorio, o `--json` para imprimir sesiones activas como una matriz JSON para scripts. Pase `--settings`, `--add-dir`, `--plugin-dir` y `--mcp-config` como el comando `claude` de nivel superior. Pase `--permission-mode`, `--model`, `--effort` o `--agent` para establecer [valores predeterminados para sesiones enviadas](/es/agent-view#permission-mode-model-and-effort). Abrir la vista de agentes requiere una terminal interactiva | `claude agents --json` |29| `claude agents` | Abrir [vista de agentes](/es/agent-view) para monitorear y enviar sesiones de fondo paralelas. Use `--cwd <path>` para mostrar solo sesiones iniciadas en ese directorio, o `--json` para imprimir sesiones activas como una matriz JSON para scripts (`--json --all` también incluye sesiones de fondo completadas). Pase `--permission-mode`, `--model`, `--effort` o `--agent` para establecer [valores predeterminados para sesiones enviadas](/es/agent-view#permission-mode-model-and-effort). Acepta `--settings`, `--add-dir`, `--plugin-dir` y `--mcp-config` como el comando `claude` de nivel superior. Abrir la vista de agentes requiere una terminal interactiva | `claude agents --json` |

30| `claude attach <id>` | Adjuntar a una [sesión de fondo](/es/agent-view#manage-sessions-from-the-shell) en esta terminal | `claude attach 7c5dcf5d` |30| `claude attach <id>` | Adjuntar a una [sesión de fondo](/es/agent-view#manage-sessions-from-the-shell) en esta terminal | `claude attach 7c5dcf5d` |

31| `claude auto-mode defaults` | Imprimir las reglas del clasificador de [auto mode](/es/permission-modes#eliminate-prompts-with-auto-mode) integradas como JSON. Use `claude auto-mode config` para ver su configuración efectiva con la configuración aplicada | `claude auto-mode defaults > rules.json` |31| `claude auto-mode defaults` | Imprimir las reglas del clasificador de [auto mode](/es/permission-modes#eliminate-prompts-with-auto-mode) integradas como JSON. Use `claude auto-mode config` para ver su configuración efectiva con la configuración aplicada | `claude auto-mode defaults > rules.json` |

32| `claude daemon status` | Imprimir el estado del [supervisor](/es/agent-view#the-supervisor-process) de sesión de fondo, versión, directorio de socket y recuento de trabajadores para diagnósticos. Sale con 1 si el supervisor no se está ejecutando | `claude daemon status` |32| `claude daemon status` | Imprimir el estado del [supervisor](/es/agent-view#the-supervisor-process) de sesión de fondo, versión, directorio de socket y recuento de trabajadores para diagnósticos. Sale con 1 si el supervisor no se está ejecutando | `claude daemon status` |


51Personalice el comportamiento de Claude Code con estas banderas de línea de comandos. `claude --help` no enumera todas las banderas, por lo que la ausencia de una bandera en `--help` no significa que no esté disponible.51Personalice el comportamiento de Claude Code con estas banderas de línea de comandos. `claude --help` no enumera todas las banderas, por lo que la ausencia de una bandera en `--help` no significa que no esté disponible.

52 52 

53| Bandera | Descripción | Ejemplo |53| Bandera | Descripción | Ejemplo |

54| :---------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------- |54| :---------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------- |

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

56| `--advisor <model>` | {/* min-version: 2.1.98 */}Habilitar la [herramienta advisor](/es/advisor) del lado del servidor para esta sesión con un alias de modelo: `opus`, `sonnet` o `fable` ({/* min-version: 2.1.170 */}v2.1.170+), o un ID de modelo completo. Tiene prioridad sobre la configuración `advisorModel` para la sesión. Requiere Claude Code v2.1.98 o posterior | `claude --advisor opus` |

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

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

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

59| `--allowedTools` | Herramientas que se ejecutan sin solicitar permiso. Consulte [sintaxis de regla de permiso](/es/settings#permission-rule-syntax) para coincidencia de patrones. Para restringir qué herramientas están disponibles, use `--tools` en su lugar | `"Bash(git log *)" "Bash(git diff *)" "Read"` |60| `--allowedTools`, `--allowed-tools` | Herramientas que se ejecutan sin solicitar permiso. Consulte [sintaxis de regla de permiso](/es/settings#permission-rule-syntax) para coincidencia de patrones. Para restringir qué herramientas están disponibles, use `--tools` en su lugar | `"Bash(git log *)" "Bash(git diff *)" "Read"` |

60| `--append-system-prompt` | Agregar texto personalizado al final del indicador del sistema predeterminado | `claude --append-system-prompt "Always use TypeScript"` |61| `--append-system-prompt` | Agregar texto personalizado al final del indicador del sistema predeterminado | `claude --append-system-prompt "Always use TypeScript"` |

61| `--append-system-prompt-file` | Cargar texto de indicación del sistema adicional desde un archivo y agregar al indicador predeterminado | `claude --append-system-prompt-file ./extra-rules.txt` |62| `--append-system-prompt-file` | Cargar texto de indicación del sistema adicional desde un archivo y agregar al indicador predeterminado | `claude --append-system-prompt-file ./extra-rules.txt` |

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


70| `--debug` | Habilitar modo de depuración con filtrado de categoría opcional (por ejemplo, `"api,hooks"` o `"!statsig,!file"`) | `claude --debug "api,mcp"` |71| `--debug` | Habilitar modo de depuración con filtrado de categoría opcional (por ejemplo, `"api,hooks"` o `"!statsig,!file"`) | `claude --debug "api,mcp"` |

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

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

73| `--disallowedTools` | Reglas de denegación. Un nombre de herramienta simple elimina esa herramienta del contexto del modelo. Una regla con alcance como `Bash(rm *)` deja la herramienta disponible y deniega solo las llamadas coincidentes | `"Bash(git log *)" "Bash(git diff *)" "Edit"` |74| `--disallowedTools`, `--disallowed-tools` | Reglas de denegación. Un nombre de herramienta simple elimina esa herramienta del contexto del modelo: `"Edit"` elimina Edit, `"*"` elimina todas las herramientas, y `"mcp__*"` elimina todas las herramientas MCP. Una regla con alcance como `Bash(rm *)` deja la herramienta disponible y deniega solo las llamadas coincidentes | `"Bash(git log *)" "Bash(git diff *)" "Edit"` |

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

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

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

77| `--exec` | Ejecutar un comando de shell como un trabajo de fondo respaldado por PTY en lugar de iniciar una sesión de Claude. Use con `--bg` para lanzar desde el shell | `claude --bg --exec 'pytest -x'` |78| `--exec` | Ejecutar un comando de shell como un trabajo de fondo respaldado por PTY en lugar de iniciar una sesión de Claude. Use con `--bg` para lanzar desde el shell | `claude --bg --exec 'pytest -x'` |

78| `--fallback-model` | Habilitar fallback automático a un modelo especificado cuando el modelo predeterminado está sobrecargado o no está disponible, por ejemplo un modelo retirado. Tiene efecto en modo impresión (`-p`) y en [sesiones de fondo](/es/agent-view), que se ejecutan de forma no interactiva; se ignora en una sesión interactiva | `claude -p --fallback-model sonnet "query"` |79| `--fallback-model` | Habilitar fallback automático a los modelos especificados cuando el modelo principal está sobrecargado o no está disponible, por ejemplo un modelo retirado. Acepta una lista separada por comas probada en orden. Consulte [Cadenas de modelo de fallback](/es/model-config#fallback-model-chains). Para persistir una cadena entre sesiones, use la configuración [`fallbackModel`](/es/settings#available-settings), que esta bandera anula | `claude --fallback-model sonnet,haiku` |

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

80| `--from-pr` | Reanudar 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` |81| `--from-pr` | Reanudar 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` |

81| `--ide` | Conectarse automáticamente al IDE al iniciar si exactamente un IDE válido está disponible | `claude --ide` |82| `--ide` | Conectarse automáticamente al IDE al iniciar si exactamente un IDE válido está disponible | `claude --ide` |


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

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

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

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

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

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

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


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

105| `--remote-control-session-name-prefix <prefix>` | Prefijo para nombres de sesión de [Remote Control](/es/remote-control) generados automáticamente cuando no se establece un nombre explícito. Por defecto es el nombre de host de su máquina, produciendo nombres como `myhost-graceful-unicorn`. Establezca `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` para el mismo efecto | `claude remote-control --remote-control-session-name-prefix dev-box` |106| `--remote-control-session-name-prefix <prefix>` | Prefijo para nombres de sesión de [Remote Control](/es/remote-control) generados automáticamente cuando no se establece un nombre explícito. Por defecto es el nombre de host de su máquina, produciendo nombres como `myhost-graceful-unicorn`. Establezca `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` para el mismo efecto | `claude remote-control --remote-control-session-name-prefix dev-box` |

106| `--replay-user-messages` | Re-emitir mensajes de usuario desde stdin de vuelta en stdout para reconocimiento. Requiere `--input-format stream-json` y `--output-format stream-json` | `claude -p --input-format stream-json --output-format stream-json --verbose --replay-user-messages` |107| `--replay-user-messages` | Re-emitir mensajes de usuario desde stdin de vuelta en stdout para reconocimiento. Requiere `--input-format stream-json` y `--output-format stream-json` | `claude -p --input-format stream-json --output-format stream-json --verbose --replay-user-messages` |

107| `--resume`, `-r` | Reanudar una sesión específica por ID o nombre, o mostrar un selector interactivo para elegir una sesión. Incluye sesiones que agregaron este directorio con `/add-dir`. A partir de v2.1.144, [sesiones de fondo](/es/agent-view) aparecen en el selector marcadas con `bg` | `claude --resume auth-refactor` |108| `--resume`, `-r` | Reanudar una sesión específica por ID o nombre, o mostrar un selector interactivo para elegir una sesión. El selector y la búsqueda de nombre incluyen sesiones que agregaron este directorio con `/add-dir`; pasar un ID de sesión busca solo en el directorio del proyecto actual y sus git worktrees. A partir de v2.1.144, [sesiones de fondo](/es/agent-view) aparecen en el selector marcadas con `bg` | `claude --resume auth-refactor` |

109| `--safe-mode` | {/* min-version: 2.1.169 */}Comenzar con todas las personalizaciones deshabilitadas para solucionar problemas de una configuración rota: CLAUDE.md, skills, plugins, hooks, servidores MCP, comandos y agentes personalizados, estilos de salida, flujos de trabajo, temas personalizados, atajos de teclado personalizados, comandos de línea de estado y sugerencia de archivos, servidores LSP y memoria automática no se cargan. La autenticación, selección de modelo, herramientas integradas y permisos funcionan normalmente, lo que difiere de [`--bare`](/es/headless#start-faster-with-bare-mode). La política de configuración administrada aún se aplica, incluidos hooks configurados por política, línea de estado y comandos de sugerencia de archivos; plugins administrados, skills administrados, CLAUDE.md administrado y servidores MCP configurados por política no. Útil para verificar si una personalización es lo que desencadena [fallback automático de Fable 5](/es/model-config#automatic-model-fallback). Establece [`CLAUDE_CODE_SAFE_MODE`](/es/env-vars) | `claude --safe-mode` |

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

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

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


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

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

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

117| `--tools` | Restringir qué herramientas integradas puede usar Claude. Use `""` para deshabilitar todas, `"default"` para todas, o nombres de herramientas como `"Bash,Edit,Read"` | `claude --tools "Bash,Edit,Read"` |119| `--tools` | Restringir qué herramientas integradas puede usar Claude. Use `""` para deshabilitar todas, `"default"` para todas, o nombres de herramientas como `"Bash,Edit,Read"`. Las herramientas MCP no se ven afectadas; para denegar también esas, use `--disallowedTools "mcp__*"`, o pase `--strict-mcp-config` sin `--mcp-config` para que no se carguen servidores MCP | `claude --tools "Bash,Edit,Read"` |

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

119| `--version`, `-v` | Mostrar el número de versión | `claude -v` |121| `--version`, `-v` | Mostrar el número de versión | `claude -v` |

120| `--worktree`, `-w` | Iniciar Claude en un [git worktree](/es/worktrees) aislado en `<repo>/.claude/worktrees/<name>`. Si no se proporciona un nombre, se genera automáticamente. Pase `#<number>` o una URL de solicitud de extracción de GitHub para obtener ese PR de `origin` y ramificar el worktree desde él | `claude -w feature-auth` |122| `--worktree`, `-w` | Iniciar Claude en un [git worktree](/es/worktrees) aislado en `<repo>/.claude/worktrees/<name>`. Si no se proporciona un nombre, se genera automáticamente. Pase `#<number>` o una URL de solicitud de extracción de GitHub para obtener ese PR de `origin` y ramificar el worktree desde él | `claude -w feature-auth` |

code-review.md +6 −6

Details

295 295 

296El botón **Re-run** en la pestaña Checks de GitHub no reactiva Code Review. Use el comando de comentario o un nuevo push en su lugar.296El botón **Re-run** en la pestaña Checks de GitHub no reactiva Code Review. Use el comando de comentario o un nuevo push en su lugar.

297 297 

298<h3 id="review-didn-t-run-and-the-pr-shows-a-spend-cap-message">298<h3 id="review-didnt-run-and-the-pr-shows-a-spend-cap-message">

299 La revisión no se ejecutó y el PR muestra un mensaje de límite de gasto299 La revisión no se ejecutó y el PR muestra un mensaje de límite de gasto

300</h3>300</h3>

301 301 

302Cuando se alcanza el límite de gasto mensual de su organización, Code Review publica un único comentario en el PR explicando que la revisión fue omitida. Las revisiones se reanudan automáticamente al inicio del próximo período de facturación, o inmediatamente cuando un administrador aumenta el límite en [claude.ai/admin-settings/usage](https://claude.ai/admin-settings/usage).302Cuando se alcanza el límite de gasto mensual de su organización, Code Review publica un único comentario en el PR explicando que la revisión fue omitida. Las revisiones se reanudan automáticamente al inicio del próximo período de facturación, o inmediatamente cuando un administrador aumenta el límite en [claude.ai/admin-settings/usage](https://claude.ai/admin-settings/usage).

303 303 

304<h3 id="find-issues-that-aren-t-showing-as-inline-comments">304<h3 id="find-issues-that-arent-showing-as-inline-comments">

305 Encontrar problemas que no se muestran como comentarios en línea305 Encontrar problemas que no se muestran como comentarios en línea

306</h3>306</h3>

307 307 


315 Revisar un diff localmente315 Revisar un diff localmente

316</h2>316</h2>

317 317 

318El comando [`/code-review`](/es/commands) revisa un diff en su terminal sin instalar la aplicación de GitHub. Ejecutelo en cualquier sesión de Claude Code: reporta errores de corrección y {/* min-version: 2.1.151 */}reutilización, simplificación y limpiezas de eficiencia en el diff actual. Pase `--comment` para publicar hallazgos como comentarios de PR en línea, o `--fix` para aplicar los hallazgos a su árbol de trabajo después de la revisión.318El comando [`/code-review`](/es/commands) revisa un diff en su terminal sin instalar la aplicación de GitHub. Ejecutelo en cualquier sesión de Claude Code: reporta errores de corrección y {/* min-version: 2.1.151 */}reutilización, simplificación y limpiezas de eficiencia. De forma predeterminada, la revisión local cubre los commits de su rama por delante de su rama ascendente más cualquier cambio sin confirmar en el árbol de trabajo. Pase `--comment` para publicar hallazgos como comentarios de PR en línea, o `--fix` para aplicar los hallazgos a su árbol de trabajo después de la revisión.

319 319 

320Los [niveles de esfuerzo](/es/model-config#adjust-effort-level) más bajos devuelven menos hallazgos con mayor confianza, mientras que `high` hasta `max` dan cobertura más amplia y pueden incluir hallazgos inciertos. Sin un argumento de esfuerzo, la revisión utiliza el esfuerzo actual de la sesión. Pase una ruta o referencia de PR para revisar un objetivo específico en lugar del diff actual.320Los [niveles de esfuerzo](/es/model-config#adjust-effort-level) más bajos devuelven menos hallazgos con mayor confianza, mientras que `high` hasta `max` dan cobertura más amplia y pueden incluir hallazgos inciertos. Sin un argumento de esfuerzo, la revisión utiliza el esfuerzo actual de la sesión. Para revisar algo diferente del diff predeterminado, pase un objetivo: una ruta de archivo, un número de PR, un nombre de rama o un rango de ref como `main...my-feature`. La forma de rango de ref revisa el diff confirmado que una solicitud de extracción de `my-feature` a `main` contendría, independientemente de cómo esté configurada la rama ascendente de la rama.

321 321 

322`/code-review ultra --fix` ejecuta la [ultrareview](/es/ultrareview) más profunda en la nube, luego aplica sus hallazgos a su árbol de trabajo cuando regresan a su sesión.322`/code-review ultra --fix` ejecuta la [ultrareview](/es/ultrareview) más profunda en la nube, luego aplica sus hallazgos a su árbol de trabajo cuando regresan a su sesión. Ultrareview utiliza su propio alcance: su rama actual contra la rama predeterminada del repositorio, más cualquier cambio sin confirmar y preparado en el árbol de trabajo.

323 323 

324El comando se llamaba `/simplify` antes de v2.1.147, cuando aplicaba correcciones por defecto. {/* min-version: 2.1.154 */}A partir de v2.1.154, `/simplify` ejecuta una revisión separada de solo limpieza que aplica correcciones sin buscar errores. Si escribió scripts con `/simplify` para búsqueda de errores, cambie a `/code-review --fix`, que no ha cambiado.324El comando se llamaba `/simplify` antes de v2.1.147, cuando aplicaba correcciones de forma predeterminada. {/* min-version: 2.1.154 */}A partir de v2.1.154, `/simplify` ejecuta una revisión separada de solo limpieza que aplica correcciones sin buscar errores. Si escribió scripts con `/simplify` para búsqueda de errores, cambie a `/code-review --fix`, que no ha cambiado.

325 325 

326<h2 id="related-resources">326<h2 id="related-resources">

327 Recursos relacionados327 Recursos relacionados

commands.md +25 −14

Details

12 12 

13Un comando solo se reconoce al inicio de su mensaje. El texto que sigue al nombre del comando se le pasa como argumentos.13Un comando solo se reconoce al inicio de su mensaje. El texto que sigue al nombre del comando se le pasa como argumentos.

14 14 

15## Comandos en un flujo de trabajo típico15<h2 id="commands-across-a-typical-workflow">

16 Comandos en un flujo de trabajo típico

17</h2>

16 18 

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

18 20 


28 30 

29**Cuando algo está mal.** `/rewind` revierte el código y la conversación a un checkpoint, o resume parte de la conversación. `/doctor` y `/debug` diagnostican problemas de instalación y tiempo de ejecución, y `/feedback` reporta un error con contexto de sesión adjunto.31**Cuando algo está mal.** `/rewind` revierte el código y la conversación a un checkpoint, o resume parte de la conversación. `/doctor` y `/debug` diagnostican problemas de instalación y tiempo de ejecución, y `/feedback` reporta un error con contexto de sesión adjunto.

30 32 

31## Todos los comandos33<h2 id="all-commands">

34 Todos los comandos

35</h2>

32 36 

33La tabla siguiente enumera todos los comandos incluidos en Claude Code. La mayoría son comandos integrados cuyo comportamiento está codificado en la CLI. Se marcan dos tipos de entradas:37La tabla siguiente enumera todos los comandos incluidos en Claude Code. La mayoría son comandos integrados cuyo comportamiento está codificado en la CLI. Se marcan dos tipos de entradas:

34 38 


46| Comando | Propósito |50| Comando | Propósito |

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

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

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

49| `/agents` | Administrar configuraciones de [agent](/es/sub-agents) |54| `/agents` | Administrar configuraciones de [agent](/es/sub-agents) |

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

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

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

53| `/branch [name]` | Crear una rama de la conversación actual en este punto. Lo cambia a la rama y preserva la original, a la que puede volver con `/resume`. Alias: `/fork`. Cuando [`CLAUDE_CODE_FORK_SUBAGENT`](/es/env-vars) está establecido, `/fork` en su lugar genera un [subagente bifurcado](/es/sub-agents#fork-the-current-conversation) y ya no es un alias para este comando |58| `/branch [name]` | Crear una rama de la conversación actual en este punto, para que pueda probar una dirección diferente sin perder la conversación tal como está. Lo cambia a la rama y preserva la original, a la que puede volver con `/resume`. Para entregar una tarea secundaria a un subagente de fondo en lugar de cambiar a una copia usted mismo, use `/fork` |

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

60| `/cd <path>` | {/* min-version: 2.1.169 */}Mover esta sesión a un nuevo directorio de trabajo. La caché de prompts de la conversación se preserva: el [`CLAUDE.md`](/es/memory) del nuevo directorio se agrega como un mensaje en lugar de reconstruir el prompt del sistema. La sesión se reubica al almacenamiento de proyecto del nuevo directorio, por lo que `--resume` y `--continue` lo encuentran desde allí. Le solicita que confíe en el directorio si no ha trabajado en él antes. Para otorgar acceso a un directorio adicional sin mover la sesión, use `/add-dir`. Restrinja o deshabilite los destinos de `/cd` con [reglas de permiso `Cd`](/es/permissions#cd). Requiere Claude Code v2.1.169 o posterior; las versiones anteriores reportan `Unknown command: /cd` |

55| `/chrome` | Configurar ajustes de [Claude in Chrome](/es/chrome) |61| `/chrome` | Configurar ajustes de [Claude in Chrome](/es/chrome) |

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

57| `/clear [name]` | Iniciar una nueva conversación con contexto vacío. La conversación anterior permanece disponible en `/resume`. Pase un nombre para etiquetar la conversación anterior en el selector `/resume`. Para liberar contexto mientras continúa la misma conversación, use `/compact` en su lugar. Alias: `/reset`, `/new` |63| `/clear [name]` | Iniciar una nueva conversación con contexto vacío. La conversación anterior permanece disponible en `/resume`. Pase un nombre para etiquetar la conversación anterior en el selector `/resume`. Para liberar contexto mientras continúa la misma conversación, use `/compact` en su lugar. Alias: `/reset`, `/new` |


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

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

76| `/focus` | Alternar la vista de enfoque, que muestra solo su último prompt, un resumen de llamada de herramienta de una línea con estadísticas de edición de diferencias y la respuesta final. La selección persiste entre sesiones; establezca [`viewMode`](/es/settings#available-settings) en configuración para anularlo. Solo disponible en [renderizado de pantalla completa](/es/fullscreen) |82| `/focus` | Alternar la vista de enfoque, que muestra solo su último prompt, un resumen de llamada de herramienta de una línea con estadísticas de edición de diferencias y la respuesta final. La selección persiste entre sesiones; establezca [`viewMode`](/es/settings#available-settings) en configuración para anularlo. Solo disponible en [renderizado de pantalla completa](/es/fullscreen) |

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

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

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

79| `/help` | Mostrar ayuda y comandos disponibles |86| `/help` | Mostrar ayuda y comandos disponibles |


83| `/insights` | Generar un informe que analice sus sesiones de Claude Code, incluidas áreas de proyecto, patrones de interacción y puntos de fricción |90| `/insights` | Generar un informe que analice sus sesiones de Claude Code, incluidas áreas de proyecto, patrones de interacción y puntos de fricción |

84| `/install-github-app` | Configurar la aplicación [Claude GitHub Actions](/es/github-actions) para un repositorio. Lo guía a través de la selección de un repositorio y la configuración de la integración |91| `/install-github-app` | Configurar la aplicación [Claude GitHub Actions](/es/github-actions) para un repositorio. Lo guía a través de la selección de un repositorio y la configuración de la integración |

85| `/install-slack-app` | Instalar la aplicación Claude Slack. Abre un navegador para completar el flujo OAuth |92| `/install-slack-app` | Instalar la aplicación Claude Slack. Abre un navegador para completar el flujo OAuth |

86| `/keybindings` | Abrir o crear su archivo de configuración de atajos de teclado |93| `/keybindings` | Abrir su archivo de [atajos de teclado](/es/keybindings) |

87| `/login` | Iniciar sesión en su cuenta de Anthropic |94| `/login` | Iniciar sesión en su cuenta de Anthropic |

88| `/logout` | Cerrar sesión de su cuenta de Anthropic |95| `/logout` | Cerrar sesión de su cuenta de Anthropic |

89| `/loop [interval] [prompt]` | **[Skill](/es/skills#bundled-skills).** Ejecutar un prompt repetidamente mientras la sesión permanece abierta. Omita el intervalo y Claude se autoajusta entre iteraciones. Omita el prompt y, [donde esté disponible](/es/scheduled-tasks#run-the-built-in-maintenance-prompt), Claude ejecuta una verificación de mantenimiento autónoma o el prompt en `.claude/loop.md`. Ejemplo: `/loop 5m check if the deploy finished`. Consulte [Ejecutar prompts en un horario](/es/scheduled-tasks). Alias: `/proactive` |96| `/loop [interval] [prompt]` | **[Skill](/es/skills#bundled-skills).** Ejecutar un prompt repetidamente mientras la sesión permanece abierta. Omita el intervalo y Claude se autoajusta entre iteraciones. Omita el prompt y, [donde esté disponible](/es/scheduled-tasks#run-the-built-in-maintenance-prompt), Claude ejecuta una verificación de mantenimiento autónoma o el prompt en `.claude/loop.md`. Ejemplo: `/loop 5m check if the deploy finished`. Consulte [Ejecutar prompts en un horario](/es/scheduled-tasks). Alias: `/proactive` |

90| `/mcp` | Administrar conexiones de servidores MCP y autenticación OAuth |97| `/mcp [reconnect <server>\|enable\|disable [<server>\|all]]` | Administrar conexiones de servidores MCP y autenticación OAuth. Ejecute sin argumento para abrir la lista interactiva, pase `reconnect <server>` para reconectar un servidor desconectado, o pase `enable`/`disable` con un nombre de servidor o `all` para cambiar el estado de conexión sin abrir el diálogo |

91| `/memory` | Editar archivos de memoria `CLAUDE.md`, habilitar o deshabilitar [auto-memory](/es/memory#auto-memory) y ver entradas de auto-memory |98| `/memory` | Editar archivos de memoria `CLAUDE.md`, habilitar o deshabilitar [auto-memory](/es/memory#auto-memory) y ver entradas de auto-memory |

92| `/mobile` | Mostrar código QR para descargar la aplicación móvil Claude. Alias: `/ios`, `/android` |99| `/mobile` | Mostrar código QR para descargar la aplicación móvil Claude. Alias: `/ios`, `/android` |

93| `/model [model]` | Cambiar el modelo de IA y guardarlo como su predeterminado para nuevas sesiones. Para modelos que lo admitan, use las flechas izquierda/derecha para [ajustar el nivel de esfuerzo](/es/model-config#adjust-effort-level). Sin un argumento, abre un selector; presione `s` en una fila para cambiar solo para la sesión actual. El selector pide confirmación cuando la conversación tiene salida anterior, ya que la siguiente respuesta relee el historial completo sin contexto en caché. Una vez confirmado, el cambio se aplica sin esperar a que se complete la respuesta actual |100| `/model [model]` | Cambiar el modelo de IA y guardarlo como su predeterminado para nuevas sesiones. Para modelos que lo admitan, use las flechas izquierda/derecha para [ajustar el nivel de esfuerzo](/es/model-config#adjust-effort-level). Sin un argumento, abre un selector; presione `s` en una fila para cambiar solo para la sesión actual. El selector pide confirmación cuando la conversación tiene salida anterior, ya que la siguiente respuesta relee el historial completo sin contexto en caché. Una vez confirmado, el cambio se aplica sin esperar a que se complete la respuesta actual |

94| `/passes` | Compartir una semana gratuita de Claude Code con amigos. Solo visible si su cuenta es elegible |101| `/passes` | Compartir una semana gratuita de Claude Code con amigos. Solo visible si su cuenta es elegible |

95| `/permissions` | Administrar reglas de permitir, preguntar y denegar para permisos de herramientas. Abre un diálogo interactivo donde puede ver reglas por alcance, agregar o eliminar reglas, administrar directorios de trabajo y revisar [denegaciones automáticas recientes](/es/auto-mode-config#review-denials). Alias: `/allowed-tools` |102| `/permissions` | Administrar reglas de permitir, preguntar y denegar para permisos de herramientas. Abre un diálogo interactivo donde puede ver reglas por alcance, agregar o eliminar reglas, administrar directorios de trabajo y revisar [denegaciones automáticas recientes](/es/auto-mode-config#review-denials). Alias: `/allowed-tools` |

96| `/plan [description]` | Entrar en Plan Mode directamente desde el prompt. Pase una descripción opcional para entrar en Plan Mode e inmediatamente comenzar con esa tarea, por ejemplo `/plan fix the auth bug` |103| `/plan [description]` | Entrar en Plan Mode directamente desde el prompt. Pase una descripción opcional para entrar en Plan Mode e inmediatamente comenzar con esa tarea, por ejemplo `/plan fix the auth bug` |

97| `/plugin` | Administrar [plugins](/es/plugins) de Claude Code |104| `/plugin [subcommand]` | Administrar [plugins](/es/plugins) de Claude Code. Ejecute sin argumento para abrir el menú de plugins, o pase un subcomando como `list`, `install`, `enable` o `disable` para actuar directamente |

98| `/powerup` | Descubrir características de Claude Code a través de lecciones interactivas rápidas con demostraciones animadas |105| `/powerup` | Descubrir características de Claude Code a través de lecciones interactivas rápidas con demostraciones animadas |

99| `/pr-comments [PR]` | {/* max-version: 2.1.90 */}Eliminado en v2.1.91. Pida a Claude directamente que vea comentarios de solicitud de extracción en su lugar. En versiones anteriores, obtiene y muestra comentarios de una solicitud de extracción de GitHub; detecta automáticamente la PR para la rama actual, o pase una URL o número de PR. Requiere la CLI `gh` |106| `/pr-comments [PR]` | {/* max-version: 2.1.90 */}Eliminado en v2.1.91. Pida a Claude directamente que vea comentarios de solicitud de extracción en su lugar. En versiones anteriores, obtiene y muestra comentarios de una solicitud de extracción de GitHub; detecta automáticamente la PR para la rama actual, o pase una URL o número de PR. Requiere la CLI `gh` |

100| `/privacy-settings` | Ver y actualizar su configuración de privacidad. Solo disponible para suscriptores de planes Pro y Max |107| `/privacy-settings` | Ver y actualizar su configuración de privacidad. Solo disponible para suscriptores de planes Pro y Max |

101| `/radio` | Abrir Claude FM lo-fi radio en su navegador. Imprime la URL de transmisión cuando no hay navegador disponible. No disponible en Bedrock, Vertex o Foundry |108| `/radio` | Abrir Claude FM lo-fi radio en su navegador. Imprime la URL de transmisión cuando no hay navegador disponible. No disponible en Bedrock, Vertex o Foundry |

102| `/recap` | Generar un resumen de una línea de la sesión actual bajo demanda. Consulte [Session recap](/es/interactive-mode#session-recap) para el resumen automático que aparece después de que ha estado ausente |109| `/recap` | Generar un resumen de una línea de la sesión actual bajo demanda. Consulte [Session recap](/es/interactive-mode#session-recap) para el resumen automático que aparece después de que ha estado ausente |

103| `/release-notes` | Ver el registro de cambios en un selector de versión interactivo. Seleccione una versión específica para ver sus notas de lanzamiento, o elija mostrar todas las versiones |110| `/release-notes` | Ver el registro de cambios en un selector de versión interactivo. Seleccione una versión específica para ver sus notas de lanzamiento, o elija mostrar todas las versiones |

104| `/reload-plugins` | Recargar todos los [plugins](/es/plugins) activos para aplicar cambios pendientes sin reiniciar. Informa qué se cargó para cada componente recargado e indica cualquier error de carga |111| `/reload-plugins [--force]` | Recargar todos los [plugins](/es/plugins) activos para aplicar cambios pendientes sin reiniciar. Informa qué se cargó para cada componente recargado e indica cualquier error de carga. Cuando la recarga cambiaría qué herramientas MCP se cargan e invalidaría la caché de prompts, el comando advierte y omite a menos que pase `--force` |

105| `/reload-skills` | {/* min-version: 2.1.152 */}Volver a escanear directorios de [skill](/es/skills) y comandos para que los skills agregados o cambiados en el disco durante la sesión estén disponibles sin reiniciar. Informa cuántos skills están disponibles y cuántos se agregaron o eliminaron |112| `/reload-skills` | {/* min-version: 2.1.152 */}Volver a escanear directorios de [skill](/es/skills) y comandos para que los skills agregados o cambiados en el disco durante la sesión estén disponibles sin reiniciar. Informa cuántos skills están disponibles y cuántos se agregaron o eliminaron. Agregado en v2.1.152 |

106| `/remote-control` | Hacer que esta sesión esté disponible para [remote control](/es/remote-control) desde claude.ai. Alias: `/rc` |113| `/remote-control` | Hacer que esta sesión esté disponible para [remote control](/es/remote-control) desde claude.ai. Alias: `/rc` |

107| `/remote-env` | Configurar el entorno remoto predeterminado para [sesiones web iniciadas con `--remote`](/es/claude-code-on-the-web#configure-your-environment) |114| `/remote-env` | Elegir el entorno predeterminado para [agentes en la nube](/es/claude-code-on-the-web#configure-your-environment) |

108| `/rename [name]` | Renombrar la sesión actual y mostrar el nombre en la barra de solicitud. Sin un nombre, genera automáticamente uno a partir del historial de conversación |115| `/rename [name]` | Renombrar la sesión actual y mostrar el nombre en la barra de solicitud. Sin un nombre, genera automáticamente uno a partir del historial de conversación |

109| `/resume [session]` | Reanudar una conversación por ID o nombre, o abrir el selector de sesión. A partir de v2.1.144, [las sesiones de fondo](/es/agent-view) aparecen en el selector marcadas con `bg`. Alias: `/continue` |116| `/resume [session]` | Reanudar una conversación por ID o nombre, o abrir el selector de sesión. A partir de v2.1.144, [las sesiones de fondo](/es/agent-view) aparecen en el selector marcadas con `bg`. Alias: `/continue` |

110| `/review [PR]` | Revisar una solicitud de extracción localmente en su sesión actual. Para una revisión más profunda basada en la nube, consulte [`/code-review ultra`](/es/ultrareview) |117| `/review [PR]` | Revisar una solicitud de extracción localmente en su sesión actual. Para una revisión más profunda basada en la nube, consulte [`/code-review ultra`](/es/ultrareview) |


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

125| `/stickers` | Pedir pegatinas de Claude Code |132| `/stickers` | Pedir pegatinas de Claude Code |

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

127| `/tasks` | Listar y administrar tareas de fondo. También disponible como `/bashes` |134| `/tasks` | Ver y administrar todo lo que se ejecuta en segundo plano. También disponible como `/bashes` |

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

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

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

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

132| `/tui [default\|fullscreen]` | Establecer el renderizador de interfaz de usuario de terminal y reiniciar en él con su conversación intacta. `fullscreen` habilita el [renderizador de pantalla alternativa sin parpadeo](/es/fullscreen). Sin un argumento, imprime el renderizador activo |139| `/tui [default\|fullscreen]` | Establecer el renderizador de interfaz de usuario de terminal y reiniciar en él con su conversación intacta. `fullscreen` habilita el [renderizador de pantalla alternativa sin parpadeo](/es/fullscreen). Sin un argumento, imprime el renderizador activo |

133| `/ultraplan <prompt>` | Redactar un plan en una sesión de [ultraplan](/es/ultraplan), revisarlo en su navegador, luego ejecutarlo de forma remota o enviarlo de vuelta a su terminal |140| `/ultraplan <prompt>` | Redactar un plan en una sesión de [ultraplan](/es/ultraplan), revisarlo en su navegador, luego ejecutarlo de forma remota o enviarlo de vuelta a su terminal |


141| `/web-setup` | Conectar su cuenta de GitHub a [Claude Code en la web](/es/web-quickstart#connect-from-your-terminal) usando sus credenciales locales de `gh` CLI. `/schedule` solicita esto automáticamente si GitHub no está conectado |148| `/web-setup` | Conectar su cuenta de GitHub a [Claude Code en la web](/es/web-quickstart#connect-from-your-terminal) usando sus credenciales locales de `gh` CLI. `/schedule` solicita esto automáticamente si GitHub no está conectado |

142| `/workflows` | Abrir la vista de progreso de [workflow](/es/workflows#watch-the-run) para observar, pausar, reanudar o guardar workflows en ejecución y completados |149| `/workflows` | Abrir la vista de progreso de [workflow](/es/workflows#watch-the-run) para observar, pausar, reanudar o guardar workflows en ejecución y completados |

143 150 

144## MCP prompts151<h2 id="mcp-prompts">

152 MCP prompts

153</h2>

145 154 

146Los servidores MCP pueden exponer prompts que aparecen como comandos. Estos utilizan el formato `/mcp__<server>__<prompt>` y se descubren dinámicamente desde servidores conectados. Consulte [MCP prompts](/es/mcp#use-mcp-prompts-as-commands) para obtener detalles.155Los servidores MCP pueden exponer prompts que aparecen como comandos. Estos utilizan el formato `/mcp__<server>__<prompt>` y se descubren dinámicamente desde servidores conectados. Consulte [MCP prompts](/es/mcp#use-mcp-prompts-as-commands) para obtener detalles.

147 156 

148## Ver también157<h2 id="see-also">

158 Ver también

159</h2>

149 160 

150* [Skills](/es/skills): crear sus propios comandos161* [Skills](/es/skills): crear sus propios comandos

151* [Modo interactivo](/es/interactive-mode): atajos de teclado, modo Vim e historial de comandos162* [Modo interactivo](/es/interactive-mode): atajos de teclado, modo Vim e historial de comandos

Details

227a mitad de sesión. *Sonnet* es el caballo de batalla predeterminado para trabajo de características cotidianas,227a mitad de sesión. *Sonnet* es el caballo de batalla predeterminado para trabajo de características cotidianas,

228errores, pruebas y revisiones. Recurra a *Opus* en refactores grandes, depuración complicada,228errores, pruebas y revisiones. Recurra a *Opus* en refactores grandes, depuración complicada,

229o cualquier cosa de alto riesgo. Baje a *Haiku* para preguntas rápidas,229o cualquier cosa de alto riesgo. Baje a *Haiku* para preguntas rápidas,

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

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

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

233biología se retrocede automáticamente a Opus.

231 234 

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

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


236```239```

237 240 

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

239| ------ | ------------------------------------------------------------------------------------------------------------------------------------- |242| ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

243| Fable 5 | 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](/es/model-config#automatic-model-fallback) |

240| Opus | Refactores a gran escala, depuración compleja, decisiones de arquitectura, cambios de alto riesgo |244| Opus | Refactores a gran escala, depuración compleja, decisiones de arquitectura, cambios de alto riesgo |

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

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

computer-use.md +1 −1

Details

231 231 

232macOS a veces requiere un reinicio del proceso solicitante después de otorgar Screen Recording. Salga completamente de Claude Code e inicie una nueva sesión. Si el mensaje persiste, abra **System Settings > Privacy & Security > Screen Recording** y confirme que su aplicación de terminal está listada y habilitada.232macOS a veces requiere un reinicio del proceso solicitante después de otorgar Screen Recording. Salga completamente de Claude Code e inicie una nueva sesión. Si el mensaje persiste, abra **System Settings > Privacy & Security > Screen Recording** y confirme que su aplicación de terminal está listada y habilitada.

233 233 

234<h3 id="computer-use-doesn-t-appear-in-/mcp">234<h3 id="computer-use-doesnt-appear-in-/mcp">

235 `computer-use` no aparece en `/mcp`235 `computer-use` no aparece en `/mcp`

236</h3>236</h3>

237 237 

context-window.md +1591 −5

Details

6 6 

7> Una simulación interactiva de cómo se llena la ventana de contexto de Claude Code durante una sesión. Vea qué se carga automáticamente, cuánto cuesta cada lectura de archivo y cuándo se activan las reglas y hooks.7> Una simulación interactiva de cómo se llena la ventana de contexto de Claude Code durante una sesión. Vea qué se carga automáticamente, cuánto cuesta cada lectura de archivo y cuándo se activan las reglas y hooks.

8 8 

9La ventana de contexto de Claude Code contiene todo lo que Claude sabe sobre su sesión: sus instrucciones, los archivos que lee, sus propias respuestas y contenido que nunca aparece en su terminal. La línea de tiempo a continuación muestra qué se carga y cuándo. Vea [el desglose escrito](#what-the-timeline-shows) para el mismo contenido como una lista.9export const ContextWindow = () => {

10 const MAX = 200000;

11 const STARTUP_END = 0.2;

12 {}

13 const EVENTS = useMemo(() => [{}, {

14 t: 0.015,

15 kind: 'auto',

16 label: 'System prompt',

17 tokens: 4200,

18 color: '#6B6964',

19 vis: 'hidden',

20 desc: 'Core instructions for behavior, tool use, and response formatting. Always loaded first. You never see it.',

21 link: null

22 }, {

23 t: 0.035,

24 kind: 'auto',

25 label: 'Auto memory (MEMORY.md)',

26 tokens: 680,

27 color: '#E8A45C',

28 vis: 'hidden',

29 desc: "Claude's notes to itself from previous sessions: build commands it learned, patterns it noticed, mistakes to avoid. The first 200 lines or 25KB, whichever comes first, are loaded into the conversation context.",

30 link: '/en/memory#auto-memory'

31 }, {

32 t: 0.06,

33 kind: 'auto',

34 label: 'Environment info',

35 tokens: 280,

36 color: '#6B6964',

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

39 link: null

40 }, {

41 t: 0.08,

42 kind: 'auto',

43 label: 'MCP tools (deferred)',

44 tokens: 120,

45 color: '#9B7BC4',

46 vis: 'hidden',

47 desc: 'MCP tool names listed so Claude knows what is available. By default, full schemas stay deferred and Claude loads specific ones on demand via tool search when a task needs them. Set `ENABLE_TOOL_SEARCH=auto` to load schemas upfront when they fit within 10% of the context window, or `ENABLE_TOOL_SEARCH=false` to load everything.',

48 link: '/en/mcp#scale-with-mcp-tool-search'

49 }, {

50 t: 0.1,

51 kind: 'auto',

52 label: 'Skill descriptions',

53 tokens: 450,

54 color: '#D4A843',

55 vis: 'hidden',

56 noSurviveCompact: true,

57 desc: 'One-line descriptions of available skills so Claude knows what it can invoke. Full skill content loads only when Claude actually uses one. Skills with `disable-model-invocation: true` are not in this list. They stay completely out of context until you invoke them with `/name`. Unlike the rest of the startup content, this listing is not re-injected after `/compact`. Only skills you actually invoked get preserved.',

58 link: '/en/skills'

59 }, {

60 t: 0.12,

61 kind: 'auto',

62 label: '~/.claude/CLAUDE.md',

63 tokens: 320,

64 color: '#6A9BCC',

65 vis: 'hidden',

66 desc: 'Your global preferences. Applies to every project. Loaded alongside project instructions at the start of every conversation.',

67 link: '/en/memory#choose-where-to-put-claude-md-files'

68 }, {

69 t: 0.14,

70 kind: 'auto',

71 label: 'Project CLAUDE.md',

72 tokens: 1800,

73 color: '#6A9BCC',

74 vis: 'hidden',

75 desc: 'Project conventions, build commands, architecture notes. The most important file you can create. Lives in your project root, so your whole team gets the same instructions.',

76 tip: 'Keep it under 200 lines. Move reference content to skills or path-scoped rules so it only loads when needed.',

77 link: '/en/memory'

78 }, {}, {

79 t: 0.22,

80 kind: 'user',

81 label: 'Your prompt',

82 tokens: 45,

83 color: '#558A42',

84 vis: 'full',

85 desc: '"Fix the auth bug where users get 401 after token refresh"',

86 link: null

87 }, {}, {

88 t: 0.28,

89 kind: 'claude',

90 label: 'Read src/api/auth.ts',

91 tokens: 2400,

92 color: '#8A8880',

93 vis: 'brief',

94 desc: 'Main auth file. You see "Read auth.ts" in your terminal, but the 2,400 tokens of file content only Claude sees.',

95 tip: 'File reads dominate context usage. Be specific in prompts ("fix the bug in auth.ts") so Claude reads fewer files. For research-heavy tasks, use a subagent.',

96 link: null

97 }, {

98 t: 0.32,

99 kind: 'claude',

100 label: 'Read src/lib/tokens.ts',

101 tokens: 1100,

102 color: '#8A8880',

103 vis: 'brief',

104 desc: 'Following imports to the token module. Shown as a one-liner in your terminal.',

105 link: null

106 }, {

107 t: 0.35,

108 kind: 'auto',

109 label: 'Rule: api-conventions.md',

110 tokens: 380,

111 color: '#4A9B8E',

112 vis: 'brief',

113 desc: 'This rule in `.claude/rules/` has a `paths:` pattern matching `src/api/**`. It loaded automatically when Claude read a file in that directory. You see "Loaded .claude/rules/api-conventions.md" in your terminal, but not the rule content.',

114 link: '/en/memory#path-specific-rules'

115 }, {

116 t: 0.38,

117 kind: 'claude',

118 label: 'Read middleware.ts',

119 tokens: 1800,

120 color: '#8A8880',

121 vis: 'brief',

122 desc: 'Tracing the auth flow deeper.',

123 link: null

124 }, {

125 t: 0.41,

126 kind: 'claude',

127 label: 'Read auth.test.ts',

128 tokens: 1600,

129 color: '#8A8880',

130 vis: 'brief',

131 desc: 'Checking existing tests for expected behavior.',

132 link: null

133 }, {

134 t: 0.44,

135 kind: 'auto',

136 label: 'Rule: testing.md',

137 tokens: 290,

138 color: '#4A9B8E',

139 vis: 'brief',

140 desc: 'Another path-scoped rule, this one matching `*.test.ts` files. Triggered when Claude read auth.test.ts. Shown as a one-line "Loaded" notice.',

141 link: '/en/memory#path-specific-rules'

142 }, {

143 t: 0.47,

144 kind: 'claude',

145 label: 'grep "refreshToken"',

146 tokens: 600,

147 color: '#A09E96',

148 vis: 'brief',

149 desc: 'Search results across the codebase. You see the command ran, not the full output.',

150 link: null

151 }, {}, {

152 t: 0.53,

153 kind: 'claude',

154 label: "Claude's analysis",

155 tokens: 800,

156 color: '#D97757',

157 vis: 'full',

158 desc: 'Explains the bug: token invalidated too early in the rotation. This text appears in your terminal.',

159 link: null

160 }, {

161 t: 0.57,

162 kind: 'claude',

163 label: 'Edit auth.ts',

164 tokens: 400,

165 color: '#D97757',

166 vis: 'full',

167 desc: 'Fixes the token rotation order. The diff appears in your terminal.',

168 link: null

169 }, {

170 t: 0.59,

171 kind: 'hook',

172 label: 'Hook: prettier',

173 tokens: 120,

174 color: '#B8860B',

175 vis: 'hidden',

176 desc: 'A PostToolUse hook in `settings.json` runs prettier after every file edit and reports back via `hookSpecificOutput.additionalContext`. That field enters Claude\'s context. Plain stdout on exit 0 does not. It is written to the debug log only.',

177 tip: 'Output JSON with `additionalContext` to send info to Claude. For PostToolUse hooks, exit code 2 surfaces stderr as an error but cannot block since the tool already ran. Keep output concise since it enters context without truncation.',

178 link: '/en/hooks-guide'

179 }, {

180 t: 0.62,

181 kind: 'claude',

182 label: 'Edit auth.test.ts',

183 tokens: 600,

184 color: '#D97757',

185 vis: 'full',

186 desc: 'Adds a regression test for the fix. The diff appears in your terminal.',

187 link: null

188 }, {

189 t: 0.64,

190 kind: 'hook',

191 label: 'Hook: prettier',

192 tokens: 100,

193 color: '#B8860B',

194 vis: 'hidden',

195 desc: 'The same hook fires again for the test file. Every matching tool event triggers it.',

196 link: '/en/hooks-guide'

197 }, {

198 t: 0.67,

199 kind: 'claude',

200 label: 'npm test output',

201 tokens: 1200,

202 color: '#A09E96',

203 vis: 'brief',

204 desc: 'Runs the test suite. You see "Running npm test..." and the pass count, not the full 1,200 tokens of output.',

205 link: null

206 }, {

207 t: 0.70,

208 kind: 'claude',

209 label: 'Summary',

210 tokens: 400,

211 color: '#D97757',

212 vis: 'full',

213 desc: '"Fixed token rotation. Added regression test. All tests pass."',

214 link: null

215 }, {}, {

216 t: 0.72,

217 kind: 'user',

218 label: 'Your follow-up',

219 tokens: 40,

220 color: '#558A42',

221 vis: 'full',

222 desc: '"Use a subagent to research session timeout handling, then fix it"',

223 tip: 'Follow-ups add to the same context. Delegating research to a subagent keeps large file reads out of your main window.',

224 link: null

225 }, {

226 t: 0.79,

227 kind: 'claude',

228 label: 'Spawn research subagent',

229 tokens: 80,

230 color: '#D97757',

231 vis: 'brief',

232 desc: "Claude delegates the research to a subagent with a fresh, separate context window. It loads CLAUDE.md and the same MCP and skill setup, but starts without your conversation history or the main session's auto memory.",

233 link: '/en/sub-agents'

234 }, {

235 t: 0.795,

236 kind: 'sub',

237 label: 'System prompt',

238 tokens: 0,

239 subTokens: 900,

240 color: '#6B6964',

241 vis: 'hidden',

242 desc: "The subagent gets its own system prompt, shorter than the main session's. For the general-purpose agent, it's a brief prompt plus environment details. The main session's auto memory is not included. If a custom agent has memory: in its frontmatter, it loads its own separate MEMORY.md here instead.",

243 link: '/en/sub-agents#enable-persistent-memory'

244 }, {

245 t: 0.80,

246 kind: 'sub',

247 label: 'Project CLAUDE.md (own copy)',

248 tokens: 0,

249 subTokens: 1800,

250 color: '#6A9BCC',

251 vis: 'hidden',

252 desc: "The subagent loads CLAUDE.md too. Same file, same content, but it counts against the subagent's context, not yours. The built-in Explore and Plan agents skip this for a smaller context.",

253 link: '/en/sub-agents'

254 }, {

255 t: 0.805,

256 kind: 'sub',

257 label: 'MCP tools + skills',

258 tokens: 0,

259 subTokens: 970,

260 color: '#9B7BC4',

261 vis: 'hidden',

262 desc: "The subagent has access to the same MCP servers and skills. It gets most of the parent's tools, minus several that don't apply in a nested context, including plan-mode controls, background-task tools, and by default the Agent tool itself to prevent recursion.",

263 link: '/en/sub-agents'

264 }, {

265 t: 0.81,

266 kind: 'sub',

267 label: 'Task prompt from main',

268 tokens: 0,

269 subTokens: 120,

270 color: '#558A42',

271 vis: 'hidden',

272 desc: "Instead of a user prompt, the subagent receives the task Claude wrote for it: 'Research session timeout handling in this codebase.'",

273 link: '/en/sub-agents'

274 }, {

275 t: 0.82,

276 kind: 'sub',

277 label: 'Read session.ts',

278 tokens: 0,

279 subTokens: 2200,

280 color: '#8A8880',

281 vis: 'hidden',

282 desc: "Now the subagent does its work. This file read fills the subagent's context, not yours.",

283 link: '/en/sub-agents'

284 }, {

285 t: 0.825,

286 kind: 'sub',

287 label: 'Read timeouts.ts',

288 tokens: 0,

289 subTokens: 800,

290 color: '#8A8880',

291 vis: 'hidden',

292 desc: "Another file read in the subagent's separate context.",

293 link: '/en/sub-agents'

294 }, {

295 t: 0.83,

296 kind: 'sub',

297 label: 'Read config/*.ts',

298 tokens: 0,

299 subTokens: 3100,

300 color: '#8A8880',

301 vis: 'hidden',

302 desc: "The subagent can read as many files as it needs. None of this touches your main context.",

303 link: '/en/sub-agents'

304 }, {

305 t: 0.85,

306 kind: 'claude',

307 label: 'Subagent returns summary',

308 tokens: 420,

309 color: '#D97757',

310 vis: 'brief',

311 desc: "Only the subagent's final text response comes back to your context, plus a small metadata trailer with token counts and duration. The subagent read 6,100 tokens of files. You got a 420-token result. That's the context savings.",

312 link: '/en/sub-agents'

313 }, {

314 t: 0.86,

315 kind: 'claude',

316 label: "Claude's response",

317 tokens: 1200,

318 color: '#D97757',

319 vis: 'full',

320 desc: 'Analysis and fix for session timeouts. This text appears in your terminal.',

321 link: null

322 }, {}, {

323 t: 0.875,

324 kind: 'user',

325 label: '!git status',

326 tokens: 180,

327 color: '#558A42',

328 vis: 'full',

329 desc: "You ran a shell command with the ! prefix to see which files Claude modified. The command and its output both enter context as part of your message. Useful for grounding Claude in command output without Claude running it.",

330 link: '/en/interactive-mode#bash-mode-with-prefix'

331 }, {

332 t: 0.89,

333 kind: 'user',

334 label: '/commit-push',

335 tokens: 620,

336 color: '#558A42',

337 vis: 'brief',

338 desc: 'You invoked a skill that has `disable-model-invocation: true`. Its description was not in the skill index at startup, so it cost zero context until this moment. Now the full skill content loads and Claude follows its instructions to stage, commit, and push your changes.',

339 tip: 'Set `disable-model-invocation: true` on skills with side effects like committing, deploying, or sending messages. They stay out of context entirely until you need them.',

340 link: '/en/skills#control-who-invokes-a-skill'

341 }, {}, {

342 t: 0.93,

343 kind: 'compact',

344 label: '/compact',

345 tokens: 0,

346 color: '#D97757',

347 vis: 'brief',

348 desc: 'Replaces the conversation with a structured summary. You see a "Conversation compacted" message. The summarization happens without appearing in your terminal.',

349 link: '/en/how-claude-code-works#the-context-window'

350 }].filter(e => e.t !== undefined), []);

351 const VIS_META = {

352 hidden: {

353 label: 'Invisible in your terminal',

354 sub: 'This content does not appear in your terminal.'

355 },

356 brief: {

357 label: 'One-liner in your terminal',

358 sub: 'You see a brief mention, not the full content.'

359 },

360 full: {

361 label: 'Shown in your terminal',

362 sub: 'The actual content appears in your terminal.'

363 }

364 };

365 {}

366 const GATES = [{

367 at: 0.18,

368 kind: 'prompt',

369 text: 'Fix the auth bug where users get 401 after token refresh',

370 resumeTo: 0.22

371 }, {

372 at: 0.705,

373 kind: 'prompt',

374 text: 'Use a subagent to research session timeout handling, then fix it',

375 resumeTo: 0.72

376 }, {

377 at: 0.865,

378 kind: 'bang',

379 text: '!git status',

380 resumeTo: 0.875

381 }, {

382 at: 0.88,

383 kind: 'slash',

384 text: '/commit-push',

385 resumeTo: 0.89

386 }, {

387 at: 0.90,

388 kind: 'compact',

389 text: '/compact',

390 resumeTo: 1

391 }];

392 const KIND_META = {

393 auto: {

394 badge: 'auto',

395 detail: 'Auto-loaded',

396 badgeBg: 'rgba(94,93,89,0.15)',

397 badgeColor: '#8A8880'

398 },

399 user: {

400 badge: 'you',

401 detail: 'You typed this',

402 badgeBg: 'rgba(85,138,66,0.15)',

403 badgeColor: '#6BA656'

404 },

405 claude: {

406 badge: 'claude',

407 detail: "Claude's work",

408 badgeBg: 'rgba(217,119,87,0.12)',

409 badgeColor: '#D97757'

410 },

411 hook: {

412 badge: 'hook',

413 detail: 'Hook (automatic)',

414 badgeBg: 'rgba(184,134,11,0.15)',

415 badgeColor: '#CCA020'

416 },

417 compact: {

418 badge: 'compact',

419 detail: 'Compaction',

420 badgeBg: 'rgba(217,119,87,0.12)',

421 badgeColor: '#D97757'

422 },

423 sub: {

424 badge: 'subagent',

425 detail: "In subagent's context",

426 badgeBg: 'rgba(155,123,196,0.12)',

427 badgeColor: '#9B7BC4'

428 }

429 };

430 const LEGEND = [{

431 c: '#6B6964',

432 l: 'System'

433 }, {

434 c: '#6A9BCC',

435 l: 'CLAUDE.md'

436 }, {

437 c: '#E8A45C',

438 l: 'Memory'

439 }, {

440 c: '#D4A843',

441 l: 'Skills'

442 }, {

443 c: '#9B7BC4',

444 l: 'MCP'

445 }, {

446 c: '#4A9B8E',

447 l: 'Rules'

448 }, {

449 c: '#558A42',

450 l: 'You'

451 }, {

452 c: '#8A8880',

453 l: 'Files'

454 }, {

455 c: '#A09E96',

456 l: 'Output'

457 }, {

458 c: '#D97757',

459 l: 'Claude'

460 }, {

461 c: '#B8860B',

462 l: 'Hooks'

463 }];

464 const fmt = n => n >= 1000 ? (n / 1000).toFixed(1).replace(/\.0$/, '') + 'K' : n + '';

465 const [time, setTime] = useState(0);

466 const [playing, setPlaying] = useState(false);

467 const [hovIdx, setHovIdx] = useState(null);

468 const [selIdx, setSelIdx] = useState(null);

469 const [hovCat, setHovCat] = useState(null);

470 const [gatesPassed, setGatesPassed] = useState(0);

471 const [mounted, setMounted] = useState(false);

472 const [hasInteracted, setHasInteracted] = useState(false);

473 const lastRef = useRef(null);

474 const scrollRef = useRef(null);

475 const detailRef = useRef(null);

476 useEffect(() => setMounted(true), []);

477 const activeGate = GATES.find((g, i) => i >= gatesPassed && time >= g.at && time < g.resumeTo);

478 useEffect(() => {

479 if (!playing) return;

480 let raf;

481 let stopped = false;

482 const tick = ts => {

483 if (stopped) return;

484 if (!lastRef.current) lastRef.current = ts;

485 const dt = (ts - lastRef.current) / 1000;

486 lastRef.current = ts;

487 setTime(prev => {

488 const next = prev + dt * 0.032;

489 const gate = GATES.find((g, i) => i >= gatesPassed && next >= g.at && prev < g.resumeTo);

490 if (gate) {

491 stopped = true;

492 setPlaying(false);

493 return gate.at;

494 }

495 if (next >= 1) {

496 stopped = true;

497 setPlaying(false);

498 return 1;

499 }

500 return next;

501 });

502 if (!stopped) raf = requestAnimationFrame(tick);

503 };

504 raf = requestAnimationFrame(tick);

505 return () => {

506 stopped = true;

507 cancelAnimationFrame(raf);

508 lastRef.current = null;

509 };

510 }, [playing, gatesPassed]);

511 const sendPrompt = () => {

512 if (!activeGate) return;

513 const isCompact = activeGate.kind === 'compact';

514 setGatesPassed(n => n + 1);

515 setTime(activeGate.resumeTo);

516 setSelIdx(null);

517 setHovIdx(null);

518 if (!isCompact) setPlaying(true);

519 };

520 const visibleCount = EVENTS.filter(e => e.t <= time).length;

521 const preCompactVisible = useMemo(() => EVENTS.slice(0, visibleCount), [EVENTS, visibleCount]);

522 const compactGateIdx = GATES.length - 1;

523 const isCompacted = gatesPassed > compactGateIdx && preCompactVisible.some(e => e.kind === 'compact');

524 const {visible, preCompactTotal} = useMemo(() => {

525 const nonCompact = preCompactVisible.filter(e => e.kind !== 'compact');

526 if (!isCompacted) {

527 return {

528 visible: preCompactVisible,

529 preCompactTotal: 0

530 };

531 }

532 {}

533 const autoLoads = nonCompact.filter(e => e.kind === 'auto' && e.t < STARTUP_END && !e.noSurviveCompact);

534 const summarized = nonCompact.filter(e => e.t >= STARTUP_END && e.kind !== 'sub');

535 const sumTokens = summarized.reduce((s, e) => s + e.tokens, 0);

536 const summaryBlock = {

537 t: STARTUP_END,

538 kind: 'compact',

539 label: 'Conversation summary',

540 tokens: Math.round(sumTokens * 0.12),

541 color: '#A09E96',

542 vis: 'hidden',

543 desc: `All ${summarized.length} conversation events condensed into one structured summary. The summary keeps: your requests and intent, key technical concepts, files examined or modified with important code snippets, errors and how they were fixed, pending tasks, and current work. It replaces the verbatim conversation: full tool outputs and intermediate reasoning are gone. Claude can still reference the work but won't have the exact code it read earlier.`,

544 link: '/en/how-claude-code-works#the-context-window'

545 };

546 return {

547 visible: [...autoLoads, summaryBlock],

548 preCompactTotal: nonCompact.reduce((s, e) => s + e.tokens, 0)

549 };

550 }, [preCompactVisible, isCompacted]);

551 const {blocks, totalTokens} = useMemo(() => {

552 const bl = visible.map((e, visIdx) => ({

553 ...e,

554 id: e.label + e.t,

555 visIdx

556 })).filter(e => e.tokens > 0 || e.label === 'Conversation summary');

557 return {

558 blocks: bl,

559 totalTokens: bl.reduce((s, b) => s + b.tokens, 0)

560 };

561 }, [visible]);

562 const subTotal = useMemo(() => visible.filter(e => e.kind === 'sub').reduce((s, e) => s + (e.subTokens || 0), 0), [visible]);

563 useEffect(() => {

564 if (!scrollRef.current) return;

565 if (isCompacted) scrollRef.current.scrollTo({

566 top: 0,

567 behavior: 'smooth'

568 }); else if (playing || activeGate) scrollRef.current.scrollTop = scrollRef.current.scrollHeight;

569 }, [visible.length, !!activeGate, isCompacted]);

570 const rootRef = useRef(null);

571 const keyStateRef = useRef({});

572 const [isFullscreen, setIsFullscreen] = useState(false);

573 keyStateRef.current = {

574 time,

575 activeGate,

576 sendPrompt,

577 hasInteracted

578 };

579 useEffect(() => {

580 const onFsChange = () => setIsFullscreen(!!document.fullscreenElement);

581 document.addEventListener('fullscreenchange', onFsChange);

582 return () => document.removeEventListener('fullscreenchange', onFsChange);

583 }, []);

584 const toggleFullscreen = () => {

585 if (!rootRef.current) return;

586 if (document.fullscreenElement) document.exitFullscreen(); else rootRef.current.requestFullscreen().catch(() => {});

587 };

588 useEffect(() => {

589 const onKey = e => {

590 const tag = e.target.tagName;

591 if (tag === 'INPUT' || tag === 'BUTTON' || tag === 'TEXTAREA' || tag === 'SELECT' || e.target.isContentEditable) return;

592 if (!rootRef.current) return;

593 const rect = rootRef.current.getBoundingClientRect();

594 if (rect.width === 0 && rect.height === 0) return;

595 if (rect.bottom < 0 || rect.top > window.innerHeight) return;

596 if (e.code === 'Space') {

597 const {time: t, activeGate: g, sendPrompt: send, hasInteracted: hi} = keyStateRef.current;

598 if (!hi) return;

599 e.preventDefault();

600 if (t === 0) setPlaying(true); else if (g) send(); else if (t >= 1) {

601 setTime(0);

602 setGatesPassed(0);

603 setSelIdx(null);

604 setHovIdx(null);

605 setPlaying(true);

606 } else setPlaying(p => !p);

607 }

608 };

609 window.addEventListener('keydown', onKey);

610 return () => window.removeEventListener('keydown', onKey);

611 }, []);

612 const pct = totalTokens / MAX * 100;

613 const barColor = pct > 75 ? '#D97757' : pct > 50 ? '#B8860B' : '#558A42';

614 const activeIdx = selIdx !== null ? selIdx : hovIdx;

615 const hovEvent = activeIdx !== null ? visible[activeIdx] : null;

616 useEffect(() => {

617 if (detailRef.current) detailRef.current.scrollTop = 0;

618 }, [hovEvent]);

619 const focusT = hovEvent ? hovEvent.t : time;

620 const takeaway = isCompacted ? 'Compaction replaces the conversation with a structured summary. System prompt, CLAUDE.md, memory, and MCP tools reload automatically. The skill listing is the one exception. Only skills you actually invoked are preserved.' : focusT < STARTUP_END ? 'A lot loads before you type anything. CLAUDE.md, memory, skills, and MCP tools are all in context before your first prompt.' : focusT < 0.28 ? "Your prompt is tiny compared to what's already loaded. Most of Claude's context is project knowledge, not your words." : focusT < 0.50 ? 'Each file Claude reads grows the context. Path-scoped rules load automatically alongside matching files.' : focusT < 0.71 ? 'Hooks fire automatically on tool events. Output reaches Claude via additionalContext JSON. Exit code 2 surfaces stderr to Claude. Plain stdout on exit 0 goes to the debug log, not the transcript.' : focusT < 0.79 ? 'Follow-up questions keep building on the same context. Everything from earlier is still there.' : focusT < 0.87 ? "The subagent works in its own separate context window. None of its file reads touch yours. Only the final summary comes back." : focusT < 0.88 ? 'Bang commands run in your shell and prefix the output to your next message. Useful for grounding Claude in command results without it running them.' : focusT < 0.90 ? 'User-only skills stay out of context entirely until you invoke them. The skill index at startup only lists skills Claude can call on its own.' : '/compact summarizes the conversation to free space while keeping key information. In a real session, run it when context starts affecting performance or before a long new task.';

621 const terminalView = isCompacted ? 'A "Conversation compacted" message. The summarization happens silently.' : focusT < STARTUP_END ? 'The input box, waiting for your first message. Everything above loads silently before you type anything.' : focusT < 0.28 ? 'Your prompt. Claude hasn\'t started working yet.' : focusT < 0.52 ? 'Your prompt and "Reading files...". Rules show as one-line "Loaded" notices, not their content.' : focusT < 0.72 ? "Claude's response and file diffs. Hooks fire silently. Tool output like npm test shows as a brief summary, not the full content." : focusT < 0.79 ? 'Your follow-up prompt.' : focusT < 0.86 ? "A brief notice that a subagent is working, then its result. You don't see the subagent's individual file reads." : focusT < 0.90 ? "Claude's response, your git status output, and the commit-push skill running." : 'Your full conversation. /compact is available to run.';

622 const mono = 'var(--font-mono, ui-monospace, SFMono-Regular, Menlo, monospace)';

623 const renderWithCode = s => s.split('`').map((part, i) => i % 2 === 1 ? <code key={i} style={{

624 fontFamily: mono,

625 fontSize: '0.92em',

626 background: 'var(--cw-track)',

627 padding: '1px 4px',

628 borderRadius: 3

629 }}>{part}</code> : part);

630 if (!mounted) return null;

631 return <>

632 <div className="cw-mobile-fallback">

633 This interactive timeline works best on a larger screen. See <a href="#what-the-timeline-shows" style={{

634 color: '#D97757'

635 }}>the written breakdown below</a> for the same concepts.

636 </div>

637 <div className="cw-root" ref={rootRef} onClickCapture={() => setHasInteracted(true)} style={isFullscreen ? {

638 height: '100vh',

639 borderRadius: 0,

640 display: 'flex',

641 flexDirection: 'column'

642 } : {}}>

643 <style>{`

644 .cw-root {

645 --cw-bg: #FAFAF8;

646 --cw-text: #1A1918;

647 --cw-text-2: #3D3C38;

648 --cw-text-3: #5E5D59;

649 --cw-text-dim: #6E6C64;

650 --cw-text-faint: #8A8880;

651 --cw-surface: rgba(0,0,0,0.025);

652 --cw-surface-2: rgba(0,0,0,0.04);

653 --cw-border: rgba(0,0,0,0.08);

654 --cw-track: rgba(0,0,0,0.04);

655 --cw-hover: rgba(0,0,0,0.04);

656 --cw-rail: rgba(0,0,0,0.08);

657 --cw-scrollbar: rgba(0,0,0,0.22);

658 background: var(--cw-bg);

659 border-radius: 12px;

660 overflow: hidden;

661 font-family: var(--font-sans, -apple-system, BlinkMacSystemFont, sans-serif);

662 color: var(--cw-text);

663 border: 1px solid var(--cw-border);

664 }

665 .dark .cw-root {

666 --cw-bg: #111110;

667 --cw-text: #E8E6DC;

668 --cw-text-2: #B8B6AE;

669 --cw-text-3: #9C9A92;

670 --cw-text-dim: #8A8880;

671 --cw-text-faint: #6E6C64;

672 --cw-surface: rgba(255,255,255,0.02);

673 --cw-surface-2: rgba(255,255,255,0.015);

674 --cw-border: rgba(255,255,255,0.06);

675 --cw-track: rgba(255,255,255,0.03);

676 --cw-hover: rgba(255,255,255,0.04);

677 --cw-rail: rgba(255,255,255,0.04);

678 --cw-scrollbar: rgba(255,255,255,0.18);

679 }

680 .cw-scroll::-webkit-scrollbar { width: 6px; }

681 .cw-scroll::-webkit-scrollbar-track { background: transparent; }

682 .cw-scroll::-webkit-scrollbar-thumb { background: var(--cw-scrollbar); border-radius: 3px; }

683 @keyframes cw-blink { 50% { opacity: 0; } }

684 @keyframes cw-fadein { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: translateY(0); } }

685 .cw-compacted-row { animation: cw-fadein 0.3s ease-out backwards; }

686 .cw-mobile-fallback { display: none; padding: 14px 16px; border-radius: 8px; font-size: 14px; border: 1px solid rgba(0,0,0,0.1); background: rgba(0,0,0,0.03); }

687 .dark .cw-mobile-fallback { border-color: rgba(255,255,255,0.15); background: rgba(255,255,255,0.04); }

688 @media (max-width: 700px) {

689 .cw-root { display: none !important; }

690 .cw-mobile-fallback { display: block; }

691 }

692 `}</style>

10 693 

11## Qué muestra la línea de tiempo694 {}

695 <div style={{

696 padding: '16px 20px 12px',

697 display: 'flex',

698 alignItems: 'flex-end',

699 gap: 24

700 }}>

701 <div style={{

702 flex: 1,

703 minWidth: 0

704 }}>

705 <div style={{

706 fontSize: 18,

707 fontWeight: 600,

708 letterSpacing: -0.3,

709 lineHeight: 1

710 }}>

711 Explore the context window

712 </div>

713 <div style={{

714 fontSize: 14,

715 color: 'var(--cw-text-dim)',

716 marginTop: 4

717 }}>

718 A simulated session showing what enters context and what it costs

719 </div>

720 </div>

721 <div style={{

722 textAlign: 'right',

723 flexShrink: 0

724 }}>

725 <div style={{

726 fontFamily: mono,

727 fontSize: 20,

728 fontWeight: 600,

729 color: barColor,

730 letterSpacing: -0.5,

731 lineHeight: 1

732 }}>

733 ~{fmt(totalTokens)}<span style={{

734 fontSize: 15,

735 fontWeight: 500,

736 marginLeft: 4

737 }}>tokens</span>

738 </div>

739 <div style={{

740 fontFamily: mono,

741 fontSize: 13,

742 color: 'var(--cw-text-dim)',

743 marginTop: 2

744 }} title="Token counts are illustrative. Actual values vary with your CLAUDE.md size, MCP servers, and file lengths.">

745 / {fmt(MAX)} · illustrative

746 </div>

747 </div>

748 </div>

749 

750 {}

751 <div style={{

752 padding: '0 20px'

753 }}>

754 <div style={{

755 height: 4,

756 borderRadius: 2,

757 background: 'var(--cw-track)',

758 overflow: 'hidden',

759 marginBottom: 6

760 }}>

761 <div style={{

762 width: pct + '%',

763 height: '100%',

764 background: barColor,

765 transition: 'width 0.6s cubic-bezier(0.4, 0, 0.2, 1), background 0.3s'

766 }} />

767 </div>

768 <div style={{

769 height: 28,

770 borderRadius: 5,

771 background: 'var(--cw-track)',

772 border: '1px solid var(--cw-border)',

773 overflow: 'hidden',

774 display: 'flex'

775 }}>

776 {blocks.map((b, i) => {

777 const w = Math.max(b.tokens / MAX * 100, 0.15);

778 const isHov = b.visIdx === activeIdx;

779 const catMatch = hovCat && b.color === hovCat;

780 const dimmed = hovCat ? !catMatch : activeIdx !== null && !isHov;

781 return <div key={b.id} onMouseEnter={() => setHovIdx(b.visIdx)} onMouseLeave={() => setHovIdx(null)} onClick={() => setSelIdx(selIdx === b.visIdx ? null : b.visIdx)} style={{

782 width: w + '%',

783 height: '100%',

784 background: b.color,

785 opacity: isHov || catMatch ? 1 : dimmed ? 0.25 : 0.65,

786 borderRight: i < blocks.length - 1 ? '0.5px solid var(--cw-border)' : 'none',

787 transition: 'opacity 0.15s',

788 cursor: 'pointer'

789 }} />;

790 })}

791 </div>

792 <div style={{

793 display: 'flex',

794 gap: 12,

795 marginTop: 6,

796 flexWrap: 'wrap',

797 justifyContent: 'space-between'

798 }}>

799 <div style={{

800 display: 'flex',

801 gap: 12,

802 flexWrap: 'wrap'

803 }}>

804 {LEGEND.map(x => {

805 const active = hovCat === x.c;

806 return <div key={x.l} onMouseEnter={() => setHovCat(x.c)} onMouseLeave={() => setHovCat(null)} style={{

807 display: 'flex',

808 alignItems: 'center',

809 gap: 4,

810 padding: '2px 6px',

811 borderRadius: 4,

812 cursor: 'pointer',

813 background: active ? 'var(--cw-hover)' : 'transparent',

814 transition: 'background 0.1s'

815 }}>

816 <div style={{

817 width: 6,

818 height: 6,

819 borderRadius: 1.5,

820 background: x.c,

821 opacity: active ? 1 : 0.7

822 }} />

823 <span style={{

824 fontSize: 12,

825 color: active ? 'var(--cw-text)' : 'var(--cw-text-dim)'

826 }}>{x.l}</span>

827 </div>;

828 })}

829 </div>

830 <div style={{

831 display: 'flex',

832 gap: 6,

833 alignItems: 'center',

834 fontSize: 12,

835 color: 'var(--cw-text-dim)'

836 }}>

837 <svg width="11" height="11" viewBox="0 0 24 24" fill="none" stroke="#558A42" strokeWidth="2.5">

838 <path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z" /><circle cx="12" cy="12" r="3" />

839 </svg>

840 <span>= appears in your terminal</span>

841 </div>

842 </div>

843 </div>

844 

845 {}

846 <div style={{

847 display: 'flex',

848 padding: '14px 20px 0',

849 gap: 16,

850 height: isFullscreen ? 'calc(100vh - 240px)' : 420

851 }}>

852 

853 {}

854 <div ref={scrollRef} className="cw-scroll" style={{

855 flex: 1,

856 minWidth: 0,

857 overflowY: 'auto',

858 paddingRight: 8,

859 scrollBehavior: 'smooth'

860 }}>

861 {visible.length === 0 && !playing && <div style={{

862 height: '100%',

863 display: 'flex',

864 flexDirection: 'column',

865 alignItems: 'center',

866 justifyContent: 'center',

867 gap: 16

868 }}>

869 <div style={{

870 fontFamily: mono,

871 fontSize: 16,

872 color: 'var(--cw-text-dim)',

873 display: 'flex',

874 alignItems: 'center',

875 gap: 8

876 }}>

877 <span style={{

878 color: 'var(--cw-text-faint)'

879 }}>$</span>

880 <span>claude</span>

881 <span style={{

882 display: 'inline-block',

883 width: 8,

884 height: 16,

885 background: 'var(--cw-text-dim)',

886 opacity: 0.5,

887 animation: 'cw-blink 1s step-end infinite'

888 }} />

889 </div>

890 <button onClick={() => setPlaying(true)} style={{

891 padding: '10px 20px',

892 borderRadius: 8,

893 border: '1px solid rgba(217,119,87,0.3)',

894 background: 'rgba(217,119,87,0.08)',

895 color: '#D97757',

896 fontSize: 15,

897 fontWeight: 600,

898 cursor: 'pointer',

899 display: 'flex',

900 alignItems: 'center',

901 gap: 8

902 }}>

903 <span>▶</span>

904 <span>Start session</span>

905 </button>

906 <div style={{

907 fontSize: 13,

908 color: 'var(--cw-text-faint)',

909 maxWidth: 280,

910 textAlign: 'center',

911 lineHeight: 1.5

912 }}>

913 Watch what loads into context, from the moment you run <code style={{

914 fontFamily: mono

915 }}>claude</code> through a full conversation.

916 </div>

917 </div>}

918 {isCompacted && <div style={{

919 marginBottom: 10,

920 padding: '10px 12px',

921 borderRadius: 6,

922 background: 'rgba(217,119,87,0.05)',

923 border: '1px solid rgba(217,119,87,0.15)'

924 }}>

925 <div style={{

926 fontSize: 13,

927 fontWeight: 600,

928 color: '#D97757',

929 marginBottom: 3

930 }}>

931 After /compact

932 </div>

933 <div style={{

934 fontSize: 13,

935 color: 'var(--cw-text-3)',

936 lineHeight: 1.5,

937 fontFamily: mono

938 }}>

939 {fmt(preCompactTotal)} → {fmt(totalTokens)} tokens · freed {fmt(preCompactTotal - totalTokens)}

940 </div>

941 <div style={{

942 fontSize: 13,

943 color: 'var(--cw-text-dim)',

944 lineHeight: 1.5,

945 marginTop: 4

946 }}>

947 This is what's left in context: startup content, which lives outside the message history and reloads after compaction, plus a structured summary of the entire conversation. Skill descriptions don't reload.

948 </div>

949 </div>}

950 {time > 0 && visible.length > 0 && <div style={{

951 fontSize: 12,

952 fontWeight: 700,

953 color: 'var(--cw-text-faint)',

954 textTransform: 'uppercase',

955 letterSpacing: 0.6,

956 marginBottom: 6,

957 paddingLeft: 28

958 }}>

959 {isCompacted ? 'Reloaded after compact' : 'Before you type anything'}

960 </div>}

961 

962 {time > 0 && visible.map((evt, i) => {

963 const meta = KIND_META[evt.kind];

964 const isHov = hovIdx === i;

965 const prevKind = i > 0 ? visible[i - 1].kind : null;

966 const isSub = evt.kind === 'sub';

967 const enteringSubagent = isSub && prevKind !== 'sub';

968 const leavingSubagent = prevKind === 'sub' && !isSub;

969 let showPhase = null;

970 if (evt.kind === 'user' && prevKind !== 'user') showPhase = 'You'; else if (evt.kind === 'claude' && prevKind === 'user') showPhase = 'Claude works'; else if (evt.label === 'Conversation summary') showPhase = 'Summarized by /compact';

971 const isNewRow = isCompacted && !(evt.kind === 'auto' && evt.t < STARTUP_END);

972 return <div key={evt.label + evt.t} className={isNewRow ? 'cw-compacted-row' : ''} style={isNewRow ? {

973 animationDelay: `${i * 60}ms`

974 } : {}}>

975 {showPhase && <div style={{

976 fontSize: 12,

977 fontWeight: 700,

978 color: 'var(--cw-text-faint)',

979 textTransform: 'uppercase',

980 letterSpacing: 0.6,

981 marginTop: 14,

982 marginBottom: 6,

983 paddingLeft: 28

984 }}>

985 {showPhase}

986 </div>}

987 {enteringSubagent && <div style={{

988 marginLeft: 28,

989 marginTop: 6,

990 marginBottom: 2,

991 paddingLeft: 10,

992 borderLeft: '2px solid rgba(155,123,196,0.4)',

993 fontSize: 12,

994 fontWeight: 600,

995 color: '#9B7BC4',

996 textTransform: 'uppercase',

997 letterSpacing: 0.5

998 }}>

999 Subagent's separate context window

1000 </div>}

1001 {leavingSubagent && <div style={{

1002 marginLeft: 28,

1003 marginBottom: 6,

1004 paddingLeft: 10,

1005 paddingBottom: 6,

1006 borderLeft: '2px solid rgba(155,123,196,0.4)',

1007 fontSize: 12,

1008 color: 'var(--cw-text-dim)',

1009 fontFamily: mono

1010 }}>

1011 ↓ {fmt(subTotal)} tokens stayed in subagent's context · only the summary returns

1012 </div>}

1013 <div onMouseEnter={() => setHovIdx(i)} onMouseLeave={() => setHovIdx(null)} onClick={() => setSelIdx(selIdx === i ? null : i)} style={{

1014 display: 'flex',

1015 alignItems: 'flex-start',

1016 borderRadius: 6,

1017 cursor: 'pointer',

1018 background: selIdx === i || isHov ? 'var(--cw-hover)' : 'transparent',

1019 outline: selIdx === i ? '1px solid rgba(217,119,87,0.4)' : 'none',

1020 opacity: hovCat && evt.color !== hovCat ? 0.35 : 1,

1021 transition: 'background 0.1s, opacity 0.15s',

1022 marginLeft: isSub ? 28 : 0,

1023 paddingLeft: isSub ? 10 : 0,

1024 borderLeft: isSub ? '2px solid rgba(155,123,196,0.4)' : 'none'

1025 }}>

1026 <div style={{

1027 width: 28,

1028 display: 'flex',

1029 flexDirection: 'column',

1030 alignItems: 'center',

1031 paddingTop: 8,

1032 flexShrink: 0

1033 }}>

1034 <div style={{

1035 width: evt.kind === 'user' || evt.kind === 'compact' ? 10 : 7,

1036 height: evt.kind === 'user' || evt.kind === 'compact' ? 10 : 7,

1037 borderRadius: '50%',

1038 background: evt.color,

1039 opacity: isHov ? 1 : 0.6,

1040 transition: 'opacity 0.15s',

1041 boxShadow: isHov ? `0 0 8px ${evt.color}40` : 'none'

1042 }} />

1043 {i < visible.length - 1 && <div style={{

1044 width: 1.5,

1045 flex: 1,

1046 background: 'var(--cw-rail)',

1047 marginTop: 2,

1048 minHeight: 6

1049 }} />}

1050 </div>

1051 <div style={{

1052 flex: 1,

1053 minWidth: 0,

1054 padding: '5px 10px 5px 4px',

1055 display: 'flex',

1056 alignItems: 'center',

1057 gap: 8

1058 }}>

1059 <span style={{

1060 fontSize: 12,

1061 fontWeight: 600,

1062 padding: '1px 5px',

1063 borderRadius: 3,

1064 background: meta.badgeBg,

1065 color: meta.badgeColor,

1066 flexShrink: 0,

1067 fontFamily: mono

1068 }}>

1069 {meta.badge}

1070 </span>

1071 <span style={{

1072 fontSize: 15,

1073 fontFamily: mono,

1074 color: isHov ? 'var(--cw-text)' : evt.kind === 'user' ? '#558A42' : evt.kind === 'auto' ? 'var(--cw-text-dim)' : 'var(--cw-text-2)',

1075 flex: 1,

1076 minWidth: 0,

1077 overflow: 'hidden',

1078 textOverflow: 'ellipsis',

1079 whiteSpace: 'nowrap',

1080 fontWeight: evt.kind === 'user' ? 550 : 400

1081 }}>

1082 {evt.label}

1083 </span>

1084 {evt.tokens > 0 && <span style={{

1085 fontSize: 12,

1086 fontFamily: mono,

1087 color: 'var(--cw-text-faint)',

1088 flexShrink: 0

1089 }}>

1090 +{fmt(evt.tokens)}

1091 </span>}

1092 {evt.subTokens > 0 && <span style={{

1093 fontSize: 12,

1094 fontFamily: mono,

1095 color: '#9B7BC4',

1096 flexShrink: 0,

1097 opacity: 0.6

1098 }}>

1099 +{fmt(evt.subTokens)}

1100 </span>}

1101 {evt.tokens > 0 && <div style={{

1102 width: 50,

1103 height: 5,

1104 borderRadius: 2,

1105 background: 'var(--cw-track)',

1106 flexShrink: 0,

1107 overflow: 'hidden'

1108 }}>

1109 <div style={{

1110 width: Math.min(evt.tokens / 5000 * 100, 100) + '%',

1111 height: '100%',

1112 background: evt.color,

1113 opacity: isHov ? 0.8 : 0.4,

1114 transition: 'opacity 0.15s'

1115 }} />

1116 </div>}

1117 <span style={{

1118 width: 14,

1119 flexShrink: 0,

1120 display: 'flex',

1121 justifyContent: 'center'

1122 }} title={VIS_META[evt.vis].label}>

1123 {evt.vis !== 'hidden' && <svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke={evt.vis === 'full' ? '#558A42' : 'currentColor'} style={{

1124 color: 'var(--cw-text-faint)',

1125 opacity: evt.vis === 'full' ? 1 : 0.5

1126 }} strokeWidth="2">

1127 <path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z" /><circle cx="12" cy="12" r="3" />

1128 </svg>}

1129 </span>

1130 </div>

1131 </div>

1132 </div>;

1133 })}

1134 

1135 {activeGate && (activeGate.kind === 'prompt' || activeGate.kind === 'bang' || activeGate.kind === 'slash') && <div style={{

1136 paddingLeft: 28,

1137 marginTop: 12,

1138 paddingRight: 8

1139 }}>

1140 <div style={{

1141 fontSize: 11,

1142 fontWeight: 600,

1143 color: '#6BA656',

1144 fontFamily: mono,

1145 textTransform: 'uppercase',

1146 letterSpacing: 0.5,

1147 marginBottom: 4,

1148 paddingLeft: 2

1149 }}>

1150 You type in your terminal

1151 </div>

1152 <div style={{

1153 display: 'flex',

1154 alignItems: 'flex-start',

1155 gap: 8,

1156 padding: '10px 12px',

1157 borderRadius: 6,

1158 background: 'rgba(85,138,66,0.06)',

1159 border: '1px solid rgba(85,138,66,0.2)'

1160 }}>

1161 <span style={{

1162 color: '#558A42',

1163 fontSize: 15,

1164 fontFamily: mono,

1165 flexShrink: 0

1166 }}>❯</span>

1167 <span style={{

1168 fontSize: 15,

1169 fontFamily: mono,

1170 color: 'var(--cw-text-2)',

1171 flex: 1,

1172 lineHeight: 1.5

1173 }}>

1174 {activeGate.text}

1175 <span style={{

1176 display: 'inline-block',

1177 width: 7,

1178 height: 13,

1179 marginLeft: 2,

1180 background: '#558A42',

1181 opacity: 0.5,

1182 verticalAlign: 'middle',

1183 animation: 'cw-blink 1s step-end infinite'

1184 }} />

1185 </span>

1186 <button onClick={sendPrompt} style={{

1187 padding: '5px 12px',

1188 borderRadius: 5,

1189 border: 'none',

1190 background: '#558A42',

1191 color: '#fff',

1192 fontSize: 13,

1193 fontWeight: 600,

1194 cursor: 'pointer',

1195 flexShrink: 0

1196 }}>

1197 {activeGate.kind === 'prompt' ? 'Send ↵' : 'Run ↵'}

1198 </button>

1199 </div>

1200 </div>}

1201 {activeGate && activeGate.kind === 'compact' && <div style={{

1202 paddingLeft: 28,

1203 marginTop: 12,

1204 paddingRight: 8

1205 }}>

1206 <div style={{

1207 padding: '12px 14px',

1208 borderRadius: 6,

1209 background: 'rgba(217,119,87,0.06)',

1210 border: '1px solid rgba(217,119,87,0.25)'

1211 }}>

1212 <div style={{

1213 fontSize: 13,

1214 color: 'var(--cw-text-3)',

1215 marginBottom: 8,

1216 lineHeight: 1.5

1217 }}>

1218 Context is at <span style={{

1219 fontFamily: mono,

1220 fontWeight: 600,

1221 color: barColor

1222 }}>{fmt(totalTokens)} tokens</span>.

1223 Run <code style={{

1224 fontFamily: mono,

1225 background: 'var(--cw-track)',

1226 padding: '1px 4px',

1227 borderRadius: 3

1228 }}>/compact</code> to

1229 summarize older exchanges and free space for more work.

1230 </div>

1231 <div style={{

1232 display: 'flex',

1233 alignItems: 'center',

1234 gap: 8

1235 }}>

1236 <span style={{

1237 color: '#D97757',

1238 fontSize: 15,

1239 fontFamily: mono

1240 }}>❯</span>

1241 <span style={{

1242 fontSize: 15,

1243 fontFamily: mono,

1244 color: 'var(--cw-text-2)',

1245 flex: 1

1246 }}>

1247 {activeGate.text}

1248 </span>

1249 <button onClick={sendPrompt} style={{

1250 padding: '5px 12px',

1251 borderRadius: 5,

1252 border: 'none',

1253 background: '#D97757',

1254 color: '#fff',

1255 fontSize: 13,

1256 fontWeight: 600,

1257 cursor: 'pointer',

1258 flexShrink: 0

1259 }}>

1260 Run ↵

1261 </button>

1262 </div>

1263 </div>

1264 </div>}

1265 </div>

1266 

1267 {}

1268 <div style={{

1269 width: 300,

1270 flexShrink: 0,

1271 display: 'flex',

1272 flexDirection: 'column'

1273 }}>

1274 <div ref={detailRef} className="cw-scroll" style={{

1275 padding: '14px 16px',

1276 borderRadius: 10,

1277 background: 'var(--cw-surface)',

1278 border: '1px solid var(--cw-border)',

1279 flex: 1,

1280 minHeight: 0,

1281 overflowY: 'auto',

1282 display: 'flex',

1283 flexDirection: 'column',

1284 gap: 10

1285 }}>

1286 {hovEvent ? <div>

1287 <div style={{

1288 display: 'flex',

1289 alignItems: 'center',

1290 gap: 8,

1291 marginBottom: 8

1292 }}>

1293 <div style={{

1294 width: 10,

1295 height: 10,

1296 borderRadius: 3,

1297 background: hovEvent.color,

1298 opacity: 0.8

1299 }} />

1300 <span style={{

1301 fontSize: 16,

1302 fontWeight: 600

1303 }}>{hovEvent.label}</span>

1304 </div>

1305 <div style={{

1306 display: 'flex',

1307 width: 'fit-content',

1308 padding: '3px 8px',

1309 borderRadius: 4,

1310 marginBottom: 8,

1311 background: KIND_META[hovEvent.kind].badgeBg

1312 }}>

1313 <span style={{

1314 fontSize: 12,

1315 fontWeight: 600,

1316 color: KIND_META[hovEvent.kind].badgeColor

1317 }}>

1318 {KIND_META[hovEvent.kind].detail}

1319 </span>

1320 </div>

1321 {hovEvent.tokens > 0 && <div style={{

1322 fontSize: 14,

1323 fontFamily: mono,

1324 color: 'var(--cw-text-dim)',

1325 marginBottom: 6

1326 }}>

1327 {fmt(hovEvent.tokens)} tokens

1328 </div>}

1329 {hovEvent.subTokens > 0 && <div style={{

1330 fontSize: 14,

1331 fontFamily: mono,

1332 color: '#9B7BC4',

1333 marginBottom: 6

1334 }}>

1335 {fmt(hovEvent.subTokens)} tokens in the subagent's context

1336 </div>}

1337 <p style={{

1338 fontSize: 15,

1339 color: 'var(--cw-text-3)',

1340 lineHeight: 1.55,

1341 margin: 0

1342 }}>

1343 {renderWithCode(hovEvent.desc)}

1344 </p>

1345 <div style={{

1346 marginTop: 10,

1347 padding: '8px 10px',

1348 borderRadius: 6,

1349 background: hovEvent.vis === 'full' ? 'rgba(85,138,66,0.08)' : 'var(--cw-surface-2)',

1350 border: '1px solid ' + (hovEvent.vis === 'full' ? 'rgba(85,138,66,0.2)' : 'var(--cw-border)')

1351 }}>

1352 <div style={{

1353 display: 'flex',

1354 alignItems: 'center',

1355 gap: 6,

1356 marginBottom: 3

1357 }}>

1358 <span style={{

1359 fontSize: 13,

1360 color: hovEvent.vis === 'full' ? '#558A42' : 'var(--cw-text-dim)'

1361 }}>

1362 {hovEvent.vis === 'full' ? '●' : hovEvent.vis === 'brief' ? '◐' : '○'}

1363 </span>

1364 <span style={{

1365 fontSize: 12,

1366 fontWeight: 600,

1367 color: 'var(--cw-text-2)'

1368 }}>

1369 {VIS_META[hovEvent.vis].label}

1370 </span>

1371 </div>

1372 <div style={{

1373 fontSize: 13,

1374 color: 'var(--cw-text-dim)',

1375 lineHeight: 1.4

1376 }}>

1377 {VIS_META[hovEvent.vis].sub}

1378 </div>

1379 </div>

1380 {hovEvent.tip && <div style={{

1381 marginTop: 10,

1382 padding: '8px 10px',

1383 borderRadius: 6,

1384 background: 'rgba(85,138,66,0.06)',

1385 border: '1px solid rgba(85,138,66,0.15)'

1386 }}>

1387 <div style={{

1388 fontSize: 12,

1389 fontWeight: 600,

1390 color: '#558A42',

1391 marginBottom: 3,

1392 display: 'flex',

1393 alignItems: 'center',

1394 gap: 4

1395 }}>

1396 <span>💡</span> Save context

1397 </div>

1398 <div style={{

1399 fontSize: 13,

1400 color: 'var(--cw-text-3)',

1401 lineHeight: 1.5

1402 }}>

1403 {renderWithCode(hovEvent.tip)}

1404 </div>

1405 </div>}

1406 {hovEvent.link && <a href={hovEvent.link} style={{

1407 display: 'inline-block',

1408 marginTop: 10,

1409 fontSize: 13,

1410 color: '#D97757',

1411 textDecoration: 'none',

1412 borderBottom: '1px solid rgba(217,119,87,0.3)'

1413 }}>

1414 Learn more →

1415 </a>}

1416 </div> : <div style={{

1417 display: 'flex',

1418 flexDirection: 'column',

1419 alignItems: 'center',

1420 textAlign: 'center',

1421 gap: 4,

1422 padding: '12px 0 4px'

1423 }}>

1424 <div style={{

1425 fontSize: 22,

1426 opacity: 0.2

1427 }}>👁</div>

1428 <div style={{

1429 fontSize: 14,

1430 fontWeight: 500,

1431 color: 'var(--cw-text-dim)'

1432 }}>Hover or click any event</div>

1433 <div style={{

1434 fontSize: 12,

1435 color: 'var(--cw-text-faint)',

1436 lineHeight: 1.4,

1437 maxWidth: 200

1438 }}>

1439 Hover to preview. Click to pin so you can scroll.

1440 </div>

1441 </div>}

1442 

1443 <div style={{

1444 padding: '10px 12px',

1445 borderRadius: 8,

1446 background: 'rgba(217,119,87,0.05)',

1447 border: '1px solid rgba(217,119,87,0.12)'

1448 }}>

1449 <div style={{

1450 fontSize: 11,

1451 fontWeight: 700,

1452 color: '#D97757',

1453 textTransform: 'uppercase',

1454 letterSpacing: 0.5,

1455 marginBottom: 3

1456 }}>

1457 Key takeaway

1458 </div>

1459 <div style={{

1460 fontSize: 13,

1461 color: 'var(--cw-text-3)',

1462 lineHeight: 1.5

1463 }}>

1464 {takeaway}

1465 </div>

1466 </div>

1467 

1468 <div style={{

1469 padding: '10px 12px',

1470 borderRadius: 8,

1471 background: 'var(--cw-surface-2)',

1472 border: '1px solid var(--cw-border)'

1473 }}>

1474 <div style={{

1475 fontSize: 11,

1476 fontWeight: 700,

1477 color: 'var(--cw-text-dim)',

1478 textTransform: 'uppercase',

1479 letterSpacing: 0.5,

1480 marginBottom: 3

1481 }}>

1482 In your terminal you see

1483 </div>

1484 <div style={{

1485 fontSize: 13,

1486 color: 'var(--cw-text-3)',

1487 lineHeight: 1.5

1488 }}>

1489 {terminalView}

1490 </div>

1491 </div>

1492 </div>

1493 </div>

1494 </div>

1495 

1496 {}

1497 <div style={{

1498 padding: '10px 20px 14px',

1499 display: 'flex',

1500 alignItems: 'center',

1501 gap: 10

1502 }}>

1503 <button aria-label={time >= 1 ? 'Restart' : activeGate ? 'Continue' : playing ? 'Pause' : 'Play'} onClick={() => {

1504 if (time >= 1) {

1505 setTime(0);

1506 setGatesPassed(0);

1507 setSelIdx(null);

1508 setHovIdx(null);

1509 setPlaying(true);

1510 } else if (activeGate) sendPrompt(); else setPlaying(!playing);

1511 }} style={{

1512 width: 30,

1513 height: 30,

1514 borderRadius: 6,

1515 border: 'none',

1516 background: 'rgba(217,119,87,0.1)',

1517 color: '#D97757',

1518 cursor: 'pointer',

1519 fontSize: 15,

1520 fontWeight: 700,

1521 display: 'flex',

1522 alignItems: 'center',

1523 justifyContent: 'center'

1524 }}>

1525 {time >= 1 ? '↺' : playing ? '⏸' : '▶'}

1526 </button>

1527 <div style={{

1528 flex: 1,

1529 height: 3,

1530 borderRadius: 2,

1531 background: 'var(--cw-track)',

1532 overflow: 'hidden'

1533 }}>

1534 <div style={{

1535 width: time * 100 + '%',

1536 height: '100%',

1537 background: '#D97757',

1538 transition: 'width 0.1s linear'

1539 }} />

1540 </div>

1541 <span style={{

1542 fontSize: 12,

1543 fontFamily: mono,

1544 color: 'var(--cw-text-faint)',

1545 minWidth: 30

1546 }}>

1547 {Math.round(time * 100)}%

1548 </span>

1549 <button onClick={toggleFullscreen} aria-label={isFullscreen ? 'Exit fullscreen' : 'Enter fullscreen'} title={isFullscreen ? 'Exit fullscreen' : 'Fullscreen'} style={{

1550 width: 28,

1551 height: 28,

1552 borderRadius: 6,

1553 border: '1px solid var(--cw-border)',

1554 background: 'var(--cw-surface)',

1555 color: 'var(--cw-text-dim)',

1556 cursor: 'pointer',

1557 fontSize: 15,

1558 flexShrink: 0,

1559 marginLeft: 4,

1560 display: 'flex',

1561 alignItems: 'center',

1562 justifyContent: 'center'

1563 }}>

1564 {isFullscreen ? '⤡' : '⛶'}

1565 </button>

1566 </div>

1567 </div>

1568 </>;

1569};

1570 

1571La ventana de contexto de Claude Code contiene todo lo que Claude sabe sobre su sesión: sus instrucciones, los archivos que lee, sus propias respuestas y contenido que nunca aparece en su terminal. La línea de tiempo a continuación muestra una sesión completa desde el inicio hasta la compactación: qué se carga antes de que escriba, qué agrega cada lectura de archivo, regla y hook mientras Claude trabaja, y cómo un subagent mantiene las lecturas grandes fuera de su contexto. Vea [el desglose escrito](#what-the-timeline-shows) para el mismo contenido como una lista.

1572 

1573<ContextWindow />

1574 

1575<h2 id="what-the-timeline-shows">

1576 Qué muestra la línea de tiempo

1577</h2>

12 1578 

13La sesión recorre un flujo realista con conteos de tokens representativos:1579La sesión recorre un flujo realista con conteos de tokens representativos:

14 1580 


17* **El prompt de seguimiento**: un [subagent](/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.1583* **El prompt de seguimiento**: un [subagent](/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.

18* **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.1584* **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.

19 1585 

20## Qué sobrevive a la compactación1586<h2 id="what-survives-compaction">

1587 Qué sobrevive a la compactación

1588</h2>

21 1589 

22Cuando una sesión larga se compacta, Claude Code resume el historial de conversación para que quepa en la ventana de contexto. Lo que sucede con sus instrucciones depende de cómo se cargaron:1590Cuando una sesión larga se compacta, Claude Code resume el historial de conversación para que quepa en la ventana de contexto. Lo que sucede con sus instrucciones depende de cómo se cargaron:

23 1591 


35 1603 

36Los cuerpos de skills se re-inyectan después de la compactación, pero los skills grandes se truncan para ajustarse al límite por skill, y los skills invocados más antiguos se descartan una vez que se excede el presupuesto total. El truncamiento mantiene el inicio del archivo, por lo que coloque las instrucciones más importantes cerca de la parte superior de `SKILL.md`.1604Los cuerpos de skills se re-inyectan después de la compactación, pero los skills grandes se truncan para ajustarse al límite por skill, y los skills invocados más antiguos se descartan una vez que se excede el presupuesto total. El truncamiento mantiene el inicio del archivo, por lo que coloque las instrucciones más importantes cerca de la parte superior de `SKILL.md`.

37 1605 

38## Verifique su propia sesión1606<h2 id="when-your-context-fills-up">

1607 Cuando su contexto se llena

1608</h2>

1609 

1610Claude Code se compacta automáticamente a medida que se acerca al límite, por lo que una ventana de contexto llena no termina su sesión. El paso automático funciona de la misma manera que el paso `/compact` en la línea de tiempo. Vea [Cuando el contexto se llena](/es/how-claude-code-works#when-context-fills-up) para saber qué preserva.

1611 

1612También puede actuar antes de que se ejecute el paso automático:

1613 

1614* **Compactar con un enfoque**: ejecute `/compact` con instrucciones, como `/compact focus on the auth bug fix`, antes de comenzar una tarea nueva larga. El resumen mantiene lo que usted elige en lugar de lo que el paso automático adivina que es importante.

1615* **Limpiar entre tareas**: ejecute `/clear` cuando cambie a trabajo no relacionado. La conversación antigua desplaza los archivos que necesita a continuación y cuesta tokens en cada mensaje.

1616* **Delegar lecturas grandes**: envíe investigación a un [subagent](/es/sub-agents) para que el contenido del archivo permanezca en su ventana de contexto, no en la suya.

1617 

1618Si necesita una ventana más grande en lugar de una conversación más pequeña, Fable 5, Opus 4.6 y posteriores, y Sonnet 4.6 admiten una ventana de contexto de 1 millón de tokens. Vea [Contexto extendido](/es/model-config#extended-context) para disponibilidad por plan y cómo seleccionar una variante de modelo `[1m]`. La compactación funciona de la misma manera en el límite más grande.

1619 

1620<h2 id="check-your-own-session">

1621 Verifique su propia sesión

1622</h2>

39 1623 

40La visualización utiliza números representativos. Para ver su uso real de contexto en cualquier momento, ejecute `/context` para un desglose en vivo por categoría con sugerencias de optimización. Ejecute `/memory` para verificar qué archivos CLAUDE.md y memoria automática se cargaron al inicio.1624La visualización utiliza números representativos. Para ver su uso real de contexto en cualquier momento, ejecute `/context` para un desglose en vivo por categoría con sugerencias de optimización. Ejecute `/memory` para verificar qué archivos CLAUDE.md y memoria automática se cargaron al inicio.

41 1625 

42## Recursos relacionados1626<h2 id="related-resources">

1627 Recursos relacionados

1628</h2>

43 1629 

44Para una cobertura más profunda de las características mostradas en la línea de tiempo, vea estas páginas:1630Para una cobertura más profunda de las características mostradas en la línea de tiempo, vea estas páginas:

45 1631 

costs.md +4 −2

Details

35 35 

36En un plan Pro, Max, Team o Enterprise, `/usage` también muestra un desglose de lo que cuenta contra los límites de su plan. Atribuye el uso reciente a skills, subagentes, plugins y servidores MCP individuales, cada uno mostrado como un porcentaje del total. Presione `d` o `w` para cambiar entre las últimas 24 horas y los últimos 7 días. Las cifras son aproximadas y se calculan a partir del historial de sesión local en esta máquina, por lo que el uso de otros dispositivos o claude.ai no se incluye.36En un plan Pro, Max, Team o Enterprise, `/usage` también muestra un desglose de lo que cuenta contra los límites de su plan. Atribuye el uso reciente a skills, subagentes, plugins y servidores MCP individuales, cada uno mostrado como un porcentaje del total. Presione `d` o `w` para cambiar entre las últimas 24 horas y los últimos 7 días. Las cifras son aproximadas y se calculan a partir del historial de sesión local en esta máquina, por lo que el uso de otros dispositivos o claude.ai no se incluye.

37 37 

38En la [extensión de VS Code](/es/vs-code#check-account-and-usage), el mismo desglose aparece en el diálogo Cuenta y uso con un botón de alternancia Día y Semana. Requiere Claude Code v2.1.174 o posterior.

39 

38<h2 id="managing-costs-for-teams">40<h2 id="managing-costs-for-teams">

39 Gestión de costos para equipos41 Gestión de costos para equipos

40</h2>42</h2>


85* Use Sonnet para compañeros de equipo. Equilibra capacidad y costo para tareas de coordinación.87* Use Sonnet para compañeros de equipo. Equilibra capacidad y costo para tareas de coordinación.

86* Mantenga los equipos pequeños. Cada compañero de equipo ejecuta su propia ventana de contexto, por lo que el uso de tokens es aproximadamente proporcional al tamaño del equipo.88* Mantenga los equipos pequeños. Cada compañero de equipo ejecuta su propia ventana de contexto, por lo que el uso de tokens es aproximadamente proporcional al tamaño del equipo.

87* Mantenga los prompts de generación enfocados. Los compañeros de equipo cargan CLAUDE.md, servidores MCP y skills automáticamente, pero todo en el prompt de generación se suma a su contexto desde el principio.89* Mantenga los prompts de generación enfocados. Los compañeros de equipo cargan CLAUDE.md, servidores MCP y skills automáticamente, pero todo en el prompt de generación se suma a su contexto desde el principio.

88* Limpie los equipos cuando el trabajo esté hecho. Los compañeros de equipo activos continúan consumiendo tokens incluso si están inactivos.90* Cierre los compañeros de equipo cuando su trabajo esté hecho. Cada compañero de equipo activo continúa consumiendo tokens hasta que se cierre o la sesión finalice.

89* Los equipos de agentes están deshabilitados por defecto. Establezca `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` en su [settings.json](/es/settings) o entorno para habilitarlos. Consulte [habilitar equipos de agentes](/es/agent-teams#enable-agent-teams).91* Los equipos de agentes están deshabilitados por defecto. Establezca `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` en su [settings.json](/es/settings) o entorno para habilitarlos. Consulte [habilitar equipos de agentes](/es/agent-teams#enable-agent-teams).

90 92 

91<h2 id="reduce-token-usage">93<h2 id="reduce-token-usage">


196 Ajuste el pensamiento extendido198 Ajuste el pensamiento extendido

197</h3>199</h3>

198 200 

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

200 202 

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

202 Delegue operaciones detalladas a subagents204 Delegue operaciones detalladas a subagents

data-usage.md +3 −3

Details

62**Usuarios comerciales (Team, Enterprise y API)**:62**Usuarios comerciales (Team, Enterprise y API)**:

63 63 

64* Estándar: período de retención de 30 días64* Estándar: período de retención de 30 días

65* [Zero data retention](/es/zero-data-retention): disponible para Claude Code en Claude for Enterprise. ZDR se habilita por organización; cada nueva organización debe tener ZDR habilitado por separado por su equipo de cuenta65* [Zero data retention](/es/zero-data-retention): disponible para Claude Code en Claude for Enterprise. ZDR no está incluido en el plan Enterprise estándar; se habilita por organización después de que su equipo de cuenta confirme la elegibilidad

66* Almacenamiento en caché local: los clientes de Claude Code almacenan transcripciones de sesión localmente en texto sin formato bajo `~/.claude/projects/` durante 30 días de forma predeterminada para permitir la reanudación de sesiones. Ajuste el período con `cleanupPeriodDays`. Consulte [application data](/es/claude-directory#application-data) para ver qué se almacena y cómo borrarlo.66* Almacenamiento en caché local: los clientes de Claude Code almacenan transcripciones de sesión localmente en texto sin formato bajo `~/.claude/projects/` durante 30 días de forma predeterminada para permitir la reanudación de sesiones. Ajuste el período con `cleanupPeriodDays`. Consulte [application data](/es/claude-directory#application-data) para ver qué se almacena y cómo borrarlo.

67 67 

68Puede eliminar sesiones individuales de Claude Code en la web en cualquier momento. Eliminar una sesión elimina permanentemente los datos de eventos de la sesión. Para obtener instrucciones sobre cómo eliminar sesiones, consulte [Delete sessions](/es/claude-code-on-the-web#delete-sessions).68Puede eliminar sesiones individuales de Claude Code en la web en cualquier momento. Eliminar una sesión elimina permanentemente los datos de eventos de la sesión. Para obtener instrucciones sobre cómo eliminar sesiones, consulte [Delete sessions](/es/claude-code-on-the-web#delete-sessions).


83 83 

84El diagrama a continuación muestra cómo Claude Code se conecta a servicios externos durante la instalación y operación normal. Las líneas sólidas indican conexiones requeridas, mientras que las líneas punteadas representan flujos de datos opcionales o iniciados por el usuario.84El diagrama a continuación muestra cómo Claude Code se conecta a servicios externos durante la instalación y operación normal. Las líneas sólidas indican conexiones requeridas, mientras que las líneas punteadas representan flujos de datos opcionales o iniciados por el usuario.

85 85 

86<img src="https://mintcdn.com/claude-code/ikqp3_70mqIahteV/images/claude-code-data-flow.svg?fit=max&auto=format&n=ikqp3_70mqIahteV&q=85&s=5b1131530bdfdd415700a0cb4d4070c4" alt="Diagrama que muestra las conexiones externas de Claude Code: instalar/actualizar se conecta al servidor de distribución, y las solicitudes del usuario se conectan a servicios de Anthropic incluyendo autenticación de consola, API pública, y opcionalmente métricas, Sentry e informes de errores" width="720" height="520" data-path="images/claude-code-data-flow.svg" />86<img src="https://mintcdn.com/claude-code/ikqp3_70mqIahteV/images/claude-code-data-flow.svg?fit=max&auto=format&n=ikqp3_70mqIahteV&q=85&s=5b1131530bdfdd415700a0cb4d4070c4" alt="Diagrama que muestra las conexiones externas de Claude Code: instalar/actualizar se conecta al servidor de distribución, y las solicitudes del usuario se conectan a servicios de Anthropic incluyendo autenticación de consola, API pública, y opcionalmente métricas y Sentry. Los comentarios enviados con /feedback van a Google Cloud Storage y opcionalmente crean un problema de GitHub" width="720" height="520" data-path="images/claude-code-data-flow.svg" />

87 87 

88Claude Code se ejecuta localmente. Para interactuar con el LLM, Claude Code envía datos a través de la red. Estos datos incluyen todos los indicadores del usuario y salidas del modelo, cifrados en tránsito a través de TLS 1.2+. Claude Code es compatible con la mayoría de VPN y proxies LLM populares.88Claude Code se ejecuta localmente. Para interactuar con el LLM, Claude Code envía datos a través de la red. Estos datos incluyen todos los indicadores del usuario y salidas del modelo, cifrados en tránsito a través de TLS 1.2+. Claude Code es compatible con la mayoría de VPN y proxies LLM populares.

89 89 


119 119 

120Claude Code se conecta desde las máquinas de los usuarios a Sentry para el registro de errores operativos. Los datos se cifran en tránsito usando TLS y en reposo usando cifrado AES de 256 bits. Lea más en la [documentación de seguridad de Sentry](https://sentry.io/security/). Para optar por no participar en el registro de errores, establezca la variable de entorno `DISABLE_ERROR_REPORTING`.120Claude Code se conecta desde las máquinas de los usuarios a Sentry para el registro de errores operativos. Los datos se cifran en tránsito usando TLS y en reposo usando cifrado AES de 256 bits. Lea más en la [documentación de seguridad de Sentry](https://sentry.io/security/). Para optar por no participar en el registro de errores, establezca la variable de entorno `DISABLE_ERROR_REPORTING`.

121 121 

122Cuando usted ejecuta el comando `/feedback`, se envía una copia de su historial de conversación completo incluyendo código a Anthropic. Antes de enviar, usted elige cuánto historial incluir: solo la sesión actual, que es la predeterminada, u también otras sesiones del mismo proyecto durante los últimos 24 horas o 7 días. Los datos se cifran en tránsito mediante TLS. Opcionalmente, se crea un problema de GitHub en el repositorio público. Para optar por no participar, establezca la variable de entorno `DISABLE_FEEDBACK_COMMAND` a `1`.122Cuando usted ejecuta el comando `/feedback`, se envía una copia de su historial de conversación completo incluyendo código a Anthropic. Antes de enviar, usted elige cuánto historial incluir: solo la sesión actual, que es la predeterminada, u también otras sesiones del mismo proyecto durante los últimos 24 horas o 7 días. Los datos se cifran en tránsito mediante TLS y se almacenan en Google Cloud Storage, que cifra los datos almacenados en reposo de forma predeterminada. Opcionalmente, se crea un problema de GitHub en el repositorio público. Para optar por no participar, establezca la variable de entorno `DISABLE_FEEDBACK_COMMAND` a `1`.

123 123 

124Cuando usted utiliza un proveedor de terceros como Bedrock o Vertex, o no tiene credenciales de Anthropic configuradas, `/feedback` escribe el informe en un archivo local bajo `~/.claude/feedback-bundles/` en lugar de enviarlo a Anthropic. Los patrones conocidos de clave API y token se redactan antes de que se escriba el archivo. Nada sale de su máquina hasta que usted envíe ese archivo a su representante de cuenta de Anthropic o lo adjunte a una solicitud de soporte.124Cuando usted utiliza un proveedor de terceros como Bedrock o Vertex, o no tiene credenciales de Anthropic configuradas, `/feedback` escribe el informe en un archivo local bajo `~/.claude/feedback-bundles/` en lugar de enviarlo a Anthropic. Los patrones conocidos de clave API y token se redactan antes de que se escriba el archivo. Nada sale de su máquina hasta que usted envíe ese archivo a su representante de cuenta de Anthropic o lo adjunte a una solicitud de soporte.

125 125 

Details

78 Probar contra una configuración limpia78 Probar contra una configuración limpia

79</h2>79</h2>

80 80 

81Si las comprobaciones dirigidas no aíslan la causa, o su configuración está en un estado desconocido, compare contra una sesión que no carga nada de su configuración habitual. Apunte [`CLAUDE_CONFIG_DIR`](/es/env-vars) a un directorio vacío para omitir todo bajo `~/.claude`, e inicie desde un directorio que no tenga carpeta `.claude`, `.mcp.json` o `CLAUDE.md` para que la configuración del proyecto también se omita.81{/* min-version: 2.1.169 */}Comience con [`claude --safe-mode`](/es/cli-reference#cli-flags), que inicia una sesión con todas las personalizaciones deshabilitadas, incluidos `CLAUDE.md`, skills, plugins, hooks, servidores MCP y comandos y agentes personalizados. La autenticación, la selección de modelo, las herramientas integradas y los permisos funcionan normalmente. Si el problema desaparece en modo seguro, una de esas superficies es la causa; use las comprobaciones dirigidas anteriores para encontrar cuál. La configuración administrada implementada por su organización aún se aplica parcialmente, por lo que los hooks configurados por política y la línea de estado se ejecutan incluso en modo seguro.

82 

83Si el problema persiste en modo seguro, o si su configuración en sí es sospechosa, compare contra una sesión que no carga nada de su configuración habitual. Apunte [`CLAUDE_CONFIG_DIR`](/es/env-vars) a un directorio vacío para omitir todo bajo `~/.claude`, e inicie desde un directorio que no tenga carpeta `.claude`, `.mcp.json` o `CLAUDE.md` para que la configuración del proyecto también se omita.

82 84 

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

84cd /tmp && CLAUDE_CONFIG_DIR=/tmp/claude-clean claude86cd /tmp && CLAUDE_CONFIG_DIR=/tmp/claude-clean claude

desktop.md +22 −20

Details

77Los modos de permisos controlan cuánta autonomía tiene Claude durante una sesión: si pregunta antes de editar archivos, ejecutar comandos o ambos. Puede cambiar de modo en cualquier momento usando el selector de modo junto al botón de envío. Comience con Ask permissions para ver exactamente qué hace Claude, luego pase a Auto accept edits o Plan mode a medida que se sienta cómodo.77Los modos de permisos controlan cuánta autonomía tiene Claude durante una sesión: si pregunta antes de editar archivos, ejecutar comandos o ambos. Puede cambiar de modo en cualquier momento usando el selector de modo junto al botón de envío. Comience con Ask permissions para ver exactamente qué hace Claude, luego pase a Auto accept edits o Plan mode a medida que se sienta cómodo.

78 78 

79| Modo | Clave de configuración | Comportamiento |79| Modo | Clave de configuración | Comportamiento |

80| ---------------------- | ---------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |80| ---------------------- | ---------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

81| **Ask permissions** | `default` | Claude pregunta antes de editar archivos o ejecutar comandos. Usted ve una diferencia y puede aceptar o rechazar cada cambio. Recomendado para nuevos usuarios. |81| **Ask permissions** | `default` | Claude pregunta antes de editar archivos o ejecutar comandos. Usted ve una diferencia y puede aceptar o rechazar cada cambio. Recomendado para nuevos usuarios. |

82| **Auto accept edits** | `acceptEdits` | Claude acepta automáticamente ediciones de archivos y comandos comunes del sistema de archivos como `mkdir`, `touch` y `mv`, pero aún pregunta antes de ejecutar otros comandos de terminal. Use esto cuando confíe en cambios de archivos y desee una iteración más rápida. |82| **Auto accept edits** | `acceptEdits` | Claude acepta automáticamente ediciones de archivos y comandos comunes del sistema de archivos como `mkdir`, `touch` y `mv`, pero aún pregunta antes de ejecutar otros comandos de terminal. Use esto cuando confíe en cambios de archivos y desee una iteración más rápida. |

83| **Plan mode** | `plan` | Claude lee archivos y ejecuta comandos para explorar, luego propone un plan sin editar su código fuente. Bueno para tareas complejas donde desea revisar el enfoque primero. |83| **Plan mode** | `plan` | Claude lee archivos y ejecuta comandos para explorar, luego propone un plan sin editar su código fuente. Bueno para tareas complejas donde desea revisar el enfoque primero. |

84| **Auto** | `auto` | Claude ejecuta todas las acciones con verificaciones de seguridad en segundo plano que verifican la alineación con su solicitud. Reduce solicitudes de permisos mientras mantiene supervisión. Habilite en su Configuración → Claude Code. Consulte [requisitos de disponibilidad](#auto-mode-availability) a continuación. |84| **Auto** | `auto` | Claude ejecuta todas las acciones con verificaciones de seguridad en segundo plano que verifican la alineación con su solicitud. Reduce solicitudes de permisos mientras mantiene supervisión. Habilite en su Configuración → Claude Code. Consulte [requisitos de disponibilidad](#auto-mode-availability) a continuación. |

85| **Bypass permissions** | `bypassPermissions` | Claude se ejecuta sin ningún aviso de permisos, equivalente a `--dangerously-skip-permissions` en la CLI. Habilite en su Configuración → Claude Code bajo "Allow bypass permissions mode". Use solo en contenedores o máquinas virtuales sandboxed. Los administradores empresariales pueden deshabilitar esta opción. |85| **Bypass permissions** | `bypassPermissions` | Claude se ejecuta sin ningún aviso de permisos, excepto aquellos forzados por [reglas de solicitud](/es/permissions#manage-permissions) explícitas; equivalente a `--dangerously-skip-permissions` en la CLI. Habilite en su Configuración → Claude Code bajo "Allow bypass permissions mode". Use solo en contenedores o máquinas virtuales sandboxed. Los administradores empresariales pueden deshabilitar esta opción. |

86 86 

87El modo de permisos `dontAsk` está disponible solo en la [CLI](/es/permission-modes#allow-only-pre-approved-tools-with-dontask-mode).87El modo de permisos `dontAsk` está disponible solo en la [CLI](/es/permission-modes#allow-only-pre-approved-tools-with-dontask-mode).

88 88 


94 Comience tareas complejas en Plan mode para que Claude mapee un enfoque antes de realizar cambios. Una vez que apruebe el plan, cambie a Auto accept edits o Ask permissions para ejecutarlo. Consulte [explorar primero, luego planificar, luego codificar](/es/best-practices#explore-first-then-plan-then-code) para obtener más información sobre este flujo de trabajo.94 Comience tareas complejas en Plan mode para que Claude mapee un enfoque antes de realizar cambios. Una vez que apruebe el plan, cambie a Auto accept edits o Ask permissions para ejecutarlo. Consulte [explorar primero, luego planificar, luego codificar](/es/best-practices#explore-first-then-plan-then-code) para obtener más información sobre este flujo de trabajo.

95</Tip>95</Tip>

96 96 

97Las sesiones remotas admiten Auto accept edits y Plan mode. Ask permissions no está disponible porque las sesiones remotas aceptan automáticamente ediciones de archivos de forma predeterminada, y Bypass permissions no está disponible porque el entorno remoto ya está sandboxed.97Las sesiones remotas admiten Auto accept edits, Plan mode y Auto mode. Auto accept edits corresponde al modo `default`: las sesiones remotas aceptan automáticamente ediciones de archivos, por lo que el selector muestra Auto accept edits en lugar de Ask permissions. Bypass permissions no está disponible porque el entorno remoto ya está sandboxed.

98 98 

99Los administradores empresariales pueden restringir qué modos de permisos están disponibles. Consulte [configuración empresarial](#enterprise-configuration) para obtener detalles.99Los administradores empresariales pueden restringir qué modos de permisos están disponibles. Consulte [configuración empresarial](#enterprise-configuration) para obtener detalles.

100 100 


403 Conectar herramientas externas403 Conectar herramientas externas

404</h3>404</h3>

405 405 

406Para sesiones locales y [SSH](#ssh-sessions), haga clic en el botón **+** junto al cuadro de solicitud y seleccione **Connectors** para agregar integraciones como Google Calendar, Slack, GitHub, Linear, Notion y más. Puede agregar conectores antes o durante una sesión. El botón **+** no está disponible en sesiones remotas, pero [routines](/es/routines) configuran conectores en el momento de la creación de la rutina.406Para sesiones locales y [SSH](#ssh-sessions), haga clic en el botón **+** junto al cuadro de solicitud y seleccione **Connectors** para agregar integraciones como Google Calendar, Slack, GitHub, Linear, Notion y más. Puede agregar conectores antes o durante una sesión. El botón **+** no está disponible en sesiones en la nube, pero [routines](/es/routines) configuran conectores en el momento de la creación de la rutina.

407 407 

408Para administrar o desconectar conectores, vaya a Configuración → Connectors en la aplicación de escritorio, o seleccione **Manage connectors** desde el menú Connectors en el cuadro de solicitud.408Para administrar o desconectar conectores, vaya a Configuración → Connectors en la aplicación de escritorio, o seleccione **Manage connectors** desde el menú Connectors en el cuadro de solicitud.

409 409 


425 425 

426Para sesiones locales y [SSH](#ssh-sessions), haga clic en el botón **+** junto al cuadro de solicitud y seleccione **Plugins** para ver sus plugins instalados y sus skills. Para agregar un plugin, seleccione **Add plugin** del submenú para abrir el navegador de plugins, que muestra plugins disponibles desde sus [marketplaces](/es/plugin-marketplaces) configurados incluyendo el marketplace oficial de Anthropic. Seleccione **Manage plugins** para habilitar, deshabilitar o desinstalar plugins.426Para sesiones locales y [SSH](#ssh-sessions), haga clic en el botón **+** junto al cuadro de solicitud y seleccione **Plugins** para ver sus plugins instalados y sus skills. Para agregar un plugin, seleccione **Add plugin** del submenú para abrir el navegador de plugins, que muestra plugins disponibles desde sus [marketplaces](/es/plugin-marketplaces) configurados incluyendo el marketplace oficial de Anthropic. Seleccione **Manage plugins** para habilitar, deshabilitar o desinstalar plugins.

427 427 

428Los plugins pueden estar limitados 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. Los plugins no están disponibles para sesiones remotas. Para la referencia completa de plugins incluyendo crear sus propios plugins, consulte [plugins](/es/plugins).428Los plugins pueden estar limitados 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. Los plugins no están disponibles para sesiones en la nube. Para la referencia completa de plugins incluyendo crear sus propios plugins, consulte [plugins](/es/plugins).

429 429 

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

431 Configurar servidores de vista previa431 Configurar servidores de vista previa


487| `program` | string | Un script a ejecutar con `node`. Consulte [cuándo usar `program` vs `runtimeExecutable`](#when-to-use-program-vs-runtimeexecutable) |487| `program` | string | Un script a ejecutar con `node`. Consulte [cuándo usar `program` vs `runtimeExecutable`](#when-to-use-program-vs-runtimeexecutable) |

488| `args` | string\[] | Argumentos pasados a `program`. Solo se usa cuando `program` está establecido |488| `args` | string\[] | Argumentos pasados a `program`. Solo se usa cuando `program` está establecido |

489 489 

490<a id="when-to-use-program-vs-runtimeexecutable" />

491 

490<h5 id="when-to-use-program-vs-runtimeexecutable">492<h5 id="when-to-use-program-vs-runtimeexecutable">

491 Cuándo usar `program` vs `runtimeExecutable`493 Cuándo usar `program` vs `runtimeExecutable`

492</h5>494</h5>


598 600 

599Para 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](/es/env-vars) para la lista completa de variables compatibles.601Para 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](/es/env-vars) para la lista completa de variables compatibles.

600 602 

601[Extended thinking](/es/model-config#extended-thinking) está habilitado de forma predeterminada, lo que mejora el rendimiento en tareas de razonamiento complejo pero usa tokens adicionales. Para deshabilitar el pensamiento por completo, establezca `MAX_THINKING_TOKENS` en `0` en el editor de entorno local. En modelos con [razonamiento adaptativo](/es/model-config#adjust-effort-level), cualquier otro valor de `MAX_THINKING_TOKENS` se ignora 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; Opus 4.7 y posteriores siempre usan razonamiento adaptativo y no tienen modo de presupuesto fijo.603[Extended thinking](/es/model-config#extended-thinking) está habilitado de forma predeterminada, lo que mejora el rendimiento en tareas de razonamiento complejo pero usa tokens adicionales. Para deshabilitar el pensamiento, establezca `MAX_THINKING_TOKENS` en `0` en el editor de entorno local; esto no tiene efecto en Fable 5, que siempre usa extended thinking. En [proveedores de terceros](/es/third-party-integrations), `0` omite el parámetro `thinking` en su lugar, y los modelos de razonamiento adaptativo aún pueden pensar. En modelos con [razonamiento adaptativo](/es/model-config#adjust-effort-level), cualquier otro valor de `MAX_THINKING_TOKENS` se ignora 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; Opus 4.7 y posteriores siempre usan razonamiento adaptativo y no tienen modo de presupuesto fijo.

602 604 

603<h3 id="remote-sessions">605<h3 id="cloud-sessions">

604 Sesiones remotas606 Sesiones remotas

605</h3>607</h3>

606 608 


710 712 

711Los equipos de TI pueden gestionar la aplicación de escritorio a través de MDM en macOS o política de grupo en Windows. Las políticas disponibles incluyen habilitar o deshabilitar la función Claude Code, controlar actualizaciones automáticas y establecer una URL de implementación personalizada.713Los equipos de TI pueden gestionar la aplicación de escritorio a través de MDM en macOS o política de grupo en Windows. Las políticas disponibles incluyen habilitar o deshabilitar la función Claude Code, controlar actualizaciones automáticas y establecer una URL de implementación personalizada.

712 714 

713* **macOS**: configure a través del dominio de preferencia `com.anthropic.Claude` usando herramientas como Jamf o Kandji715* **macOS**: configure a través del dominio de preferencia `com.anthropic.claudefordesktop` usando herramientas como Jamf o Kandji

714* **Windows**: configure a través del registro en `SOFTWARE\Policies\Claude`716* **Windows**: configure a través del registro en `SOFTWARE\Policies\Claude`

715 717 

716<h3 id="authentication-and-sso">718<h3 id="authentication-and-sso">


779* Los **[MCP servers](/es/mcp)** configurados en `~/.claude.json` o `.mcp.json` funcionan en ambos781* Los **[MCP servers](/es/mcp)** configurados en `~/.claude.json` o `.mcp.json` funcionan en ambos

780* Los **[Hooks](/es/hooks)** y **[skills](/es/skills)** definidos en configuración se aplican a ambos782* Los **[Hooks](/es/hooks)** y **[skills](/es/skills)** definidos en configuración se aplican a ambos

781* La **[Configuración](/es/settings)** en `~/.claude.json` y `~/.claude/settings.json` se comparte. Las reglas de permisos, herramientas permitidas y otras configuraciones en `settings.json` se aplican a sesiones de Desktop.783* La **[Configuración](/es/settings)** en `~/.claude.json` y `~/.claude/settings.json` se comparte. Las reglas de permisos, herramientas permitidas y otras configuraciones en `settings.json` se aplican a sesiones de Desktop.

782* **Modelos**: Sonnet, Opus y Haiku están disponibles en ambos. En Desktop, seleccione el modelo del menú desplegable junto al botón de envío. Puede cambiar el modelo durante la sesión desde el mismo menú desplegable.784* **Modelos**: los mismos [modelos](/es/model-config#available-models) están disponibles en ambos. En Desktop, seleccione el modelo del menú desplegable junto al botón de envío. Puede cambiar el modelo durante la sesión desde el mismo menú desplegable.

783 785 

784<Note>786<Note>

785 **MCP servers de la aplicación de chat de Claude Desktop**: la aplicación Desktop carga MCP servers de `claude_desktop_config.json` en sesiones de la pestaña Code, junto con servidores de `~/.claude.json` y `.mcp.json`. Un servidor definido en `claude_desktop_config.json` está disponible tanto en la superficie de chat de Desktop como en la pestaña Code.787 **MCP servers de la aplicación de chat de Claude Desktop**: la aplicación Desktop carga MCP servers de `claude_desktop_config.json` en sesiones de la pestaña Code, junto con servidores de `~/.claude.json` y `.mcp.json`. Un servidor definido en `claude_desktop_config.json` está disponible tanto en la superficie de chat de Desktop como en la pestaña Code.


794Esta tabla compara capacidades principales entre la CLI y Desktop. Para una lista completa de banderas de CLI, consulte la [referencia de CLI](/es/cli-reference).796Esta tabla compara capacidades principales entre la CLI y Desktop. Para una lista completa de banderas de CLI, consulte la [referencia de CLI](/es/cli-reference).

795 797 

796| Característica | CLI | Desktop |798| Característica | CLI | Desktop |

797| ------------------------------------------------------- | --------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |799| ------------------------------------------------------- | --------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

798| Modos de permisos | Todos los modos incluyendo `dontAsk` | Ask permissions, Auto accept edits, Plan mode, Auto y Bypass permissions a través de Configuración |800| Modos de permisos | Todos los modos incluyendo `dontAsk` | Ask permissions, Auto accept edits, Plan mode, Auto y Bypass permissions a través de Configuración |

799| `--dangerously-skip-permissions` | Bandera de CLI | Modo Bypass permissions. Habilite en Configuración → Claude Code → "Allow bypass permissions mode" |801| `--dangerously-skip-permissions` | Bandera de CLI | Modo Bypass permissions. Habilite en Configuración → Claude Code → "Allow bypass permissions mode" |

800| [Proveedores de terceros](/es/third-party-integrations) | Bedrock, Vertex, Foundry | API de Anthropic de forma predeterminada. Las implementaciones empresariales pueden configurar Vertex AI y proveedores de puerta de enlace. Consulte la [guía de configuración empresarial](https://support.claude.com/en/articles/12622667-enterprise-configuration). |802| [Proveedores de terceros](/es/third-party-integrations) | Bedrock, Vertex AI, Foundry | API de Anthropic de forma predeterminada. Las implementaciones empresariales pueden configurar Vertex AI y proveedores de puerta de enlace. Consulte la [guía de configuración empresarial](https://support.claude.com/en/articles/12622667-enterprise-configuration). Para ejecutar la pestaña Code en Bedrock, Vertex AI, Foundry o una puerta de enlace LLM autohospedada, consulte la [vista previa de investigación de Cowork en 3P](https://claude.com/docs/cowork/3p/overview). |

801| [MCP servers](/es/mcp) | Configurar en archivos de configuración | UI de Connectors para sesiones locales y SSH, o archivos de configuración |803| [MCP servers](/es/mcp) | Configurar en archivos de configuración | UI de Connectors para sesiones locales y SSH, o archivos de configuración |

802| [Plugins](/es/plugins) | Comando `/plugin` | UI del administrador de plugins |804| [Plugins](/es/plugins) | Comando `/plugin` | UI del administrador de plugins |

803| Archivos @mention | Basado en texto | Con autocompletado; sesiones locales y SSH solamente |805| Archivos @mention | Basado en texto | Con autocompletado; sesiones locales y SSH solamente |


809| Integración de Dispatch | No disponible | [Sesiones de Dispatch](#sessions-from-dispatch) en la barra lateral |811| Integración de Dispatch | No disponible | [Sesiones de Dispatch](#sessions-from-dispatch) en la barra lateral |

810| Scripting y automatización | [`--print`](/es/cli-reference), [Agent SDK](/es/headless) | No disponible |812| Scripting y automatización | [`--print`](/es/cli-reference), [Agent SDK](/es/headless) | No disponible |

811 813 

812<h3 id="what-s-not-available-in-desktop">814<h3 id="whats-not-available-in-desktop">

813 Lo que no está disponible en Desktop815 Lo que no está disponible en Desktop

814</h3>816</h3>

815 817 

816Las siguientes características están disponibles solo en la CLI o extensión de VS Code:818Las siguientes características están disponibles solo en la CLI o extensión de VS Code, excepto donde se indique:

817 819 

818* **Proveedores de terceros**: Desktop se conecta a la API de Anthropic de forma predeterminada. Las implementaciones empresariales pueden configurar Vertex AI y proveedores de puerta de enlace a través de [configuración administrada](https://support.claude.com/en/articles/12622667-enterprise-configuration). Para Bedrock o Foundry, use la [CLI](/es/quickstart).820* **Proveedores de terceros**: Desktop se conecta a la API de Anthropic de forma predeterminada. Las implementaciones empresariales pueden configurar Vertex AI y proveedores de puerta de enlace a través de [configuración administrada](https://support.claude.com/en/articles/12622667-enterprise-configuration). Para Bedrock o Foundry en la CLI, consulte el [inicio rápido](/es/quickstart). Como excepción a la sección anterior, la [vista previa de investigación de Cowork en 3P](https://claude.com/docs/cowork/3p/overview) ejecuta la pestaña Code en Bedrock, Vertex AI, Foundry o una puerta de enlace LLM autohospedada.

819* **Linux**: la aplicación de escritorio está disponible solo en macOS y Windows. En Linux, use la [CLI](/es/quickstart).821* **Linux**: la aplicación de escritorio está disponible solo en macOS y Windows. En Linux, use la [CLI](/es/quickstart).

820* **Sugerencias de código en línea**: Desktop no proporciona sugerencias de estilo autocompletado. Funciona a través de solicitudes conversacionales y cambios de código explícitos.822* **Sugerencias de código en línea**: Desktop no proporciona sugerencias de estilo autocompletado. Funciona a través de solicitudes conversacionales y cambios de código explícitos.

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


885 887 

886Si los controles deslizantes de MCP server no responden o los servidores no se conectan en Windows, verifique que el servidor esté configurado correctamente en su configuración, reinicie la aplicación, verifique que el proceso del servidor se esté ejecutando en Task Manager y revise los registros del servidor para errores de conexión.888Si los controles deslizantes de MCP server no responden o los servidores no se conectan en Windows, verifique que el servidor esté configurado correctamente en su configuración, reinicie la aplicación, verifique que el proceso del servidor se esté ejecutando en Task Manager y revise los registros del servidor para errores de conexión.

887 889 

888<h3 id="app-won-t-quit">890<h3 id="app-wont-quit">

889 La aplicación no se cierra891 La aplicación no se cierra

890</h3>892</h3>

891 893 


899* **PATH no actualizado después de instalar**: abra una nueva ventana de terminal. Las actualizaciones de PATH solo se aplican a nuevas sesiones de terminal.901* **PATH no actualizado después de instalar**: abra una nueva ventana de terminal. Las actualizaciones de PATH solo se aplican a nuevas sesiones de terminal.

900* **Error de instalación concurrente**: si ve un error sobre otra instalación en progreso pero no la hay, intente ejecutar el instalador como Administrador.902* **Error de instalación concurrente**: si ve un error sobre otra instalación en progreso pero no la hay, intente ejecutar el instalador como Administrador.

901 903 

902<h3 id="branch-doesn-t-exist-yet-when-opening-in-cli">904<h3 id="branch-doesnt-exist-yet-when-opening-in-cli">

903 "Branch doesn't exist yet" al abrir en CLI905 "Branch doesn't exist yet" al abrir en CLI

904</h3>906</h3>

905 907 

906Las sesiones remotas pueden crear ramas que no existen en su máquina local. Haga clic en el nombre de la rama en la barra de herramientas de la sesión para copiarlo, luego obténgalo localmente:908Las sesiones en la nube pueden crear ramas que no existen en su máquina local. Haga clic en el nombre de la rama en la barra de herramientas de la sesión para copiarlo, luego obténgalo localmente:

907 909 

908```bash theme={null}910```bash theme={null}

909git fetch origin <branch-name>911git fetch origin <branch-name>


914 ¿Aún atascado?916 ¿Aún atascado?

915</h3>917</h3>

916 918 

917* Busque o presente un error en [GitHub Issues](https://github.com/anthropics/claude-code/issues)919* Abra Help Get Support en la aplicación de escritorio, o visite el [centro de soporte de Claude](https://support.claude.com/) directamente

918* Visite el [centro de soporte de Claude](https://support.claude.com/)920* Para problemas que también se reproducen en la CLI independiente `claude`, busque o presente un error en [GitHub Issues](https://github.com/anthropics/claude-code/issues)

919 921 

920Al presentar un error, incluya la versión de su aplicación de escritorio, su sistema operativo, el mensaje de error exacto y registros relevantes. En macOS, verifique Console.app. En Windows, verifique Event Viewer → Windows Logs → Application.922Al presentar un problema, incluya la versión de su aplicación de escritorio, su sistema operativo, el mensaje de error exacto y registros relevantes. En macOS, verifique Console.app. En Windows, verifique Event Viewer → Windows Logs → Application.

Details

71 </Step>71 </Step>

72 72 

73 <Step title="Elegir un modelo">73 <Step title="Elegir un modelo">

74 Seleccione un modelo del menú desplegable junto al botón de envío. Consulte [modelos](/es/model-config#available-models) para una comparación de Opus, Sonnet y Haiku. Puede cambiar el modelo más tarde desde el mismo menú desplegable.74 Seleccione un modelo del menú desplegable junto al botón de envío. Consulte [modelos](/es/model-config#available-models) para una comparación de los modelos disponibles. Puede cambiar el modelo más tarde desde el mismo menú desplegable.

75 </Step>75 </Step>

76 76 

77 <Step title="Dígale a Claude qué hacer">77 <Step title="Dígale a Claude qué hacer">


127 ¿Viene de la CLI?127 ¿Viene de la CLI?

128</h2>128</h2>

129 129 

130Desktop ejecuta el mismo motor que la CLI con una interfaz gráfica. Puede ejecutar ambos simultáneamente en el mismo proyecto, y comparten configuración (archivos CLAUDE.md, MCP servers, hooks, skills y configuración). Para una comparación completa de características, equivalentes de banderas y lo que no está disponible en Desktop, consulte [Comparación de CLI](/es/desktop#coming-from-the-cli).130Desktop ejecuta el mismo motor que la CLI con una interfaz gráfica. Puede ejecutar ambos simultáneamente en el mismo proyecto, y comparten configuración (archivos CLAUDE.md, servidores MCP, hooks, skills y configuración). Para una comparación completa de características, equivalentes de banderas y lo que no está disponible en Desktop, consulte [Comparación de CLI](/es/desktop#coming-from-the-cli).

131 131 

132<h2 id="what-s-next">132<h2 id="whats-next">

133 Qué sigue133 Qué sigue

134</h2>134</h2>

135 135 

Details

117</h2>117</h2>

118 118 

119* [Routines](/es/routines): ejecute tareas en infraestructura administrada por Anthropic en una programación, mediante llamada API o en respuesta a eventos de GitHub, incluso cuando su computadora está apagada119* [Routines](/es/routines): ejecute tareas en infraestructura administrada por Anthropic en una programación, mediante llamada API o en respuesta a eventos de GitHub, incluso cuando su computadora está apagada

120* [Run prompts on a schedule](/es/scheduled-tasks): programación con alcance de sesión con `/loop` en la CLI120* [Ejecutar prompts en una programación](/es/scheduled-tasks): programación con alcance de sesión con `/loop` en la CLI

121* [Claude Code GitHub Actions](/es/github-actions): ejecute Claude en una programación en CI en lugar de en su máquina121* [Claude Code GitHub Actions](/es/github-actions): ejecute Claude en una programación en CI en lugar de en su máquina

122* [Use Claude Code Desktop](/es/desktop): la guía completa de la aplicación de escritorio122* [Usar Claude Code Desktop](/es/desktop): la guía completa de la aplicación de escritorio

Details

169 * **Marketplaces**: agregue, elimine o actualice sus mercados agregados169 * **Marketplaces**: agregue, elimine o actualice sus mercados agregados

170 * **Errors**: vea cualquier error de carga de plugins170 * **Errors**: vea cualquier error de carga de plugins

171 171 

172 Vaya a la pestaña **Discover** para ver plugins del mercado que acaba de agregar. {/* min-version: 2.1.154 */}Los plugins marcados como relevantes para su directorio de trabajo actual se fijan en la parte superior con una etiqueta **suggested for this directory**.172 Vaya a la pestaña **Discover** para ver plugins del mercado que acaba de agregar. {/* min-version: 2.1.154 */}Cuando su administrador ha incluido en la lista blanca el mercado a través de la configuración administrada [`pluginSuggestionMarketplaces`](/es/settings#available-settings), los plugins marcados como relevantes para su directorio de trabajo actual se fijan en la parte superior con una etiqueta **suggested for this directory**.

173 </Step>173 </Step>

174 174 

175 <Step title="Instalar un plugin">175 <Step title="Instalar un plugin">


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

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

330 330 

331La vista de detalles muestra los componentes que contribuye el plugin: comandos, skills, agentes, hooks, servidores MCP y servidores LSP. El mismo inventario está disponible desde la línea de comandos con `claude plugin details`.

332 

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

332 334 

333También puede administrar plugins con comandos directos.335También puede administrar plugins con comandos directos.

334 336 

337Enumere los plugins instalados sin abrir el menú:

338 

339```shell theme={null}

340/plugin list

341```

342 

343Pase `--enabled` o `--disabled` para mostrar solo los plugins en ese estado.

344 

335Deshabilite un plugin sin desinstalarlo:345Deshabilite un plugin sin desinstalarlo:

336 346 

337```shell theme={null}347```shell theme={null}


369 379 

370Claude Code recarga todos los plugins activos y muestra conteos para plugins, skills, agentes, hooks, servidores MCP de plugins y servidores LSP de plugins.380Claude Code recarga todos los plugins activos y muestra conteos para plugins, skills, agentes, hooks, servidores MCP de plugins y servidores LSP de plugins.

371 381 

372La recarga tiene un costo de tokens en la siguiente solicitud: los componentes recién cargados se anuncian a sí mismos en el contenido añadido a la conversación, mientras que el historial existente aún se lee desde la caché de prompts. Un plugin que proporciona servidores MCP cuesta más cuando sus herramientas no se difieren por [búsqueda de herramientas MCP](/es/mcp#scale-with-mcp-tool-search): el cambio invalida la caché y la siguiente solicitud vuelve a leer toda la conversación. Consulte [habilitar o deshabilitar un plugin](/es/prompt-caching#enabling-or-disabling-a-plugin) para obtener más detalles.382La recarga tiene un costo de tokens en la siguiente solicitud: los componentes recién cargados se anuncian a sí mismos en el contenido añadido a la conversación, mientras que el historial existente aún se lee desde la caché de prompts. Un plugin que proporciona servidores MCP cuesta más cuando sus herramientas no se difieren por [búsqueda de herramientas MCP](/es/mcp#scale-with-mcp-tool-search): el cambio invalida la caché y la siguiente solicitud vuelve a leer toda la conversación. {/* min-version: 2.1.163 */}En ese caso `/reload-plugins` muestra una advertencia y no aplica la recarga; pase `--force` para aplicarla de todas formas. Consulte [habilitar o deshabilitar un plugin](/es/prompt-caching#enabling-or-disabling-a-plugin) para obtener más detalles.

373 383 

374<h2 id="manage-marketplaces">384<h2 id="manage-marketplaces">

375 Administrar mercados385 Administrar mercados


471 Seguridad481 Seguridad

472</h2>482</h2>

473 483 

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

475 485 

476<h2 id="troubleshooting">486<h2 id="troubleshooting">

477 Troubleshooting487 Troubleshooting


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

511 521 

512<h2 id="next-steps">522<h2 id="next-steps">

513 Next steps523 Próximos pasos

514</h2>524</h2>

515 525 

516* **Build your own plugins**: Consulte [Plugins](/es/plugins) para crear skills, agentes y hooks526* **Cree sus propios plugins**: Consulte [Plugins](/es/plugins) para crear skills, agentes y hooks

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

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

env-vars.md +36 −21

Details

73El archivo que elija controla a quién se aplican las variables:73El archivo que elija controla a quién se aplican las variables:

74 74 

75| Archivo | Se aplica a |75| Archivo | Se aplica a |

76| :---------------------------- | :--------------------------------------------------------------------- |76| :---------------------------- | :----------------------------------------------------------------------------- |

77| `~/.claude/settings.json` | Usted, en cada proyecto |77| `~/.claude/settings.json` | Usted, en cada proyecto |

78| `.claude/settings.json` | Todos los que trabajan en el proyecto, registrado en control de fuente |78| `.claude/settings.json` | Todos los que trabajan en el proyecto, registrado en control de fuente |

79| `.claude/settings.local.json` | Usted, solo en este proyecto, no registrado |79| `.claude/settings.local.json` | Usted, solo en este proyecto (agréguelo a su gitignore si lo crea manualmente) |

80| Configuración administrada | Todos en su organización, implementado por un administrador |80| Configuración administrada | Todos en su organización, implementado por un administrador |

81 81 

82Consulte [Archivos de configuración](/es/settings#settings-files) para saber dónde vive cada archivo y [Precedencia de configuración](/es/settings#settings-precedence) para saber cómo se combinan cuando más de uno establece la misma variable.82Consulte [Archivos de configuración](/es/settings#settings-files) para saber dónde vive cada archivo y [Precedencia de configuración](/es/settings#settings-precedence) para saber cómo se combinan cuando más de uno establece la misma variable.


96</h2>96</h2>

97 97 

98| Variable | Propósito |98| Variable | Propósito |

99| :------------------------------------------------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |99| :------------------------------------------------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

100| `ANTHROPIC_API_KEY` | Clave de API enviada como encabezado `X-Api-Key`. Cuando se establece, esta clave se utiliza en lugar de su suscripción de Claude Pro, Max, Team o Enterprise incluso si ha iniciado sesión. En modo no interactivo (`-p`), la clave siempre se utiliza cuando está presente. En modo interactivo, se le solicita que apruebe la clave una vez antes de que anule su suscripción. Para utilizar su suscripción en su lugar, ejecute `unset ANTHROPIC_API_KEY` |100| `ANTHROPIC_API_KEY` | Clave de API enviada como encabezado `X-Api-Key`. Cuando se establece, esta clave se utiliza en lugar de su suscripción de Claude Pro, Max, Team o Enterprise incluso si ha iniciado sesión. En modo no interactivo (`-p`), la clave siempre se utiliza cuando está presente. En modo interactivo, se le solicita que apruebe la clave una vez antes de que anule su suscripción. Para utilizar su suscripción en su lugar, ejecute `unset ANTHROPIC_API_KEY` |

101| `ANTHROPIC_AUTH_TOKEN` | Valor personalizado para el encabezado `Authorization` (el valor que establezca aquí tendrá el prefijo `Bearer `) |101| `ANTHROPIC_AUTH_TOKEN` | Valor personalizado para el encabezado `Authorization` (el valor que establezca aquí tendrá el prefijo `Bearer `) |

102| `ANTHROPIC_AWS_API_KEY` | Clave de API del espacio de trabajo para [Claude Platform on AWS](/es/claude-platform-on-aws), generada en la Consola de AWS. Se envía como `x-api-key` y tiene precedencia sobre AWS SigV4 |102| `ANTHROPIC_AWS_API_KEY` | Clave de API del espacio de trabajo para [Claude Platform on AWS](/es/claude-platform-on-aws), generada en la Consola de AWS. Se envía como `x-api-key` y tiene precedencia sobre AWS SigV4 |


112| `ANTHROPIC_CUSTOM_MODEL_OPTION_DESCRIPTION` | Descripción de visualización para la entrada de modelo personalizado en el selector `/model`. El valor predeterminado es `Custom model (<model-id>)` cuando no se establece |112| `ANTHROPIC_CUSTOM_MODEL_OPTION_DESCRIPTION` | Descripción de visualización para la entrada de modelo personalizado en el selector `/model`. El valor predeterminado es `Custom model (<model-id>)` cuando no se establece |

113| `ANTHROPIC_CUSTOM_MODEL_OPTION_NAME` | Nombre de visualización para la entrada de modelo personalizado en el selector `/model`. El valor predeterminado es el ID de modelo cuando no se establece |113| `ANTHROPIC_CUSTOM_MODEL_OPTION_NAME` | Nombre de visualización para la entrada de modelo personalizado en el selector `/model`. El valor predeterminado es el ID de modelo cuando no se establece |

114| `ANTHROPIC_CUSTOM_MODEL_OPTION_SUPPORTED_CAPABILITIES` | Consulte [Configuración de modelo](/es/model-config#customize-pinned-model-display-and-capabilities) |114| `ANTHROPIC_CUSTOM_MODEL_OPTION_SUPPORTED_CAPABILITIES` | Consulte [Configuración de modelo](/es/model-config#customize-pinned-model-display-and-capabilities) |

115| `ANTHROPIC_DEFAULT_FABLE_MODEL` | Consulte [Configuración de modelo](/es/model-config#environment-variables) |

116| `ANTHROPIC_DEFAULT_FABLE_MODEL_DESCRIPTION` | Consulte [Configuración de modelo](/es/model-config#customize-pinned-model-display-and-capabilities) |

117| `ANTHROPIC_DEFAULT_FABLE_MODEL_NAME` | Consulte [Configuración de modelo](/es/model-config#customize-pinned-model-display-and-capabilities) |

118| `ANTHROPIC_DEFAULT_FABLE_MODEL_SUPPORTED_CAPABILITIES` | Consulte [Configuración de modelo](/es/model-config#customize-pinned-model-display-and-capabilities) |

115| `ANTHROPIC_DEFAULT_HAIKU_MODEL` | Consulte [Configuración de modelo](/es/model-config#environment-variables) |119| `ANTHROPIC_DEFAULT_HAIKU_MODEL` | Consulte [Configuración de modelo](/es/model-config#environment-variables) |

116| `ANTHROPIC_DEFAULT_HAIKU_MODEL_DESCRIPTION` | Consulte [Configuración de modelo](/es/model-config#customize-pinned-model-display-and-capabilities) |120| `ANTHROPIC_DEFAULT_HAIKU_MODEL_DESCRIPTION` | Consulte [Configuración de modelo](/es/model-config#customize-pinned-model-display-and-capabilities) |

117| `ANTHROPIC_DEFAULT_HAIKU_MODEL_NAME` | Consulte [Configuración de modelo](/es/model-config#customize-pinned-model-display-and-capabilities) |121| `ANTHROPIC_DEFAULT_HAIKU_MODEL_NAME` | Consulte [Configuración de modelo](/es/model-config#customize-pinned-model-display-and-capabilities) |


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

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

135| `ANTHROPIC_WORKSPACE_ID` | ID de espacio de trabajo para [federación de identidad de carga de trabajo](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation). Establezca esto cuando su regla de federación esté limitada a más de un espacio de trabajo para que el intercambio de tokens sepa a qué espacio de trabajo dirigirse |139| `ANTHROPIC_WORKSPACE_ID` | ID de espacio de trabajo para [federación de identidad de carga de trabajo](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation). Establezca esto cuando su regla de federación esté limitada a más de un espacio de trabajo para que el intercambio de tokens sepa a qué espacio de trabajo dirigirse |

140| `API_FORCE_IDLE_TIMEOUT` | {/* min-version: 2.1.169 */}Anule el tiempo de espera de inactividad de 5 minutos que aborta una respuesta de modelo transmitida cuando no llegan bytes. Establezca en `0` para deshabilitar el tiempo de espera, por ejemplo cuando una [puerta de enlace](/es/llm-gateway) lenta o un modelo local se pausa más de 5 minutos entre fragmentos. Establezca en `1` para mantener el tiempo de espera en cada proveedor. Cuando no se establece, el tiempo de espera está inactivo en conexiones directas de API de Anthropic y [Claude Platform on AWS](/es/claude-platform-on-aws), donde se ejecuta el perro guardián de transmisión a nivel de byte propio de Claude Code, y activo en todos los demás proveedores, incluidos [Vertex AI](/es/google-vertex-ai), [Foundry](/es/microsoft-foundry), [Mantle](/es/amazon-bedrock#use-the-mantle-endpoint), [Bedrock](/es/amazon-bedrock) y conexiones de puerta de enlace, por lo que una transmisión estancada se aborta en lugar de colgarse. A partir de v2.1.169 |

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

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

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

139| `BASH_MAX_OUTPUT_LENGTH` | Número máximo de caracteres en salidas bash antes de que la salida completa se guarde en un archivo y Claude reciba la ruta más una vista previa corta. Consulte [Comportamiento de la herramienta Bash](/es/tools-reference#bash-tool-behavior) |144| `BASH_MAX_OUTPUT_LENGTH` | Número máximo de caracteres en salidas bash antes de que la salida completa se guarde en un archivo y Claude reciba la ruta más una vista previa corta. Consulte [Comportamiento de la herramienta Bash](/es/tools-reference#bash-tool-behavior) |

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

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

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

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

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

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

146| `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` | Establezca el porcentaje de capacidad de contexto (1-100) en el que se activa la compactación automática. De forma predeterminada, la compactación automática se activa aproximadamente al 95% de capacidad. Utilice valores más bajos como `50` para compactar antes. Los valores por encima del umbral predeterminado no tienen efecto. Se aplica tanto a conversaciones principales como a subagentes. Este porcentaje se alinea con el campo `context_window.used_percentage` disponible en [línea de estado](/es/statusline) |151| `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` | Establezca el porcentaje (1-100) de la ventana de compactación automática en el que se activa la compactación automática. Utilice valores más bajos como `50` para compactar antes. Esta variable solo causa compactación anterior cuando Claude Code compacta de forma proactiva: cuando se establece `CLAUDE_CODE_AUTO_COMPACT_WINDOW`, en [sesiones en la nube](/es/claude-code-on-the-web), en sesiones de [Control Remoto](/es/remote-control) y en Sonnet 4.6 y Opus 4.6 sin [contexto extendido](/es/model-config#extended-context), que compactan en el límite de 200K de forma predeterminada. En otros casos, como una sesión local en Opus 4.8 o cualquier modelo con contexto extendido, la compactación automática se activa cuando la conversación alcanza el límite de contexto del modelo. La anulación solo puede bajar el umbral, por lo que los valores por encima del predeterminado no tienen efecto. Se aplica tanto a conversaciones principales como a subagentes |

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

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

149| `CLAUDE_CODE_ACCESSIBILITY` | Establezca en `1` para mantener visible el cursor del terminal nativo y deshabilitar el indicador de cursor de texto invertido. Permite que ampliadores de pantalla como macOS Zoom rastreen la posición del cursor |154| `CLAUDE_CODE_ACCESSIBILITY` | Establezca en `1` para mantener visible el cursor del terminal nativo y deshabilitar el indicador de cursor de texto invertido. Permite que ampliadores de pantalla como macOS Zoom rastreen la posición del cursor |

150| `CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD` | Establezca en `1` para cargar archivos de memoria desde directorios especificados con `--add-dir`. Carga `CLAUDE.md`, `.claude/CLAUDE.md`, `.claude/rules/*.md` y `CLAUDE.local.md`. De forma predeterminada, los directorios adicionales no cargan archivos de memoria |155| `CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD` | Establezca en `1` para cargar archivos de memoria desde directorios especificados con `--add-dir`. Carga `CLAUDE.md`, `.claude/CLAUDE.md`, `.claude/rules/*.md` y `CLAUDE.local.md`. De forma predeterminada, los directorios adicionales no cargan archivos de memoria |

151| `CLAUDE_CODE_ALT_SCREEN_FULL_REPAINT` | Establezca en `1` para repintar la pantalla completa en cada fotograma en [renderizado a pantalla completa](/es/fullscreen) en lugar de enviar actualizaciones incrementales. Utilice esto si el modo pantalla completa muestra fragmentos de texto obsoletos o mal colocados. Claude Code habilita esto automáticamente para sesiones en segundo plano y [vista de agentes](/es/agent-view) en Windows |156| `CLAUDE_CODE_ALT_SCREEN_FULL_REPAINT` | Establezca en `1` para repintar la pantalla completa en cada fotograma en [renderizado a pantalla completa](/es/fullscreen) en lugar de enviar actualizaciones incrementales. Utilice esto si el modo pantalla completa muestra fragmentos de texto obsoletos o mal colocados. Claude Code habilita esto automáticamente para sesiones en segundo plano y [vista de agentes](/es/agent-view) en Windows |

157| `CLAUDE_CODE_ALWAYS_ENABLE_EFFORT` | Establezca en `1` para enviar el parámetro [esfuerzo](/es/model-config#adjust-effort-level) con cada solicitud, incluso cuando Claude Code no reconoce el ID de modelo como capaz de esfuerzo. Utilice esto cuando enrute a través de una [puerta de enlace LLM](/es/llm-gateway) o proveedor de terceros que sirve modelos bajo identificadores personalizados. Los modelos que rechazan el parámetro de esfuerzo en la API, incluidos los modelos Claude 3, Sonnet 4.0 y 4.5, Opus 4.0 y 4.1 y Haiku 4.5, aún se excluyen para que las solicitudes no fallen |

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

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

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

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

156| `CLAUDE_CODE_CERT_STORE` | Lista separada por comas de fuentes de certificados CA para conexiones TLS. `bundled` es el conjunto de CA de Mozilla incluido con Claude Code. `system` es el almacén de confianza del sistema operativo. El valor predeterminado es `bundled,system` |162| `CLAUDE_CODE_CERT_STORE` | Lista separada por comas de fuentes de certificados CA para conexiones TLS. `bundled` es el conjunto de CA de Mozilla incluido con Claude Code. `system` es el almacén de confianza del sistema operativo. El valor predeterminado es `bundled,system` |

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

157| `CLAUDE_CODE_CLIENT_CERT` | Ruta al archivo de certificado de cliente para autenticación mTLS |164| `CLAUDE_CODE_CLIENT_CERT` | Ruta al archivo de certificado de cliente para autenticación mTLS |

158| `CLAUDE_CODE_CLIENT_KEY` | Ruta al archivo de clave privada de cliente para autenticación mTLS |165| `CLAUDE_CODE_CLIENT_KEY` | Ruta al archivo de clave privada de cliente para autenticación mTLS |

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

160| `CLAUDE_CODE_DEBUG_LOGS_DIR` | Anule la ruta del archivo de registro de depuración. A pesar del nombre, esta es una ruta de archivo, no un directorio. Requiere que el modo de depuración se habilite por separado a través de `--debug`, `/debug` o la variable de entorno `DEBUG`: establecer esta variable sola no habilita el registro. La bandera [`--debug-file`](/es/cli-reference#cli-flags) hace ambas cosas a la vez. El valor predeterminado es `~/.claude/debug/<session-id>.txt` |167| `CLAUDE_CODE_DEBUG_LOGS_DIR` | Anule la ruta del archivo de registro de depuración. A pesar del nombre, esta es una ruta de archivo, no un directorio. Requiere que el modo de depuración se habilite por separado a través de `--debug`, `/debug` o la variable de entorno `DEBUG`: establecer esta variable sola no habilita el registro. La bandera [`--debug-file`](/es/cli-reference#cli-flags) hace ambas cosas a la vez. El valor predeterminado es `~/.claude/debug/<session-id>.txt` |

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

162| `CLAUDE_CODE_DISABLE_1M_CONTEXT` | Establezca en `1` para deshabilitar el soporte de [ventana de contexto de 1M](/es/model-config#extended-context). Cuando se establece, las variantes de modelo de 1M no están disponibles en el selector de modelo. Útil para entornos empresariales con requisitos de cumplimiento |169| `CLAUDE_CODE_DISABLE_1M_CONTEXT` | Establezca en `1` para deshabilitar el soporte de [ventana de contexto de 1M](/es/model-config#extended-context). Cuando se establece, las variantes de modelo de 1M no están disponibles en el selector de modelo. Útil para entornos empresariales con requisitos de cumplimiento |

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

171| `CLAUDE_CODE_DISABLE_ADVISOR_TOOL` | {/* min-version: 2.1.98 */}Establezca en `1` para deshabilitar la [herramienta asesor](/es/advisor). El comando `/advisor` y la bandera `--advisor` no estarán disponibles y cualquier `advisorModel` configurado se ignora. Requiere Claude Code v2.1.98 o posterior |

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

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

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

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

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

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

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

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

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


180| `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL` | Establezca en `1` para omitir la adición automática del marketplace oficial de plugins en la primera ejecución |189| `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL` | Establezca en `1` para omitir la adición automática del marketplace oficial de plugins en la primera ejecución |

181| `CLAUDE_CODE_DISABLE_POLICY_SKILLS` | Establezca en `1` para omitir la carga de skills desde el directorio de skills administradas en todo el sistema. Útil para sesiones de contenedor o CI que no deben cargar skills aprovisionadas por operadores |190| `CLAUDE_CODE_DISABLE_POLICY_SKILLS` | Establezca en `1` para omitir la carga de skills desde el directorio de skills administradas en todo el sistema. Útil para sesiones de contenedor o CI que no deben cargar skills aprovisionadas por operadores |

182| `CLAUDE_CODE_DISABLE_TERMINAL_TITLE` | Establezca en `1` para deshabilitar las actualizaciones automáticas del título del terminal basadas en el contexto de la conversación. En sesiones de Agent SDK y `claude -p`, esto también omite la solicitud de Haiku en segundo plano que genera el título de la sesión |191| `CLAUDE_CODE_DISABLE_TERMINAL_TITLE` | Establezca en `1` para deshabilitar las actualizaciones automáticas del título del terminal basadas en el contexto de la conversación. En sesiones de Agent SDK y `claude -p`, esto también omite la solicitud de Haiku en segundo plano que genera el título de la sesión |

183| `CLAUDE_CODE_DISABLE_THINKING` | Establezca en `1` para forzar la deshabilitación de [pensamiento extendido](https://platform.claude.com/docs/en/build-with-claude/extended-thinking) independientemente del soporte del modelo u otras configuraciones. Más directo que `MAX_THINKING_TOKENS=0` |192| `CLAUDE_CODE_DISABLE_THINKING` | Establezca en `1` para omitir el parámetro `thinking` de solicitudes de API completamente. Esta es una opción de compatibilidad para proxies y puertas de enlace que rechazan el parámetro. El comportamiento de la variable es sin cambios desde versiones anteriores; en modelos que piensan de forma predeterminada, omitir el parámetro significa que el modelo aún puede pensar. Para deshabilitar explícitamente [pensamiento extendido](https://platform.claude.com/docs/en/build-with-claude/extended-thinking) en la API de Anthropic, utilice `MAX_THINKING_TOKENS=0` en su lugar, que también es inefectivo en Fable 5 ya que no puede tener el pensamiento desactivado. En [proveedores de terceros](/es/third-party-integrations), `0` asimismo omite el parámetro, por lo que las dos variables se comportan igual allí |

184| `CLAUDE_CODE_DISABLE_VIRTUAL_SCROLL` | Establezca en `1` para deshabilitar el desplazamiento virtual en [renderizado a pantalla completa](/es/fullscreen) y renderizar cada mensaje en la transcripción. Utilice esto si el desplazamiento en modo pantalla completa muestra regiones en blanco donde deberían aparecer mensajes |193| `CLAUDE_CODE_DISABLE_VIRTUAL_SCROLL` | Establezca en `1` para deshabilitar el desplazamiento virtual en [renderizado a pantalla completa](/es/fullscreen) y renderizar cada mensaje en la transcripción. Utilice esto si el desplazamiento en modo pantalla completa muestra regiones en blanco donde deberían aparecer mensajes |

185| `CLAUDE_CODE_DISABLE_WORKFLOWS` | Establezca en `1` para deshabilitar [flujos de trabajo](/es/workflows#turn-workflows-off). Equivalente a la configuración [`disableWorkflows`](/es/settings#available-settings) |194| `CLAUDE_CODE_DISABLE_WORKFLOWS` | Establezca en `1` para deshabilitar [flujos de trabajo](/es/workflows#turn-workflows-off). Equivalente a la configuración [`disableWorkflows`](/es/settings#available-settings) |

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


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

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

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

210| `CLAUDE_CODE_FORCE_SESSION_PERSISTENCE` | {/* min-version: 2.1.172 */}Establezca en `1` para forzar la persistencia de transcripción, historial de indicadores y registro de `claude agents` incluso cuando este `claude` se lanzó desde dentro de otra sesión de Claude Code. Utilice cuando un valor `CLAUDE_CODE_CHILD_SESSION` heredado, por ejemplo de un servidor tmux iniciado primero por la herramienta Bash de Claude Code, causa que una sesión genuina de nivel superior se clasifique erróneamente como anidada. También se honra en v2.1.169 y anterior; no tiene efecto en v2.1.170 y v2.1.171, donde se eliminó la detección de sesión anidada que anulaba |

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

202| `CLAUDE_CODE_FORK_SUBAGENT` | Establezca en `1` para hacer que [subagentes bifurcados](/es/sub-agents#fork-the-current-conversation) sean el predeterminado del modelo: Claude genera una bifurcación, un subagente que hereda el contexto de conversación completo en lugar de comenzar desde cero, siempre que de otra manera usaría el subagente de propósito general, y todos los despliegues de subagentes se ejecutan en segundo plano. El comando explícito [`/fork`](/es/commands) funciona sin esta variable. Funciona en modo interactivo y a través del SDK o `claude -p` |212| `CLAUDE_CODE_FORK_SUBAGENT` | Establezca en `1` para permitir que Claude genere [subagentes bifurcados](/es/sub-agents#fork-the-current-conversation), o `0` para deshabilitarlos, anulando cualquier implementación del lado del servidor. Cuando se habilita, Claude puede solicitar el tipo de subagente `fork` para generar una bifurcación, un subagente que hereda el contexto de conversación completo en lugar de comenzar desde cero. Los despliegues sin un tipo de subagente siguen usando el subagente de propósito general, y todos los despliegues de subagentes se ejecutan en segundo plano. El comando explícito [`/fork`](/es/commands) funciona sin esta variable. Funciona en modo interactivo y a través del SDK o `claude -p` |

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

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

205| `CLAUDE_CODE_GLOB_NO_IGNORE` | Establezca en `false` para hacer que la [herramienta Glob](/es/tools-reference#glob-tool-behavior) respete patrones `.gitignore`. De forma predeterminada, Glob devuelve todos los archivos coincidentes, incluidos los ignorados por git. No afecta a la autocompletación de archivos `@`, que tiene su propia configuración [`respectGitignore`](/es/settings#available-settings) |215| `CLAUDE_CODE_GLOB_NO_IGNORE` | Establezca en `false` para hacer que la [herramienta Glob](/es/tools-reference#glob-tool-behavior) respete patrones `.gitignore`. De forma predeterminada, Glob devuelve todos los archivos coincidentes, incluidos los ignorados por git. No afecta a la autocompletación de archivos `@`, que tiene su propia configuración [`respectGitignore`](/es/settings#available-settings) |


231| `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE` | Establezca en `1` para mantener el caché de marketplace existente cuando un `git pull` falla en lugar de borrar y volver a clonar. Útil en entornos sin conexión o aislados donde volver a clonar fallaría de la misma manera. Consulte [Las actualizaciones de Marketplace fallan en entornos sin conexión](/es/plugin-marketplaces#marketplace-updates-fail-in-offline-environments) |241| `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE` | Establezca en `1` para mantener el caché de marketplace existente cuando un `git pull` falla en lugar de borrar y volver a clonar. Útil en entornos sin conexión o aislados donde volver a clonar fallaría de la misma manera. Consulte [Las actualizaciones de Marketplace fallan en entornos sin conexión](/es/plugin-marketplaces#marketplace-updates-fail-in-offline-environments) |

232| `CLAUDE_CODE_PLUGIN_PREFER_HTTPS` | Establezca en `1` para clonar fuentes de plugins de GitHub `owner/repo` sobre HTTPS en lugar de SSH. Se aplica a la instalación de plugins y actualización, y a `/plugin marketplace add` y `update`. Útil en ejecutores de CI, contenedores o cualquier entorno sin una clave SSH configurada para `github.com` |242| `CLAUDE_CODE_PLUGIN_PREFER_HTTPS` | Establezca en `1` para clonar fuentes de plugins de GitHub `owner/repo` sobre HTTPS en lugar de SSH. Se aplica a la instalación de plugins y actualización, y a `/plugin marketplace add` y `update`. Útil en ejecutores de CI, contenedores o cualquier entorno sin una clave SSH configurada para `github.com` |

233| `CLAUDE_CODE_PLUGIN_SEED_DIR` | Ruta a uno o más directorios de semilla de plugins de solo lectura, separados por `:` en Unix o `;` en Windows. Utilice esto para agrupar un directorio de plugins previamente poblado en una imagen de contenedor. Claude Code registra mercados desde estos directorios al inicio y utiliza plugins almacenados en caché previamente sin volver a clonar. Consulte [Pre-popular plugins para contenedores](/es/plugin-marketplaces#pre-populate-plugins-for-containers) |243| `CLAUDE_CODE_PLUGIN_SEED_DIR` | Ruta a uno o más directorios de semilla de plugins de solo lectura, separados por `:` en Unix o `;` en Windows. Utilice esto para agrupar un directorio de plugins previamente poblado en una imagen de contenedor. Claude Code registra mercados desde estos directorios al inicio y utiliza plugins almacenados en caché previamente sin volver a clonar. Consulte [Pre-popular plugins para contenedores](/es/plugin-marketplaces#pre-populate-plugins-for-containers) |

234| `CLAUDE_CODE_POWERSHELL_RESPECT_EXECUTION_POLICY` | Establezca en `1` para dejar de pasar `-ExecutionPolicy Bypass` a Claude Code cuando genera PowerShell para llamadas de herramientas, hooks y comandos de línea de estado, y respete la política de ejecución efectiva de la máquina en su lugar. De forma predeterminada, Claude Code omite la política de ejecución en el ámbito del proceso para que scripts `.ps1` e importaciones de módulos funcionen en instalaciones de Windows predeterminadas restringidas. El bypass de ámbito de proceso nunca anula la Política de Grupo `MachinePolicy` o `UserPolicy` independientemente de esta configuración |244| `CLAUDE_CODE_POWERSHELL_RESPECT_EXECUTION_POLICY` | Establezca en `1` para dejar de pasar `-ExecutionPolicy Bypass` cuando Claude Code genera PowerShell para llamadas de herramientas, hooks y comandos de línea de estado, y respete la política de ejecución efectiva de la máquina en su lugar. De forma predeterminada, Claude Code omite la política de ejecución en el ámbito del proceso para que scripts `.ps1` e importaciones de módulos funcionen en instalaciones de Windows predeterminadas restringidas. El bypass de ámbito de proceso nunca anula la Política de Grupo `MachinePolicy` o `UserPolicy` independientemente de esta configuración |

235| `CLAUDE_CODE_PROPAGATE_TRACEPARENT` | {/* min-version: 2.1.152 */}Establezca en `1` para propagar el contexto de traza W3C cuando `ANTHROPIC_BASE_URL` apunta a un proxy personalizado. La propagación cubre el encabezado `traceparent` en solicitudes de modelo y MCP HTTP y la variable de entorno `TRACEPARENT` para subprocesos Bash, PowerShell y hook. De forma predeterminada, la propagación se habilita solo cuando se conecta directamente a la API de Anthropic. Agregado en v2.1.152. Consulte [Trazas (beta)](/es/monitoring-usage#traces-beta) |245| `CLAUDE_CODE_PROPAGATE_TRACEPARENT` | {/* min-version: 2.1.152 */}Establezca en `1` para propagar el contexto de traza W3C cuando `ANTHROPIC_BASE_URL` apunta a un proxy personalizado. La propagación cubre el encabezado `traceparent` en solicitudes de modelo y MCP HTTP y la variable de entorno `TRACEPARENT` para subprocesos Bash, PowerShell y hook. De forma predeterminada, la propagación se habilita solo cuando se conecta directamente a la API de Anthropic. Agregado en v2.1.152. Consulte [Trazas (beta)](/es/monitoring-usage#traces-beta) |

236| `CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST` | Se establece por plataformas host que incrustan Claude Code y administran el enrutamiento del proveedor de modelo en su nombre. Cuando se establece, la selección de proveedor, endpoint y variables de autenticación como `CLAUDE_CODE_USE_BEDROCK`, `ANTHROPIC_BASE_URL` y `ANTHROPIC_API_KEY` en archivos de configuración se ignoran para que la configuración del usuario no pueda anular el enrutamiento del host. La opción de exclusión automática de telemetría para Bedrock, Vertex y Foundry también se omite, por lo que la telemetría sigue la opción de exclusión estándar `DISABLE_TELEMETRY`. Consulte [Comportamientos predeterminados por proveedor de API](/es/data-usage#default-behaviors-by-api-provider) |246| `CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST` | Se establece por plataformas host que incrustan Claude Code y administran el enrutamiento del proveedor de modelo en su nombre. Cuando se establece, la selección de proveedor, endpoint y variables de autenticación como `CLAUDE_CODE_USE_BEDROCK`, `ANTHROPIC_BASE_URL` y `ANTHROPIC_API_KEY` en archivos de configuración se ignoran para que la configuración del usuario no pueda anular el enrutamiento del host. La opción de exclusión automática de telemetría para Bedrock, Vertex y Foundry también se omite, por lo que la telemetría sigue la opción de exclusión estándar `DISABLE_TELEMETRY`. Consulte [Comportamientos predeterminados por proveedor de API](/es/data-usage#default-behaviors-by-api-provider) |

237| `CLAUDE_CODE_PROXY_RESOLVES_HOSTS` | Establezca en `1` para permitir que el proxy realice la resolución de DNS en lugar de la persona que llama. Opción de inclusión para entornos donde el proxy debe manejar la resolución de nombres de host |247| `CLAUDE_CODE_PROXY_RESOLVES_HOSTS` | Establezca en `1` para permitir que el proxy realice la resolución de DNS en lugar de la persona que llama. Opción de inclusión para entornos donde el proxy debe manejar la resolución de nombres de host |


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

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

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

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

242| `CLAUDE_CODE_SCRIPT_CAPS` | Objeto JSON que limita cuántas veces se pueden invocar scripts específicos por sesión cuando se establece `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB`. Las claves son subcadenas coincidentes contra el texto del comando; los valores son límites de llamadas enteros. Por ejemplo, `{"deploy.sh": 2}` permite que `deploy.sh` se llame como máximo dos veces. La coincidencia se basa en subcadenas, por lo que trucos de expansión de shell como `./scripts/deploy.sh $(evil)` siguen contando contra el límite. El fan-out en tiempo de ejecución a través de `xargs` o `find -exec` no se detecta; este es un control de defensa en profundidad |253| `CLAUDE_CODE_SCRIPT_CAPS` | Objeto JSON que limita cuántas veces se pueden invocar scripts específicos por sesión cuando se establece `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB`. Las claves son subcadenas coincidentes contra el texto del comando; los valores son límites de llamadas enteros. Por ejemplo, `{"deploy.sh": 2}` permite que `deploy.sh` se llame como máximo dos veces. La coincidencia se basa en subcadenas, por lo que trucos de expansión de shell como `./scripts/deploy.sh $(evil)` siguen contando contra el límite. El fan-out en tiempo de ejecución a través de `xargs` o `find -exec` no se detecta; este es un control de defensa en profundidad |

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

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

245| `CLAUDE_CODE_SESSION_ID` | Se establece automáticamente en el ID de sesión actual en subprocesos de herramientas Bash y PowerShell, subprocesos de comandos [hook](/es/hooks) y subprocesos de [servidor MCP](/es/mcp) stdio. Coincide con el campo `session_id` en la entrada JSON del hook y se actualiza en `/clear`. Utilice para correlacionar scripts y herramientas externas con la sesión de Claude Code que las lanzó |256| `CLAUDE_CODE_SESSION_ID` | Se establece automáticamente en el ID de sesión actual en subprocesos de herramientas Bash y PowerShell, subprocesos de comandos [hook](/es/hooks) y subprocesos de [servidor MCP](/es/mcp) stdio. Para Bash, PowerShell y hooks, esto coincide con el campo `session_id` en la entrada JSON del hook y se actualiza en `/clear`. Un subproceso de servidor MCP retiene el ID con el que se generó. En `--resume <session-id>` recibe el ID reanudado, coincidiendo con hooks y Bash. En `--continue` o `--resume` sin un ID explícito puede recibir el ID de inicio inicial en su lugar. Utilice para correlacionar scripts y herramientas externas con la sesión de Claude Code que las lanzó |

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

247| `CLAUDE_CODE_SHELL_PREFIX` | Prefijo de comando que envuelve comandos shell que Claude Code genera: llamadas de herramienta Bash, comandos [hook](/es/hooks) y comandos de inicio de [servidor MCP](/es/mcp) stdio. Útil para registro o auditoría. Ejemplo: establecer `/path/to/logger.sh` ejecuta cada comando como `/path/to/logger.sh <command>` |258| `CLAUDE_CODE_SHELL_PREFIX` | Prefijo de comando que envuelve comandos shell que Claude Code genera: llamadas de herramienta Bash, comandos [hook](/es/hooks), comandos de [línea de estado](/es/statusline) y comandos de inicio de [servidor MCP](/es/mcp) stdio. Los hooks de PowerShell y hooks de forma exec se ejecutan sin el prefijo. Útil para registro o auditoría. Establecer una ruta de ejecutable desnuda como `/path/to/logger.sh` ejecuta cada comando como `/path/to/logger.sh '<command>'`. El contenedor recibe la línea de comando como un argumento de shell entrecomillado único en `$1`, por lo que el contenedor debe re-evaluar `$1` con un shell, por ejemplo `exec bash -c "$1"`. Tratar `$1` como una ruta de ejecutable desnuda rompe servidores MCP stdio que pasan argumentos como `npx -y <package>`. Para llamadas de herramienta Bash, `$1` contiene la invocación de shell completa que Claude Code ensambla, incluida la configuración del entorno, no solo el comando que Claude ejecutó |

248| `CLAUDE_CODE_SIMPLE` | Establezca en `1` para ejecutar con un indicador del sistema mínimo y solo las herramientas Bash, lectura de archivo y edición de archivo. Las herramientas MCP de `--mcp-config` siguen estando disponibles. Deshabilita el descubrimiento automático de hooks, skills, plugins, servidores MCP, memoria automática y CLAUDE.md. OAuth tokens y credenciales de llavero no se leen, por lo que la autenticación de Anthropic debe provenir de `ANTHROPIC_API_KEY` o un `apiKeyHelper` en `--settings`. Equivalente a pasar [`--bare`](/es/headless#start-faster-with-bare-mode) |259| `CLAUDE_CODE_SIMPLE` | Establezca en `1` para ejecutar con un indicador del sistema mínimo y solo las herramientas Bash, lectura de archivo y edición de archivo. Las herramientas MCP de `--mcp-config` siguen estando disponibles. Deshabilita el descubrimiento automático de hooks, skills, plugins, servidores MCP, memoria automática y CLAUDE.md. OAuth tokens y credenciales de llavero no se leen, por lo que la autenticación de Anthropic debe provenir de `ANTHROPIC_API_KEY` o un `apiKeyHelper` en `--settings`. Equivalente a pasar [`--bare`](/es/headless#start-faster-with-bare-mode) |

249| `CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT` | Establezca en `1` para utilizar un indicador del sistema más corto y descripciones de herramientas abreviadas en cualquier modelo. Establezca en `0`, `false`, `no` u `off` para optar por no participar incluso en modelos donde el experimento o la configuración del servidor lo habilitaría de otra manera. El conjunto completo de herramientas, hooks, servidores MCP y descubrimiento de CLAUDE.md permanecen habilitados |260| `CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT` | Establezca en `1` para utilizar un indicador del sistema más corto y descripciones de herramientas abreviadas en cualquier modelo. Establezca en `0`, `false`, `no` u `off` para optar por no participar incluso en modelos donde el experimento o la configuración del servidor lo habilitaría de otra manera. El conjunto completo de herramientas, hooks, servidores MCP y descubrimiento de CLAUDE.md permanecen habilitados |

250| `CLAUDE_CODE_SKIP_ANTHROPIC_AWS_AUTH` | Omita la autenticación del lado del cliente para [Claude Platform on AWS](/es/claude-platform-on-aws), para puertas de enlace que firman solicitudes por sí mismas |261| `CLAUDE_CODE_SKIP_ANTHROPIC_AWS_AUTH` | Omita la autenticación del lado del cliente para [Claude Platform on AWS](/es/claude-platform-on-aws), para puertas de enlace que firman solicitudes por sí mismas |


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

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

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

261| `CLAUDE_CODE_SYNC_SKILLS` | Establezca en `1` para descargar sus skills habilitadas de claude.ai en `~/.claude/skills/` antes de la primera consulta y resincronizar cada 10 minutos. Se aplica solo en modo no interactivo con la bandera `-p`. Se establece automáticamente en sesiones de [Claude Code en la web](/es/claude-code-on-the-web). Requiere autenticación de claude.ai |272| `CLAUDE_CODE_SYNC_SKILLS` | Establezca en `1` para descargar sus skills habilitadas de claude.ai en `~/.claude/skills/` antes de la primera consulta y resincronizar cada 10 minutos. Se aplica solo en modo no interactivo con la bandera `-p`. Requiere autenticación de claude.ai. Las sesiones de [Claude Code en la web](/es/claude-code-on-the-web) reciben sus skills habilitadas de claude.ai automáticamente; no necesita establecer esto allí |

273| `CLAUDE_CODE_SYNC_SKILLS_INSTALL_TIMEOUT_MS` | Tiempo de espera en milisegundos para una resincronización de skills a mitad de sesión cuando se establece `CLAUDE_CODE_SYNC_SKILLS` (predeterminado: 30000). Limita la descarga activada cuando el host solicita una recarga de skill durante la sesión. Cuando se excede, la resincronización se detiene y las descargas de skills restantes continúan en segundo plano |

262| `CLAUDE_CODE_SYNC_SKILLS_WAIT_TIMEOUT_MS` | Tiempo de espera en milisegundos para que la primera consulta espere en la sincronización inicial de skills cuando se establece `CLAUDE_CODE_SYNC_SKILLS` (predeterminado: 5000). Cuando se excede, la consulta continúa y las descargas de skills restantes continúan en segundo plano |274| `CLAUDE_CODE_SYNC_SKILLS_WAIT_TIMEOUT_MS` | Tiempo de espera en milisegundos para que la primera consulta espere en la sincronización inicial de skills cuando se establece `CLAUDE_CODE_SYNC_SKILLS` (predeterminado: 5000). Cuando se excede, la consulta continúa y las descargas de skills restantes continúan en segundo plano |

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

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

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

266| `CLAUDE_CODE_TMPDIR` | Anule el directorio temporal utilizado para archivos temporales internos. Claude Code añade `/claude-{uid}/` en Unix o `/claude/` en Windows a esta ruta. Predeterminado: `/tmp` en macOS, `os.tmpdir()` en Linux y Windows. {/* min-version: 2.1.161 */}A partir de v2.1.161, en macOS y Linux, los subprocesos Bash reciben un `$TMPDIR` de respaldo corto bajo el predeterminado del sistema cuando su anulación es una ruta larga, ya que algunas herramientas fallan cuando las rutas temporales se vuelven demasiado largas. Los archivos temporales propios de Claude Code siempre utilizan su anulación |278| `CLAUDE_CODE_TMPDIR` | Anule el directorio temporal utilizado para archivos temporales internos. Claude Code añade `/claude-{uid}/` en Unix o `/claude/` en Windows a esta ruta. Predeterminado: `/tmp` en macOS, `os.tmpdir()` en Linux y Windows. {/* min-version: 2.1.161 */}A partir de v2.1.161, en macOS y Linux, los subprocesos Bash [sandboxed](/es/sandboxing) reciben un `$TMPDIR` de respaldo corto bajo el predeterminado del sistema cuando su anulación es una ruta larga, ya que algunas herramientas fallan cuando las rutas temporales se vuelven demasiado largas. Los comandos Bash no sandboxed heredan su `$TMPDIR` de shell sin cambios. Los archivos temporales propios de Claude Code siempre utilizan su anulación |

267| `CLAUDE_CODE_TMUX_TRUECOLOR` | Establezca en `1` para permitir salida de truecolor de 24 bits dentro de tmux. De forma predeterminada, Claude Code se limita a 256 colores cuando se establece `$TMUX` porque tmux no pasa a través de secuencias de escape de truecolor a menos que se configure. Establezca esto después de agregar `set -ga terminal-overrides ',*:Tc'` a su `~/.tmux.conf`. Consulte [Configuración de terminal](/es/terminal-config) para otras configuraciones de tmux |279| `CLAUDE_CODE_TMUX_TRUECOLOR` | Establezca en `1` para permitir salida de truecolor de 24 bits dentro de tmux. De forma predeterminada, Claude Code se limita a 256 colores cuando se establece `$TMUX` porque tmux no pasa a través de secuencias de escape de truecolor a menos que se configure. Establezca esto después de agregar `set -ga terminal-overrides ',*:Tc'` a su `~/.tmux.conf`. Consulte [Configuración de terminal](/es/terminal-config) para otras configuraciones de tmux |

268| `CLAUDE_CODE_USE_ANTHROPIC_AWS` | Use [Claude Platform on AWS](/es/claude-platform-on-aws) |280| `CLAUDE_CODE_USE_ANTHROPIC_AWS` | Use [Claude Platform on AWS](/es/claude-platform-on-aws) |

269| `CLAUDE_CODE_USE_BEDROCK` | Use [Bedrock](/es/amazon-bedrock) |281| `CLAUDE_CODE_USE_BEDROCK` | Use [Bedrock](/es/amazon-bedrock) |


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

274| `CLAUDE_CODE_USE_VERTEX` | Use [Vertex](/es/google-vertex-ai) |286| `CLAUDE_CODE_USE_VERTEX` | Use [Vertex](/es/google-vertex-ai) |

275| `CLAUDE_CONFIG_DIR` | Anule el directorio de configuración (predeterminado: `~/.claude`). Todos los ajustes, credenciales, historial de sesiones y plugins se almacenan bajo esta ruta. Útil para ejecutar múltiples cuentas lado a lado: por ejemplo, `alias claude-work='CLAUDE_CONFIG_DIR=~/.claude-work claude'` |287| `CLAUDE_CONFIG_DIR` | Anule el directorio de configuración (predeterminado: `~/.claude`). Todos los ajustes, credenciales, historial de sesiones y plugins se almacenan bajo esta ruta. Útil para ejecutar múltiples cuentas lado a lado: por ejemplo, `alias claude-work='CLAUDE_CONFIG_DIR=~/.claude-work claude'` |

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

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

278| `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK` | Establezca en `1` para habilitar el perro guardián de inactividad de transmisión a nivel de byte en respuestas `vnd.amazon.eventstream` de Amazon Bedrock. Desactivado de forma predeterminada. Configure el tiempo de espera con `CLAUDE_STREAM_IDLE_TIMEOUT_MS` |290| `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK` | Establezca en `1` para habilitar el perro guardián de inactividad de transmisión a nivel de byte en respuestas `vnd.amazon.eventstream` de Amazon Bedrock. Desactivado de forma predeterminada. Configure el tiempo de espera con `CLAUDE_STREAM_IDLE_TIMEOUT_MS` |

279| `CLAUDE_ENABLE_STREAM_WATCHDOG` | Establezca en `1` para habilitar el perro guardián de inactividad de transmisión a nivel de evento. Desactivado de forma predeterminada. Se aplica a todos los proveedores, incluido Bedrock. Para Vertex y Foundry, este es el único perro guardián de inactividad disponible. En Bedrock, también puede habilitar el perro guardián independiente a nivel de byte con `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK`; los dos se ejecutan juntos cuando ambos se establecen. Configure el tiempo de espera con `CLAUDE_STREAM_IDLE_TIMEOUT_MS` |291| `CLAUDE_ENABLE_STREAM_WATCHDOG` | Establezca en `1` para forzar la habilitación del perro guardián de inactividad de transmisión a nivel de evento, o establezca en `0` para forzar su deshabilitación. Cuando no se establece, el predeterminado es controlado por servidor en la API de Anthropic directa y desactivado en otros proveedores. {/* min-version: 2.1.169 */}A partir de v2.1.169, los proveedores distintos de la API de Anthropic directa y Claude Platform on AWS también tienen un tiempo de espera de inactividad de cuerpo de 5 minutos predeterminado independiente de esta variable; consulte `API_FORCE_IDLE_TIMEOUT`. En Bedrock, también puede habilitar el perro guardián independiente a nivel de byte con `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK`; los dos se ejecutan juntos cuando ambos se establecen. Configure el tiempo de espera con `CLAUDE_STREAM_IDLE_TIMEOUT_MS` |

280| `CLAUDE_ENV_FILE` | Ruta a un script de shell cuyo contenido Claude Code ejecuta antes de cada comando Bash en el mismo proceso de shell, por lo que las exportaciones en el archivo son visibles para el comando. Utilice para persistir la activación de virtualenv o conda entre comandos. También se completa dinámicamente por hooks [SessionStart](/es/hooks#persist-environment-variables), [Setup](/es/hooks#setup), [CwdChanged](/es/hooks#cwdchanged) y [FileChanged](/es/hooks#filechanged) |292| `CLAUDE_ENV_FILE` | Ruta a un script de shell cuyo contenido Claude Code ejecuta antes de cada comando Bash en el mismo proceso de shell, por lo que las exportaciones en el archivo son visibles para el comando. Utilice para persistir la activación de virtualenv o conda entre comandos. También se completa dinámicamente por hooks [SessionStart](/es/hooks#persist-environment-variables), [Setup](/es/hooks#setup), [CwdChanged](/es/hooks#cwdchanged) y [FileChanged](/es/hooks#filechanged) |

281| `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` | Prefijo para nombres de sesión de [Control Remoto](/es/remote-control) generados automáticamente cuando no se proporciona un nombre explícito. El valor predeterminado es el nombre de host de su máquina, produciendo nombres como `myhost-graceful-unicorn`. La bandera CLI `--remote-control-session-name-prefix` establece el mismo valor para una única invocación |293| `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` | Prefijo para nombres de sesión de [Control Remoto](/es/remote-control) generados automáticamente cuando no se proporciona un nombre explícito. El valor predeterminado es el nombre de host de su máquina, produciendo nombres como `myhost-graceful-unicorn`. La bandera CLI `--remote-control-session-name-prefix` establece el mismo valor para una única invocación |

282| `CLAUDE_STREAM_IDLE_TIMEOUT_MS` | Tiempo de espera en milisegundos antes de que el perro guardián de inactividad de transmisión cierre una conexión estancada. Predeterminado y mínimo `300000` (5 minutos) para ambos perros guardianes a nivel de byte y a nivel de evento; los valores más bajos se fijan silenciosamente para absorber pausas de pensamiento extendido y almacenamiento en búfer de proxy. Para proveedores de terceros, requiere `CLAUDE_ENABLE_STREAM_WATCHDOG=1`. En Bedrock, también se aplica cuando `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1` |294| `CLAUDE_STREAM_IDLE_TIMEOUT_MS` | Tiempo de espera en milisegundos antes de que el perro guardián de inactividad de transmisión cierre una conexión estancada. Cuando establece esta variable explícitamente, el mínimo es `300000` (5 minutos); los valores más bajos se fijan silenciosamente para absorber pausas de pensamiento extendido y almacenamiento en búfer de proxy. Cuando no se establece, el perro guardián a nivel de evento predeterminado es 300 segundos y el perro guardián a nivel de byte predeterminado es 180 segundos en conexiones de API de Anthropic directas (300 segundos en Claude Platform on AWS y otros proveedores). El predeterminado de 180 segundos del perro guardián de byte sin establecer es un valor separado y no está sujeto a la fijación de 5 minutos. Para el perro guardián a nivel de evento en proveedores de terceros, requiere `CLAUDE_ENABLE_STREAM_WATCHDOG=1`; el tiempo de espera de inactividad de cuerpo descrito bajo `API_FORCE_IDLE_TIMEOUT` se aplica independientemente. En Bedrock, también se aplica cuando `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1` |

283| `DEBUG` | Establezca en `1` para habilitar el modo de depuración, equivalente a lanzar con [`--debug`](/es/cli-reference#cli-flags). Los registros de depuración se escriben en `~/.claude/debug/<session-id>.txt`, o en la ruta establecida por `CLAUDE_CODE_DEBUG_LOGS_DIR`. Solo los valores verdaderos `1`, `true`, `yes` y `on` habilitan el modo de depuración, por lo que patrones de espacio de nombres como `DEBUG=express:*` establecidos para otras herramientas no lo activan |295| `DEBUG` | Establezca en `1` para habilitar el modo de depuración, equivalente a lanzar con [`--debug`](/es/cli-reference#cli-flags). Los registros de depuración se escriben en `~/.claude/debug/<session-id>.txt`, o en la ruta establecida por `CLAUDE_CODE_DEBUG_LOGS_DIR`. Solo los valores verdaderos `1`, `true`, `yes` y `on` habilitan el modo de depuración, por lo que patrones de espacio de nombres como `DEBUG=express:*` establecidos para otras herramientas no lo activan |

284| `DISABLE_AUTOUPDATER` | Establezca en `1` para deshabilitar actualizaciones automáticas en segundo plano. El comando manual `claude update` sigue funcionando. Use `DISABLE_UPDATES` para bloquear ambos |296| `DISABLE_AUTOUPDATER` | Establezca en `1` para deshabilitar actualizaciones automáticas en segundo plano. El comando manual `claude update` sigue funcionando. Use `DISABLE_UPDATES` para bloquear ambos |

285| `DISABLE_AUTO_COMPACT` | Establezca en `1` para deshabilitar la compactación automática cuando se aproxime al límite de contexto. El comando manual `/compact` sigue estando disponible. Utilice cuando desee control explícito sobre cuándo ocurre la compactación |297| `DISABLE_AUTO_COMPACT` | Establezca en `1` para deshabilitar la compactación automática cuando se aproxime al límite de contexto. El comando manual `/compact` sigue estando disponible. Utilice cuando desee control explícito sobre cuándo ocurre la compactación |


296| `DISABLE_LOGIN_COMMAND` | Establezca en `1` para ocultar el comando `/login`. Útil cuando la autenticación se maneja externamente a través de claves de API o `apiKeyHelper` |308| `DISABLE_LOGIN_COMMAND` | Establezca en `1` para ocultar el comando `/login`. Útil cuando la autenticación se maneja externamente a través de claves de API o `apiKeyHelper` |

297| `DISABLE_LOGOUT_COMMAND` | Establezca en `1` para ocultar el comando `/logout` |309| `DISABLE_LOGOUT_COMMAND` | Establezca en `1` para ocultar el comando `/logout` |

298| `DISABLE_PROMPT_CACHING` | Establezca en `1` para deshabilitar el almacenamiento en caché de indicadores para todos los modelos (tiene precedencia sobre la configuración por modelo) |310| `DISABLE_PROMPT_CACHING` | Establezca en `1` para deshabilitar el almacenamiento en caché de indicadores para todos los modelos (tiene precedencia sobre la configuración por modelo) |

311| `DISABLE_PROMPT_CACHING_FABLE` | Establezca en `1` para deshabilitar el almacenamiento en caché de indicadores para modelos Fable |

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

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

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


307| `ENABLE_PROMPT_CACHING_1H` | Establezca en `1` para solicitar un TTL de caché de indicador de 1 hora en lugar de los 5 minutos predeterminados. Destinado a usuarios de clave de API, [Bedrock](/es/amazon-bedrock), [Vertex](/es/google-vertex-ai), [Foundry](/es/microsoft-foundry) y [Claude Platform on AWS](/es/claude-platform-on-aws). Los usuarios de suscripción reciben TTL de 1 hora automáticamente. Las escrituras de caché de 1 hora se facturan a una tasa más alta |320| `ENABLE_PROMPT_CACHING_1H` | Establezca en `1` para solicitar un TTL de caché de indicador de 1 hora en lugar de los 5 minutos predeterminados. Destinado a usuarios de clave de API, [Bedrock](/es/amazon-bedrock), [Vertex](/es/google-vertex-ai), [Foundry](/es/microsoft-foundry) y [Claude Platform on AWS](/es/claude-platform-on-aws). Los usuarios de suscripción reciben TTL de 1 hora automáticamente. Las escrituras de caché de 1 hora se facturan a una tasa más alta |

308| `ENABLE_PROMPT_CACHING_1H_BEDROCK` | Deprecated. Use `ENABLE_PROMPT_CACHING_1H` instead |321| `ENABLE_PROMPT_CACHING_1H_BEDROCK` | Deprecated. Use `ENABLE_PROMPT_CACHING_1H` instead |

309| `ENABLE_TOOL_SEARCH` | Controla [búsqueda de herramientas MCP](/es/mcp#scale-with-mcp-tool-search). Sin establecer: todas las herramientas MCP diferidas de forma predeterminada, pero cargadas por adelantado en Vertex AI o cuando `ANTHROPIC_BASE_URL` apunta a un host que no es de primera parte. Valores: `true` (siempre diferir e incluir el encabezado beta, las solicitudes fallan en modelos de Vertex AI anteriores a Sonnet 4.5 u Opus 4.5, o en proxies que no admiten `tool_reference`), `auto` (modo de umbral: cargar por adelantado si las herramientas caben dentro del 10% del contexto), `auto:N` (umbral personalizado, p. ej., `auto:5` para 5%), `false` (cargar todo por adelantado) |322| `ENABLE_TOOL_SEARCH` | Controla [búsqueda de herramientas MCP](/es/mcp#scale-with-mcp-tool-search). Sin establecer: todas las herramientas MCP diferidas de forma predeterminada, pero cargadas por adelantado en Vertex AI o cuando `ANTHROPIC_BASE_URL` apunta a un host que no es de primera parte. Valores: `true` (siempre diferir e incluir el encabezado beta, las solicitudes fallan en modelos de Vertex AI anteriores a Sonnet 4.5 u Opus 4.5, o en proxies que no admiten `tool_reference`), `auto` (modo de umbral: cargar por adelantado si las herramientas caben dentro del 10% del contexto), `auto:N` (umbral personalizado, p. ej., `auto:5` para 5%), `false` (cargar todo por adelantado) |

310| `FALLBACK_FOR_ALL_PRIMARY_MODELS` | Establezca en cualquier valor no vacío para activar el respaldo a [`--fallback-model`](/es/cli-reference#cli-flags) después de errores de sobrecarga repetidos en cualquier modelo principal. De forma predeterminada, solo los modelos Opus activan el respaldo |323| `FALLBACK_FOR_ALL_PRIMARY_MODELS` | Establezca en cualquier valor no vacío para hacer que todos los modelos, no solo Opus, dejen de reintentar con un error de sobrecarga repetido cuando no hay modelo de respaldo configurado. {/* min-version: 2.1.160 */}A partir de v2.1.160, una [cadena de modelo de respaldo](/es/model-config#fallback-model-chains) configurada se activa en errores de sobrecarga repetidos para cualquier modelo principal, por lo que esta variable no afecta el cambio a un modelo de respaldo |

311| `FORCE_AUTOUPDATE_PLUGINS` | Establezca en `1` para forzar actualizaciones automáticas de plugins incluso cuando el actualizador automático principal está deshabilitado mediante `DISABLE_AUTOUPDATER` |324| `FORCE_AUTOUPDATE_PLUGINS` | Establezca en `1` para forzar actualizaciones automáticas de plugins incluso cuando el actualizador automático principal está deshabilitado mediante `DISABLE_AUTOUPDATER` |

312| `FORCE_PROMPT_CACHING_5M` | Establezca en `1` para forzar el TTL de caché de indicador de 5 minutos incluso cuando el TTL de 1 hora se aplicaría de otra manera. Anula `ENABLE_PROMPT_CACHING_1H` |325| `FORCE_PROMPT_CACHING_5M` | Establezca en `1` para forzar el TTL de caché de indicador de 5 minutos incluso cuando el TTL de 1 hora se aplicaría de otra manera. Anula `ENABLE_PROMPT_CACHING_1H` |

313| `HTTP_PROXY` | Especifique el servidor proxy HTTP para conexiones de red |326| `HTTP_PROXY` | Especifique el servidor proxy HTTP para conexiones de red |


315| `IS_DEMO` | Establezca en `1` para habilitar el modo de demostración: oculta su correo electrónico y nombre de organización del encabezado y salida de `/status`, y omite la incorporación. Útil cuando transmite o graba una sesión |328| `IS_DEMO` | Establezca en `1` para habilitar el modo de demostración: oculta su correo electrónico y nombre de organización del encabezado y salida de `/status`, y omite la incorporación. Útil cuando transmite o graba una sesión |

316| `MAX_MCP_OUTPUT_TOKENS` | Número máximo de tokens permitidos en respuestas de herramientas MCP. Claude Code muestra una advertencia cuando la salida excede 10,000 tokens. Las herramientas que declaran [`anthropic/maxResultSizeChars`](/es/mcp#raise-the-limit-for-a-specific-tool) utilizan ese límite de caracteres para contenido de texto en su lugar, pero el contenido de imagen de esas herramientas sigue estando sujeto a esta variable (predeterminado: 25000) |329| `MAX_MCP_OUTPUT_TOKENS` | Número máximo de tokens permitidos en respuestas de herramientas MCP. Claude Code muestra una advertencia cuando la salida excede 10,000 tokens. Las herramientas que declaran [`anthropic/maxResultSizeChars`](/es/mcp#raise-the-limit-for-a-specific-tool) utilizan ese límite de caracteres para contenido de texto en su lugar, pero el contenido de imagen de esas herramientas sigue estando sujeto a esta variable (predeterminado: 25000) |

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

318| `MAX_THINKING_TOKENS` | Anule el presupuesto de tokens de [pensamiento extendido](https://platform.claude.com/docs/en/build-with-claude/extended-thinking). El techo es el [máximo de tokens de salida](https://platform.claude.com/docs/en/about-claude/models/overview#latest-models-comparison) del modelo menos uno. Establezca en `0` para deshabilitar el pensamiento completamente. En modelos con [razonamiento adaptativo](/es/model-config#adjust-effort-level), el presupuesto se ignora a menos que el razonamiento adaptativo esté deshabilitado a través de `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` |331| `MAX_THINKING_TOKENS` | Anule el presupuesto de tokens de [pensamiento extendido](https://platform.claude.com/docs/en/build-with-claude/extended-thinking). El techo es el [máximo de tokens de salida](https://platform.claude.com/docs/en/about-claude/models/overview#latest-models-comparison) del modelo menos uno. Establezca en `0` para deshabilitar el pensamiento en la API de Anthropic excepto en Fable 5, que no puede tener el pensamiento desactivado. En [proveedores de terceros](/es/third-party-integrations), `0` asimismo omite el parámetro, y los modelos con [razonamiento adaptativo](/es/model-config#adjust-effort-level) aún pueden pensar. Para valores distintos de cero en modelos de razonamiento adaptativo, el presupuesto se ignora a menos que el razonamiento adaptativo esté deshabilitado a través de `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` |

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

320| `MCP_CONNECTION_NONBLOCKING` | Controla si el inicio espera a que se conecten los servidores MCP antes de la primera consulta. {/* min-version: 2.1.142 */}A partir de Claude Code v2.1.142, el inicio de MCP es no bloqueante de forma predeterminada: los servidores se conectan en segundo plano y sus herramientas se vuelven disponibles a medida que terminan. Establezca en `0` para restaurar la espera de conexión bloqueante de 5 segundos. Los servidores configurados con [`alwaysLoad: true`](/es/mcp#exempt-a-server-from-deferral) siguen bloqueando el inicio independientemente, ya que sus herramientas deben estar presentes cuando se construye el primer indicador |333| `MCP_CONNECTION_NONBLOCKING` | Controla si el inicio espera a que se conecten los servidores MCP antes de la primera consulta. {/* min-version: 2.1.142 */}A partir de Claude Code v2.1.142, el inicio de MCP es no bloqueante de forma predeterminada: los servidores se conectan en segundo plano y sus herramientas se vuelven disponibles a medida que terminan. Establezca en `0` para restaurar la espera de conexión bloqueante de 5 segundos. Los servidores configurados con [`alwaysLoad: true`](/es/mcp#exempt-a-server-from-deferral) siguen bloqueando el inicio independientemente, ya que sus herramientas deben estar presentes cuando se construye el primer indicador |

321| `MCP_CONNECT_TIMEOUT_MS` | Cuánto tiempo espera el inicio bloqueante de MCP, en milisegundos, para que se complete el lote de conexión antes de tomar una instantánea de la lista de herramientas (predeterminado: 5000). Se aplica cuando `MCP_CONNECTION_NONBLOCKING=0` o para servidores marcados [`alwaysLoad: true`](/es/mcp#exempt-a-server-from-deferral). Los servidores aún pendientes en la fecha límite continúan conectándose en segundo plano pero no aparecerán hasta la siguiente consulta. Distinto de `MCP_TIMEOUT`, que limita el intento de conexión de un servidor individual |334| `MCP_CONNECT_TIMEOUT_MS` | Cuánto tiempo espera el inicio bloqueante de MCP, en milisegundos, para que se complete el lote de conexión antes de tomar una instantánea de la lista de herramientas (predeterminado: 5000). Se aplica cuando `MCP_CONNECTION_NONBLOCKING=0` o para servidores marcados [`alwaysLoad: true`](/es/mcp#exempt-a-server-from-deferral). Los servidores aún pendientes en la fecha límite continúan conectándose en segundo plano pero no aparecerán hasta la siguiente consulta. Distinto de `MCP_TIMEOUT`, que limita el intento de conexión de un servidor individual |


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

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

325| `MCP_TIMEOUT` | Tiempo de espera en milisegundos para el inicio del servidor MCP (predeterminado: 30000, o 30 segundos) |338| `MCP_TIMEOUT` | Tiempo de espera en milisegundos para el inicio del servidor MCP (predeterminado: 30000, o 30 segundos) |

326| `MCP_TOOL_TIMEOUT` | Tiempo de espera en milisegundos para la ejecución de herramientas MCP (predeterminado: 100000000, aproximadamente 28 horas). Un campo `timeout` por servidor en `.mcp.json` anula esto para ese servidor. Los valores por debajo de 1000 se redondean a un segundo |339| `MCP_TOOL_TIMEOUT` | Tiempo de espera en milisegundos para la ejecución de herramientas MCP (predeterminado: 100000000, aproximadamente 28 horas). Un campo `timeout` por servidor en `.mcp.json` anula esto para ese servidor. Para la variable env, los valores por debajo de 1000 se redondean a un segundo; para el campo por servidor, los valores por debajo de 1000 se ignoran |

327| `NO_PROXY` | Lista de dominios e IPs a los que se emitirán solicitudes directamente, omitiendo el proxy |340| `NO_PROXY` | Lista de dominios e IPs a los que se emitirán solicitudes directamente, omitiendo el proxy |

328| `OTEL_LOG_RAW_API_BODIES` | Emita el JSON completo de solicitud y respuesta de la API de Mensajes de Anthropic como eventos de registro `api_request_body` / `api_response_body`. Establezca en `1` para cuerpos en línea truncados en 60 KB, o `file:<dir>` para escribir cuerpos sin truncar en disco y emitir una ruta `body_ref` en su lugar. Deshabilitado de forma predeterminada; los cuerpos incluyen todo el historial de conversación. Consulte [Monitoreo](/es/monitoring-usage#api-request-body-event) |341| `OTEL_LOG_RAW_API_BODIES` | Emita el JSON completo de solicitud y respuesta de la API de Mensajes de Anthropic como eventos de registro `api_request_body` / `api_response_body`. Establezca en `1` para cuerpos en línea truncados en 60 KB, o `file:<dir>` para escribir cuerpos sin truncar en disco y emitir una ruta `body_ref` en su lugar. Deshabilitado de forma predeterminada; los cuerpos incluyen todo el historial de conversación. Consulte [Monitoreo](/es/monitoring-usage#api-request-body-event) |

329| `OTEL_LOG_TOOL_CONTENT` | Establezca en `1` para incluir contenido de entrada y salida de herramientas en eventos de span de OpenTelemetry. Deshabilitado de forma predeterminada para proteger datos sensibles. Consulte [Monitoreo](/es/monitoring-usage) |342| `OTEL_LOG_TOOL_CONTENT` | Establezca en `1` para incluir contenido de entrada y salida de herramientas en eventos de span de OpenTelemetry. Deshabilitado de forma predeterminada para proteger datos sensibles. Consulte [Monitoreo](/es/monitoring-usage) |


348| `VERTEX_REGION_CLAUDE_4_6_OPUS` | Anule la región para Claude Opus 4.6 al usar Vertex AI |361| `VERTEX_REGION_CLAUDE_4_6_OPUS` | Anule la región para Claude Opus 4.6 al usar Vertex AI |

349| `VERTEX_REGION_CLAUDE_4_6_SONNET` | Anule la región para Claude Sonnet 4.6 al usar Vertex AI |362| `VERTEX_REGION_CLAUDE_4_6_SONNET` | Anule la región para Claude Sonnet 4.6 al usar Vertex AI |

350| `VERTEX_REGION_CLAUDE_4_7_OPUS` | {/* min-version: 2.1.111 */}Anule la región para Claude Opus 4.7 al usar Vertex AI. Agregado en v2.1.111 |363| `VERTEX_REGION_CLAUDE_4_7_OPUS` | {/* min-version: 2.1.111 */}Anule la región para Claude Opus 4.7 al usar Vertex AI. Agregado en v2.1.111 |

364| `VERTEX_REGION_CLAUDE_4_8_OPUS` | {/* min-version: 2.1.154 */}Anule la región para Claude Opus 4.8 al usar Vertex AI. Agregado en v2.1.154 |

365| `VERTEX_REGION_CLAUDE_FABLE_5` | {/* min-version: 2.1.170 */}Anule la región para Claude Fable 5 al usar Vertex AI. Agregado en v2.1.170 |

351| `VERTEX_REGION_CLAUDE_HAIKU_4_5` | Anule la región para Claude Haiku 4.5 al usar Vertex AI |366| `VERTEX_REGION_CLAUDE_HAIKU_4_5` | Anule la región para Claude Haiku 4.5 al usar Vertex AI |

352 367 

353También se admiten variables estándar de exportador de OpenTelemetry (`OTEL_METRICS_EXPORTER`, `OTEL_LOGS_EXPORTER`, `OTEL_EXPORTER_OTLP_ENDPOINT`, `OTEL_EXPORTER_OTLP_PROTOCOL`, `OTEL_EXPORTER_OTLP_HEADERS`, `OTEL_METRIC_EXPORT_INTERVAL`, `OTEL_RESOURCE_ATTRIBUTES` y variantes específicas de señal). Consulte [Monitoreo](/es/monitoring-usage) para detalles de configuración.368También se admiten variables estándar de exportador de OpenTelemetry (`OTEL_METRICS_EXPORTER`, `OTEL_LOGS_EXPORTER`, `OTEL_EXPORTER_OTLP_ENDPOINT`, `OTEL_EXPORTER_OTLP_PROTOCOL`, `OTEL_EXPORTER_OTLP_HEADERS`, `OTEL_METRIC_EXPORT_INTERVAL`, `OTEL_RESOURCE_ATTRIBUTES` y variantes específicas de señal). Consulte [Monitoreo](/es/monitoring-usage) para detalles de configuración.

errors.md +200 −49

Details

14 Claude Code llama a la API de Claude para obtener respuestas del modelo, por lo que la mayoría de los errores en tiempo de ejecución se asignan a un código de error de API subyacente. Esta página cubre lo que significa cada error dentro de Claude Code y cómo recuperarse. Para las definiciones de código de estado HTTP sin procesar, consulte la [referencia de errores de la plataforma Claude](https://platform.claude.com/docs/en/api/errors).14 Claude Code llama a la API de Claude para obtener respuestas del modelo, por lo que la mayoría de los errores en tiempo de ejecución se asignan a un código de error de API subyacente. Esta página cubre lo que significa cada error dentro de Claude Code y cómo recuperarse. Para las definiciones de código de estado HTTP sin procesar, consulte la [referencia de errores de la plataforma Claude](https://platform.claude.com/docs/en/api/errors).

15</Note>15</Note>

16 16 

17## Encuentre su error17<h2 id="find-your-error">

18 Encuentre su error

19</h2>

18 20 

19Haga coincidir el mensaje que ve en su terminal con una sección a continuación.21Haga coincidir el mensaje que ve en su terminal con una sección a continuación.

20 22 


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

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

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

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

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

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

31| `Request rejected (429)` | [Límites de uso](#request-rejected-429) |34| `Request rejected (429)` | [Límites de uso](#request-rejected-429) |

32| `Credit balance is too low` | [Límites de uso](#credit-balance-is-too-low) |35| `Credit balance is too low` | [Límites de uso](#credit-balance-is-too-low) |

33| `Not logged in · Please run /login` | [Autenticación](#not-logged-in) |36| `Not logged in · Please run /login` | [Autenticación](#not-logged-in) |

37| `Could not resolve authentication method` | [Autenticación](#could-not-resolve-authentication-method) |

34| `Invalid API key` | [Autenticación](#invalid-api-key) |38| `Invalid API key` | [Autenticación](#invalid-api-key) |

35| `This organization has been disabled` | [Autenticación](#this-organization-has-been-disabled) |39| `This organization has been disabled` | [Autenticación](#this-organization-has-been-disabled) |

40| `Your organization has disabled API key authentication` | [Autenticación](#your-organization-has-disabled-api-key-authentication) |

36| `Your organization has disabled Claude subscription access` | [Autenticación](#your-organization-has-disabled-claude-subscription-access) |41| `Your organization has disabled Claude subscription access` | [Autenticación](#your-organization-has-disabled-claude-subscription-access) |

37| `Routines are disabled by your organization's policy` | [Autenticación](#routines-are-disabled-by-your-organizations-policy) |42| `Routines are disabled by your organization's policy` | [Autenticación](#routines-are-disabled-by-your-organization%E2%80%99s-policy) |

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

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

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


47| `Unable to resize image` | [Errores de solicitud](#unable-to-resize-image) |52| `Unable to resize image` | [Errores de solicitud](#unable-to-resize-image) |

48| `PDF too large` / `PDF is password protected` | [Errores de solicitud](#pdf-errors) |53| `PDF too large` / `PDF is password protected` | [Errores de solicitud](#pdf-errors) |

49| `Extra inputs are not permitted` | [Errores de solicitud](#extra-inputs-are-not-permitted) |54| `Extra inputs are not permitted` | [Errores de solicitud](#extra-inputs-are-not-permitted) |

50| `There's an issue with the selected model` | [Errores de solicitud](#theres-an-issue-with-the-selected-model) |55| `There's an issue with the selected model` | [Errores de solicitud](#there%E2%80%99s-an-issue-with-the-selected-model) |

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

52| `thinking.type.enabled is not supported for this model` | [Errores de solicitud](#thinking-type-enabled-is-not-supported-for-this-model) |57| `thinking.type.enabled is not supported for this model` | [Errores de solicitud](#thinking-type-enabled-is-not-supported-for-this-model) |

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


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

56| Las respuestas parecen de menor calidad que lo habitual | [Calidad de respuesta](#responses-seem-lower-quality-than-usual) |61| Las respuestas parecen de menor calidad que lo habitual | [Calidad de respuesta](#responses-seem-lower-quality-than-usual) |

57 62 

58## Reintentos automáticos63<h2 id="automatic-retries">

64 Reintentos automáticos

65</h2>

59 66 

60Claude Code reintenta fallos transitorios antes de mostrarle un error. Los errores del servidor, respuestas sobrecargadas, tiempos de espera de solicitud, aceleraciones 429 temporales y conexiones perdidas se reintentan hasta 10 veces con retroceso exponencial. Mientras se reintenta, el spinner muestra una cuenta regresiva de `Retrying in Ns · attempt x/y`.67Claude Code reintenta fallos transitorios antes de mostrarle un error. Los errores del servidor, respuestas sobrecargadas, tiempos de espera de solicitud, aceleraciones 429 temporales y conexiones perdidas se reintentan hasta 10 veces con retroceso exponencial. Mientras se reintenta, el spinner muestra una cuenta regresiva de `Retrying in Ns · attempt x/y`.

61 68 


66| [`CLAUDE_CODE_MAX_RETRIES`](/es/env-vars) | 10 | Número de intentos de reintento. Redúzcalo para que los fallos aparezcan más rápido en scripts; auméntelo para esperar a través de incidentes más largos. |73| [`CLAUDE_CODE_MAX_RETRIES`](/es/env-vars) | 10 | Número de intentos de reintento. Redúzcalo para que los fallos aparezcan más rápido en scripts; auméntelo para esperar a través de incidentes más largos. |

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

68 75 

69## Errores del servidor76<h2 id="server-errors">

77 Errores del servidor

78</h2>

70 79 

71Estos errores provienen del proveedor de inferencia en lugar de su cuenta o solicitud. En la API de Anthropic, eso significa la infraestructura de Anthropic. En Bedrock, Vertex AI, Foundry o una puerta de enlace personalizada, significa la infraestructura de ese proveedor.80Estos errores provienen del proveedor de inferencia en lugar de su cuenta o solicitud. En la API de Anthropic, eso significa la infraestructura de Anthropic. En Bedrock, Vertex AI, Foundry o una puerta de enlace personalizada, significa la infraestructura de ese proveedor.

72 81 

73### API Error: 500 Internal server error82<h3 id="api-error-500-internal-server-error">

83 API Error: 500 Internal server error

84</h3>

74 85 

75Claude Code muestra el código de estado y el mensaje de error de la API para cualquier respuesta 5xx. El ejemplo a continuación muestra una respuesta 500 en la API de Anthropic:86Claude Code muestra el código de estado y el mensaje de error de la API para cualquier respuesta 5xx. El ejemplo a continuación muestra una respuesta 500 en la API de Anthropic:

76 87 


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

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

90 101 

91### API Error: Repeated 529 Overloaded errors102<h3 id="api-error-repeated-529-overloaded-errors">

103 API Error: Repeated 529 Overloaded errors

104</h3>

92 105 

93La API está temporalmente a capacidad en todos los usuarios. Claude Code ya ha reintentado varias veces antes de mostrar este mensaje:106La API está temporalmente a capacidad en todos los usuarios. Claude Code ya ha reintentado varias veces antes de mostrar este mensaje:

94 107 


104* Intente de nuevo en unos minutos117* Intente de nuevo en unos minutos

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

106 119 

107### Request timed out120<h3 id="request-timed-out">

121 Request timed out

122</h3>

108 123 

109La API no respondió antes de la fecha límite de conexión.124La API no respondió antes de la fecha límite de conexión.

110 125 


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

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

123 138 

124### Auto mode cannot determine the safety of an action139<h3 id="auto-mode-cannot-determine-the-safety-of-an-action">

140 Auto mode cannot determine the safety of an action

141</h3>

125 142 

126El modelo que [auto mode](/es/permission-modes#eliminate-prompts-with-auto-mode) utiliza para clasificar acciones no pudo producir una decisión, por lo que auto mode no aprobó la acción automáticamente. El mensaje que ve depende de por qué falló el clasificador.143El modelo que [auto mode](/es/permission-modes#eliminate-prompts-with-auto-mode) utiliza para clasificar acciones no pudo producir una decisión, por lo que auto mode no aprobó la acción automáticamente. El mensaje que ve depende de por qué falló el clasificador.

127 144 


163* Apruebe o deniegue la acción en la solicitud que aparece180* Apruebe o deniegue la acción en la solicitud que aparece

164* Ejecute `/compact` para reducir el tamaño de la conversación para que las acciones posteriores se ajusten nuevamente dentro de la ventana del clasificador181* Ejecute `/compact` para reducir el tamaño de la conversación para que las acciones posteriores se ajusten nuevamente dentro de la ventana del clasificador

165 182 

166## Límites de uso183<h2 id="usage-limits">

184 Límites de uso

185</h2>

167 186 

168Estos errores significan que se ha alcanzado una cuota vinculada a su cuenta o plan. Son distintos de los [errores del servidor](#server-errors), que afectan a todos.187Estos errores significan que se ha alcanzado una cuota vinculada a su cuenta o plan. Son distintos de los [errores del servidor](#server-errors), que afectan a todos.

169 188 

170### Ha alcanzado su límite de sesión189<h3 id="you’ve-hit-your-session-limit">

190 Ha alcanzado su límite de sesión

191</h3>

171 192 

172Los planes de suscripción incluyen una asignación de uso continuo. Cuando se agota, ve uno de estos mensajes:193Los planes de suscripción incluyen una asignación de uso continuo. Cuando se agota, ve uno de estos mensajes:

173 194 


188 209 

189Para ver su asignación restante antes de alcanzar el límite, agregue los campos `rate_limits` a una [línea de estado personalizada](/es/statusline#rate-limit-usage), o en la aplicación de escritorio haga clic en el [anillo de uso](/es/desktop#check-usage) junto al selector de modelo.210Para ver su asignación restante antes de alcanzar el límite, agregue los campos `rate_limits` a una [línea de estado personalizada](/es/statusline#rate-limit-usage), o en la aplicación de escritorio haga clic en el [anillo de uso](/es/desktop#check-usage) junto al selector de modelo.

190 211 

191### El servidor está limitando temporalmente las solicitudes212<h3 id="usage-credits-required-for-1m-context">

213 Créditos de uso requeridos para contexto de 1M

214</h3>

215 

216El modelo seleccionado utiliza la ventana de contexto extendida de 1M tokens, y su plan solo lo incluye a través de créditos de uso.

217 

218```text theme={null}

219API Error: Usage credits required for 1M context · run /usage-credits to turn them on, or /model to switch to standard context

220```

221 

222Esta es una verificación de derechos, no un agotamiento de cuota. Se activa incluso cuando sus asignaciones de sesión y semanales tienen capacidad restante. Consulte [Extended context](/es/model-config#extended-context) para ver qué planes incluyen contexto de 1M directamente y cuáles requieren créditos de uso.

223 

224Cuando este error aparece a mitad de la conversación porque el contexto creció más allá de 200K tokens, Claude Code compacta automáticamente la conversación nuevamente bajo el límite de contexto estándar y mantiene la sesión en ese límite después, por lo que no se requiere ninguna acción. En versiones anteriores a v2.1.172, el error se repetía en cada solicitud posterior incluyendo `/compact`; ejecute `/clear` en esas versiones para recuperarse. Los pasos a continuación se aplican cuando seleccionó explícitamente un modelo `[1m]`.

225 

226**Qué hacer:**

227 

228* Ejecute `/model` y seleccione la variante sin el sufijo `[1m]` para volver a la ventana de contexto estándar

229* Ejecute `/usage-credits` para activar la facturación medida para la variante de 1M en Pro y Max, o para solicitarla a su administrador en Team y Enterprise

230* Si el error persiste después de `/model`, es posible que una ID de modelo de 1M esté configurada en otro lugar. Consulte [There's an issue with the selected model](#there%E2%80%99s-an-issue-with-the-selected-model) para ver las ubicaciones de configuración a verificar en orden de prioridad.

231* Para eliminar variantes de 1M del selector de modelo por completo, establezca [`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`](/es/env-vars)

232 

233<h3 id="server-is-temporarily-limiting-requests">

234 El servidor está limitando temporalmente las solicitudes

235</h3>

192 236 

193La API aplicó una aceleración de corta duración que no está relacionada con su cuota de plan.237La API aplicó una aceleración de corta duración que no está relacionada con su cuota de plan.

194 238 


203* Espere brevemente e intente de nuevo247* Espere brevemente e intente de nuevo

204* Consulte [status.claude.com](https://status.claude.com) si persiste248* Consulte [status.claude.com](https://status.claude.com) si persiste

205 249 

206### Solicitud rechazada (429)250<h3 id="request-rejected-429">

251 Solicitud rechazada (429)

252</h3>

207 253 

208Ha alcanzado el límite de velocidad configurado para su clave de API, proyecto de Amazon Bedrock o proyecto de Google Vertex AI.254Ha alcanzado el límite de velocidad configurado para su clave de API, proyecto de Amazon Bedrock o proyecto de Google Vertex AI.

209 255 


220* Para claves de API de Anthropic, consulte la [referencia de límites de velocidad](https://platform.claude.com/docs/en/api/rate-limits) para saber cómo funcionan los niveles y cómo establecer límites por espacio de trabajo266* Para claves de API de Anthropic, consulte la [referencia de límites de velocidad](https://platform.claude.com/docs/en/api/rate-limits) para saber cómo funcionan los niveles y cómo establecer límites por espacio de trabajo

221* Reduzca la concurrencia: reduzca [`CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY`](/es/env-vars), evite ejecutar muchos subagentos paralelos, o cambie a un modelo más pequeño con `/model` para ejecuciones de alto volumen con scripts267* Reduzca la concurrencia: reduzca [`CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY`](/es/env-vars), evite ejecutar muchos subagentos paralelos, o cambie a un modelo más pequeño con `/model` para ejecuciones de alto volumen con scripts

222 268 

223### El saldo de crédito es demasiado bajo269<h3 id="credit-balance-is-too-low">

270 El saldo de crédito es demasiado bajo

271</h3>

224 272 

225Su organización de Console se ha quedado sin créditos prepagados.273Su organización de Console se ha quedado sin créditos prepagados.

226 274 


234* Cambie a autenticación de suscripción con `/login` si tiene un plan Pro, Max, Team o Enterprise282* Cambie a autenticación de suscripción con `/login` si tiene un plan Pro, Max, Team o Enterprise

235* Establezca límites de gasto por espacio de trabajo en la Console para evitar que un único proyecto agote el saldo de la organización. Consulte [Manage costs effectively](/es/costs).283* Establezca límites de gasto por espacio de trabajo en la Console para evitar que un único proyecto agote el saldo de la organización. Consulte [Manage costs effectively](/es/costs).

236 284 

237## Errores de autenticación285<h2 id="authentication-errors">

286 Errores de autenticación

287</h2>

238 288 

239Estos errores significan que Claude Code no puede probar quién es usted ante la API. Ejecute `/status` en cualquier momento para ver qué credencial está actualmente activa.289Estos errores significan que Claude Code no puede probar quién es usted ante la API. Ejecute `/status` en cualquier momento para ver qué credencial está actualmente activa.

240 290 

241### Not logged in291<h3 id="not-logged-in">

292 Not logged in

293</h3>

242 294 

243No hay credencial válida disponible para esta sesión.295No hay credencial válida disponible para esta sesión.

244 296 


255 307 

256Si se le solicita que inicie sesión repetidamente, consulte [Not logged in or token expired](/es/troubleshoot-install#not-logged-in-or-token-expired) para correcciones del reloj del sistema y Keychain de macOS.308Si se le solicita que inicie sesión repetidamente, consulte [Not logged in or token expired](/es/troubleshoot-install#not-logged-in-or-token-expired) para correcciones del reloj del sistema y Keychain de macOS.

257 309 

258### Invalid API key310<h3 id="could-not-resolve-authentication-method">

311 Could not resolve authentication method

312</h3>

313 

314La sesión llegó al cliente de API sin ninguna credencial. Esto aparece en [sesiones en segundo plano](/es/agent-view), sesiones en la nube y contextos del Agent SDK donde la comprobación de inicio de sesión interactivo no se ejecuta antes de la primera solicitud.

315 

316```text theme={null}

317Could not resolve authentication method. Expected one of apiKey, authToken, credentials, config, or profile to be set. Or for one of the "X-Api-Key" or "Authorization" headers to be explicitly omitted

318```

319 

320{/* min-version: 2.1.174 */}Antes de v2.1.174, una sesión en segundo plano o en la nube asignada a un trabajador pre-inicializado inactivo podría fallar de esta manera incluso cuando las credenciales válidas estaban configuradas. Actualice para recuperarse. En las versiones actuales, el error significa que no había credencial disponible para el proceso del trabajador.

321 

322**Qué hacer:**

323 

324* Actualice a v2.1.174 o posterior si esto aparece en una sesión en segundo plano o en la nube y sus credenciales ya están configuradas

325* Confirme que `ANTHROPIC_API_KEY`, `CLAUDE_CODE_OAUTH_TOKEN` o sus credenciales del proveedor de nube están configuradas en el entorno que inicia el trabajador, no solo en su shell interactivo

326* Para el Agent SDK, consulte [configuración de autenticación](/es/agent-sdk/overview#get-started)

327* Ejecute `/status` en una sesión interactiva en el mismo entorno para confirmar qué fuente de credencial se resuelve

328 

329<h3 id="invalid-api-key">

330 Invalid API key

331</h3>

259 332 

260La variable de entorno `ANTHROPIC_API_KEY` o el script `apiKeyHelper` devolvió una clave que la API rechazó.333La variable de entorno `ANTHROPIC_API_KEY` o el script `apiKeyHelper` devolvió una clave que la API rechazó.

261 334 


271* Si la clave proviene de un script [`apiKeyHelper`](/es/settings#available-settings), ejecute el script directamente para confirmar que imprime una clave válida en stdout344* Si la clave proviene de un script [`apiKeyHelper`](/es/settings#available-settings), ejecute el script directamente para confirmar que imprime una clave válida en stdout

272* Ejecute `/status` para confirmar qué fuente de credencial está usando realmente Claude Code345* Ejecute `/status` para confirmar qué fuente de credencial está usando realmente Claude Code

273 346 

274### This organization has been disabled347<h3 id="this-organization-has-been-disabled">

348 This organization has been disabled

349</h3>

275 350 

276Una `ANTHROPIC_API_KEY` obsoleta de una organización de Console deshabilitada está anulando su inicio de sesión de suscripción.351Una `ANTHROPIC_API_KEY` obsoleta de una organización de Console deshabilitada está anulando su inicio de sesión de suscripción.

277 352 


288* Ejecute `/status` después para confirmar que la credencial activa es su suscripción363* Ejecute `/status` después para confirmar que la credencial activa es su suscripción

289* Si no hay variable de entorno configurada y el error persiste, la organización deshabilitada es la vinculada a su `/login`. Póngase en contacto con el soporte o inicie sesión con una cuenta diferente.364* Si no hay variable de entorno configurada y el error persiste, la organización deshabilitada es la vinculada a su `/login`. Póngase en contacto con el soporte o inicie sesión con una cuenta diferente.

290 365 

291### Your organization has disabled Claude subscription access366<h3 id="your-organization-has-disabled-api-key-authentication">

367 Your organization has disabled API key authentication

368</h3>

369 

370El administrador de su organización de Console ha desactivado la autenticación por clave de API, por lo que la API rechaza la clave que Claude Code está enviando. La sugerencia de recuperación después del `·` varía según de dónde provenga la clave:

371 

372```text theme={null}

373Your organization has disabled API key authentication · Run /login to sign in with your claude.ai account

374Your organization has disabled API key authentication · Unset ANTHROPIC_API_KEY to use your claude.ai account instead

375Your organization has disabled API key authentication · Unset ANTHROPIC_API_KEY and run /login to sign in with your claude.ai account

376Your organization has disabled API key authentication · Unset the apiKeyHelper setting and run /login to sign in with your claude.ai account

377```

378 

379Las variables de entorno y `apiKeyHelper` tienen prioridad sobre `/login`, por lo que ejecutar `/login` solo no ayuda mientras cualquiera de ellos siga suministrando una clave. Consulte [Precedencia de autenticación](/es/authentication#authentication-precedence).

380 

381**Qué hacer:**

382 

383* Si el mensaje menciona `ANTHROPIC_API_KEY`, desactívelo en el shell actual y elimínelo de su perfil de shell o archivo `.env`, luego relance `claude`

384* Si el mensaje menciona `apiKeyHelper`, elimine la configuración [`apiKeyHelper`](/es/settings#available-settings) de su `settings.json`

385* Ejecute `/login` para iniciar sesión con su cuenta de claude.ai

386* Ejecute `/status` después para confirmar que la credencial activa es su suscripción en lugar de una clave de API

387* Si necesita autenticación por clave de API para automatización, pida a su administrador de organización que la vuelva a habilitar en la Console

388 

389<h3 id="your-organization-has-disabled-claude-subscription-access">

390 Your organization has disabled Claude subscription access

391</h3>

292 392 

293Su organización de Claude no permite iniciar sesión en Claude Code con un inicio de sesión de suscripción. Ejecutar `/login` nuevamente con la misma cuenta devuelve el mismo error.393Su organización de Claude no permite iniciar sesión en Claude Code con un inicio de sesión de suscripción. Ejecutar `/login` nuevamente con la misma cuenta devuelve el mismo error.

294 394 


304* Autentíquese con una clave de API de Console en lugar de su suscripción. Consulte [Autenticación de Claude Console](/es/authentication#claude-console-authentication) para la configuración.404* Autentíquese con una clave de API de Console en lugar de su suscripción. Consulte [Autenticación de Claude Console](/es/authentication#claude-console-authentication) para la configuración.

305* Si usted es el administrador y no ve una opción para habilitar el acceso, póngase en contacto con [soporte de Anthropic](https://support.claude.com)405* Si usted es el administrador y no ve una opción para habilitar el acceso, póngase en contacto con [soporte de Anthropic](https://support.claude.com)

306 406 

307### Routines are disabled by your organization's policy407<h3 id="routines-are-disabled-by-your-organizations-policy">

408 Routines are disabled by your organization's policy

409</h3>

308 410 

309Su administrador de Team o Enterprise ha desactivado las rutinas a nivel de organización. El error aparece cuando intenta crear o ejecutar una rutina, incluyendo desde `/schedule` y la interfaz de usuario [Routines](/es/routines) en claude.ai/code.411Su administrador de Team o Enterprise ha desactivado las rutinas a nivel de organización. El error aparece cuando intenta crear o ejecutar una rutina, incluyendo desde `/schedule` y la interfaz de usuario [Routines](/es/routines) en claude.ai/code.

310 412 


319* Pida a su administrador que habilite el botón **Routines** en [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code)421* Pida a su administrador que habilite el botón **Routines** en [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code)

320* Para trabajo programado único que no requiere rutinas a nivel de organización, consulte [tareas programadas](/es/scheduled-tasks)422* Para trabajo programado único que no requiere rutinas a nivel de organización, consulte [tareas programadas](/es/scheduled-tasks)

321 423 

322### OAuth token revoked or expired424<h3 id="oauth-token-revoked-or-expired">

425 OAuth token revoked or expired

426</h3>

323 427 

324Su inicio de sesión guardado ya no es válido. Un token revocado significa que cerró sesión en todas partes o un administrador eliminó el acceso; un token expirado significa que la actualización automática falló a mitad de sesión.428Su inicio de sesión guardado ya no es válido. Un token revocado significa que cerró sesión en todas partes o un administrador eliminó el acceso; un token expirado significa que la actualización automática falló a mitad de sesión.

325 429 


336* Para solicitudes repetidas de inicio de sesión en lanzamientos, consulte las comprobaciones del reloj del sistema y Keychain de macOS en [Solución de problemas](/es/troubleshoot-install#not-logged-in-or-token-expired)440* Para solicitudes repetidas de inicio de sesión en lanzamientos, consulte las comprobaciones del reloj del sistema y Keychain de macOS en [Solución de problemas](/es/troubleshoot-install#not-logged-in-or-token-expired)

337* Para otras fallas incluyendo `403 Forbidden` y problemas del navegador OAuth, consulte [Inicio de sesión y autenticación](/es/troubleshoot-install#login-and-authentication)441* Para otras fallas incluyendo `403 Forbidden` y problemas del navegador OAuth, consulte [Inicio de sesión y autenticación](/es/troubleshoot-install#login-and-authentication)

338 442 

339### OAuth scope requirement443<h3 id="oauth-scope-requirement">

444 OAuth scope requirement

445</h3>

340 446 

341El token almacenado es anterior a un alcance de permiso que una característica más nueva necesita. Lo ve más a menudo desde `/usage` y el indicador de uso de la línea de estado:447El token almacenado es anterior a un alcance de permiso que una característica más nueva necesita. Lo ve más a menudo desde `/usage` y el indicador de uso de la línea de estado:

342 448 


348 454 

349* Ejecute `/login` para crear un nuevo token con los alcances actuales. No necesita cerrar sesión primero.455* Ejecute `/login` para crear un nuevo token con los alcances actuales. No necesita cerrar sesión primero.

350 456 

351## Errores de red y conexión457<h2 id="network-and-connection-errors">

458 Errores de red y conexión

459</h2>

352 460 

353Estos errores significan que una solicitud de red desde Claude Code no pudo alcanzar su destino. Generalmente se originan en su red local, proxy o firewall, o en la política de red del entorno en la nube.461Estos errores significan que una solicitud de red desde Claude Code no pudo alcanzar su destino. Generalmente se originan en su red local, proxy o firewall, o en la política de red del entorno en la nube.

354 462 

355### Unable to connect to API463<h3 id="unable-to-connect-to-api">

464 Unable to connect to API

465</h3>

356 466 

357La conexión TCP a la API falló o nunca se completó.467La conexión TCP a la API falló o nunca se completó.

358 468 


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

382* Docker Desktop y tiempos de ejecución de contenedores similares pueden interceptar tráfico saliente. Ciérrelos y reintente para descartar esto.492* Docker Desktop y tiempos de ejecución de contenedores similares pueden interceptar tráfico saliente. Ciérrelos y reintente para descartar esto.

383 493 

384### SSL certificate errors494<h3 id="ssl-certificate-errors">

495 SSL certificate errors

496</h3>

385 497 

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

387 499 


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

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

398 510 

399### Host not allowed in a cloud session511<h3 id="host-not-allowed-in-a-cloud-session">

512 Host not allowed in a cloud session

513</h3>

400 514 

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

402 516 


417 531 

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

419 533 

420## Errores de solicitud534<h2 id="request-errors">

535 Errores de solicitud

536</h2>

421 537 

422Estos errores significan que la API recibió su solicitud pero rechazó su contenido.538Estos errores significan que la API recibió su solicitud pero rechazó su contenido.

423 539 

424### Prompt is too long540<h3 id="prompt-is-too-long">

541 Prompt is too long

542</h3>

425 543 

426La conversación más los archivos adjuntos exceden la ventana de contexto del modelo.544La conversación más los archivos adjuntos exceden la ventana de contexto del modelo.

427 545 


440 558 

441Consulte [Explore the context window](/es/context-window) para una vista interactiva de cómo se llena el contexto.559Consulte [Explore the context window](/es/context-window) para una vista interactiva de cómo se llena el contexto.

442 560 

443### Error during compaction: Conversation too long561<h3 id="error-during-compaction-conversation-too-long">

562 Error during compaction: Conversation too long

563</h3>

444 564 

445`/compact` en sí falló porque no hay suficiente contexto libre para contener el resumen que produce.565`/compact` en sí falló porque no hay suficiente contexto libre para contener el resumen que produce.

446 566 


455* Presione Esc dos veces para abrir la lista de mensajes y retroceder varios turnos. Esto elimina los mensajes más recientes del contexto. Luego ejecute `/compact` de nuevo.575* Presione Esc dos veces para abrir la lista de mensajes y retroceder varios turnos. Esto elimina los mensajes más recientes del contexto. Luego ejecute `/compact` de nuevo.

456* Si retroceder no libera suficiente espacio, ejecute `/clear` para comenzar una sesión nueva. Su conversación anterior se conserva y se puede reabrirse con `/resume`.576* Si retroceder no libera suficiente espacio, ejecute `/clear` para comenzar una sesión nueva. Su conversación anterior se conserva y se puede reabrirse con `/resume`.

457 577 

458### Request too large578<h3 id="request-too-large">

579 Request too large

580</h3>

459 581 

460El cuerpo de solicitud sin procesar excedió el límite de bytes de la API antes de la tokenización, generalmente debido a un archivo o archivo adjunto grande pegado.582El cuerpo de solicitud sin procesar excedió el límite de bytes de la API antes de la tokenización, generalmente debido a un archivo o archivo adjunto grande pegado.

461 583 


471* Haga referencia a archivos grandes por ruta en lugar de pegar su contenido, para que Claude pueda leerlos en fragmentos593* Haga referencia a archivos grandes por ruta en lugar de pegar su contenido, para que Claude pueda leerlos en fragmentos

472* Para imágenes, consulte [Image was too large](#image-was-too-large) a continuación594* Para imágenes, consulte [Image was too large](#image-was-too-large) a continuación

473 595 

474### Image was too large596<h3 id="image-was-too-large">

597 Image was too large

598</h3>

475 599 

476Una imagen pegada o adjunta excede los límites de tamaño o dimensión de la API.600Una imagen pegada o adjunta excede los límites de tamaño o dimensión de la API.

477 601 


480API Error: 400 ... image dimensions exceed max allowed size604API Error: 400 ... image dimensions exceed max allowed size

481```605```

482 606 

483La imagen permanece en el historial de conversación después del error, por lo que cada mensaje posterior falla con el mismo error hasta que la elimine.607{/* min-version: 2.1.142 */}Claude Code reemplaza la imagen no procesable con un marcador de posición de texto e intenta de nuevo, por lo que los mensajes posteriores tienen éxito. En versiones anteriores a 2.1.142, una imagen pegada podría permanecer en la conversación y repetir el mismo error en cada mensaje posterior. Para recuperarse en esas versiones, presione Esc dos veces y retroceda más allá del turno donde se agregó la imagen.

484 608 

485**Qué hacer:**609**Qué hacer:**

486 610 

487* Presione Esc dos veces y retroceda más allá del turno donde se agregó la imagen

488* Cambie el tamaño de la imagen antes de pegarla. La API acepta imágenes de hasta 8000 píxeles en el borde más largo para una sola imagen, o 2000 píxeles cuando hay muchas imágenes en contexto.611* Cambie el tamaño de la imagen antes de pegarla. La API acepta imágenes de hasta 8000 píxeles en el borde más largo para una sola imagen, o 2000 píxeles cuando hay muchas imágenes en contexto.

489* Tome una captura de pantalla más ajustada de la región relevante en lugar de la pantalla completa612* Tome una captura de pantalla más ajustada de la región relevante en lugar de la pantalla completa

490 613 

491### Unable to resize image614<h3 id="unable-to-resize-image">

615 Unable to resize image

616</h3>

492 617 

493Claude Code no pudo reducir la escala de una imagen adjunta antes de enviarla a la API.618Claude Code no pudo reducir la escala de una imagen adjunta antes de enviarla a la API.

494 619 


506* Si el mensaje le pide que convierta la imagen, conviértala a PNG, JPEG, GIF o WebP y adjúntela de nuevo. Claude Code puede verificar dimensiones para estos formatos sin el procesador de imágenes.631* Si el mensaje le pide que convierta la imagen, conviértala a PNG, JPEG, GIF o WebP y adjúntela de nuevo. Claude Code puede verificar dimensiones para estos formatos sin el procesador de imágenes.

507* Si el mensaje informa un límite de dimensión o tamaño, redimensione o recomprima la imagen por debajo de ese límite antes de adjuntarla.632* Si el mensaje informa un límite de dimensión o tamaño, redimensione o recomprima la imagen por debajo de ese límite antes de adjuntarla.

508 633 

509### PDF errors634<h3 id="pdf-errors">

635 PDF errors

636</h3>

510 637 

511El PDF que adjuntó no se pudo procesar.638El PDF que adjuntó no se pudo procesar.

512 639 


521* Para PDF de tamaño excesivo, pida a Claude que lea un rango de páginas con la herramienta Read en lugar de adjuntar el archivo completo, o extraiga texto con una herramienta como `pdftotext` y haga referencia al archivo de salida por ruta648* Para PDF de tamaño excesivo, pida a Claude que lea un rango de páginas con la herramienta Read en lugar de adjuntar el archivo completo, o extraiga texto con una herramienta como `pdftotext` y haga referencia al archivo de salida por ruta

522* Para PDF protegidos o inválidos, elimine la contraseña o reexporte el archivo desde su aplicación de origen, luego intente de nuevo649* Para PDF protegidos o inválidos, elimine la contraseña o reexporte el archivo desde su aplicación de origen, luego intente de nuevo

523 650 

524### Extra inputs are not permitted651<h3 id="extra-inputs-are-not-permitted">

652 Extra inputs are not permitted

653</h3>

525 654 

526Un proxy o puerta de enlace LLM entre Claude Code y la API eliminó el encabezado de solicitud `anthropic-beta`, por lo que la API rechazó campos que dependen de él.655Un proxy o puerta de enlace LLM entre Claude Code y la API eliminó el encabezado de solicitud `anthropic-beta`, por lo que la API rechazó campos que dependen de él.

527 656 


538* Configure su puerta de enlace para reenviar el encabezado `anthropic-beta`. Consulte [LLM gateway configuration](/es/llm-gateway).667* Configure su puerta de enlace para reenviar el encabezado `anthropic-beta`. Consulte [LLM gateway configuration](/es/llm-gateway).

539* Como alternativa, configure [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](/es/env-vars) antes de lanzar. Esto deshabilita características que requieren el encabezado beta para que las solicitudes tengan éxito a través de una puerta de enlace que no puede reenviarlo.668* Como alternativa, configure [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](/es/env-vars) antes de lanzar. Esto deshabilita características que requieren el encabezado beta para que las solicitudes tengan éxito a través de una puerta de enlace que no puede reenviarlo.

540 669 

541### There's an issue with the selected model670<h3 id="there’s-an-issue-with-the-selected-model">

671 There's an issue with the selected model

672</h3>

542 673 

543El nombre del modelo configurado no fue reconocido o su cuenta carece de acceso a él. A partir de v2.1.160, la sugerencia final que se muestra aquí en su forma interactiva varía según la superficie.674{/* min-version: 2.1.160 */}El nombre del modelo configurado no fue reconocido o su cuenta carece de acceso a él. A partir de v2.1.160, la sugerencia final que se muestra aquí en su forma interactiva varía según la superficie.

544 675 

545```text theme={null}676```text theme={null}

546There's an issue with the selected model (claude-...). It may not exist or you may not have access to it. Run /model to pick a different model.677There's an issue with the selected model (claude-...). It may not exist or you may not have access to it. Run /model to pick a different model.


551* **CLI interactiva**: ejecute `/model` para elegir entre modelos disponibles para su cuenta.682* **CLI interactiva**: ejecute `/model` para elegir entre modelos disponibles para su cuenta.

552* **Modo no interactivo (`-p`)**: pase `--model` con un alias o ID válido, o configure [`ANTHROPIC_MODEL`](/es/env-vars). El texto de error muestra `Run --model` en esta superficie.683* **Modo no interactivo (`-p`)**: pase `--model` con un alias o ID válido, o configure [`ANTHROPIC_MODEL`](/es/env-vars). El texto de error muestra `Run --model` en esta superficie.

553* **Agent SDK**: el texto de error omite la sugerencia porque el modelo se establece mediante programación. Configure [`model` en `Options`](/es/agent-sdk/typescript#options) en TypeScript o [`ClaudeAgentOptions(model=...)`](/es/agent-sdk/python#claudeagentoptions) en Python, y maneje el error estructurado `model_not_found` para mostrar su propio selector de reintento o modelo.684* **Agent SDK**: el texto de error omite la sugerencia porque el modelo se establece mediante programación. Configure [`model` en `Options`](/es/agent-sdk/typescript#options) en TypeScript o [`ClaudeAgentOptions(model=...)`](/es/agent-sdk/python#claudeagentoptions) en Python, y maneje el error estructurado `model_not_found` para mostrar su propio selector de reintento o modelo.

554* Use un alias como `sonnet` u `opus` en lugar de un ID completamente versionado. Los alias rastrean la última versión para que no se vuelvan obsoletos. Consulte [Model configuration](/es/model-config).685* Use un alias como `sonnet` u `opus` en lugar de un ID completamente versionado. Los alias se resuelven a un valor predeterminado mantenido para que no se vuelvan obsoletos. Consulte [Model configuration](/es/model-config).

555* Si el modelo incorrecto sigue apareciendo en la CLI, un ID obsoleto se establece en algún lugar. Verifique en [orden de prioridad](/es/model-config#setting-your-model): la bandera `--model`, la variable de entorno `ANTHROPIC_MODEL`, luego el campo `model` en `.claude/settings.local.json`, el `.claude/settings.json` de su proyecto, y `~/.claude/settings.json`. Elimine el valor obsoleto y Claude Code vuelve a su valor predeterminado de cuenta.686* Si el modelo incorrecto sigue apareciendo en la CLI, un ID obsoleto se establece en algún lugar. Verifique en [orden de prioridad](/es/model-config#setting-your-model): la bandera `--model`, la variable de entorno `ANTHROPIC_MODEL`, luego el campo `model` en `.claude/settings.local.json`, el `.claude/settings.json` de su proyecto, y `~/.claude/settings.json`. Elimine el valor obsoleto y Claude Code vuelve a su valor predeterminado de cuenta.

556* Para implementaciones de Vertex AI, consulte [Vertex AI troubleshooting](/es/google-vertex-ai#troubleshooting).687* Para implementaciones de Vertex AI, consulte [Vertex AI troubleshooting](/es/google-vertex-ai#troubleshooting).

557 688 

558### Claude Opus is not available with the Claude Pro plan689<h3 id="claude-opus-is-not-available-with-the-claude-pro-plan">

690 Claude Opus is not available with the Claude Pro plan

691</h3>

559 692 

560Su plan de suscripción activo no incluye el modelo que seleccionó.693Su plan de suscripción activo no incluye el modelo que seleccionó.

561 694 


569* Si actualizó su plan recientemente y aún ve esto, ejecute `/logout` luego `/login`. El token almacenado refleja su plan en el momento en que inició sesión, por lo que actualizar en la web no entra en vigor en una sesión existente hasta que se vuelva a autenticar.702* Si actualizó su plan recientemente y aún ve esto, ejecute `/logout` luego `/login`. El token almacenado refleja su plan en el momento en que inició sesión, por lo que actualizar en la web no entra en vigor en una sesión existente hasta que se vuelva a autenticar.

570* Consulte [claude.com/pricing](https://claude.com/pricing) para ver qué modelos incluye cada plan703* Consulte [claude.com/pricing](https://claude.com/pricing) para ver qué modelos incluye cada plan

571 704 

572### thinking.type.enabled is not supported for this model705<h3 id="thinking-type-enabled-is-not-supported-for-this-model">

706 thinking.type.enabled is not supported for this model

707</h3>

573 708 

574Su versión de Claude Code es anterior a la mínima para Opus 4.7 u Opus 4.8. La CLI envió una configuración de pensamiento que el modelo ya no acepta.709Su versión de Claude Code es anterior a la mínima para Opus 4.7 u Opus 4.8. La CLI envió una configuración de pensamiento que el modelo ya no acepta.

575 710 


583* Si no puede actualizar, ejecute `/model` y seleccione Opus 4.6 o Sonnet en su lugar718* Si no puede actualizar, ejecute `/model` y seleccione Opus 4.6 o Sonnet en su lugar

584* Si lo encuentra en el Agent SDK, consulte [SDK troubleshooting](/es/agent-sdk/quickstart#troubleshooting)719* Si lo encuentra en el Agent SDK, consulte [SDK troubleshooting](/es/agent-sdk/quickstart#troubleshooting)

585 720 

586### Thinking budget exceeds output limit721<h3 id="thinking-budget-exceeds-output-limit">

722 Thinking budget exceeds output limit

723</h3>

587 724 

588El presupuesto de pensamiento extendido configurado excede la longitud de respuesta máxima, por lo que no hay espacio para la respuesta real.725El presupuesto de pensamiento extendido configurado excede la longitud de respuesta máxima, por lo que no hay espacio para la respuesta real.

589 726 


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

599* Consulte [Extended thinking](/es/model-config#extended-thinking) para saber cómo el presupuesto interactúa con la longitud de salida736* Consulte [Extended thinking](/es/model-config#extended-thinking) para saber cómo el presupuesto interactúa con la longitud de salida

600 737 

601### Tool use or thinking block mismatch738<h3 id="tool-use-or-thinking-block-mismatch">

739 Tool use or thinking block mismatch

740</h3>

602 741 

603El historial de conversación llegó a la API en un estado inconsistente, generalmente después de que se interrumpió una llamada de herramienta o se editó un turno a mitad de flujo.742El historial de conversación llegó a la API en un estado inconsistente, generalmente después de que se interrumpió una llamada de herramienta o se editó un turno a mitad de flujo.

604 743 


615* {/* max-version: 2.1.155 */}Si está usando Opus 4.7 u Opus 4.8, ejecute `claude update` primero. Las versiones anteriores a v2.1.156 pueden activar este error durante el uso normal de herramientas, y `/rewind` no lo borra.754* {/* max-version: 2.1.155 */}Si está usando Opus 4.7 u Opus 4.8, ejecute `claude update` primero. Las versiones anteriores a v2.1.156 pueden activar este error durante el uso normal de herramientas, y `/rewind` no lo borra.

616* Ejecute `/rewind`, o presione Esc dos veces, para retroceder a un checkpoint antes del turno corrupto y continuar desde allí. Consulte [Checkpointing](/es/checkpointing) para saber cómo se crean y restauran los checkpoints.755* Ejecute `/rewind`, o presione Esc dos veces, para retroceder a un checkpoint antes del turno corrupto y continuar desde allí. Consulte [Checkpointing](/es/checkpointing) para saber cómo se crean y restauran los checkpoints.

617 756 

618### Usage Policy refusal757<h3 id="usage-policy-refusal">

758 Usage Policy refusal

759</h3>

619 760 

620La API se negó a responder porque el contenido en la conversación activó una verificación de [Política de Uso](https://www.anthropic.com/legal/aup). El mensaje incluye un ID de Solicitud que puede citar al soporte si cree que la negativa es incorrecta.761La API se negó a responder porque el contenido en la conversación activó una verificación de [Política de Uso](https://www.anthropic.com/legal/aup). El mensaje incluye un ID de Solicitud que puede citar al soporte si cree que la negativa es incorrecta.

621 762 


629 770 

630* Presione Esc dos veces o ejecute `/rewind` para retroceder a un checkpoint antes del turno que activó la negativa, luego reformule o tome un enfoque diferente. Consulte [Checkpointing](/es/checkpointing).771* Presione Esc dos veces o ejecute `/rewind` para retroceder a un checkpoint antes del turno que activó la negativa, luego reformule o tome un enfoque diferente. Consulte [Checkpointing](/es/checkpointing).

631* Si no puede identificar qué turno lo causó, ejecute `/clear` para comenzar una conversación nueva en el mismo proyecto. Su conversación anterior se conserva en disco y permanece disponible en `/resume`.772* Si no puede identificar qué turno lo causó, ejecute `/clear` para comenzar una conversación nueva en el mismo proyecto. Su conversación anterior se conserva en disco y permanece disponible en `/resume`.

632* En [modo no interactivo](/es/headless) (`-p`), donde rewind no está disponible, reintente con una solicitud reformulada o comience una nueva sesión sin `--continue`.773* En [modo no interactivo](/es/headless) (`-p`), donde rewind no está disponible, reintente con una solicitud reformulada en una nueva sesión sin `--continue`. Las verificaciones de política varían según el modelo, por lo que cambiar a un modelo diferente con `--model` también puede resolver la negativa en algunos casos.

774 

775<h2 id="responses-seem-lower-quality-than-usual">

776 Las respuestas parecen de menor calidad de lo habitual

777</h2>

778 

779Si las respuestas de Claude parecen menos capaces de lo que espera pero no se muestra ningún error, la causa suele ser el estado de la conversación en lugar del modelo en sí. Claude Code no cambia silenciosamente las versiones del modelo. Puede cambiar a un modelo alternativo en tres casos específicos:

633 780 

634## Las respuestas parecen de menor calidad de lo habitual781* Un [`--fallback-model`](/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

782* Una verificación de inicio de Bedrock o Vertex AI encuentra su modelo predeterminado no disponible

783* [Automatic model fallback](/es/model-config#automatic-model-fallback) en Fable 5 mueve la sesión al modelo Opus predeterminado y muestra un aviso en la transcripción

635 784 

636Si las respuestas de Claude parecen menos capaces de lo que espera pero no se muestra ningún error, la causa suele ser el estado de la conversación en lugar del modelo en sí. Claude Code no cambia silenciosamente las versiones del modelo. Puede cambiar a un modelo alternativo en casos específicos como cuando se alcanza una cuota de Opus o cuando una región de Bedrock o Vertex AI carece de su modelo; la verificación de selección de modelo a continuación detecta ambos, y [Model configuration](/es/model-config) explica cuándo se aplica la alternativa.785La 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`. [Model configuration](/es/model-config) explica cuándo se aplica cada alternativa.

637 786 

638Verifique estos primero:787Verifique estos primero:

639 788 


646 795 

647Si la calidad aún parece incorrecta después de verificar lo anterior, ejecute `/feedback` y describa lo que esperaba versus lo que obtuvo. La retroalimentación enviada de esta manera incluye la transcripción de la conversación, que es la forma más rápida para que Anthropic diagnostique una regresión real. Consulte [Report an error](#report-an-error) si `/feedback` no está disponible en su entorno.796Si la calidad aún parece incorrecta después de verificar lo anterior, ejecute `/feedback` y describa lo que esperaba versus lo que obtuvo. La retroalimentación enviada de esta manera incluye la transcripción de la conversación, que es la forma más rápida para que Anthropic diagnostique una regresión real. Consulte [Report an error](#report-an-error) si `/feedback` no está disponible en su entorno.

648 797 

649## Reportar un error798<h2 id="report-an-error">

799 Reportar un error

800</h2>

650 801 

651Esta página cubre errores de la API de Claude. Para errores de otros componentes de Claude Code, consulte la guía relevante:802Esta página cubre errores de la API de Claude. Para errores de otros componentes de Claude Code, consulte la guía relevante:

652 803 

fast-mode.md +2 −2

Details

25Lo que debes saber:25Lo que debes saber:

26 26 

27* Usa `/fast` para activar o desactivar el modo rápido en Claude Code CLI. El modo rápido no es compatible con la extensión VS Code.27* Usa `/fast` para activar o desactivar el modo rápido en Claude Code CLI. El modo rápido no es compatible con la extensión VS Code.

28* Los precios del modo rápido son \$10/\$50 MTok en Opus 4.8 y \$30/\$150 MTok en Opus 4.7 y Opus 4.6.28* Los precios del modo rápido por MTok de entrada/salida son \$10/\$50 en Opus 4.8 y \$30/\$150 en Opus 4.7 y Opus 4.6.

29* Disponible para todos los usuarios de Claude Code en planes de suscripción (Pro/Max/Team/Enterprise) y Claude Console.29* Disponible para todos los usuarios de Claude Code en planes de suscripción (Pro/Max/Team/Enterprise) y Claude Console.

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

31 31 


115* **Habilitación del administrador para Team y Enterprise**: el modo rápido está deshabilitado de forma predeterminada para organizaciones Team y Enterprise. Un administrador debe [habilitar explícitamente el modo rápido](#enable-fast-mode-for-your-organization) antes de que los usuarios puedan acceder a él.115* **Habilitación del administrador para Team y Enterprise**: el modo rápido está deshabilitado de forma predeterminada para organizaciones Team y Enterprise. Un administrador debe [habilitar explícitamente el modo rápido](#enable-fast-mode-for-your-organization) antes de que los usuarios puedan acceder a él.

116 116 

117<Note>117<Note>

118 Si su administrador no ha habilitado el modo rápido para su organización, el comando `/fast` mostrará "Fast mode has been disabled by your organization."118 Si su administrador no ha habilitado el modo rápido para su organización, el comando `/fast` mostrará "Fast mode has been disabled by your organization." Si la lista de permitidos [`availableModels`](/es/model-config#restrict-model-selection) de su organización excluye el modelo Opus del modo rápido, `/fast` se rechaza con "is not in your organization's allowed models".

119</Note>119</Note>

120 120 

121<h3 id="enable-fast-mode-for-your-organization">121<h3 id="enable-fast-mode-for-your-organization">

Details

109 109 

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

111 111 

112 **Regla general:** Mantenga CLAUDE.md bajo 200 líneas. Si está creciendo, mueva contenido de referencia a skills o divida en archivos [`.claude/rules/`](/es/memory#organize-rules-with-clauderules).112 **Regla general:** Mantenga CLAUDE.md bajo 200 líneas. Si está creciendo, mueva contenido de referencia a skills o divida en archivos [`.claude/rules/`](/es/memory#organize-rules-with-claude%2Frules%2F).

113 </Tab>113 </Tab>

114 114 

115 <Tab title="CLAUDE.md vs Rules vs Skills">115 <Tab title="CLAUDE.md vs Rules vs Skills">


198 198 

199Las 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:199Las 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:

200 200 

201* **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](/es/memory#how-claudemd-files-load).201* **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](/es/memory#how-claude-md-files-load).

202* **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](/es/plugins#add-skills-to-your-plugin) para evitar conflictos. Consulte [descubrimiento de skills](/es/skills#where-skills-live) y [alcance de subagent](/es/sub-agents#choose-the-subagent-scope).202* **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](/es/plugins#add-skills-to-your-plugin) para evitar conflictos. Consulte [descubrimiento de skills](/es/skills#where-skills-live) y [alcance de subagent](/es/sub-agents#choose-the-subagent-scope).

203* **Los servidores MCP** se anulan por nombre: local > proyecto > usuario. Consulte [alcance de MCP](/es/mcp#scope-hierarchy-and-precedence).203* **Los servidores MCP** se anulan por nombre: local > proyecto > usuario. Consulte [alcance de MCP](/es/mcp#scope-hierarchy-and-precedence).

204* **Los hooks** se fusionan: todos los hooks registrados se disparan para sus eventos coincidentes independientemente de la fuente. Consulte [hooks](/es/hooks).204* **Los hooks** se fusionan: todos los hooks registrados se disparan para sus eventos coincidentes independientemente de la fuente. Consulte [hooks](/es/hooks).


255 255 

256 **Qué se carga:** Contenido completo de todos los archivos CLAUDE.md (niveles administrado, usuario y proyecto).256 **Qué se carga:** Contenido completo de todos los archivos CLAUDE.md (niveles administrado, usuario y proyecto).

257 257 

258 **Herencia:** Claude lee archivos CLAUDE.md de su directorio de trabajo hasta la raíz, y descubre los anidados en subdirectorios mientras accede a esos archivos. Consulte [Cómo se cargan los archivos CLAUDE.md](/es/memory#how-claudemd-files-load) para obtener detalles.258 **Herencia:** Claude lee archivos CLAUDE.md de su directorio de trabajo hasta la raíz, y descubre los anidados en subdirectorios mientras accede a esos archivos. Consulte [Cómo se cargan los archivos CLAUDE.md](/es/memory#how-claude-md-files-load) para obtener detalles.

259 259 

260 <Tip>Mantenga CLAUDE.md bajo 200 líneas. Mueva material de referencia a skills, que se cargan bajo demanda.</Tip>260 <Tip>Mantenga CLAUDE.md bajo 200 líneas. Mueva material de referencia a skills, que se cargan bajo demanda.</Tip>

261 </Tab>261 </Tab>

fullscreen.md +22 −3

Details

104export CLAUDE_CODE_SCROLL_SPEED=3104export CLAUDE_CODE_SCROLL_SPEED=3

105```105```

106 106 

107Un valor de `3` coincide con el predeterminado en `vim` y aplicaciones similares. La configuración acepta valores de 1 a 20.107Un valor de `3` coincide con el predeterminado en `vim` y aplicaciones similares. La configuración acepta valores de 1 a 20, y valores fraccionarios por debajo de 1 como `0.5` para ralentizar el desplazamiento acelerado del trackpad y la rueda en terminales que ya amplifican eventos de rueda.

108 108 

109Para ajustar la velocidad de desplazamiento de forma interactiva, ejecute `/scroll-speed`. El diálogo muestra una regla que puede desplazar mientras está abierto para que pueda sentir el cambio inmediatamente. Presione `←` y `→` para ajustar, `r` para restablecer al valor predeterminado detectado automáticamente, e `Intro` para guardar. El comando escribe el mismo valor que establece la variable de entorno `CLAUDE_CODE_SCROLL_SPEED`, persistido en `~/.claude/settings.json`. El comando no está disponible en la terminal del IDE de JetBrains.109Para ajustar la velocidad de desplazamiento de forma interactiva, ejecute `/scroll-speed`. El diálogo muestra una regla que puede desplazar mientras está abierto para que pueda sentir el cambio inmediatamente. Presione `←` y `→` para ajustar, `r` para restablecer al valor predeterminado detectado automáticamente, e `Intro` para guardar. El comando escribe el mismo valor que establece la variable de entorno `CLAUDE_CODE_SCROLL_SPEED`, persistido en `~/.claude/settings.json`. El comando no está disponible en la terminal del IDE de JetBrains.

110 110 

111Independientemente de la velocidad base, Claude Code acelera la velocidad de desplazamiento cuando gira la rueda rápidamente, por lo que un giro rápido cubre más distancia que el mismo número de muescas lentas. Para desactivar la aceleración y mantener una velocidad constante por muesca, establezca `wheelScrollAccelerationEnabled` en `false` en [`settings.json`](/es/settings#available-settings). Esta configuración requiere Claude Code v2.1.174 o posterior.

112 

111<h3 id="scroll-in-the-jetbrains-ide-terminal">113<h3 id="scroll-in-the-jetbrains-ide-terminal">

112 Desplazamiento en la terminal del IDE de JetBrains114 Desplazamiento en la terminal del IDE de JetBrains

113</h3>115</h3>


171 173 

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

173 175 

174Claude Code intenta escribir la selección en su portapapeles, pero la ruta que utiliza depende de su configuración. Dentro de tmux escribe en el búfer de pegado de tmux. Sobre SSH se vuelve a secuencias de escape OSC 52, que algunos terminales bloquean de forma predeterminada. iTerm2 las bloquea hasta que active Configuración → General → Selección → Las aplicaciones en el terminal pueden acceder al portapapeles. Ejecutar [`/terminal-setup`](/es/terminal-config) en iTerm2 habilita esto para usted. Claude Code imprime un aviso después de cada copia diciéndole qué ruta utilizó.176Claude Code escribe la selección en su portapapeles del sistema, y la ruta que utiliza depende de su configuración. En una sesión local ejecuta una herramienta de portapapeles nativa:

177 

178* **macOS**: `pbcopy`

179* **Linux**: `wl-copy` en Wayland, o `xclip` o `xsel` en X11, lo que esté instalado. Claude Code escribe tanto el portapapeles como la selección PRIMARY, por lo que el pegado con botón central funciona.

180* **Windows y WSL**: PowerShell `Set-Clipboard`

181 

182Dentro de tmux también escribe en el búfer de pegado de tmux. Sobre SSH se vuelve a secuencias de escape OSC 52. Claude Code imprime un aviso después de cada copia diciéndole qué ruta utilizó.

183 

184Algunos terminales bloquean OSC 52 de forma predeterminada. iTerm2 lo bloquea hasta que active Configuración → General → Selección → Las aplicaciones en el terminal pueden acceder al portapapeles; ejecutar [`/terminal-setup`](/es/terminal-config) en iTerm2 habilita esto para usted.

185 

186Para una selección nativa puntual, la tecla a utilizar depende de su terminal:

187 

188* **Terminal.app**: `Fn`

189* **iTerm2**: `Option`

190* **VS Code, Cursor y Devin Desktop**: `Shift`, u `Option` en macOS con la configuración `terminal.integrated.macOptionClickForcesSelection` habilitada

191* **La mayoría de otros terminales**: `Shift`

192 

193Mantenga presionada esa tecla mientras hace clic y arrastra. Su terminal maneja la selección por sí mismo en lugar de pasarla a Claude Code, por lo que atajos de copia como `Cmd+C` funcionan en lo que selecciona. Claude Code también muestra la tecla correcta en su sugerencia en pantalla.

175 194 

176Para una selección nativa puntual, mantenga presionado el modificador de omisión de su terminal mientras hace clic y arrastra: `Option` en iTerm2, o `Shift` en la mayoría de terminales de Linux y Windows. El modificador le indica a su terminal que maneje la selección por sí mismo en lugar de reenviar eventos de ratón a Claude Code, por lo que `Cmd+C` y otros atajos de copia de su terminal funcionan en ella.195Sobre SSH o dentro de tmux, Claude Code no siempre puede detectar el terminal desde el que se está conectando, por lo que la sugerencia enumera las teclas candidatas en su lugar.

177 196 

178Si confía en la selección nativa todo el tiempo, establezca `CLAUDE_CODE_DISABLE_MOUSE=1` para optar por no participar en la captura de ratón mientras mantiene el renderizado sin parpadeos y la memoria plana:197Si confía en la selección nativa todo el tiempo, establezca `CLAUDE_CODE_DISABLE_MOUSE=1` para optar por no participar en la captura de ratón mientras mantiene el renderizado sin parpadeos y la memoria plana:

179 198 

github-actions.md +102 −38

Details

12 Claude Code GitHub Actions se construye sobre el [Claude Agent SDK](/es/agent-sdk/overview), que permite la integración programática de Claude Code en sus aplicaciones. Puede usar el SDK para crear flujos de trabajo de automatización personalizados más allá de GitHub Actions.12 Claude Code GitHub Actions se construye sobre el [Claude Agent SDK](/es/agent-sdk/overview), que permite la integración programática de Claude Code en sus aplicaciones. Puede usar el SDK para crear flujos de trabajo de automatización personalizados más allá de GitHub Actions.

13</Note>13</Note>

14 14 

15<Info>15<h2 id="why-use-claude-code-github-actions">

16 **Claude Opus 4.8 ya está disponible.** Claude Code GitHub Actions utiliza Sonnet de forma predeterminada. Para usar Opus 4.8, configure el [parámetro de modelo](#breaking-changes-reference) para usar `claude-opus-4-8`.16 ¿Por qué usar Claude Code GitHub Actions?

17</Info>17</h2>

18 

19## ¿Por qué usar Claude Code GitHub Actions?

20 18 

21* **Creación instantánea de PR**: Describa lo que necesita y Claude crea un PR completo con todos los cambios necesarios19* **Creación instantánea de PR**: Describa lo que necesita y Claude crea un PR completo con todos los cambios necesarios

22* **Implementación de código automatizada**: Convierta problemas en código funcional con un único comando20* **Implementación de código automatizada**: Convierta problemas en código funcional con un único comando


24* **Configuración simple**: Comience en minutos con nuestro instalador y clave API22* **Configuración simple**: Comience en minutos con nuestro instalador y clave API

25* **Seguro por defecto**: Su código permanece en los ejecutores de Github23* **Seguro por defecto**: Su código permanece en los ejecutores de Github

26 24 

27## ¿Qué puede hacer Claude?25<h2 id="what-can-claude-do">

26 ¿Qué puede hacer Claude?

27</h2>

28 28 

29Claude Code proporciona una poderosa GitHub Action que transforma la forma en que trabaja con código:29Claude Code proporciona una poderosa GitHub Action que transforma la forma en que trabaja con código:

30 30 

31### Claude Code Action31<h3 id="claude-code-action">

32 Claude Code Action

33</h3>

32 34 

33Esta GitHub Action le permite ejecutar Claude Code dentro de sus flujos de trabajo de GitHub Actions. Puede usar esto para crear cualquier flujo de trabajo personalizado sobre Claude Code.35Esta GitHub Action le permite ejecutar Claude Code dentro de sus flujos de trabajo de GitHub Actions. Puede usar esto para crear cualquier flujo de trabajo personalizado sobre Claude Code.

34 36 

35[Ver repositorio →](https://github.com/anthropics/claude-code-action)37[Ver repositorio →](https://github.com/anthropics/claude-code-action)

36 38 

37## Configuración39<h2 id="setup">

40 Configuración

41</h2>

38 42 

39## Configuración rápida43<h2 id="quick-setup">

44 Configuración rápida

45</h2>

40 46 

41La forma más fácil de configurar esta acción es a través de Claude Code en la terminal. Solo abra claude y ejecute `/install-github-app`.47La forma más fácil de configurar esta acción es a través de Claude Code en la terminal. Solo abra claude y ejecute `/install-github-app`.

42 48 


48 * Este método de inicio rápido solo está disponible para usuarios directos de Claude API. Si está usando Amazon Bedrock o Google Vertex AI, consulte la sección [Usar con Amazon Bedrock y Google Vertex AI](#using-with-amazon-bedrock-%26-google-vertex-ai).54 * Este método de inicio rápido solo está disponible para usuarios directos de Claude API. Si está usando Amazon Bedrock o Google Vertex AI, consulte la sección [Usar con Amazon Bedrock y Google Vertex AI](#using-with-amazon-bedrock-%26-google-vertex-ai).

49</Note>55</Note>

50 56 

51## Configuración manual57<h2 id="manual-setup">

58 Configuración manual

59</h2>

52 60 

53Si el comando `/install-github-app` falla o prefiere la configuración manual, siga estas instrucciones de configuración manual:61Si el comando `/install-github-app` falla o prefiere la configuración manual, siga estas instrucciones de configuración manual:

54 62 


68 Después de completar la configuración rápida o manual, pruebe la acción etiquetando `@claude` en un comentario de problema o PR.76 Después de completar la configuración rápida o manual, pruebe la acción etiquetando `@claude` en un comentario de problema o PR.

69</Tip>77</Tip>

70 78 

71## Actualización desde Beta79<h2 id="upgrading-from-beta">

80 Actualización desde Beta

81</h2>

72 82 

73<Warning>83<Warning>

74 Claude Code GitHub Actions v1.0 introduce cambios importantes que requieren actualizar sus archivos de flujo de trabajo para actualizar a v1.0 desde la versión beta.84 Claude Code GitHub Actions v1.0 introduce cambios importantes que requieren actualizar sus archivos de flujo de trabajo para actualizar a v1.0 desde la versión beta.


76 86 

77Si actualmente está usando la versión beta de Claude Code GitHub Actions, le recomendamos que actualice sus flujos de trabajo para usar la versión GA. La nueva versión simplifica la configuración mientras agrega características poderosas como la detección automática de modo.87Si actualmente está usando la versión beta de Claude Code GitHub Actions, le recomendamos que actualice sus flujos de trabajo para usar la versión GA. La nueva versión simplifica la configuración mientras agrega características poderosas como la detección automática de modo.

78 88 

79### Cambios esenciales89<h3 id="essential-changes">

90 Cambios esenciales

91</h3>

80 92 

81Todos los usuarios de beta deben hacer estos cambios en sus archivos de flujo de trabajo para actualizar:93Todos los usuarios de beta deben hacer estos cambios en sus archivos de flujo de trabajo para actualizar:

82 94 


853. **Actualice las entradas de solicitud**: Reemplace `direct_prompt` con `prompt`973. **Actualice las entradas de solicitud**: Reemplace `direct_prompt` con `prompt`

864. **Mueva opciones de CLI**: Convierta `max_turns`, `model`, `custom_instructions`, etc. a `claude_args`984. **Mueva opciones de CLI**: Convierta `max_turns`, `model`, `custom_instructions`, etc. a `claude_args`

87 99 

88### Referencia de cambios importantes100<h3 id="breaking-changes-reference">

101 Referencia de cambios importantes

102</h3>

89 103 

90| Entrada Beta antigua | Nueva entrada v1.0 |104| Entrada Beta antigua | Nueva entrada v1.0 |

91| --------------------- | ------------------------------------------ |105| --------------------- | ------------------------------------------ |


99| `disallowed_tools` | `claude_args: --disallowedTools` |113| `disallowed_tools` | `claude_args: --disallowedTools` |

100| `claude_env` | `settings` formato JSON |114| `claude_env` | `settings` formato JSON |

101 115 

102### Ejemplo antes y después116<h3 id="before-and-after-example">

117 Ejemplo antes y después

118</h3>

103 119 

104**Versión beta:**120**Versión beta:**

105 121 


131 La acción ahora detecta automáticamente si ejecutar en modo interactivo (responde a menciones `@claude`) o modo de automatización (se ejecuta inmediatamente con un solicitud) según su configuración.147 La acción ahora detecta automáticamente si ejecutar en modo interactivo (responde a menciones `@claude`) o modo de automatización (se ejecuta inmediatamente con un solicitud) según su configuración.

132</Tip>148</Tip>

133 149 

134## Casos de uso de ejemplo150<h2 id="example-use-cases">

151 Casos de uso de ejemplo

152</h2>

135 153 

136Claude Code GitHub Actions puede ayudarle con una variedad de tareas. El [directorio de ejemplos](https://github.com/anthropics/claude-code-action/tree/main/examples) contiene flujos de trabajo listos para usar para diferentes escenarios.154Claude Code GitHub Actions puede ayudarle con una variedad de tareas. El [directorio de ejemplos](https://github.com/anthropics/claude-code-action/tree/main/examples) contiene flujos de trabajo listos para usar para diferentes escenarios.

137 155 

138### Flujo de trabajo básico156<h3 id="basic-workflow">

157 Flujo de trabajo básico

158</h3>

139 159 

140```yaml theme={null}160```yaml theme={null}

141name: Claude Code161name: Claude Code


154 # Responds to @claude mentions in comments174 # Responds to @claude mentions in comments

155```175```

156 176 

157### Usar skills177<h3 id="using-skills">

178 Usar skills

179</h3>

158 180 

159La entrada `prompt` acepta una [invocación de skill](/es/skills) así como texto sin formato:181La entrada `prompt` acepta una [invocación de skill](/es/skills) así como texto sin formato:

160 182 


180 prompt: "/code-review:code-review ${{ github.repository }}/pull/${{ github.event.pull_request.number }}"202 prompt: "/code-review:code-review ${{ github.repository }}/pull/${{ github.event.pull_request.number }}"

181```203```

182 204 

183### Automatización personalizada con solicitudes205<h3 id="custom-automation-with-prompts">

206 Automatización personalizada con solicitudes

207</h3>

184 208 

185```yaml theme={null}209```yaml theme={null}

186name: Daily Report210name: Daily Report


198 claude_args: "--model opus"222 claude_args: "--model opus"

199```223```

200 224 

201### Casos de uso comunes225<h3 id="common-use-cases">

226 Casos de uso comunes

227</h3>

202 228 

203En comentarios de problema o PR:229En comentarios de problema o PR:

204 230 


210 236 

211Claude analizará automáticamente el contexto y responderá apropiadamente.237Claude analizará automáticamente el contexto y responderá apropiadamente.

212 238 

213## Mejores prácticas239<h2 id="best-practices">

240 Mejores prácticas

241</h2>

214 242 

215### Configuración de CLAUDE.md243<h3 id="claude-md-configuration">

244 Configuración de CLAUDE.md

245</h3>

216 246 

217Cree un archivo `CLAUDE.md` en la raíz de su repositorio para definir directrices de estilo de código, criterios de revisión, reglas específicas del proyecto y patrones preferidos. Este archivo guía la comprensión de Claude de los estándares de su proyecto.247Cree un archivo `CLAUDE.md` en la raíz de su repositorio para definir directrices de estilo de código, criterios de revisión, reglas específicas del proyecto y patrones preferidos. Este archivo guía la comprensión de Claude de los estándares de su proyecto.

218 248 

219### Consideraciones de seguridad249<h3 id="security-considerations">

250 Consideraciones de seguridad

251</h3>

220 252 

221<Warning>Nunca confirme claves API directamente en su repositorio.</Warning>253<Warning>Nunca confirme claves API directamente en su repositorio.</Warning>

222 254 


231 263 

232Siempre use GitHub Secrets (por ejemplo, `${{ secrets.ANTHROPIC_API_KEY }}`) en lugar de codificar claves API directamente en sus archivos de flujo de trabajo.264Siempre use GitHub Secrets (por ejemplo, `${{ secrets.ANTHROPIC_API_KEY }}`) en lugar de codificar claves API directamente en sus archivos de flujo de trabajo.

233 265 

234### Optimización del rendimiento266<h3 id="optimizing-performance">

267 Optimización del rendimiento

268</h3>

235 269 

236Use plantillas de problemas para proporcionar contexto, mantenga su `CLAUDE.md` conciso y enfocado, y configure tiempos de espera apropiados para sus flujos de trabajo.270Use plantillas de problemas para proporcionar contexto, mantenga su `CLAUDE.md` conciso y enfocado, y configure tiempos de espera apropiados para sus flujos de trabajo.

237 271 

238### Costos de CI272<h3 id="ci-costs">

273 Costos de CI

274</h3>

239 275 

240Al usar Claude Code GitHub Actions, tenga en cuenta los costos asociados:276Al usar Claude Code GitHub Actions, tenga en cuenta los costos asociados:

241 277 


257* Establezca tiempos de espera a nivel de flujo de trabajo para evitar trabajos descontrolados293* Establezca tiempos de espera a nivel de flujo de trabajo para evitar trabajos descontrolados

258* Considere usar controles de concurrencia de GitHub para limitar ejecuciones paralelas294* Considere usar controles de concurrencia de GitHub para limitar ejecuciones paralelas

259 295 

260## Ejemplos de configuración296<h2 id="configuration-examples">

297 Ejemplos de configuración

298</h2>

261 299 

262Claude Code Action v1 simplifica la configuración con parámetros unificados:300Claude Code Action v1 simplifica la configuración con parámetros unificados:

263 301 


282 Al responder a comentarios de problema o PR, Claude responde automáticamente a menciones @claude. Para otros eventos, use el parámetro `prompt` para proporcionar instrucciones.320 Al responder a comentarios de problema o PR, Claude responde automáticamente a menciones @claude. Para otros eventos, use el parámetro `prompt` para proporcionar instrucciones.

283</Tip>321</Tip>

284 322 

285## Usar con Amazon Bedrock y Google Vertex AI323<h2 id="using-with-amazon-bedrock--google-vertex-ai">

324 Usar con Amazon Bedrock y Google Vertex AI

325</h2>

286 326 

287Para entornos empresariales, puede usar Claude Code GitHub Actions con su propia infraestructura en la nube. Este enfoque le da control sobre la residencia de datos y la facturación mientras mantiene la misma funcionalidad.327Para entornos empresariales, puede usar Claude Code GitHub Actions con su propia infraestructura en la nube. Este enfoque le da control sobre la residencia de datos y la facturación mientras mantiene la misma funcionalidad.

288 328 

289### Requisitos previos329<h3 id="prerequisites">

330 Requisitos previos

331</h3>

290 332 

291Antes de configurar Claude Code GitHub Actions con proveedores en la nube, necesita:333Antes de configurar Claude Code GitHub Actions con proveedores en la nube, necesita:

292 334 

293#### Para Google Cloud Vertex AI:335<h4 id="for-google-cloud-vertex-ai">

336 Para Google Cloud Vertex AI:

337</h4>

294 338 

2951. Un proyecto de Google Cloud con Vertex AI habilitado3391. Un proyecto de Google Cloud con Vertex AI habilitado

2962. Federación de identidad de carga de trabajo configurada para GitHub Actions3402. Federación de identidad de carga de trabajo configurada para GitHub Actions

2973. Una cuenta de servicio con los permisos requeridos3413. Una cuenta de servicio con los permisos requeridos

2984. Una aplicación de GitHub (recomendado) o use el GITHUB\_TOKEN predeterminado3424. Una aplicación de GitHub (recomendado) o use el GITHUB\_TOKEN predeterminado

299 343 

300#### Para Amazon Bedrock:344<h4 id="for-amazon-bedrock">

345 Para Amazon Bedrock:

346</h4>

301 347 

3021. Una cuenta de AWS con Amazon Bedrock habilitado3481. Una cuenta de AWS con Amazon Bedrock habilitado

3032. Proveedor de identidad OIDC de GitHub configurado en AWS3492. Proveedor de identidad OIDC de GitHub configurado en AWS


609 </Step>655 </Step>

610</Steps>656</Steps>

611 657 

612## Solución de problemas658<h2 id="troubleshooting">

659 Solución de problemas

660</h2>

613 661 

614### Claude no responde a comandos @claude662<h3 id="claude-not-responding-to-claude-commands">

663 Claude no responde a comandos @claude

664</h3>

615 665 

616Verifique que la aplicación de GitHub esté instalada correctamente, compruebe que los flujos de trabajo estén habilitados, asegúrese de que la clave API esté configurada en los secretos del repositorio y confirme que el comentario contenga `@claude` (no `/claude`).666Verifique que la aplicación de GitHub esté instalada correctamente, compruebe que los flujos de trabajo estén habilitados, asegúrese de que la clave API esté configurada en los secretos del repositorio y confirme que el comentario contenga `@claude` (no `/claude`).

617 667 

618### CI no se ejecuta en los commits de Claude668<h3 id="ci-not-running-on-claude’s-commits">

669 CI no se ejecuta en los commits de Claude

670</h3>

619 671 

620Asegúrese de estar usando la aplicación de GitHub o una aplicación personalizada (no el usuario de Acciones), verifique que los disparadores de flujo de trabajo incluyan los eventos necesarios y confirme que los permisos de la aplicación incluyan disparadores de CI.672Asegúrese de estar usando la aplicación de GitHub o una aplicación personalizada (no el usuario de Acciones), verifique que los disparadores de flujo de trabajo incluyan los eventos necesarios y confirme que los permisos de la aplicación incluyan disparadores de CI.

621 673 

622### Errores de autenticación674<h3 id="authentication-errors">

675 Errores de autenticación

676</h3>

623 677 

624Confirme que la clave API sea válida y tenga permisos suficientes. Para Bedrock/Vertex, verifique la configuración de credenciales y asegúrese de que los secretos tengan los nombres correctos en los flujos de trabajo.678Confirme que la clave API sea válida y tenga permisos suficientes. Para Bedrock/Vertex, verifique la configuración de credenciales y asegúrese de que los secretos tengan los nombres correctos en los flujos de trabajo.

625 679 

626## Configuración avanzada680<h2 id="advanced-configuration">

681 Configuración avanzada

682</h2>

627 683 

628### Parámetros de acción684<h3 id="action-parameters">

685 Parámetros de acción

686</h3>

629 687 

630Claude Code Action v1 utiliza una configuración simplificada:688Claude Code Action v1 utiliza una configuración simplificada:

631 689 


644\*Prompt es opcional - cuando se omite para comentarios de problema/PR, Claude responde a la frase de disparo\702\*Prompt es opcional - cuando se omite para comentarios de problema/PR, Claude responde a la frase de disparo\

645\*\*Requerido para Claude API directo, no para Bedrock/Vertex703\*\*Requerido para Claude API directo, no para Bedrock/Vertex

646 704 

647#### Pasar argumentos de CLI705<h4 id="pass-cli-arguments">

706 Pasar argumentos de CLI

707</h4>

648 708 

649El parámetro `claude_args` acepta cualquier argumento de CLI de Claude Code:709El parámetro `claude_args` acepta cualquier argumento de CLI de Claude Code:

650 710 


660* `--allowedTools`: Lista separada por comas de herramientas permitidas. El alias `--allowed-tools` también funciona.720* `--allowedTools`: Lista separada por comas de herramientas permitidas. El alias `--allowed-tools` también funciona.

661* `--debug`: Habilitar salida de depuración721* `--debug`: Habilitar salida de depuración

662 722 

663### Métodos de integración alternativos723<h3 id="alternative-integration-methods">

724 Métodos de integración alternativos

725</h3>

664 726 

665Aunque el comando `/install-github-app` es el enfoque recomendado, también puede:727Aunque el comando `/install-github-app` es el enfoque recomendado, también puede:

666 728 


670 732 

671Consulte la [documentación de Claude Code Action](https://github.com/anthropics/claude-code-action/blob/main/docs) para obtener guías detalladas sobre autenticación, seguridad y configuración avanzada.733Consulte la [documentación de Claude Code Action](https://github.com/anthropics/claude-code-action/blob/main/docs) para obtener guías detalladas sobre autenticación, seguridad y configuración avanzada.

672 734 

673### Personalizar el comportamiento de Claude735<h3 id="customizing-claude’s-behavior">

736 Personalizar el comportamiento de Claude

737</h3>

674 738 

675Puede configurar el comportamiento de Claude de dos formas:739Puede configurar el comportamiento de Claude de dos formas:

676 740 

Details

205 Instancia de GHES no accesible205 Instancia de GHES no accesible

206</h3>206</h3>

207 207 

208Si las revisiones o sesiones web se agotan, su instancia de GHES puede no ser accesible desde la infraestructura de Anthropic. Confirme que su firewall permite conexiones entrantes desde las [direcciones IP de la API de Anthropic](https://platform.claude.com/docs/en/api/ip-addresses).208Si las revisiones o sesiones web se agotan, su instancia de GHES puede no ser accesible desde la infraestructura de Anthropic. Confirme que su firewall permite conexiones entrantes desde las [direcciones IP de la API de Anthropic](https://platform.claude.com/docs/es/api/ip-addresses).

209 209 

210<h2 id="related-resources">210<h2 id="related-resources">

211 Recursos relacionados211 Recursos relacionados

gitlab-ci-cd.md +85 −29

Details

16 Esta integración se basa en el [Claude Code CLI y Agent SDK](/es/agent-sdk/overview), lo que permite el uso programático de Claude en sus trabajos de CI/CD y flujos de trabajo de automatización personalizados.16 Esta integración se basa en el [Claude Code CLI y Agent SDK](/es/agent-sdk/overview), lo que permite el uso programático de Claude en sus trabajos de CI/CD y flujos de trabajo de automatización personalizados.

17</Note>17</Note>

18 18 

19## ¿Por qué usar Claude Code con GitLab?19<h2 id="why-use-claude-code-with-gitlab">

20 ¿Por qué usar Claude Code con GitLab?

21</h2>

20 22 

21* **Creación instantánea de MR**: Describa lo que necesita, y Claude propone un MR completo con cambios y explicación23* **Creación instantánea de MR**: Describa lo que necesita, y Claude propone un MR completo con cambios y explicación

22* **Implementación automatizada**: Convierta problemas en código funcional con un único comando o mención24* **Implementación automatizada**: Convierta problemas en código funcional con un único comando o mención


25* **Listo para empresas**: Elija Claude API, Amazon Bedrock o Google Vertex AI para cumplir con los requisitos de residencia de datos y adquisición27* **Listo para empresas**: Elija Claude API, Amazon Bedrock o Google Vertex AI para cumplir con los requisitos de residencia de datos y adquisición

26* **Seguro por defecto**: Se ejecuta en sus ejecutores de GitLab con su protección de rama y aprobaciones28* **Seguro por defecto**: Se ejecuta en sus ejecutores de GitLab con su protección de rama y aprobaciones

27 29 

28## Cómo funciona30<h2 id="how-it-works">

31 Cómo funciona

32</h2>

29 33 

30Claude Code utiliza GitLab CI/CD para ejecutar tareas de IA en trabajos aislados y confirmar resultados a través de MRs:34Claude Code utiliza GitLab CI/CD para ejecutar tareas de IA en trabajos aislados y confirmar resultados a través de MRs:

31 35 


40 44 

41Elija puntos finales regionales para reducir la latencia y cumplir con los requisitos de soberanía de datos mientras utiliza acuerdos en la nube existentes.45Elija puntos finales regionales para reducir la latencia y cumplir con los requisitos de soberanía de datos mientras utiliza acuerdos en la nube existentes.

42 46 

43## ¿Qué puede hacer Claude?47<h2 id="what-can-claude-do">

48 ¿Qué puede hacer Claude?

49</h2>

44 50 

45Claude Code habilita flujos de trabajo de CI/CD poderosos que transforman la forma en que trabaja con código:51Claude Code habilita flujos de trabajo de CI/CD poderosos que transforman la forma en que trabaja con código:

46 52 


50* Corregir errores y regresiones identificados por pruebas o comentarios56* Corregir errores y regresiones identificados por pruebas o comentarios

51* Responder a comentarios de seguimiento para iterar sobre cambios solicitados57* Responder a comentarios de seguimiento para iterar sobre cambios solicitados

52 58 

53## Configuración59<h2 id="setup">

60 Configuración

61</h2>

54 62 

55### Configuración rápida63<h3 id="quick-setup">

64 Configuración rápida

65</h3>

56 66 

57La forma más rápida de comenzar es agregar un trabajo mínimo a su `.gitlab-ci.yml` y establecer su clave de API como una variable enmascarada.67La forma más rápida de comenzar es agregar un trabajo mínimo a su `.gitlab-ci.yml` y establecer su clave de API como una variable enmascarada.

58 68 


98Después de agregar el trabajo y su variable `ANTHROPIC_API_KEY`, pruebe ejecutando el trabajo manualmente desde **CI/CD** → **Pipelines**, o desencadénelo desde un MR para permitir que Claude proponga actualizaciones en una rama y abra un MR si es necesario.108Después de agregar el trabajo y su variable `ANTHROPIC_API_KEY`, pruebe ejecutando el trabajo manualmente desde **CI/CD** → **Pipelines**, o desencadénelo desde un MR para permitir que Claude proponga actualizaciones en una rama y abra un MR si es necesario.

99 109 

100<Note>110<Note>

101 Para ejecutar en Amazon Bedrock o Google Vertex AI en lugar de Claude API, consulte la sección [Usar con Amazon Bedrock y Google Vertex AI](#using-with-amazon-bedrock--google-vertex-ai) a continuación para obtener instrucciones de autenticación y configuración del entorno.111 Para ejecutar en Amazon Bedrock o Google Vertex AI en lugar de Claude API, consulte la sección [Usar con Amazon Bedrock y Google Vertex AI](#using-with-amazon-bedrock-%26-google-vertex-ai) a continuación para obtener instrucciones de autenticación y configuración del entorno.

102</Note>112</Note>

103 113 

104### Configuración manual (recomendada para producción)114<h3 id="manual-setup-recommended-for-production">

115 Configuración manual (recomendada para producción)

116</h3>

105 117 

106Si prefiere una configuración más controlada o necesita proveedores empresariales:118Si prefiere una configuración más controlada o necesita proveedores empresariales:

107 119 


120 * Agregue un webhook de proyecto para "Comentarios (notas)" a su escucha de eventos (si utiliza uno)132 * Agregue un webhook de proyecto para "Comentarios (notas)" a su escucha de eventos (si utiliza uno)

121 * Haga que el escucha llame a la API de desencadenador de canalización con variables como `AI_FLOW_INPUT` y `AI_FLOW_CONTEXT` cuando un comentario contiene `@claude`133 * Haga que el escucha llame a la API de desencadenador de canalización con variables como `AI_FLOW_INPUT` y `AI_FLOW_CONTEXT` cuando un comentario contiene `@claude`

122 134 

123## Casos de uso de ejemplo135<h2 id="example-use-cases">

136 Casos de uso de ejemplo

137</h2>

124 138 

125### Convertir problemas en MRs139<h3 id="turn-issues-into-mrs">

140 Convertir problemas en MRs

141</h3>

126 142 

127En un comentario de problema:143En un comentario de problema:

128 144 


132 148 

133Claude analiza el problema y la base de código, escribe cambios en una rama y abre un MR para revisión.149Claude analiza el problema y la base de código, escribe cambios en una rama y abre un MR para revisión.

134 150 

135### Obtener ayuda de implementación151<h3 id="get-implementation-help">

152 Obtener ayuda de implementación

153</h3>

136 154 

137En una discusión de MR:155En una discusión de MR:

138 156 


142 160 

143Claude propone cambios, agrega código con almacenamiento en caché apropiado y actualiza el MR.161Claude propone cambios, agrega código con almacenamiento en caché apropiado y actualiza el MR.

144 162 

145### Corregir errores rápidamente163<h3 id="fix-bugs-quickly">

164 Corregir errores rápidamente

165</h3>

146 166 

147En un comentario de problema o MR:167En un comentario de problema o MR:

148 168 


152 172 

153Claude localiza el error, implementa una corrección y actualiza la rama o abre un nuevo MR.173Claude localiza el error, implementa una corrección y actualiza la rama o abre un nuevo MR.

154 174 

155## Usar con Amazon Bedrock y Google Vertex AI175<h2 id="using-with-amazon-bedrock--google-vertex-ai">

176 Usar con Amazon Bedrock y Google Vertex AI

177</h2>

156 178 

157Para entornos empresariales, puede ejecutar Claude Code completamente en su infraestructura en la nube con la misma experiencia de desarrollador.179Para entornos empresariales, puede ejecutar Claude Code completamente en su infraestructura en la nube con la misma experiencia de desarrollador.

158 180 


238 </Tab>260 </Tab>

239</Tabs>261</Tabs>

240 262 

241## Ejemplos de configuración263<h2 id="configuration-examples">

264 Ejemplos de configuración

265</h2>

242 266 

243A continuación se muestran fragmentos listos para usar que puede adaptar a su canalización.267A continuación se muestran fragmentos listos para usar que puede adaptar a su canalización.

244 268 

245### .gitlab-ci.yml básico (Claude API)269<h3 id="basic-gitlab-ci-yml-claude-api">

270 .gitlab-ci.yml básico (Claude API)

271</h3>

246 272 

247```yaml theme={null}273```yaml theme={null}

248stages:274stages:


271 # Claude Code utilizará ANTHROPIC_API_KEY de las variables de CI/CD297 # Claude Code utilizará ANTHROPIC_API_KEY de las variables de CI/CD

272```298```

273 299 

274### Ejemplo de trabajo de Amazon Bedrock (OIDC)300<h3 id="amazon-bedrock-job-example-oidc">

301 Ejemplo de trabajo de Amazon Bedrock (OIDC)

302</h3>

275 303 

276**Requisitos previos:**304**Requisitos previos:**

277 305 


322 Los ID de modelo para Bedrock incluyen prefijos específicos de región (por ejemplo, `us.anthropic.claude-sonnet-4-6`). Pase el modelo deseado a través de su configuración de trabajo o indicación si su flujo de trabajo lo admite.350 Los ID de modelo para Bedrock incluyen prefijos específicos de región (por ejemplo, `us.anthropic.claude-sonnet-4-6`). Pase el modelo deseado a través de su configuración de trabajo o indicación si su flujo de trabajo lo admite.

323</Note>351</Note>

324 352 

325### Ejemplo de trabajo de Google Vertex AI (Federación de Identidad de Carga de Trabajo)353<h3 id="google-vertex-ai-job-example-workload-identity-federation">

354 Ejemplo de trabajo de Google Vertex AI (Federación de Identidad de Carga de Trabajo)

355</h3>

326 356 

327**Requisitos previos:**357**Requisitos previos:**

328 358 


375 Con la Federación de Identidad de Carga de Trabajo, no necesita almacenar claves de cuenta de servicio. Utilice condiciones de confianza específicas del repositorio y cuentas de servicio con menor privilegio.405 Con la Federación de Identidad de Carga de Trabajo, no necesita almacenar claves de cuenta de servicio. Utilice condiciones de confianza específicas del repositorio y cuentas de servicio con menor privilegio.

376</Note>406</Note>

377 407 

378## Mejores prácticas408<h2 id="best-practices">

409 Mejores prácticas

410</h2>

379 411 

380### Configuración de CLAUDE.md412<h3 id="claude-md-configuration">

413 Configuración de CLAUDE.md

414</h3>

381 415 

382Cree un archivo `CLAUDE.md` en la raíz del repositorio para definir estándares de codificación, criterios de revisión y reglas específicas del proyecto. Claude lee este archivo durante las ejecuciones y sigue sus convenciones al proponer cambios.416Cree un archivo `CLAUDE.md` en la raíz del repositorio para definir estándares de codificación, criterios de revisión y reglas específicas del proyecto. Claude lee este archivo durante las ejecuciones y sigue sus convenciones al proponer cambios.

383 417 

384### Consideraciones de seguridad418<h3 id="security-considerations">

419 Consideraciones de seguridad

420</h3>

385 421 

386**Nunca confirme claves de API o credenciales en la nube en su repositorio**. Siempre utilice variables de CI/CD de GitLab:422**Nunca confirme claves de API o credenciales en la nube en su repositorio**. Siempre utilice variables de CI/CD de GitLab:

387 423 


390* Limite los permisos de trabajo y la salida de red426* Limite los permisos de trabajo y la salida de red

391* Revise los MRs de Claude como cualquier otro colaborador427* Revise los MRs de Claude como cualquier otro colaborador

392 428 

393### Optimización del rendimiento429<h3 id="optimizing-performance">

430 Optimización del rendimiento

431</h3>

394 432 

395* Mantenga `CLAUDE.md` enfocado y conciso433* Mantenga `CLAUDE.md` enfocado y conciso

396* Proporcione descripciones claras de problemas/MR para reducir iteraciones434* Proporcione descripciones claras de problemas/MR para reducir iteraciones

397* Configure tiempos de espera de trabajo sensatos para evitar ejecuciones descontroladas435* Configure tiempos de espera de trabajo sensatos para evitar ejecuciones descontroladas

398* Almacene en caché npm e instalaciones de paquetes en ejecutores donde sea posible436* Almacene en caché npm e instalaciones de paquetes en ejecutores donde sea posible

399 437 

400### Costos de CI438<h3 id="ci-costs">

439 Costos de CI

440</h3>

401 441 

402Cuando utiliza Claude Code con GitLab CI/CD, tenga en cuenta los costos asociados:442Cuando utiliza Claude Code con GitLab CI/CD, tenga en cuenta los costos asociados:

403 443 


415 * Establezca valores apropiados de `max_turns` y tiempo de espera de trabajo455 * Establezca valores apropiados de `max_turns` y tiempo de espera de trabajo

416 * Limite la concurrencia para controlar ejecuciones paralelas456 * Limite la concurrencia para controlar ejecuciones paralelas

417 457 

418## Seguridad y gobernanza458<h2 id="security-and-governance">

459 Seguridad y gobernanza

460</h2>

419 461 

420* Cada trabajo se ejecuta en un contenedor aislado con acceso de red restringido462* Cada trabajo se ejecuta en un contenedor aislado con acceso de red restringido

421* Los cambios de Claude fluyen a través de MRs para que los revisores vean cada diff463* Los cambios de Claude fluyen a través de MRs para que los revisores vean cada diff


423* Claude Code utiliza permisos con alcance de espacio de trabajo para restringir escrituras465* Claude Code utiliza permisos con alcance de espacio de trabajo para restringir escrituras

424* Los costos permanecen bajo su control porque usted proporciona sus propias credenciales de proveedor466* Los costos permanecen bajo su control porque usted proporciona sus propias credenciales de proveedor

425 467 

426## Solución de problemas468<h2 id="troubleshooting">

469 Solución de problemas

470</h2>

427 471 

428### Claude no responde a comandos @claude472<h3 id="claude-not-responding-to-claude-commands">

473 Claude no responde a comandos @claude

474</h3>

429 475 

430* Verifique que su canalización se esté desencadenando (manualmente, evento de MR o a través de un escucha de eventos de nota/webhook)476* Verifique que su canalización se esté desencadenando (manualmente, evento de MR o a través de un escucha de eventos de nota/webhook)

431* Asegúrese de que las variables de CI/CD (`ANTHROPIC_API_KEY` o configuración del proveedor en la nube) estén presentes y no enmascaradas477* Asegúrese de que las variables de CI/CD (`ANTHROPIC_API_KEY` o configuración del proveedor en la nube) estén presentes y no enmascaradas

432* Compruebe que el comentario contiene `@claude` (no `/claude`) y que su desencadenador de mención está configurado478* Compruebe que el comentario contiene `@claude` (no `/claude`) y que su desencadenador de mención está configurado

433 479 

434### El trabajo no puede escribir comentarios ni abrir MRs480<h3 id="job-can’t-write-comments-or-open-mrs">

481 El trabajo no puede escribir comentarios ni abrir MRs

482</h3>

435 483 

436* Asegúrese de que `CI_JOB_TOKEN` tenga permisos suficientes para el proyecto, o utilice un Token de Acceso de Proyecto con alcance `api`484* Asegúrese de que `CI_JOB_TOKEN` tenga permisos suficientes para el proyecto, o utilice un Token de Acceso de Proyecto con alcance `api`

437* Compruebe que la herramienta `mcp__gitlab` esté habilitada en `--allowedTools`485* Compruebe que la herramienta `mcp__gitlab` esté habilitada en `--allowedTools`

438* Confirme que el trabajo se ejecuta en el contexto del MR o tiene suficiente contexto a través de variables `AI_FLOW_*`486* Confirme que el trabajo se ejecuta en el contexto del MR o tiene suficiente contexto a través de variables `AI_FLOW_*`

439 487 

440### Errores de autenticación488<h3 id="authentication-errors">

489 Errores de autenticación

490</h3>

441 491 

442* **Para Claude API**: Confirme que `ANTHROPIC_API_KEY` es válida y no ha expirado492* **Para Claude API**: Confirme que `ANTHROPIC_API_KEY` es válida y no ha expirado

443* **Para Bedrock/Vertex**: Verifique la configuración de OIDC/WIF, la suplantación de rol y los nombres secretos; confirme la disponibilidad de región y modelo493* **Para Bedrock/Vertex**: Verifique la configuración de OIDC/WIF, la suplantación de rol y los nombres secretos; confirme la disponibilidad de región y modelo

444 494 

445## Configuración avanzada495<h2 id="advanced-configuration">

496 Configuración avanzada

497</h2>

446 498 

447### Parámetros y variables comunes499<h3 id="common-parameters-and-variables">

500 Parámetros y variables comunes

501</h3>

448 502 

449Claude Code admite estas entradas comúnmente utilizadas:503Claude Code admite estas entradas comúnmente utilizadas:

450 504 


458 Las banderas y parámetros exactos pueden variar según la versión de `@anthropic-ai/claude-code`. Ejecute `claude --help` en su trabajo para ver las opciones admitidas.512 Las banderas y parámetros exactos pueden variar según la versión de `@anthropic-ai/claude-code`. Ejecute `claude --help` en su trabajo para ver las opciones admitidas.

459</Note>513</Note>

460 514 

461### Personalización del comportamiento de Claude515<h3 id="customizing-claude’s-behavior">

516 Personalización del comportamiento de Claude

517</h3>

462 518 

463Puede guiar a Claude de dos formas principales:519Puede guiar a Claude de dos formas principales:

464 520 

glossary.md +14 −14

Details

70 70 

71Una bandera de inicio, `--bare`, que omite el descubrimiento automático de hooks, skills, plugins, servidores MCP, auto memory y CLAUDE.md. Solo las banderas que pasa explícitamente tienen efecto. Se recomienda para CI y llamadas con script donde necesita un comportamiento idéntico en todas las máquinas independientemente de la configuración local.71Una bandera de inicio, `--bare`, que omite el descubrimiento automático de hooks, skills, plugins, servidores MCP, auto memory y CLAUDE.md. Solo las banderas que pasa explícitamente tienen efecto. Se recomienda para CI y llamadas con script donde necesita un comportamiento idéntico en todas las máquinas independientemente de la configuración local.

72 72 

73Más información: [Start faster with bare mode](/es/headless#start-faster-with-bare-mode)73Más información: [Iniciar más rápido con bare mode](/es/headless#start-faster-with-bare-mode)

74 74 

75<h3 id="bundled-skills">75<h3 id="bundled-skills">

76 Bundled skills76 Bundled skills


162 Effort level162 Effort level

163</h3>163</h3>

164 164 

165Una configuración que controla cuánto del presupuesto de pensamiento de razonamiento adaptativo usa Claude en cada turno. Mayor esfuerzo significa más tokens de pensamiento y razonamiento más profundo; menor esfuerzo es más rápido y económico. El esfuerzo es compatible con Opus 4.6 y posterior, y en Sonnet 4.6.165Una configuración que controla cuánto del presupuesto de pensamiento de razonamiento adaptativo usa Claude en cada turno. Mayor esfuerzo significa más tokens de pensamiento y razonamiento más profundo; menor esfuerzo es más rápido y económico. El esfuerzo es compatible con Fable 5, en Opus 4.6 y posterior, y en Sonnet 4.6.

166 166 

167Más información: [Adjust effort level](/es/model-config#adjust-effort-level)167Más información: [Adjust effort level](/es/model-config#adjust-effort-level)

168 168 


170 Extended thinking170 Extended thinking

171</h3>171</h3>

172 172 

173Razonamiento paso a paso visible que el modelo realiza antes de responder. Puede limitar tokens de pensamiento con `MAX_THINKING_TOKENS` o ajustar el [effort level](#effort-level). El pensamiento aparece en texto gris cursiva en la terminal.173Razonamiento paso a paso visible que el modelo realiza antes de responder. Puede ajustarlo con el [effort level](#effort-level), o limitar tokens de pensamiento con `MAX_THINKING_TOKENS` en modelos con un presupuesto de pensamiento fijo. El pensamiento aparece en texto gris cursiva en la terminal.

174 174 

175Más información: [Use extended thinking](/es/model-config#extended-thinking)175Más información: [Use extended thinking](/es/model-config#extended-thinking)

176 176 


230 230 

231Un modo que ejecuta un único prompt y sale sin una sesión conversacional, invocado con `-p` o `--print`. Se usa para CI, scripts y piping. El [Agent SDK](/es/agent-sdk/overview) es el equivalente de Python y TypeScript. Anteriormente llamado headless mode.231Un modo que ejecuta un único prompt y sale sin una sesión conversacional, invocado con `-p` o `--print`. Se usa para CI, scripts y piping. El [Agent SDK](/es/agent-sdk/overview) es el equivalente de Python y TypeScript. Anteriormente llamado headless mode.

232 232 

233Más información: [Run Claude Code programmatically](/es/headless)233Más información: [Ejecutar Claude Code mediante programación](/es/headless)

234 234 

235<h2 id="o">235<h2 id="o">

236 O236 O


254 254 

255El comportamiento de aprobación de línea base para la sesión. Cicle con `Shift+Tab` en la CLI o use el selector de modo en VS Code, Desktop y claude.ai. Los modos disponibles son `default`, `acceptEdits`, `plan`, `auto`, `dontAsk` y `bypassPermissions`.255El comportamiento de aprobación de línea base para la sesión. Cicle con `Shift+Tab` en la CLI o use el selector de modo en VS Code, Desktop y claude.ai. Los modos disponibles son `default`, `acceptEdits`, `plan`, `auto`, `dontAsk` y `bypassPermissions`.

256 256 

257Más información: [Choose a permission mode](/es/permission-modes)257Más información: [Elegir un permission mode](/es/permission-modes)

258 258 

259<h3 id="permission-rule">259<h3 id="permission-rule">

260 Permission rule260 Permission rule


262 262 

263Una entrada de configuración que permite, pregunta o deniega una invocación de herramienta basada en el nombre de la herramienta y el patrón de argumento. Las reglas se evalúan deny→ask→allow, la primera coincidencia gana. Las reglas de permiso son controles de grano fino superpuestos en el [permission mode](#permission-mode) más amplio.263Una entrada de configuración que permite, pregunta o deniega una invocación de herramienta basada en el nombre de la herramienta y el patrón de argumento. Las reglas se evalúan deny→ask→allow, la primera coincidencia gana. Las reglas de permiso son controles de grano fino superpuestos en el [permission mode](#permission-mode) más amplio.

264 264 

265Más información: [Configure permissions](/es/permissions)265Más información: [Configurar permisos](/es/permissions)

266 266 

267<h3 id="plan-mode">267<h3 id="plan-mode">

268 Plan mode268 Plan mode


270 270 

271Un [permission mode](#permission-mode) donde Claude investiga y propone cambios sin editar sus archivos fuente. Puede leer, buscar y ejecutar comandos de exploración, luego presenta un plan para aprobación antes de tocar nada. Ingrese al plan mode con `/plan` o presionando `Shift+Tab`.271Un [permission mode](#permission-mode) donde Claude investiga y propone cambios sin editar sus archivos fuente. Puede leer, buscar y ejecutar comandos de exploración, luego presenta un plan para aprobación antes de tocar nada. Ingrese al plan mode con `/plan` o presionando `Shift+Tab`.

272 272 

273Más información: [Analyze before you edit with plan mode](/es/permission-modes#analyze-before-you-edit-with-plan-mode)273Más información: [Analizar antes de editar con plan mode](/es/permission-modes#analyze-before-you-edit-with-plan-mode)

274 274 

275<h3 id="plugin">275<h3 id="plugin">

276 Plugin276 Plugin


286 286 

287Un diálogo que acepta un directorio antes de que Claude Code cargue su configuración. La aceptación se guarda por directorio de proyecto, excepto su directorio de inicio, donde la confianza se mantiene solo para la sesión actual y el mensaje reaparece en cada lanzamiento. Trust gates la instalación automática de plugins de marketplace y la ejecución de hooks definidos por proyecto. Confiar en un directorio significa que sus archivos `.claude/settings.json`, `.mcp.json` y otros archivos de configuración tienen efecto.287Un diálogo que acepta un directorio antes de que Claude Code cargue su configuración. La aceptación se guarda por directorio de proyecto, excepto su directorio de inicio, donde la confianza se mantiene solo para la sesión actual y el mensaje reaparece en cada lanzamiento. Trust gates la instalación automática de plugins de marketplace y la ejecución de hooks definidos por proyecto. Confiar en un directorio significa que sus archivos `.claude/settings.json`, `.mcp.json` y otros archivos de configuración tienen efecto.

288 288 

289Más información: [The `.claude` directory](/es/claude-directory)289Más información: [El directorio `.claude`](/es/claude-directory)

290 290 

291<h3 id="prompt-injection">291<h3 id="prompt-injection">

292 Prompt injection292 Prompt injection

293</h3>293</h3>

294 294 

295Instrucciones hostiles incrustadas en un archivo, página web o resultado de herramienta que intentan redirigir a Claude hacia acciones que nunca pidió. Las defensas de Claude Code incluyen el sistema de permisos, listas de bloqueo de comandos y verificación de confianza. [Auto mode](#auto-mode) agrega una sonda del lado del servidor que escanea resultados de herramientas en busca de contenido sospechoso y un clasificador que nunca ve resultados de herramientas, por lo que el texto inyectado no puede influir en sus decisiones de aprobación.295Instrucciones hostiles incrustadas en un archivo, página web o resultado de herramienta que intentan redirigir a Claude hacia acciones que nunca pidió. Las defensas de Claude Code incluyen el sistema de permisos, detección de inyección de comandos y verificación de confianza. [Auto mode](#auto-mode) agrega una sonda del lado del servidor que escanea resultados de herramientas en busca de contenido sospechoso y un clasificador que nunca ve resultados de herramientas, por lo que el texto inyectado no puede influir en sus decisiones de aprobación.

296 296 

297Más información: [Protect against prompt injection](/es/security#protect-against-prompt-injection)297Más información: [Protegerse contra prompt injection](/es/security#protect-against-prompt-injection)

298 298 

299<h2 id="r">299<h2 id="r">

300 R300 R


382 382 

383Un comando, `/teleport`, que extrae una sesión de Claude Code en la nube a su terminal local. Claude obtiene la rama, carga el historial de conversación y reanuda desde el último estado de la sesión web. La dirección inversa es `--remote`, que envía una tarea local para ejecutarse en la web.383Un comando, `/teleport`, que extrae una sesión de Claude Code en la nube a su terminal local. Claude obtiene la rama, carga el historial de conversación y reanuda desde el último estado de la sesión web. La dirección inversa es `--remote`, que envía una tarea local para ejecutarse en la web.

384 384 

385Más información: [From web to terminal](/es/claude-code-on-the-web#from-web-to-terminal)385Más información: [De web a terminal](/es/claude-code-on-the-web#from-web-to-terminal)

386 386 

387<h3 id="tool">387<h3 id="tool">

388 Tool388 Tool


390 390 

391Una acción que Claude puede tomar: leer un archivo, editar código, ejecutar un comando de shell, buscar en la web, generar un subagent. Las herramientas son lo que hace que Claude Code sea agentic. Sin ellas, Claude solo puede responder con texto. Cada uso de herramienta devuelve un resultado que informa la siguiente decisión de Claude en el [agentic loop](#agentic-loop).391Una acción que Claude puede tomar: leer un archivo, editar código, ejecutar un comando de shell, buscar en la web, generar un subagent. Las herramientas son lo que hace que Claude Code sea agentic. Sin ellas, Claude solo puede responder con texto. Cada uso de herramienta devuelve un resultado que informa la siguiente decisión de Claude en el [agentic loop](#agentic-loop).

392 392 

393Más información: [Tools available to Claude](/es/tools-reference)393Más información: [Herramientas disponibles para Claude](/es/tools-reference)

394 394 

395<h3 id="turn">395<h3 id="turn">

396 Turn396 Turn


398 398 

399Una respuesta completa de Claude dentro de una [sesión](#session). Un turn comienza cuando usted envía un mensaje y termina cuando Claude termina de responder, con cualquier número de llamadas de [herramienta](#tool) en el medio. Los [stop hooks](#hook) se activan al final de cada turn. Una sesión consta de muchos turns, y el [agentic loop](#agentic-loop) describe lo que sucede dentro de uno.399Una respuesta completa de Claude dentro de una [sesión](#session). Un turn comienza cuando usted envía un mensaje y termina cuando Claude termina de responder, con cualquier número de llamadas de [herramienta](#tool) en el medio. Los [stop hooks](#hook) se activan al final de cada turn. Una sesión consta de muchos turns, y el [agentic loop](#agentic-loop) describe lo que sucede dentro de uno.

400 400 

401Más información: [How Claude Code works](/es/how-claude-code-works#the-agentic-loop)401Más información: [Cómo funciona Claude Code](/es/how-claude-code-works#the-agentic-loop)

402 402 

403<h2 id="v">403<h2 id="v">

404 V404 V


422 422 

423Un modo de aislamiento que ejecuta Claude en un worktree git separado bajo `.claude/worktrees/`, habilitado con la bandera `-w` o `isolation: worktree` en la configuración de subagent. Los cambios permanecen en una rama separada en un directorio separado, por lo que los agentes paralelos no sobrescriben los archivos de los demás.423Un modo de aislamiento que ejecuta Claude en un worktree git separado bajo `.claude/worktrees/`, habilitado con la bandera `-w` o `isolation: worktree` en la configuración de subagent. Los cambios permanecen en una rama separada en un directorio separado, por lo que los agentes paralelos no sobrescriben los archivos de los demás.

424 424 

425Más información: [Run parallel sessions with git worktrees](/es/worktrees)425Más información: [Ejecutar sesiones paralelas con git worktrees](/es/worktrees)

426 426 

427***427***

428 428 

Details

6 6 

7> Aprenda a configurar Claude Code a través de Google Vertex AI, incluida la configuración, la configuración de IAM y la solución de problemas.7> Aprenda a configurar Claude Code a través de Google Vertex AI, incluida la configuración, la configuración de IAM y la solución de problemas.

8 8 

9export const ContactSalesCard = ({surface}) => {

10 const utm = content => `utm_source=claude_code&utm_medium=docs&utm_content=${surface}_${content}`;

11 const iconArrowRight = (size = 13) => <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2.5" strokeLinecap="round" strokeLinejoin="round" aria-hidden="true">

12 <line x1="5" y1="12" x2="19" y2="12" />

13 <polyline points="12 5 19 12 12 19" />

14 </svg>;

15 const STYLES = `

16.cc-cs {

17 --cs-slate: #141413;

18 --cs-clay: #d97757;

19 --cs-clay-deep: #c6613f;

20 --cs-gray-000: #ffffff;

21 --cs-gray-700: #3d3d3a;

22 --cs-border-default: rgba(31, 30, 29, 0.15);

23 font-family: inherit;

24}

25.dark .cc-cs {

26 --cs-slate: #f0eee6;

27 --cs-gray-000: #262624;

28 --cs-gray-700: #bfbdb4;

29 --cs-border-default: rgba(240, 238, 230, 0.14);

30}

31.cc-cs-card {

32 display: flex; align-items: center; justify-content: space-between;

33 gap: 16px; padding: 14px 16px; margin: 0;

34 background: var(--cs-gray-000); border: 0.5px solid var(--cs-border-default);

35 border-radius: 8px; flex-wrap: wrap;

36}

37.cc-cs-text { font-size: 13px; color: var(--cs-gray-700); line-height: 1.5; flex: 1; min-width: 240px; }

38.cc-cs-text strong { font-weight: 550; color: var(--cs-slate); }

39.cc-cs-actions { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }

40.cc-cs-btn-clay {

41 display: inline-flex; align-items: center; gap: 8px;

42 background: var(--cs-clay-deep); color: #fff; border: none;

43 border-radius: 8px; padding: 8px 14px;

44 font-size: 13px; font-weight: 500;

45 transition: background-color 0.15s; white-space: nowrap;

46}

47.cc-cs-btn-clay:hover { background: var(--cs-clay); }

48.cc-cs-btn-ghost {

49 display: inline-flex; align-items: center; gap: 8px;

50 background: transparent; color: var(--cs-gray-700);

51 border: 0.5px solid var(--cs-border-default);

52 border-radius: 8px; padding: 8px 14px;

53 font-size: 13px; font-weight: 500;

54}

55.cc-cs-btn-ghost:hover { background: rgba(0, 0, 0, 0.04); }

56.dark .cc-cs-btn-ghost:hover { background: rgba(255, 255, 255, 0.04); }

57@media (max-width: 720px) {

58 .cc-cs-actions { width: 100%; }

59}

60`;

61 return <div className="cc-cs not-prose">

62 <style>{STYLES}</style>

63 <div className="cc-cs-card">

64 <div className="cc-cs-text">

65 <strong>Deploying Claude Code across your organization?</strong> Talk to sales about enterprise plans, SSO, and centralized billing.

66 </div>

67 <div className="cc-cs-actions">

68 <a href={`https://claude.com/pricing?${utm('view_plans')}#plans-business`} className="cc-cs-btn-ghost">

69 View plans

70 </a>

71 <a href={`https://claude.com/contact-sales?${utm('contact_sales')}`} className="cc-cs-btn-clay">

72 Contact sales {iconArrowRight()}

73 </a>

74 </div>

75 </div>

76 </div>;

77};

78 

79<ContactSalesCard surface="vertex" />

80 

9<h2 id="prerequisites">81<h2 id="prerequisites">

10 Requisitos previos82 Requisitos previos

11</h2>83</h2>


155</h3>227</h3>

156 228 

157<Warning>229<Warning>

158 Fije versiones de modelo específicas al implementar para varios usuarios. Sin fijar, alias de modelo como `sonnet` y `opus` se resuelven a la versión más reciente, que puede no estar habilitada aún en su proyecto de Vertex AI cuando Anthropic lanza una actualización. Claude Code [retrocede](#startup-model-checks) a la versión anterior al inicio cuando la más reciente no está disponible, pero fijar le permite controlar cuándo sus usuarios se mueven a un nuevo modelo.230 Fije versiones de modelo específicas al implementar para varios usuarios. Sin fijar, alias de modelo como `sonnet` y `opus` se resuelven al valor predeterminado integrado de Claude Code para Vertex AI, que puede estar rezagado con respecto a la versión más reciente y puede que aún no esté habilitado en su proyecto. Claude Code [retrocede](#startup-model-checks) a la versión anterior al inicio cuando el valor predeterminado no está disponible, pero fijar le permite controlar cuándo sus usuarios se mueven a un nuevo modelo.

159</Warning>231</Warning>

160 232 

161Establezca estas variables de entorno en ID de modelo específicos de Vertex AI.233Establezca estas variables de entorno en ID de modelo específicos de Vertex AI.

headless.md +12 −4

Details

62 `--bare` es el modo recomendado para llamadas con scripts y SDK, y se convertirá en el predeterminado para `-p` en una versión futura.62 `--bare` es el modo recomendado para llamadas con scripts y SDK, y se convertirá en el predeterminado para `-p` en una versión futura.

63</Note>63</Note>

64 64 

65<h3 id="background-tasks-at-exit">

66 Tareas en segundo plano al salir

67</h3>

68 

69Si Claude inicia una [tarea Bash en segundo plano](/es/tools-reference#bash-tool-behavior) durante una ejecución de `claude -p`, por ejemplo un servidor de desarrollo o una compilación de vigilancia, esa tarea se termina aproximadamente cinco segundos después de que Claude haya devuelto su resultado final y stdin se haya cerrado. El período de gracia permite que una tarea que finaliza justo después del resultado aún entregue su salida. Antes de v2.1.163, un proceso en segundo plano que nunca se cerraba mantendría la invocación de `claude -p` abierta indefinidamente.

70 

65<h2 id="examples">71<h2 id="examples">

66 Ejemplos72 Ejemplos

67</h2>73</h2>


163Cuando una solicitud de API falla con un error reintentable, Claude Code emite un evento `system/api_retry` antes de reintentar. Puede usar esto para mostrar el progreso del reintento o implementar lógica de retroceso personalizada.169Cuando una solicitud de API falla con un error reintentable, Claude Code emite un evento `system/api_retry` antes de reintentar. Puede usar esto para mostrar el progreso del reintento o implementar lógica de retroceso personalizada.

164 170 

165| Campo | Tipo | Descripción |171| Campo | Tipo | Descripción |

166| ---------------- | ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |172| ---------------- | ------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

167| `type` | `"system"` | tipo de mensaje |173| `type` | `"system"` | tipo de mensaje |

168| `subtype` | `"api_retry"` | identifica esto como un evento de reintento |174| `subtype` | `"api_retry"` | identifica esto como un evento de reintento |

169| `attempt` | entero | número de intento actual, comenzando en 1 |175| `attempt` | entero | número de intento actual, comenzando en 1 |

170| `max_retries` | entero | reintentos totales permitidos |176| `max_retries` | entero | reintentos totales permitidos |

171| `retry_delay_ms` | entero | milisegundos hasta el siguiente intento |177| `retry_delay_ms` | entero | milisegundos hasta el siguiente intento |

172| `error_status` | entero o nulo | código de estado HTTP, o `null` para errores de conexión sin respuesta HTTP |178| `error_status` | entero o nulo | código de estado HTTP, o `null` para errores de conexión sin respuesta HTTP |

173| `error` | cadena | categoría de error: `authentication_failed`, `oauth_org_not_allowed`, `billing_error`, `rate_limit`, `invalid_request`, `model_not_found`, `server_error`, `max_output_tokens`, o `unknown` |179| `error` | cadena | categoría de error: `authentication_failed`, `oauth_org_not_allowed`, `billing_error`, `rate_limit`, `overloaded`, `invalid_request`, `model_not_found`, `server_error`, `max_output_tokens`, o `unknown` |

174| `uuid` | cadena | identificador único del evento |180| `uuid` | cadena | identificador único del evento |

175| `session_id` | cadena | sesión a la que pertenece el evento |181| `session_id` | cadena | sesión a la que pertenece el evento |

176 182 


226La bandera `--allowedTools` utiliza [sintaxis de regla de permiso](/es/settings#permission-rule-syntax). El ` *` final habilita la coincidencia de prefijo, por lo que `Bash(git diff *)` permite cualquier comando que comience con `git diff`. El espacio antes de `*` es importante: sin él, `Bash(git diff*)` también coincidiría con `git diff-index`.232La bandera `--allowedTools` utiliza [sintaxis de regla de permiso](/es/settings#permission-rule-syntax). El ` *` final habilita la coincidencia de prefijo, por lo que `Bash(git diff *)` permite cualquier comando que comience con `git diff`. El espacio antes de `*` es importante: sin él, `Bash(git diff*)` también coincidiría con `git diff-index`.

227 233 

228<Note>234<Note>

229 Las [skills](/es/skills) invocadas por el usuario como `/code-review` y los [comandos integrados](/es/commands) solo están disponibles en modo interactivo. En modo `-p`, describa la tarea que desea realizar en su lugar.235 Las skills invocadas por el usuario y los comandos personalizados funcionan en modo `-p`: incluya `/skill-name` en la cadena de indicador y Claude Code lo expande antes de ejecutar. Los comandos integrados que abren un diálogo interactivo, como `/config` y `/login`, no están disponibles en modo `-p`.

230</Note>236</Note>

231 237 

232<h3 id="customize-the-system-prompt">238<h3 id="customize-the-system-prompt">


241 --output-format json247 --output-format json

242```248```

243 249 

244Consulte [banderas de indicador del sistema](/es/cli-reference#system-prompt-flags) para más opciones, incluyendo `--system-prompt` para reemplazar completamente el indicador predeterminado.250Consulte [banderas de indicador del sistema](/es/cli-reference#system-prompt-flags) para más opciones incluyendo `--system-prompt` para reemplazar completamente el indicador predeterminado.

245 251 

246<h3 id="continue-conversations">252<h3 id="continue-conversations">

247 Continuar conversaciones253 Continuar conversaciones


265claude -p "Continue that review" --resume "$session_id"271claude -p "Continue that review" --resume "$session_id"

266```272```

267 273 

274Ejecute ambos comandos desde el mismo directorio: la búsqueda de ID de sesión está limitada al directorio del proyecto actual y sus git worktrees. Consulte [Reanudar una sesión](/es/sessions#resume-a-session) para las reglas de alcance completo.

275 

268<h2 id="next-steps">276<h2 id="next-steps">

269 Próximos pasos277 Próximos pasos

270</h2>278</h2>

hooks.md +66 −27

Details

108Ahora suponga que Claude Code decide ejecutar `Bash "rm -rf /tmp/build"`. Esto es lo que sucede:108Ahora suponga que Claude Code decide ejecutar `Bash "rm -rf /tmp/build"`. Esto es lo que sucede:

109 109 

110<Frame>110<Frame>

111 <img src="https://mintcdn.com/claude-code/ikqp3_70mqIahteV/images/hook-resolution.svg?fit=max&auto=format&n=ikqp3_70mqIahteV&q=85&s=be0bf3053550c26de5f54cd64674c197" alt="Flujo de resolución de hooks: se activa el evento PreToolUse, el matcher verifica la coincidencia de Bash, la condición if verifica la coincidencia de Bash(rm *), se ejecuta el controlador de hooks, el resultado se devuelve a Claude Code" width="930" height="270" data-path="images/hook-resolution.svg" />111 <img src="https://mintcdn.com/claude-code/ikqp3_70mqIahteV/images/hook-resolution.svg?fit=max&auto=format&n=ikqp3_70mqIahteV&q=85&s=be0bf3053550c26de5f54cd64674c197" alt="Diagrama de resolución de hooks: PreToolUse se activa, el matcher verifica la coincidencia de Bash, luego la condición if verifica la coincidencia de Bash(rm *). Si ambos coinciden, el comando del hook se ejecuta y devuelve permissionDecision deny, por lo que la llamada a la herramienta se bloquea y Claude Code continúa. Si alguna verificación no coincide, el hook se omite y la llamada a la herramienta se permite continuar." width="930" height="270" data-path="images/hook-resolution.svg" />

112</Frame>112</Frame>

113 113 

114<Steps>114<Steps>


174Dónde defina un hook determina su alcance:174Dónde defina un hook determina su alcance:

175 175 

176| Ubicación | Alcance | Compartible |176| Ubicación | Alcance | Compartible |

177| :-------------------------------------------------------- | :--------------------------------- | :----------------------------------------- |177| :-------------------------------------------------------- | :--------------------------------- | :---------------------------------------------- |

178| `~/.claude/settings.json` | Todos sus proyectos | No, local en su máquina |178| `~/.claude/settings.json` | Todos sus proyectos | No, local en su máquina |

179| `.claude/settings.json` | Proyecto único | Sí, puede ser confirmado en el repositorio |179| `.claude/settings.json` | Proyecto único | Sí, puede ser confirmado en el repositorio |

180| `.claude/settings.local.json` | Proyecto único | No, ignorado por git |180| `.claude/settings.local.json` | Proyecto único | No, ignorado por git cuando Claude Code lo crea |

181| Configuración de política administrada | Toda la organización | Sí, controlado por administrador |181| Configuración de política administrada | Toda la organización | Sí, controlado por administrador |

182| [Plugin](/es/plugins) `hooks/hooks.json` | Cuando el plugin está habilitado | Sí, incluido con el plugin |182| [Plugin](/es/plugins) `hooks/hooks.json` | Cuando el plugin está habilitado | Sí, incluido con el plugin |

183| [Skill](/es/skills) o [agent](/es/sub-agents) frontmatter | Mientras el componente está activo | Sí, definido en el archivo del componente |183| [Skill](/es/skills) o [agent](/es/sub-agents) frontmatter | Mientras el componente está activo | Sí, definido en el archivo del componente |


311Estos campos se aplican a todos los tipos de hooks:311Estos campos se aplican a todos los tipos de hooks:

312 312 

313| Campo | Requerido | Descripción |313| Campo | Requerido | Descripción |

314| :-------------- | :-------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |314| :-------------- | :-------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

315| `type` | sí | `"command"`, `"http"`, `"mcp_tool"`, `"prompt"` o `"agent"` |315| `type` | sí | `"command"`, `"http"`, `"mcp_tool"`, `"prompt"` o `"agent"` |

316| `if` | no | Sintaxis de regla de permiso para filtrar cuándo se ejecuta este hook, como `"Bash(git *)"` o `"Edit(*.ts)"`. El hook solo se genera si la llamada a herramienta coincide con el patrón, o si un comando Bash es demasiado complejo para analizar. Solo se evalúa en eventos de herramientas: `PreToolUse`, `PostToolUse`, `PostToolUseFailure`, `PermissionRequest` y `PermissionDenied`. En otros eventos, un hook con `if` establecido nunca se ejecuta. Utiliza la misma sintaxis que [reglas de permiso](/es/permissions) |316| `if` | no | Sintaxis de regla de permiso para filtrar cuándo se ejecuta este hook, como `"Bash(git *)"` o `"Edit(*.ts)"`. El hook solo se genera si la llamada a herramienta coincide con el patrón. Solo se evalúa en eventos de herramientas: `PreToolUse`, `PostToolUse`, `PostToolUseFailure`, `PermissionRequest` y `PermissionDenied`. En otros eventos, un hook con `if` establecido nunca se ejecuta. Utiliza la misma sintaxis que [reglas de permiso](/es/permissions) |

317| `timeout` | no | Segundos antes de cancelar. Valores predeterminados: 600 para `command`, `http` y `mcp_tool`; 30 para `prompt`; 60 para `agent`. [`UserPromptSubmit`](#userpromptsubmit) reduce el valor predeterminado de `command`, `http` y `mcp_tool` a 30, y [`MessageDisplay`](#messagedisplay) lo reduce a 10 |317| `timeout` | no | Segundos antes de cancelar. Valores predeterminados: 600 para `command`, `http` y `mcp_tool`; 30 para `prompt`; 60 para `agent`. [`UserPromptSubmit`](#userpromptsubmit) reduce el valor predeterminado de `command`, `http` y `mcp_tool` a 30, y [`MessageDisplay`](#messagedisplay) lo reduce a 10 |

318| `statusMessage` | no | Mensaje de spinner personalizado mostrado mientras se ejecuta el hook |318| `statusMessage` | no | Mensaje de spinner personalizado mostrado mientras se ejecuta el hook |

319| `once` | no | Si es `true`, se ejecuta una vez por sesión y luego se elimina. Solo se honra para hooks declarados en [skill frontmatter](#hooks-in-skills-and-agents); se ignora en archivos de configuración y frontmatter de agente |319| `once` | no | Si es `true`, se ejecuta una vez por sesión y luego se elimina. Solo se honra para hooks declarados en [skill frontmatter](#hooks-in-skills-and-agents); se ignora en archivos de configuración y frontmatter de agente |

320 320 

321El campo `if` contiene exactamente una regla de permiso. No hay sintaxis `&&`, `||` o de lista para combinar reglas; para aplicar múltiples condiciones, defina un controlador de hook separado para cada una. Para Bash, la regla se compara contra cada subcomando de la entrada de herramienta después de que se eliminan las asignaciones `VAR=value` iniciales, por lo que `if: "Bash(git push *)"` coincide tanto con `FOO=bar git push` como con `npm test && git push`. El hook se ejecuta si algún subcomando coincide, y siempre se ejecuta cuando el comando es demasiado complejo para analizar.321El campo `if` contiene exactamente una regla de permiso. No hay sintaxis `&&`, `||` o de lista para combinar reglas; para aplicar múltiples condiciones, defina un controlador de hook separado para cada una.

322 

323<span id="bash-if-matching" />Para patrones de Bash, si su comando hook se ejecuta depende de la forma del patrón y del comando Bash que Claude está invocando. Las asignaciones `VAR=value` iniciales se eliminan antes de coincidir.

324 

325| patrón `if` | Comando Bash | ¿Se ejecuta el hook? | Por qué |

326| :----------------- | :--------------------- | :------------------- | :----------------------------------------------------------------------------------------------------------------------- |

327| `Bash(git *)` | `FOO=bar git push` | sí | las asignaciones iniciales se eliminan; `git push` coincide |

328| `Bash(git *)` | `npm test && git push` | sí | cada subcomando se verifica; `git push` coincide |

329| `Bash(rm *)` | `echo $(rm -rf /)` | sí | los comandos dentro de `$()` y backticks se verifican; `rm -rf /` coincide |

330| `Bash(rm *)` | `echo $(date)` | no | ningún subcomando coincide con `rm *` |

331| `Bash(git push *)` | `echo $(date)` | sí | los patrones que especifican más que el nombre del comando ejecutan el hook de todas formas en `$()`, backticks o `$VAR` |

332 

333El filtro también falla abierto, ejecutando su hook independientemente del patrón, cuando el comando Bash no se puede analizar. Debido a que el filtro `if` es de mejor esfuerzo, use el [sistema de permisos](/es/permissions) en lugar de un hook para aplicar un permiso o denegación duro.

322 334 

323<h4 id="command-hook-fields">335<h4 id="command-hook-fields">

324 Campos de comando hook336 Campos de comando hook


461Además de los [campos comunes](#common-fields), los hooks de prompt y agente aceptan estos campos:473Además de los [campos comunes](#common-fields), los hooks de prompt y agente aceptan estos campos:

462 474 

463| Campo | Requerido | Descripción |475| Campo | Requerido | Descripción |

464| :------- | :-------- | :------------------------------------------------------------------------------------------------------------ |476| :------- | :-------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

465| `prompt` | sí | Texto del prompt a enviar al modelo. Use `$ARGUMENTS` como marcador de posición para la entrada JSON del hook |477| `prompt` | sí | Texto del prompt a enviar al modelo. Use `$ARGUMENTS` como marcador de posición para la entrada JSON del hook. Escape con una barra invertida para incluir texto literal: `\$1.00` se representa como `$1.00` |

466| `model` | no | Modelo a usar para evaluación. Por defecto es un modelo rápido |478| `model` | no | Modelo a usar para evaluación. Por defecto es un modelo rápido |

467 479 

468Todos los hooks coincidentes se ejecutan en paralelo, y los controladores idénticos se deduplicarán automáticamente. Los hooks de comando se deduplicarán por cadena de comando y `args`, y los hooks HTTP se deduplicarán por URL. Los controladores se ejecutan en el directorio actual con el entorno de Claude Code. La variable de entorno `$CLAUDE_CODE_REMOTE` se establece en `"true"` en entornos web remotos y no se establece en la CLI local.480Todos los hooks coincidentes se ejecutan en paralelo, y los controladores idénticos se deduplicarán automáticamente. Los hooks de comando se deduplicarán por cadena de comando y `args`, y los hooks HTTP se deduplicarán por URL. Los controladores se ejecutan en el directorio actual con el entorno de Claude Code. La variable de entorno `$CLAUDE_CODE_REMOTE` se establece en `"true"` en entornos web remotos y no se establece en la CLI local.


619| `agent_id` | Identificador único para el subagente. Presente solo cuando el hook se activa dentro de una llamada de subagente. Use esto para distinguir llamadas de hook de subagente de llamadas de hilo principal. |631| `agent_id` | Identificador único para el subagente. Presente solo cuando el hook se activa dentro de una llamada de subagente. Use esto para distinguir llamadas de hook de subagente de llamadas de hilo principal. |

620| `agent_type` | Nombre del agente (por ejemplo, `"Explore"` o `"security-reviewer"`). Presente cuando la sesión usa `--agent` o el hook se activa dentro de un subagente. Para subagentes, el tipo del subagente tiene precedencia sobre el valor `--agent` de la sesión. Para [subagentes personalizados](/es/sub-agents), este es el campo `name` del frontmatter del agente, no el nombre del archivo. |632| `agent_type` | Nombre del agente (por ejemplo, `"Explore"` o `"security-reviewer"`). Presente cuando la sesión usa `--agent` o el hook se activa dentro de un subagente. Para subagentes, el tipo del subagente tiene precedencia sobre el valor `--agent` de la sesión. Para [subagentes personalizados](/es/sub-agents), este es el campo `name` del frontmatter del agente, no el nombre del archivo. |

621 633 

622Solo los hooks [`SessionStart`](#sessionstart) reciben un campo `model`. No hay variable de entorno `$CLAUDE_MODEL`. Un proceso de hook hereda el entorno principal, por lo que puede leer `$ANTHROPIC_MODEL` si lo establece en su shell, pero ese valor no cambia cuando cambia de modelos con `/model` durante una sesión.634Solo los hooks [`SessionStart`](#sessionstart) pueden recibir un campo `model`, y no se garantiza que esté presente. No hay variable de entorno `$CLAUDE_MODEL`. Un proceso de hook hereda el entorno principal, por lo que puede leer `$ANTHROPIC_MODEL` si lo establece en su shell, pero ese valor no cambia cuando cambia de modelos con `/model` durante una sesión.

623 635 

624Por ejemplo, un hook `PreToolUse` para un comando Bash recibe esto en stdin:636Por ejemplo, un hook `PreToolUse` para un comando Bash recibe esto en stdin:

625 637 


782# Hook de notificación: ping al escritorio cuando Claude Code necesita atención.794# Hook de notificación: ping al escritorio cuando Claude Code necesita atención.

783input=$(cat)795input=$(cat)

784title="Claude Code'796title="Claude Code'

785body=$(jq -r '.message // 'Needs your attention'' <<<"$input")797body=$(jq -r '.message // 'Needs your attention'' <<<'$input")

786seq=$(printf '\033]777;notify;%s;%s\007' "$title" "$body")798seq=$(printf '\033]777;notify;%s;%s\007' "$title" "$body")

787jq -nc --arg seq "$seq" '{terminalSequence: $seq}'799jq -nc --arg seq "$seq" '{terminalSequence: $seq}'

788```800```


815* [SessionStart](#sessionstart), [Setup](#setup) y [SubagentStart](#subagentstart): al inicio de la conversación, antes del primer prompt827* [SessionStart](#sessionstart), [Setup](#setup) y [SubagentStart](#subagentstart): al inicio de la conversación, antes del primer prompt

816* [UserPromptSubmit](#userpromptsubmit) y [UserPromptExpansion](#userpromptexpansion): junto al prompt enviado828* [UserPromptSubmit](#userpromptsubmit) y [UserPromptExpansion](#userpromptexpansion): junto al prompt enviado

817* [PreToolUse](#pretooluse), [PostToolUse](#posttooluse), [PostToolUseFailure](#posttoolusefailure) y [PostToolBatch](#posttoolbatch): junto al resultado de la herramienta829* [PreToolUse](#pretooluse), [PostToolUse](#posttooluse), [PostToolUseFailure](#posttoolusefailure) y [PostToolBatch](#posttoolbatch): junto al resultado de la herramienta

830* [Stop](#stop) y [SubagentStop](#subagentstop): al final del turno. La conversación continúa para que Claude pueda actuar sobre la retroalimentación. Consulte [Stop decision control](#stop-decision-control)

818 831 

819Cuando varios hooks devuelven `additionalContext` para el mismo evento, Claude recibe todos los valores. Si un valor excede 10.000 caracteres, Claude Code escribe el texto completo en un archivo en el directorio de sesión y pasa a Claude la ruta del archivo con una vista previa corta en su lugar.832Cuando varios hooks devuelven `additionalContext` para el mismo evento, Claude recibe todos los valores. Si un valor excede 10.000 caracteres, Claude Code escribe el texto completo en un archivo en el directorio de sesión y pasa a Claude la ruta del archivo con una vista previa corta en su lugar.

820 833 


838 851 

839| Eventos | Patrón de decisión | Campos clave |852| Eventos | Patrón de decisión | Campos clave |

840| :---------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |853| :---------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

841| UserPromptSubmit, UserPromptExpansion, PostToolUse, PostToolUseFailure, PostToolBatch, Stop, SubagentStop, ConfigChange, PreCompact | `decision` de nivel superior | `decision: "block"`, `reason` |854| UserPromptSubmit, UserPromptExpansion, PostToolUse, PostToolUseFailure, PostToolBatch, Stop, SubagentStop, ConfigChange, PreCompact | `decision` de nivel superior | `decision: "block"`, `reason`. Stop y SubagentStop también aceptan `hookSpecificOutput.additionalContext` para [retroalimentación sin error que continúa la conversación](#stop-decision-control) |

842| TeammateIdle, TaskCreated, TaskCompleted | Código de salida o `continue: false` | El código de salida 2 bloquea la acción con retroalimentación de stderr. JSON `{"continue": false, "stopReason": "..."}` también detiene al compañero completamente, coincidiendo con el comportamiento del hook `Stop` |855| TeammateIdle, TaskCreated, TaskCompleted | Código de salida o `continue: false` | El código de salida 2 bloquea la acción con retroalimentación de stderr. JSON `{"continue": false, "stopReason": "..."}` también detiene al compañero completamente, coincidiendo con el comportamiento del hook `Stop` |

843| PreToolUse | `hookSpecificOutput` | `permissionDecision` (allow/deny/ask/defer), `permissionDecisionReason` |856| PreToolUse | `hookSpecificOutput` | `permissionDecision` (allow/deny/ask/defer), `permissionDecisionReason` |

844| PermissionRequest | `hookSpecificOutput` | `decision.behavior` (allow/deny) |857| PermissionRequest | `hookSpecificOutput` | `decision.behavior` (allow/deny) |


850| SessionStart, Setup, SubagentStart | Solo contexto | `hookSpecificOutput.additionalContext` agrega contexto para Claude. SessionStart también acepta [`initialUserMessage`, `watchPaths`, `sessionTitle` y `reloadSkills`](#sessionstart-decision-control). Sin bloqueo o control de decisión |863| SessionStart, Setup, SubagentStart | Solo contexto | `hookSpecificOutput.additionalContext` agrega contexto para Claude. SessionStart también acepta [`initialUserMessage`, `watchPaths`, `sessionTitle` y `reloadSkills`](#sessionstart-decision-control). Sin bloqueo o control de decisión |

851| WorktreeRemove, Notification, SessionEnd, PostCompact, InstructionsLoaded, StopFailure, CwdChanged, FileChanged | Ninguno | Sin control de decisión. Se usa para efectos secundarios como registro o limpieza |864| WorktreeRemove, Notification, SessionEnd, PostCompact, InstructionsLoaded, StopFailure, CwdChanged, FileChanged | Ninguno | Sin control de decisión. Se usa para efectos secundarios como registro o limpieza |

852 865 

866Algunos eventos también pueden reescribir contenido en lugar de solo permitir o bloquearlo:

867 

868* `PreToolUse` — `updatedInput` directamente bajo `hookSpecificOutput` reemplaza los argumentos de una herramienta antes de que se ejecute ([detalles](#pretooluse-decision-control))

869* `PermissionRequest` — `updatedInput` dentro del objeto `decision` ([detalles](#permissionrequest-decision-control))

870* `PostToolUse` — `updatedToolOutput` reemplaza el resultado de la herramienta ([detalles](#posttooluse-decision-control))

871* `UserPromptSubmit` — no puede reemplazar el prompt; solo inyecta `additionalContext` junto a él

872 

873Para casos de uso de redacción o transformación, intercepte en `PreToolUse` para entradas de herramientas salientes y `PostToolUse` para resultados de herramientas entrantes.

874 

853Aquí hay ejemplos de cada patrón en acción:875Aquí hay ejemplos de cada patrón en acción:

854 876 

855<Tabs>877<Tabs>


926 Entrada de SessionStart948 Entrada de SessionStart

927</h4>949</h4>

928 950 

929Además de los [campos de entrada comunes](#common-input-fields), los hooks SessionStart reciben `source`, `model` y opcionalmente `agent_type` y `session_title`. El campo `source` indica cómo comenzó la sesión: `"startup"` para nuevas sesiones, `"resume"` para sesiones reanudadas, `"clear"` después de `/clear` o `"compact"` después de compactación. El campo `model` contiene el identificador del modelo. Si inicia Claude Code con `claude --agent <name>`, un campo `agent_type` contiene el nombre del agente. El campo `session_title` lleva el título de sesión actual si ya está establecido, por ejemplo a través de `--name` o `/rename`. Un hook que emite `sessionTitle` puede verificar `session_title` primero para evitar sobrescribir un título que el usuario estableció explícitamente.951Además de los [campos de entrada comunes](#common-input-fields), los hooks SessionStart reciben `source` y opcionalmente `model`, `agent_type` y `session_title`. El campo `source` indica cómo comenzó la sesión: `"startup"` para nuevas sesiones, `"resume"` para sesiones reanudadas, `"clear"` después de `/clear` o `"compact"` después de compactación. El campo `model` contiene el identificador del modelo activo. Puede omitirse, por ejemplo después de `/clear` o cuando se restaura una sesión a través de recuperación de conversación, así que verifique el campo antes de leerlo. Si inicia Claude Code con `claude --agent <name>`, un campo `agent_type` contiene el nombre del agente. El campo `session_title` lleva el título de sesión actual si ya está establecido, por ejemplo a través de `--name` o `/rename`. Un hook que emite `sessionTitle` puede verificar `session_title` primero para evitar sobrescribir un título que el usuario estableció explícitamente.

930 952 

931```json theme={null}953```json theme={null}

932{954{


1502En `PostToolUse`, `tool_response` para una llamada Agent completada lleva el texto final del subagente junto con telemetría de uso. Lea estos campos para registrar el costo por subagente desde un hook:1524En `PostToolUse`, `tool_response` para una llamada Agent completada lleva el texto final del subagente junto con telemetría de uso. Lea estos campos para registrar el costo por subagente desde un hook:

1503 1525 

1504| Campo | Tipo | Ejemplo | Descripción |1526| Campo | Tipo | Ejemplo | Descripción |

1505| :------------------ | :----- | :---------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------- |1527| :------------------ | :----- | :---------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------- |

1506| `status` | string | `"completed"` | `"completed"` para llamadas sincrónicas, `"async_launched"` para `run_in_background: true` |1528| `status` | string | `"completed"` | `"completed"` para llamadas sincrónicas, `"async_launched"` para `run_in_background: true` |

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

1508| `content` | array | `[{"type": "text", "text": "Found 12 endpoints..."}]` | Los bloques de texto finales del subagente |1530| `content` | array | `[{"type": "text", "text": "Found 12 endpoints..."}]` | Los bloques de texto finales del subagente |

1531| `resolvedModel` | string | `"claude-sonnet-4-5"` | Modelo en el que se ejecutó el subagente, que puede diferir del modelo solicitado. {/* min-version: 2.1.174 */}Requiere Claude Code v2.1.174 o posterior |

1509| `totalTokens` | number | `12450` | Tokens totales facturados en los turnos del subagente |1532| `totalTokens` | number | `12450` | Tokens totales facturados en los turnos del subagente |

1510| `totalDurationMs` | number | `48211` | Duración de reloj de pared de la ejecución del subagente |1533| `totalDurationMs` | number | `48211` | Duración de reloj de pared de la ejecución del subagente |

1511| `totalToolUseCount` | number | `7` | Recuento de llamadas a herramientas que hizo el subagente |1534| `totalToolUseCount` | number | `7` | Recuento de llamadas a herramientas que hizo el subagente |

1512| `usage` | object | `{"input_tokens": 8320, ...}` | Desglose de tokens por tipo: `input_tokens`, `output_tokens`, `cache_creation_input_tokens`, `cache_read_input_tokens` |1535| `usage` | object | `{"input_tokens": 8320, ...}` | Desglose de tokens por tipo: `input_tokens`, `output_tokens`, `cache_creation_input_tokens`, `cache_read_input_tokens` |

1513 1536 

1514Para llamadas `run_in_background: true`, la herramienta regresa inmediatamente después de lanzar el subagente, por lo que `tool_response` no lleva campos de uso. Tiene `status: "async_launched"`, `agentId`, `description`, `prompt` y `outputFile` en su lugar.1537Para llamadas `run_in_background: true`, la herramienta regresa inmediatamente después de lanzar el subagente, por lo que `tool_response` no lleva campos de uso. Tiene `status: "async_launched"`, `agentId`, `description`, `prompt`, `outputFile` y `resolvedModel`.

1538 

1539El campo `resolvedModel` nombra el modelo en el que se ejecuta realmente el subagente, que puede diferir del valor `model` en `tool_input`. Requiere Claude Code v2.1.174 o posterior.

1540 

1541<a id="askuserquestion" />

1515 1542 

1516<h5 id="askuserquestion">1543<h5 id="askuserquestion">

1517 AskUserQuestion1544 AskUserQuestion


2088}2115}

2089```2116```

2090 2117 

2091Los hooks SubagentStop usan el mismo formato de control de decisión que los [hooks Stop](#stop-decision-control). No admiten `additionalContext`. Devolver `decision: "block"` con una `reason` mantiene el subagente en ejecución y entrega `reason` al subagente como su siguiente instrucción. Para inyectar contexto en la sesión padre después de que un subagente regresa, use un hook [`PostToolUse`](#posttooluse) en la herramienta `Agent` en su lugar.2118Los hooks SubagentStop usan el mismo formato de control de decisión que los [hooks Stop](#stop-decision-control), incluyendo `hookSpecificOutput.additionalContext` con `hookEventName` establecido en `"SubagentStop"`, para retroalimentación sin error que mantiene el subagente en ejecución. Devolver `decision: "block"` con una `reason` mantiene el subagente en ejecución y entrega `reason` al subagente como su siguiente instrucción. Para inyectar contexto en la sesión padre después de que un subagente regresa, use un hook [`PostToolUse`](#posttooluse) en la herramienta `Agent` en su lugar.

2092 2119 

2093<h3 id="taskcreated">2120<h3 id="taskcreated">

2094 TaskCreated2121 TaskCreated


2115 "task_subject": "Implement user authentication",2142 "task_subject": "Implement user authentication",

2116 "task_description": "Add login and signup endpoints",2143 "task_description": "Add login and signup endpoints",

2117 "teammate_name": "implementer",2144 "teammate_name": "implementer",

2118 "team_name": "my-project"2145 "team_name": "session-a1b2c3d4"

2119}2146}

2120```2147```

2121 2148 

2122| Campo | Descripción |2149| Campo | Descripción |

2123| :----------------- | :---------------------------------------------------------- |2150| :----------------- | :-------------------------------------------------------------------------- |

2124| `task_id` | Identificador de la tarea que se está creando |2151| `task_id` | Identificador de la tarea que se está creando |

2125| `task_subject` | Título de la tarea |2152| `task_subject` | Título de la tarea |

2126| `task_description` | Descripción detallada de la tarea. Puede estar ausente |2153| `task_description` | Descripción detallada de la tarea. Puede estar ausente |

2127| `teammate_name` | Nombre del compañero que crea la tarea. Puede estar ausente |2154| `teammate_name` | Nombre del compañero que crea la tarea. Puede estar ausente |

2128| `team_name` | Nombre del equipo. Puede estar ausente |2155| `team_name` | Nombre del equipo derivado de la sesión; se eliminará en una versión futura |

2129 2156 

2130<h4 id="taskcreated-decision-control">2157<h4 id="taskcreated-decision-control">

2131 Control de decisión de TaskCreated2158 Control de decisión de TaskCreated


2176 "task_subject": "Implement user authentication",2203 "task_subject": "Implement user authentication",

2177 "task_description": "Add login and signup endpoints",2204 "task_description": "Add login and signup endpoints",

2178 "teammate_name": "implementer",2205 "teammate_name": "implementer",

2179 "team_name": "my-project"2206 "team_name": "session-a1b2c3d4"

2180}2207}

2181```2208```

2182 2209 

2183| Campo | Descripción |2210| Campo | Descripción |

2184| :----------------- | :-------------------------------------------------------------- |2211| :----------------- | :-------------------------------------------------------------------------- |

2185| `task_id` | Identificador de la tarea que se está completando |2212| `task_id` | Identificador de la tarea que se está completando |

2186| `task_subject` | Título de la tarea |2213| `task_subject` | Título de la tarea |

2187| `task_description` | Descripción detallada de la tarea. Puede estar ausente |2214| `task_description` | Descripción detallada de la tarea. Puede estar ausente |

2188| `teammate_name` | Nombre del compañero que completa la tarea. Puede estar ausente |2215| `teammate_name` | Nombre del compañero que completa la tarea. Puede estar ausente |

2189| `team_name` | Nombre del equipo. Puede estar ausente |2216| `team_name` | Nombre del equipo derivado de la sesión; se eliminará en una versión futura |

2190 2217 

2191<h4 id="taskcompleted-decision-control">2218<h4 id="taskcompleted-decision-control">

2192 Control de decisión de TaskCompleted2219 Control de decisión de TaskCompleted


2294Los hooks `Stop` y `SubagentStop` pueden controlar si Claude continúa. Además de los [campos de salida JSON](#json-output) disponibles para todos los hooks, su script de hook puede devolver estos campos específicos del evento:2321Los hooks `Stop` y `SubagentStop` pueden controlar si Claude continúa. Además de los [campos de salida JSON](#json-output) disponibles para todos los hooks, su script de hook puede devolver estos campos específicos del evento:

2295 2322 

2296| Campo | Descripción |2323| Campo | Descripción |

2297| :--------- | :-------------------------------------------------------------------------------- |2324| :------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

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

2299| `reason` | Requerido cuando `decision` es `"block"`. Le dice a Claude por qué debe continuar |2326| `reason` | Requerido cuando `decision` es `"block"`. Le dice a Claude por qué debe continuar |

2327| `hookSpecificOutput.additionalContext` | Retroalimentación sin error para Claude. La conversación continúa para que Claude pueda actuar sobre ella, pero a diferencia de `decision: "block"` se muestra en la transcripción como retroalimentación de hook en lugar de un error de hook |

2300 2328 

2301```json theme={null}2329```json theme={null}

2302{2330{


2305}2333}

2306```2334```

2307 2335 

2336Use `additionalContext` cuando el hook está funcionando como se diseñó y dando orientación a Claude, como "ejecute el conjunto de pruebas antes de terminar". Mantiene la conversación a través de las mismas protecciones de bucle que `decision: "block"`, es decir, la entrada `stop_hook_active` y el límite de 8 continuaciones consecutivas, pero la transcripción la etiqueta como `Stop hook feedback` y no se muestra ninguna notificación de error de hook:

2337 

2338```json theme={null}

2339{

2340 "hookSpecificOutput": {

2341 "hookEventName": "Stop",

2342 "additionalContext": "Please run the test suite before finishing"

2343 }

2344}

2345```

2346 

2308<h3 id="stopfailure">2347<h3 id="stopfailure">

2309 StopFailure2348 StopFailure

2310</h3>2349</h3>


2359 "permission_mode": "default",2398 "permission_mode": "default",

2360 "hook_event_name": "TeammateIdle",2399 "hook_event_name": "TeammateIdle",

2361 "teammate_name": "researcher",2400 "teammate_name": "researcher",

2362 "team_name": "my-project"2401 "team_name": "session-a1b2c3d4"

2363}2402}

2364```2403```

2365 2404 

2366| Campo | Descripción |2405| Campo | Descripción |

2367| :-------------- | :--------------------------------------------------------- |2406| :-------------- | :-------------------------------------------------------------------------- |

2368| `teammate_name` | Nombre del compañero que está a punto de quedarse inactivo |2407| `teammate_name` | Nombre del compañero que está a punto de quedarse inactivo |

2369| `team_name` | Nombre del equipo |2408| `team_name` | Nombre del equipo derivado de la sesión; se eliminará en una versión futura |

2370 2409 

2371<h4 id="teammateidle-decision-control">2410<h4 id="teammateidle-decision-control">

2372 Control de decisión de TeammateIdle2411 Control de decisión de TeammateIdle


2739 Entrada de SessionEnd2778 Entrada de SessionEnd

2740</h4>2779</h4>

2741 2780 

2742Además de los [campos de entrada comunes](#common-input-fields), los hooks SessionEnd reciben un campo `reason` que indica por qué terminó la sesión. Consulte la [tabla de razones](#sessionend) anterior para todos los valores.2781Además de los [campos de entrada comunes](#common-input-fields), los hooks SessionEnd reciben un campo `reason` que indica por qué terminó la sesión. Consulte la tabla de razones anterior para todos los valores.

2743 2782 

2744```json theme={null}2783```json theme={null}

2745{2784{


3215 3254 

3216Tenga en cuenta estas prácticas al escribir hooks:3255Tenga en cuenta estas prácticas al escribir hooks:

3217 3256 

3218* **Validar y desinfectar entradas**: nunca confíe en datos de entrada ciegamente3257* **Validar y sanitizar entradas**: nunca confíe en datos de entrada ciegamente

3219* **Siempre entrecomillar variables de shell**: use `"$VAR"` no `$VAR`3258* **Siempre entrecomillar variables de shell**: use `"$VAR"` no `$VAR`

3220* **Bloquear traversal de ruta**: verifique `..` en rutas de archivo3259* **Bloquear traversal de ruta**: verifique `..` en rutas de archivo

3221* **Usar rutas absolutas**: especifique rutas completas para scripts. En forma exec, use `${CLAUDE_PROJECT_DIR}` y la ruta no necesita entrecomillarse. En forma shell, envuélvala en comillas dobles3260* **Usar rutas absolutas**: especifique rutas completas para scripts. En forma exec, use `${CLAUDE_PROJECT_DIR}` y la ruta no necesita entrecomillarse. En forma shell, envuélvala en comillas dobles

hooks-guide.md +19 −7

Details

506 506 

507Cuando múltiples hooks coinciden con el mismo evento, el comando de cada hook se ejecuta hasta completarse antes de que Claude Code fusione los resultados. Un hook que devuelve `deny` no detiene la ejecución de hooks hermanos. No confíes en que el `deny` de un hook suprima efectos secundarios en otro hook.507Cuando múltiples hooks coinciden con el mismo evento, el comando de cada hook se ejecuta hasta completarse antes de que Claude Code fusione los resultados. Un hook que devuelve `deny` no detiene la ejecución de hooks hermanos. No confíes en que el `deny` de un hook suprima efectos secundarios en otro hook.

508 508 

509Después de que todos los hooks coincidentes terminen, Claude Code combina sus salidas. Para decisiones de permiso `PreToolUse`, la respuesta más restrictiva gana: `deny` anula `ask`, que anula `allow`. El texto de `additionalContext` se mantiene de cada hook y se pasa a Claude junto.509Después de que todos los hooks coincidentes terminen, Claude Code combina sus salidas. Para decisiones de permiso `PreToolUse`, la respuesta más restrictiva gana, en el orden `deny`, `defer`, `ask`, `allow`. El texto de `additionalContext` se mantiene de cada hook y se pasa a Claude junto.

510 510 

511El ejemplo a continuación registra dos hooks `PreToolUse` en `Bash`. El primero añade cada comando a un archivo de registro y sale con 0. El segundo ejecuta un script que sale con 2 para negar cuando el comando contiene `rm -rf`:511El ejemplo a continuación registra dos hooks `PreToolUse` en `Bash`. El primero añade cada comando a un archivo de registro y sale con 0. El segundo ejecuta un script que sale con 2 para negar cuando el comando contiene `rm -rf`:

512 512 


751 El campo `if` requiere Claude Code v2.1.85 o posterior. Las versiones anteriores lo ignoran y ejecutan el hook en cada llamada coincidente.751 El campo `if` requiere Claude Code v2.1.85 o posterior. Las versiones anteriores lo ignoran y ejecutan el hook en cada llamada coincidente.

752</Note>752</Note>

753 753 

754El campo `if` usa [sintaxis de regla de permiso](/es/permissions) para filtrar hooks por nombre de herramienta y argumentos juntos, para que el proceso del hook solo se genere cuando la llamada a herramienta coincida, o cuando un comando Bash es demasiado complejo para analizar. Esto va más allá de `matcher`, que filtra a nivel de grupo solo por nombre de herramienta.754El campo `if` usa [sintaxis de regla de permiso](/es/permissions) para filtrar hooks por nombre de herramienta y argumentos juntos, para que el proceso del hook solo se genere cuando la llamada a herramienta coincida. Esto va más allá de `matcher`, que filtra a nivel de grupo solo por nombre de herramienta.

755 755 

756Por ejemplo, para ejecutar un hook solo cuando Claude usa comandos `git` en lugar de todos los comandos Bash:756Por ejemplo, para ejecutar un hook solo cuando Claude usa comandos `git` en lugar de todos los comandos Bash:

757 757 


774}774}

775```775```

776 776 

777El proceso del hook solo se genera cuando un subcomando del comando Bash coincide con `git *`, o cuando el comando es demasiado complejo para analizar en subcomandos. Para comandos compuestos como `npm test && git push`, Claude Code evalúa cada subcomando y activa el hook porque `git push` coincide. El campo `if` acepta los mismos patrones que las reglas de permiso: `"Bash(git *)"`, `"Edit(*.ts)"`, y así sucesivamente. Para coincidir con múltiples nombres de herramienta, usa manejadores separados cada uno con su propio valor `if`, o coincide a nivel de `matcher` donde se soporta alternancia de tuberías.777Si tu hook debe ejecutarse depende de la forma de tu patrón `if` y del comando Bash que Claude está invocando:

778 

779| Patrón `if` | Comando Bash | ¿Se ejecuta el hook? | Por qué |

780| :----------------- | :--------------------- | :------------------- | :------------------------------------------------------------------------------------------------------------------------ |

781| `Bash(git *)` | `git push` | sí | el nombre del comando coincide |

782| `Bash(git *)` | `npm test && git push` | sí | cada subcomando se verifica; `git push` coincide |

783| `Bash(git *)` | `echo $(git log)` | sí | los comandos dentro de `$()` y backticks se verifican; `git log` coincide |

784| `Bash(git *)` | `echo $(date)` | no | ningún subcomando coincide con `git *` |

785| `Bash(git push *)` | `echo $(date)` | sí | los patrones que especifican más que el nombre del comando ejecutan el hook de todas formas en `$()`, backticks, o `$VAR` |

786 

787El filtro también falla abierto, ejecutando tu hook independientemente del patrón, cuando el comando Bash no puede ser analizado. Porque el filtro es mejor esfuerzo, usa el [sistema de permisos](/es/permissions) en lugar de un hook para aplicar un allow o deny duro.

788 

789El campo `if` acepta los mismos patrones que las reglas de permiso: `"Bash(git *)"`, `"Edit(*.ts)"`, y así sucesivamente. Para coincidir con múltiples nombres de herramienta, usa manejadores separados cada uno con su propio valor `if`, o coincide a nivel de `matcher` donde se soporta alternancia de tuberías.

778 790 

779`if` solo funciona en eventos de herramienta: `PreToolUse`, `PostToolUse`, `PostToolUseFailure`, `PermissionRequest`, y `PermissionDenied`. Añadirlo a cualquier otro evento evita que el hook se ejecute.791`if` solo funciona en eventos de herramienta: `PreToolUse`, `PostToolUse`, `PostToolUseFailure`, `PermissionRequest`, y `PermissionDenied`. Añadirlo a cualquier otro evento evita que el hook se ejecute.

780 792 


788| :--------------------------------------------------------- | :------------------------------------- | :----------------------------------------- |800| :--------------------------------------------------------- | :------------------------------------- | :----------------------------------------- |

789| `~/.claude/settings.json` | Todos tus proyectos | No, local a tu máquina |801| `~/.claude/settings.json` | Todos tus proyectos | No, local a tu máquina |

790| `.claude/settings.json` | Proyecto único | Sí, puede ser confirmado en el repositorio |802| `.claude/settings.json` | Proyecto único | Sí, puede ser confirmado en el repositorio |

791| `.claude/settings.local.json` | Proyecto único | No, gitignored |803| `.claude/settings.local.json` | Proyecto único | No, gitignored cuando Claude Code lo crea |

792| Configuración de política gestionada | Organización completa | Sí, controlado por administrador |804| Configuración de política gestionada | Organización completa | Sí, controlado por administrador |

793| [Plugin](/es/plugins) `hooks/hooks.json` | Cuando el plugin está habilitado | Sí, incluido con el plugin |805| [Plugin](/es/plugins) `hooks/hooks.json` | Cuando el plugin está habilitado | Sí, incluido con el plugin |

794| [Skill](/es/skills) o [agente](/es/sub-agents) frontmatter | Mientras el skill o agente está activo | Sí, definido en el archivo del componente |806| [Skill](/es/skills) o [agente](/es/sub-agents) frontmatter | Mientras el skill o agente está activo | Sí, definido en el archivo del componente |

795 807 

796Ejecuta [`/hooks`](/es/hooks#the-hooks-menu) en Claude Code para examinar todos los hooks configurados agrupados por evento. Para desactivar todos los hooks a la vez, establece `"disableAllHooks": true` en tu archivo de configuración. Los hooks configurados en configuración gestionada aún se ejecutan a menos que `disableAllHooks` también esté establecido allí.808Ejecuta [`/hooks`](/es/hooks#the-%2Fhooks-menu) en Claude Code para examinar todos los hooks configurados agrupados por evento. Para desactivar todos los hooks a la vez, establece `"disableAllHooks": true` en tu archivo de configuración. Los hooks configurados en configuración gestionada aún se ejecutan a menos que `disableAllHooks` también esté establecido allí.

797 809 

798Si editas archivos de configuración directamente mientras Claude Code está ejecutándose, el observador de archivos normalmente recoge cambios de hooks automáticamente.810Si editas archivos de configuración directamente mientras Claude Code está ejecutándose, el observador de archivos normalmente recoge cambios de hooks automáticamente.

799 811 


830}842}

831```843```

832 844 

833Para opciones de configuración completas, consulta [Prompt-based hooks](/es/hooks#prompt-based-hooks) en la referencia.845Para opciones de configuración completas, consulta [Hooks basados en prompts](/es/hooks#prompt-based-hooks) en la referencia.

834 846 

835<h2 id="agent-based-hooks">847<h2 id="agent-based-hooks">

836 Hooks basados en agentes848 Hooks basados en agentes


866 878 

867Usa hooks de prompt cuando los datos de entrada del hook por sí solos son suficientes para tomar una decisión. Usa hooks de agente cuando necesites verificar algo contra el estado real del código base.879Usa hooks de prompt cuando los datos de entrada del hook por sí solos son suficientes para tomar una decisión. Usa hooks de agente cuando necesites verificar algo contra el estado real del código base.

868 880 

869Para opciones de configuración completas, consulta [Agent-based hooks](/es/hooks#agent-based-hooks) en la referencia.881Para opciones de configuración completas, consulta [Hooks basados en agentes](/es/hooks#agent-based-hooks) en la referencia.

870 882 

871<h2 id="http-hooks">883<h2 id="http-hooks">

872 HTTP hooks884 HTTP hooks

Details

16 16 

17Cuando le da una tarea a Claude, trabaja a través de tres fases: **recopilar contexto**, **tomar acción** y **verificar resultados**. Estas fases se mezclan entre sí. Claude utiliza herramientas en todo momento, ya sea buscando archivos para entender su código, editando para hacer cambios o ejecutando pruebas para verificar su trabajo.17Cuando le da una tarea a Claude, trabaja a través de tres fases: **recopilar contexto**, **tomar acción** y **verificar resultados**. Estas fases se mezclan entre sí. Claude utiliza herramientas en todo momento, ya sea buscando archivos para entender su código, editando para hacer cambios o ejecutando pruebas para verificar su trabajo.

18 18 

19<img src="https://mintcdn.com/claude-code/ikqp3_70mqIahteV/images/agentic-loop.svg?fit=max&auto=format&n=ikqp3_70mqIahteV&q=85&s=4a30fb7ce2815012a9f27c955e2c6bb0" alt="El bucle agentico: Su indicación lleva a Claude a recopilar contexto, tomar acción, verificar resultados y repetir hasta completar la tarea. Puede interrumpir en cualquier momento." width="720" height="280" data-path="images/agentic-loop.svg" />19<img src="https://mintcdn.com/claude-code/ikqp3_70mqIahteV/images/agentic-loop.svg?fit=max&auto=format&n=ikqp3_70mqIahteV&q=85&s=4a30fb7ce2815012a9f27c955e2c6bb0" alt="Diagrama del bucle agentico: Su indicación lleva a Claude a recopilar contexto, tomar acción, verificar resultados y repetir hasta completar la tarea. Puede interrumpir en cualquier momento." width="720" height="280" data-path="images/agentic-loop.svg" />

20 20 

21El bucle se adapta a lo que pregunta. Una pregunta sobre su base de código podría necesitar solo recopilación de contexto. Una corrección de errores cicla a través de las tres fases repetidamente. Una refactorización podría implicar una verificación extensa. Claude decide qué requiere cada paso basándose en lo que aprendió del paso anterior, encadenando docenas de acciones juntas y corrigiendo el curso en el camino.21El bucle se adapta a lo que pregunta. Una pregunta sobre su base de código podría necesitar solo recopilación de contexto. Una corrección de errores cicla a través de las tres fases repetidamente. Una refactorización podría implicar una verificación extensa. Claude decide qué requiere cada paso basándose en lo que aprendió del paso anterior, encadenando docenas de acciones juntas y corrigiendo el curso en el camino.

22 22 


188 188 

189* **Predeterminado**: Claude pregunta antes de ediciones de archivo y comandos de shell189* **Predeterminado**: Claude pregunta antes de ediciones de archivo y comandos de shell

190* **Auto-aceptar ediciones**: Claude edita archivos y ejecuta comandos comunes del sistema de archivos como `mkdir` y `mv` sin preguntar, aún pregunta por otros comandos190* **Auto-aceptar ediciones**: Claude edita archivos y ejecuta comandos comunes del sistema de archivos como `mkdir` y `mv` sin preguntar, aún pregunta por otros comandos

191* **Plan Mode**: Claude usa solo herramientas de solo lectura, creando un plan que puede aprobar antes de la ejecución191* **Plan Mode**: Claude explora y propone un plan sin editar sus archivos fuente; los avisos de permiso aún se aplican como en el modo predeterminado

192* **Auto mode**: Claude evalúa todas las acciones con verificaciones de seguridad en segundo plano. Actualmente una vista previa de investigación192* **Auto mode**: Claude evalúa todas las acciones con verificaciones de seguridad en segundo plano. Actualmente una vista previa de investigación

193 193 

194También puede permitir comandos específicos en `.claude/settings.json` para que Claude no pregunte cada vez. Esto es útil para comandos confiables como `npm test` o `git status`. La configuración puede tener alcance desde políticas de toda la organización hasta preferencias personales. Consulte [Permisos](/es/permissions) para detalles.194También puede permitir comandos específicos en `.claude/settings.json` para que Claude no pregunte cada vez. Esto es útil para comandos confiables como `npm test` o `git status`. La configuración puede tener alcance desde políticas de toda la organización hasta preferencias personales. Consulte [Permisos](/es/permissions) para detalles.


213* `/agents` lo ayuda a configurar subagents personalizados213* `/agents` lo ayuda a configurar subagents personalizados

214* `/doctor` diagnostica problemas comunes con su instalación214* `/doctor` diagnostica problemas comunes con su instalación

215 215 

216<h3 id="it-s-a-conversation">216<h3 id="its-a-conversation">

217 Es una conversación217 Es una conversación

218</h3>218</h3>

219 219 


282 282 

283Revise el plan, refínelo a través de la conversación, luego deje que Claude implemente. Este enfoque de dos fases produce mejores resultados que saltar directamente al código.283Revise el plan, refínelo a través de la conversación, luego deje que Claude implemente. Este enfoque de dos fases produce mejores resultados que saltar directamente al código.

284 284 

285<h3 id="delegate-don-t-dictate">285<h3 id="delegate-dont-dictate">

286 Delegue, no dicte286 Delegue, no dicte

287</h3>287</h3>

288 288 


295 295 

296No necesita especificar qué archivos leer o qué comandos ejecutar. Claude lo descubre.296No necesita especificar qué archivos leer o qué comandos ejecutar. Claude lo descubre.

297 297 

298<h2 id="what-s-next">298<h2 id="whats-next">

299 Qué sigue299 Qué sigue

300</h2>300</h2>

301 301 

Details

27</h3>27</h3>

28 28 

29| Atajo | Descripción | Contexto |29| Atajo | Descripción | Contexto |

30| :---------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |30| :---------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

31| `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 indicador y una segunda pulsación sale de Claude Code |31| `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 indicador y una segunda pulsación sale de Claude Code |

32| `Ctrl+X Ctrl+K` | Terminar todos los [subagentes en ejecución de fondo](/es/sub-agents#run-subagents-in-foreground-or-background) en esta sesión. Presione dos veces en 3 segundos para confirmar | Control de subagentes |32| `Ctrl+X Ctrl+K` | Terminar todos los [subagentes en ejecución de fondo](/es/sub-agents#run-subagents-in-foreground-or-background) en esta sesión. Presione dos veces en 3 segundos para confirmar | Control de subagentes |

33| `Ctrl+D` | Salir de la sesión de Claude Code | Señal EOF |33| `Ctrl+D` | Salir de la sesión de Claude Code | Señal EOF |


39| `Ctrl+B` | Tareas en ejecución de fondo | Coloca comandos bash y agentes en segundo plano. Los usuarios de Tmux presionan dos veces |39| `Ctrl+B` | Tareas en ejecución de fondo | Coloca comandos bash y agentes en segundo plano. Los usuarios de Tmux presionan dos veces |

40| `Ctrl+T` | Alternar lista de tareas | Mostrar u ocultar la [lista de tareas](#task-list) en el área de estado de la terminal |40| `Ctrl+T` | Alternar lista de tareas | Mostrar u ocultar la [lista de tareas](#task-list) en el área de estado de la terminal |

41| `Flechas izquierda/derecha` | Ciclar a través de pestañas de diálogo | Navegar entre pestañas en diálogos de permisos y menús |41| `Flechas izquierda/derecha` | Ciclar a través de pestañas de diálogo | Navegar entre pestañas en diálogos de permisos y menús |

42| `Flechas arriba/abajo` o `Ctrl+P`/`Ctrl+N` | Mover cursor o navegar por el historial de comandos | En entrada multilínea, primero mueve el cursor dentro de la indicación. Una vez que el cursor ya está en el borde superior o inferior, presionar nuevamente navega por el historial de comandos |42| `Flechas arriba/abajo` o `Ctrl+P`/`Ctrl+N` | Mover cursor o navegar por el historial de comandos | Cuando la entrada abarca más de una fila visual, ya sea envuelta o multilínea, primero mueve el cursor dentro de la indicación. Una vez que el cursor está en la primera o última fila visual, presionar nuevamente navega por el historial de comandos. {/* min-version: 2.1.169 */}A partir de v2.1.169, la entrada de una sola línea envuelta se comporta igual que la multilínea |

43| `Esc` | Interrumpir Claude | Detener la respuesta actual o la llamada de herramienta a mitad de turno para que pueda redirigir. Claude mantiene el trabajo realizado hasta ahora |43| `Esc` | Interrumpir Claude | Detener la respuesta actual o la llamada de herramienta a mitad de turno para que pueda redirigir. Claude mantiene el trabajo realizado hasta ahora |

44| `Esc` + `Esc` | Borrar borrador de entrada, o rebobinar | Cuando la entrada del indicador 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](/es/checkpointing) para restaurar o resumir código y conversación desde un punto anterior |44| `Esc` + `Esc` | Borrar borrador de entrada, o rebobinar | Cuando la entrada del indicador 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](/es/checkpointing) para restaurar o resumir código y conversación desde un punto anterior |

45| `Shift+Tab` o `Alt+M` (algunas configuraciones) | Ciclar modos de permiso | Ciclar a través de `default`, `acceptEdits`, `plan` y cualquier modo que haya habilitado, como `auto` o `bypassPermissions`. Consulte [modos de permiso](/es/permission-modes). |45| `Shift+Tab` o `Alt+M` (algunas configuraciones) | Ciclar modos de permiso | Ciclar a través de `default`, `acceptEdits`, `plan` y cualquier modo que haya habilitado, como `auto` o `bypassPermissions`. Consulte [modos de permiso](/es/permission-modes). |

46| `Option+P` (macOS) o `Alt+P` (Windows/Linux) | Cambiar modelo | Cambiar modelos sin borrar su indicación |46| `Option+P` (macOS) o `Alt+P` (Windows/Linux) | Cambiar modelo | Cambiar modelos sin borrar su indicación |

47| `Option+T` (macOS) o `Alt+T` (Windows/Linux) | Alternar pensamiento extendido | Habilitar o deshabilitar el modo de pensamiento extendido. {/* min-version: 2.1.132 */}A partir de v2.1.132, este atajo funciona en macOS sin configurar Option como Meta |47| `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, que siempre utiliza pensamiento extendido. {/* min-version: 2.1.132 */}A partir de v2.1.132 este atajo funciona en macOS sin configurar Option como Meta |

48| `Option+O` (macOS) o `Alt+O` (Windows/Linux) | Alternar modo rápido | Habilitar o deshabilitar [modo rápido](/es/fast-mode) |48| `Option+O` (macOS) o `Alt+O` (Windows/Linux) | Alternar modo rápido | Habilitar o deshabilitar [modo rápido](/es/fast-mode) |

49 49 

50<h3 id="text-editing">50<h3 id="text-editing">


372| :------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |372| :------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

373| `Space`, `Enter`, `Escape` | Descartar la respuesta y volver a la indicación |373| `Space`, `Enter`, `Escape` | Descartar la respuesta y volver a la indicación |

374| `Up` / `Down` | Desplazarse por la respuesta |374| `Up` / `Down` | Desplazarse por la respuesta |

375| `c` | Copiar la respuesta al portapapeles como Markdown sin formato. Use esto en lugar de la selección del ratón, que captura la representación terminal con ajuste de línea duro en lugar del texto fuente |

375| `f` | Dividir en una nueva sesión. La división hereda la conversación principal más esta pregunta y respuesta como turnos de transcripción real, por lo que puede continuar con acceso completo a herramientas. La sesión original se conserva en [`/resume`](/es/commands). Disponible solo en sesiones locales |376| `f` | Dividir en una nueva sesión. La división hereda la conversación principal más esta pregunta y respuesta como turnos de transcripción real, por lo que puede continuar con acceso completo a herramientas. La sesión original se conserva en [`/resume`](/es/commands). Disponible solo en sesiones locales |

376| `x` | Borrar la lista de intercambios anteriores de `/btw` mostrados encima de la respuesta actual |377| `x` | Borrar la lista de intercambios anteriores de `/btw` mostrados encima de la respuesta actual |

377 378 

jetbrains.md +18 −10

Details

35 Instalación35 Instalación

36</h2>36</h2>

37 37 

38<h3 id="marketplace-installation">38El plugin ejecuta el comando `claude` en la terminal integrada de su IDE y se conecta a él. No incluye su propia copia de la CLI, así que instale ambos componentes:

39 Instalación desde Marketplace39 

40</h3>40<Steps>

41 <Step title="Instalar Claude Code CLI">

42 Siga la [guía de inicio rápido](/es/quickstart) para instalar la CLI si aún no lo ha hecho. El plugin muestra una notificación "No se puede iniciar Claude Code" cuando `claude` no está en su PATH.

43 </Step>

44 

45 <Step title="Instalar el plugin de JetBrains">

46 Instale el [plugin de Claude Code](https://plugins.jetbrains.com/plugin/27310-claude-code-beta-) desde el Marketplace de JetBrains y reinicie su IDE.

47 </Step>

48</Steps>

41 49 

42Busca e instala el [plugin de Claude Code](https://plugins.jetbrains.com/plugin/27310-claude-code-beta-) desde el marketplace de JetBrains y reinicia tu IDE.50Si `claude` está instalado en algún lugar que su IDE no puede encontrar, establezca la ruta completa en la [configuración del comando Claude](#general-settings) del plugin.

43 51 

44Si aún no has instalado Claude Code, consulta la [guía de inicio rápido](/es/quickstart) para obtener instrucciones de instalación.52Claude Code funciona con cualquier suscripción de Claude de pago (Pro, Max, Team o Enterprise) o una cuenta de Claude Console, y no se requiere ninguna clave API. Se le pedirá que [inicie sesión](/es/authentication#log-in-to-claude-code) la primera vez que ejecute `claude`.

45 53 

46<Note>54<Note>

47 Después de instalar el plugin, es posible que necesites reiniciar completamente tu IDE para que surta efecto.55 Después de instalar el plugin, es posible que necesite reiniciar completamente su IDE para que surta efecto.

48</Note>56</Note>

49 57 

50<h2 id="usage">58<h2 id="usage">


883. Establece la herramienta de diferencias en `auto` para mostrar diferencias en el IDE, o `terminal` para mantenerlas en la terminal963. Establece la herramienta de diferencias en `auto` para mostrar diferencias en el IDE, o `terminal` para mantenerlas en la terminal

89 97 

90<h3 id="plugin-settings">98<h3 id="plugin-settings">

91 Configuración del Plugin99 Ajustes de plugins

92</h3>100</h3>

93 101 

94Configura el plugin de Claude Code yendo a **Settings → Tools → Claude Code \[Beta]**:102Configura el plugin de Claude Code yendo a **Settings → Tools → Claude Code \[Beta]**:


225 Consideraciones de seguridad233 Consideraciones de seguridad

226</h2>234</h2>

227 235 

228Cuando Claude Code se ejecuta en un JetBrains IDE con permisos de edición automática habilitados, puede ser capaz de modificar archivos de configuración del IDE que pueden ser ejecutados automáticamente por tu IDE. Esto puede aumentar el riesgo de ejecutar Claude Code en modo de edición automática y permitir eludir los indicadores de permiso de Claude Code para la ejecución de bash.236Cuando Claude Code se ejecuta en un JetBrains IDE con permisos de edición automática habilitados, puede ser capaz de modificar archivos de configuración del IDE que pueden ser ejecutados automáticamente por su IDE. Esto puede aumentar el riesgo de ejecutar Claude Code en modo de edición automática y permitir eludir los indicadores de permiso de Claude Code para la ejecución de bash.

229 237 

230Cuando se ejecuta en JetBrains IDEs, considera:238Cuando se ejecuta en JetBrains IDEs, considere:

231 239 

232* Usar el modo de aprobación manual para ediciones240* Usar el modo de aprobación manual para ediciones

233* Tener especial cuidado para asegurar que Claude solo se use con indicadores de confianza241* Tener especial cuidado para asegurar que Claude solo se use con indicadores de confianza

234* Ser consciente de qué archivos Claude Code tiene acceso para modificar242* Ser consciente de qué archivos Claude Code tiene acceso para modificar

235 243 

236Para problemas de instalación o inicio de sesión de Claude Code fuera del IDE, consulta [Solucionar problemas de instalación e inicio de sesión](/es/troubleshoot-install).244Para problemas de instalación o inicio de sesión de Claude Code fuera del IDE, consulte [Solucionar problemas de instalación e inicio de sesión](/es/troubleshoot-install).

keybindings.md +8 −8

Details

16 Archivo de configuración16 Archivo de configuración

17</h2>17</h2>

18 18 

19El archivo de configuración de keybindings es un objeto con un array `bindings`. Cada bloque especifica un contexto y un mapa de pulsaciones de teclas a acciones.19El archivo de configuración de atajos de teclado es un objeto con un array `bindings`. Cada bloque especifica un contexto y un mapa de pulsaciones de teclas a acciones.

20 20 

21<Note>Los cambios en el archivo de keybindings se detectan y aplican automáticamente sin reiniciar Claude Code.</Note>21<Note>Los cambios en el archivo de atajos de teclado se detectan y aplican automáticamente sin reiniciar Claude Code.</Note>

22 22 

23| Campo | Descripción |23| Campo | Descripción |

24| :--------- | :---------------------------------------------------------- |24| :--------- | :---------------------------------------------------------- |


48 Contextos48 Contextos

49</h2>49</h2>

50 50 

51Cada bloque de vinculación especifica un **contexto** donde se aplican los atajos:51Cada bloque de vinculación especifica un **contexto** donde se aplican los atajos de teclado:

52 52 

53| Contexto | Descripción |53| Contexto | Descripción |

54| :---------------- | :---------------------------------------------------------------------------- |54| :---------------- | :---------------------------------------------------------------------------- |


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. En [renderizado de pantalla completa](/es/fullscreen#clear-the-conversation), presione dos veces dentro de dos segundos para ejecutar `/clear` |117| `chat:clearInput` | Ctrl+L | Forzar un redibujo de pantalla completa, preservando la entrada. En [renderizado de pantalla completa](/es/fullscreen#clear-the-conversation), presione dos veces dentro de dos segundos para ejecutar `/clear` |

118| `chat:clearScreen` | Cmd+K | En [renderizado de pantalla completa](/es/fullscreen#clear-the-conversation), presione dos veces dentro de dos segundos para ejecutar `/clear` |118| `chat:clearScreen` | Cmd+K | En [renderizado de pantalla completa](/es/fullscreen#clear-the-conversation), presione dos veces dentro de dos segundos para ejecutar `/clear` |

119| `chat:killAgents` | Ctrl+X Ctrl+K | Matar todos los [subagentes de fondo](/es/sub-agents#run-subagents-in-foreground-or-background) en ejecución en esta sesión |119| `chat:killAgents` | Ctrl+X Ctrl+K | Detener todos los [subagentes de fondo](/es/sub-agents#run-subagents-in-foreground-or-background) en ejecución en esta sesión |

120| `chat:cycleMode` | Shift+Tab\* | Ciclar modos de permiso |120| `chat:cycleMode` | Shift+Tab\* | Ciclar modos de permiso |

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 |


203Acciones disponibles en el contexto `Task`:203Acciones disponibles en el contexto `Task`:

204 204 

205| Acción | Predeterminado | Descripción |205| Acción | Predeterminado | Descripción |

206| :---------------- | :------------- | :-------------------- |206| :---------------- | :-------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------- |

207| `task:background` | Ctrl+B | Tarea de fondo actual |207| `task:background` | Ctrl+B, Ctrl+X Ctrl+B | Tarea de fondo actual. {/* min-version: 2.1.169 */}El acorde Ctrl+X Ctrl+B requiere v2.1.169 o posterior y evita el conflicto de prefijo de tmux |

208 208 

209<h3 id="theme-actions">209<h3 id="theme-actions">

210 Acciones de tema210 Acciones de tema


537 Validación537 Validación

538</h2>538</h2>

539 539 

540Claude Code valida sus keybindings y muestra advertencias para:540Claude Code valida sus atajos de teclado y muestra advertencias para:

541 541 

542* Errores de análisis (JSON o estructura inválida)542* Errores de análisis (JSON o estructura inválida)

543* Nombres de contexto inválidos543* Nombres de contexto inválidos


545* Conflictos de multiplexor de terminal545* Conflictos de multiplexor de terminal

546* Vinculaciones duplicadas en el mismo contexto546* Vinculaciones duplicadas en el mismo contexto

547 547 

548Ejecute `/doctor` para ver cualquier advertencia de keybindings.548Ejecute `/doctor` para ver cualquier advertencia de atajos de teclado.

Details

148 148 

149Úselo para directorios en los que nunca trabaja, como paquetes de otros equipos, código heredado o subárboles vendidos. La lista de exclusión es estática, no un interruptor por tarea. Para enfocarse en un paquete hoy y otro mañana, [inicie Claude desde el directorio de ese paquete](#choose-where-to-start-claude) en lugar de editar exclusiones.149Úselo para directorios en los que nunca trabaja, como paquetes de otros equipos, código heredado o subárboles vendidos. La lista de exclusión es estática, no un interruptor por tarea. Para enfocarse en un paquete hoy y otro mañana, [inicie Claude desde el directorio de ese paquete](#choose-where-to-start-claude) en lugar de editar exclusiones.

150 150 

151Si solo desea estas exclusiones para usted, coloque la configuración en `.claude/settings.local.json`, que está en gitignore y no se compromete. Los patrones usan sintaxis glob coincidida contra rutas de archivo absolutas, así que comience patrones de estilo relativo con `**/` para coincidir en cualquier lugar del árbol. El ejemplo a continuación excluye paquetes propiedad de otros equipos:151Si solo desea estas exclusiones para usted, coloque la configuración en `.claude/settings.local.json`. Claude Code ignora ese archivo cuando lo crea; como lo está creando a mano aquí, agréguelo a su gitignore. Los patrones usan sintaxis glob coincidida contra rutas de archivo absolutas, así que comience patrones de estilo relativo con `**/` para coincidir en cualquier lugar del árbol. El ejemplo a continuación excluye paquetes propiedad de otros equipos:

152 152 

153```json .claude/settings.local.json theme={null}153```json .claude/settings.local.json theme={null}

154{154{


329 Agregar skills por directorio329 Agregar skills por directorio

330</h2>330</h2>

331 331 

332Cualquier subdirectorio puede definir [skills](/es/skills) limitadas a su propio stack. Un skill se carga bajo demanda cuando Claude determina que es relevante, por lo que las herramientas específicas de API no consumen contexto durante el trabajo de frontend.332Cualquier subdirectorio puede definir [skills](/es/skills) limitados a su propio stack. Un skill se carga bajo demanda cuando Claude determina que es relevante, por lo que las herramientas específicas de API no consumen contexto durante el trabajo de frontend.

333 333 

334Los skills viven bajo `.claude/skills/` dentro del directorio. Comprométalos junto con el código de esa área para que cualquiera que clone el repositorio los obtenga. En un monorepo esto puede ser un conjunto de skills por paquete. En un codebase de árbol único grande es uno por subsistema como `src/db/.claude/skills/`.334Los skills viven bajo `.claude/skills/` dentro del directorio. Comprométalos junto con el código de esa área para que cualquiera que clone el repositorio los obtenga. En un monorepo esto puede ser un conjunto de skills por paquete. En un codebase de árbol único grande es uno por subsistema como `src/db/.claude/skills/`.

335 335 

llm-gateway.md +14 −12

Details

14* **Registro de auditoría** - Rastrea todas las interacciones del modelo para cumplimiento normativo14* **Registro de auditoría** - Rastrea todas las interacciones del modelo para cumplimiento normativo

15* **Enrutamiento de modelos** - Cambia entre proveedores sin cambios de código15* **Enrutamiento de modelos** - Cambia entre proveedores sin cambios de código

16 16 

17Esta página cubre los requisitos de puerta de enlace y la configuración para Claude Code CLI. Las implementaciones de Enterprise Desktop pueden configurar proveedores de puerta de enlace a través de [configuración administrada](https://support.claude.com/es/articles/12622667-enterprise-configuration). La aplicación Claude Desktop también puede ejecutarse contra una puerta de enlace autohospedada a través de la [vista previa de investigación de Cowork en terceros](https://claude.com/docs/cowork/3p/gateway), que utiliza sus propias claves de configuración.

18 

17<h2 id="gateway-requirements">19<h2 id="gateway-requirements">

18 Requisitos de la puerta de enlace20 Requisitos de la puerta de enlace

19</h2>21</h2>


76</h2>78</h2>

77 79 

78<Warning>80<Warning>

79 Las versiones 1.82.7 y 1.82.8 de LiteLLM PyPI fueron comprometidas con malware que roba credenciales. No instales estas versiones. Si ya las has instalado:81 Las versiones 1.82.7 y 1.82.8 de LiteLLM PyPI fueron comprometidas con malware que roba credenciales. No instale estas versiones. Si ya las ha instalado:

80 82 

81 * Elimina el paquete83 * Elimine el paquete

82 * Rota todas las credenciales en los sistemas afectados84 * Rote todas las credenciales en los sistemas afectados

83 * Sigue los pasos de remediación en [BerriAI/litellm#24518](https://github.com/BerriAI/litellm/issues/24518)85 * Siga los pasos de remediación en [BerriAI/litellm#24518](https://github.com/BerriAI/litellm/issues/24518)

84 86 

85 LiteLLM es un servicio proxy de terceros. Anthropic no respalda, mantiene ni audita la seguridad o funcionalidad de LiteLLM. Esta guía se proporciona con fines informativos y puede quedar obsoleta. Úsala bajo tu propio criterio.87 LiteLLM es un servicio proxy de terceros. Anthropic no respalda, mantiene ni audita la seguridad o funcionalidad de LiteLLM. Esta guía se proporciona con fines informativos y puede quedar obsoleta. Úsela bajo su propio criterio.

86</Warning>88</Warning>

87 89 

88<h3 id="prerequisites">90<h3 id="prerequisites">


91 93 

92* Claude Code actualizado a la última versión94* Claude Code actualizado a la última versión

93* Servidor Proxy de LiteLLM implementado y accesible95* Servidor Proxy de LiteLLM implementado y accesible

94* Acceso a modelos Claude a través de tu proveedor elegido96* Acceso a modelos Claude a través de su proveedor elegido

95 97 

96<h3 id="basic-litellm-setup">98<h3 id="basic-litellm-setup">

97 Configuración básica de LiteLLM99 Configuración básica de LiteLLM

98</h3>100</h3>

99 101 

100**Configura Claude Code**:102**Configure Claude Code**:

101 103 

102<h4 id="authentication-methods">104<h4 id="authentication-methods">

103 Métodos de autenticación105 Métodos de autenticación


129 131 

130Para claves rotativas o autenticación por usuario:132Para claves rotativas o autenticación por usuario:

131 133 

1321. Crea un script ayudante de clave API:1341. Cree un script ayudante de clave API:

133 135 

134```bash theme={null}136```bash theme={null}

135#!/bin/bash137#!/bin/bash


145 '{"user":"'${USER}'","team":"engineering"}'147 '{"user":"'${USER}'","team":"engineering"}'

146```148```

147 149 

1482. Configura la configuración de Claude Code para usar el ayudante:1502. Configure la configuración de Claude Code para usar el ayudante:

149 151 

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

151{153{


153}155}

154```156```

155 157 

1563. Establece el intervalo de actualización de token:1583. Establezca el intervalo de actualización de token:

157 159 

158```bash theme={null}160```bash theme={null}

159# Actualizar cada hora (3600000 ms)161# Actualizar cada hora (3600000 ms)


222 Plataforma Claude en AWS a través de una puerta de enlace224 Plataforma Claude en AWS a través de una puerta de enlace

223</h5>225</h5>

224 226 

225Enruta a una puerta de enlace que reenvía al punto final de [Plataforma Claude en AWS](/es/claude-platform-on-aws):227Enrute a una puerta de enlace que reenvía al punto final de [Plataforma Claude en AWS](/es/claude-platform-on-aws):

226 228 

227```bash theme={null}229```bash theme={null}

228export ANTHROPIC_AWS_BASE_URL=https://litellm-server:4000/anthropic-aws230export ANTHROPIC_AWS_BASE_URL=https://litellm-server:4000/anthropic-aws


231export CLAUDE_CODE_USE_ANTHROPIC_AWS=1233export CLAUDE_CODE_USE_ANTHROPIC_AWS=1

232```234```

233 235 

234Para obtener información más detallada, consulta la [documentación de LiteLLM](https://docs.litellm.ai/).236Para obtener información más detallada, consulte la [documentación de LiteLLM](https://docs.litellm.ai/).

235 237 

236<h2 id="additional-resources">238<h2 id="additional-resources">

237 Recursos adicionales239 Recursos adicionales

mcp.md +158 −72

Details

12 12 

13Si está conectando su primer servidor, comience con el [inicio rápido de MCP](/es/mcp-quickstart) para un recorrido paso a paso. Esta página es la referencia completa.13Si está conectando su primer servidor, comience con el [inicio rápido de MCP](/es/mcp-quickstart) para un recorrido paso a paso. Esta página es la referencia completa.

14 14 

15## Qué puede hacer con MCP15<h2 id="what-you-can-do-with-mcp">

16 Qué puede hacer con MCP

17</h2>

16 18 

17Con servidores MCP conectados, puede pedirle a Claude Code que:19Con servidores MCP conectados, puede pedirle a Claude Code que:

18 20 


23* **Automatice flujos de trabajo**: "Cree borradores de Gmail invitando a estos 10 usuarios a una sesión de retroalimentación sobre la nueva característica."25* **Automatice flujos de trabajo**: "Cree borradores de Gmail invitando a estos 10 usuarios a una sesión de retroalimentación sobre la nueva característica."

24* **Reaccione a eventos externos**: Un servidor MCP también puede actuar como un [canal](/es/channels) que envía mensajes a su sesión, para que Claude reaccione a mensajes de Telegram, chats de Discord o eventos de webhook mientras está fuera.26* **Reaccione a eventos externos**: Un servidor MCP también puede actuar como un [canal](/es/channels) que envía mensajes a su sesión, para que Claude reaccione a mensajes de Telegram, chats de Discord o eventos de webhook mientras está fuera.

25 27 

26## Buscar y crear servidores MCP28<h2 id="find-and-build-mcp-servers">

29 Buscar y crear servidores MCP

30</h2>

27 31 

28Explore conectores revisados en el [Directorio de Anthropic](https://claude.ai/directory). Los conectores del Directorio utilizan la misma infraestructura MCP que Claude Code, por lo que puede agregar cualquier servidor remoto listado allí con `claude mcp add`.32Explore conectores revisados en el [Directorio de Anthropic](https://claude.ai/directory). Los conectores del Directorio utilizan la misma infraestructura MCP que Claude Code, por lo que puede agregar cualquier servidor remoto listado allí con `claude mcp add`.

29 33 


55 </Step>59 </Step>

56</Steps>60</Steps>

57 61 

58## Instalación de servidores MCP62<h2 id="installing-mcp-servers">

63 Instalación de servidores MCP

64</h2>

59 65 

60Los servidores MCP se pueden configurar de varias formas según sus necesidades:66Los servidores MCP se pueden configurar de varias formas según sus necesidades:

61 67 

62### Opción 1: Agregar un servidor HTTP remoto68<h3 id="option-1-add-a-remote-http-server">

69 Opción 1: Agregar un servidor HTTP remoto

70</h3>

63 71 

64Los servidores HTTP son la opción recomendada para conectarse a servidores MCP remotos. Este es el transporte más ampliamente soportado para servicios basados en la nube.72Los servidores HTTP son la opción recomendada para conectarse a servidores MCP remotos. Este es el transporte más ampliamente soportado para servicios basados en la nube.

65 73 


77 85 

78Cuando configure servidores MCP a través de JSON en `.mcp.json`, `~/.claude.json`, o `claude mcp add-json`, el campo `type` acepta `streamable-http` como un alias para `http`. La especificación de MCP utiliza el nombre `streamable-http` para este transporte, por lo que las configuraciones copiadas de la documentación del servidor funcionan sin modificación.86Cuando configure servidores MCP a través de JSON en `.mcp.json`, `~/.claude.json`, o `claude mcp add-json`, el campo `type` acepta `streamable-http` como un alias para `http`. La especificación de MCP utiliza el nombre `streamable-http` para este transporte, por lo que las configuraciones copiadas de la documentación del servidor funcionan sin modificación.

79 87 

80### Opción 2: Agregar un servidor SSE remoto88<h3 id="option-2-add-a-remote-sse-server">

89 Opción 2: Agregar un servidor SSE remoto

90</h3>

81 91 

82<Warning>92<Warning>

83 El transporte SSE (Server-Sent Events) está deprecado. Use servidores HTTP en su lugar, donde estén disponibles.93 El transporte SSE (Server-Sent Events) está deprecado. Use servidores HTTP en su lugar, donde estén disponibles.


95 --header "X-API-Key: your-key-here"105 --header "X-API-Key: your-key-here"

96```106```

97 107 

98### Opción 3: Agregar un servidor stdio local108<h3 id="option-3-add-a-local-stdio-server">

109 Opción 3: Agregar un servidor stdio local

110</h3>

99 111 

100Los servidores stdio se ejecutan como procesos locales en su máquina. Son ideales para herramientas que necesitan acceso directo al sistema o scripts personalizados.112Los servidores stdio se ejecutan como procesos locales en su máquina. Son ideales para herramientas que necesitan acceso directo al sistema o scripts personalizados.

101 113 


108claude mcp add [options] <name> -- <command> [args...]120claude mcp add [options] <name> -- <command> [args...]

109 121 

110# Ejemplo real: Agregar servidor Airtable122# Ejemplo real: Agregar servidor Airtable

111claude mcp add --transport stdio --env AIRTABLE_API_KEY=YOUR_KEY airtable \123claude mcp add --env AIRTABLE_API_KEY=YOUR_KEY --transport stdio airtable \

112 -- npx -y airtable-mcp-server124 -- npx -y airtable-mcp-server

113```125```

114 126 

115<Note>127<Note>

116 **Importante: Orden de opciones**128 **Importante: Separar argumentos del servidor con `--`**

117 129 

118 Todas las opciones (`--transport`, `--env`, `--scope`, `--header`) deben venir **antes** del nombre del servidor. El `--` (doble guión) luego separa el nombre del servidor del comando y los argumentos que se pasan al servidor MCP.130 Para servidores stdio, el `--` (doble guión) separa las opciones propias de Claude, como `--transport`, `--env` y `--scope`, del comando y los argumentos que ejecutan el servidor. Todo lo que viene después de `--` se pasa al servidor sin modificar.

119 131 

120 Por ejemplo:132 Por ejemplo:

121 133 

122 * `claude mcp add --transport stdio myserver -- npx server` → ejecuta `npx server`134 * `claude mcp add --transport stdio myserver -- npx server` → ejecuta `npx server`

123 * `claude mcp add --transport stdio --env KEY=value myserver -- python server.py --port 8080` → ejecuta `python server.py --port 8080` con `KEY=value` en el entorno135 * `claude mcp add --env KEY=value --transport stdio myserver -- python server.py --port 8080` → ejecuta `python server.py --port 8080` con `KEY=value` en el entorno

124 136 

125 Esto evita conflictos entre las banderas de Claude y las banderas del servidor.137 Sin `--`, Claude Code intentaría analizar las banderas del servidor, como `--port` arriba, como sus propias opciones.

138 

139 `--env` acepta múltiples pares `KEY=value`. Si el nombre del servidor viene directamente después de `--env`, la CLI lee el nombre como otro par y lo rechaza, por lo que coloque al menos otra opción entre `--env` y el nombre del servidor, como en los ejemplos anteriores.

126</Note>140</Note>

127 141 

128### Opción 4: Agregar un servidor WebSocket remoto142<h3 id="option-4-add-a-remote-websocket-server">

143 Opción 4: Agregar un servidor WebSocket remoto

144</h3>

129 145 

130Los servidores WebSocket mantienen una conexión bidireccional persistente, que es adecuada para servidores MCP remotos que envían eventos a Claude sin ser solicitados. Use HTTP en su lugar cuando su servidor solo responda a solicitudes, ya que HTTP admite OAuth y la bandera `claude mcp add --transport`, mientras que WebSocket no admite ninguno de los dos.146Los servidores WebSocket mantienen una conexión bidireccional persistente, que es adecuada para servidores MCP remotos que envían eventos a Claude sin ser solicitados. Use HTTP en su lugar cuando su servidor solo responda a solicitudes, ya que HTTP admite OAuth y la bandera `claude mcp add --transport`, mientras que WebSocket no admite ninguno de los dos.

131 147 


138 154 

139La entrada `type: "ws"` acepta los mismos campos `url`, `headers`, `headersHelper`, `timeout` y `alwaysLoad` que `http`. La autenticación es solo por encabezado, por lo que pase un token estático en `headers` o genere uno en el momento de la conexión con [`headersHelper`](#use-dynamic-headers-for-custom-authentication). La bandera `claude mcp add --transport` no acepta `ws`.155La entrada `type: "ws"` acepta los mismos campos `url`, `headers`, `headersHelper`, `timeout` y `alwaysLoad` que `http`. La autenticación es solo por encabezado, por lo que pase un token estático en `headers` o genere uno en el momento de la conexión con [`headersHelper`](#use-dynamic-headers-for-custom-authentication). La bandera `claude mcp add --transport` no acepta `ws`.

140 156 

141### Gestión de sus servidores157<h3 id="managing-your-servers">

158 Gestión de sus servidores

159</h3>

142 160 

143Una vez configurados, puede gestionar sus servidores MCP con estos comandos:161Una vez configurados, puede gestionar sus servidores MCP con estos comandos:

144 162 


164 182 

165El nombre del servidor `workspace` está reservado para uso interno. Si su configuración define un servidor con ese nombre, Claude Code lo omite al cargar y muestra una advertencia pidiéndole que lo renombre.183El nombre del servidor `workspace` está reservado para uso interno. Si su configuración define un servidor con ese nombre, Claude Code lo omite al cargar y muestra una advertencia pidiéndole que lo renombre.

166 184 

167### Actualizaciones dinámicas de herramientas185<h3 id="dynamic-tool-updates">

186 Actualizaciones dinámicas de herramientas

187</h3>

168 188 

169Claude Code admite notificaciones `list_changed` de MCP, permitiendo que los servidores MCP actualicen dinámicamente sus herramientas disponibles, indicaciones y recursos sin requerir que se desconecte y reconecte. Cuando un servidor MCP envía una notificación `list_changed`, Claude Code actualiza automáticamente las capacidades disponibles de ese servidor.189Claude Code admite notificaciones `list_changed` de MCP, permitiendo que los servidores MCP actualicen dinámicamente sus herramientas disponibles, indicaciones y recursos sin requerir que se desconecte y reconecte. Cuando un servidor MCP envía una notificación `list_changed`, Claude Code actualiza automáticamente las capacidades disponibles de ese servidor.

170 190 

171### Reconexión automática191<h3 id="automatic-reconnection">

192 Reconexión automática

193</h3>

172 194 

173Si un servidor HTTP o SSE se desconecta durante la sesión, Claude Code se reconecta automáticamente con retroceso exponencial: hasta cinco intentos, comenzando con un retraso de un segundo y duplicándose cada vez. El servidor aparece como pendiente en `/mcp` mientras la reconexión está en progreso. Después de cinco intentos fallidos, el servidor se marca como fallido y puede reintentar manualmente desde `/mcp`. Los servidores stdio son procesos locales y no se reconectan automáticamente.195Si un servidor HTTP o SSE se desconecta durante la sesión, Claude Code se reconecta automáticamente con retroceso exponencial: hasta cinco intentos, comenzando con un retraso de un segundo y duplicándose cada vez. El servidor aparece como pendiente en `/mcp` mientras la reconexión está en progreso. Después de cinco intentos fallidos, el servidor se marca como fallido y puede reintentar manualmente desde `/mcp`. Los servidores stdio son procesos locales y no se reconectan automáticamente.

174 196 

175El mismo retroceso se aplica cuando un servidor HTTP o SSE falla su conexión inicial al iniciar. A partir de v2.1.121, Claude Code reintenta la conexión inicial hasta tres veces en errores transitorios como una respuesta 5xx, una conexión rechazada o un tiempo de espera agotado, luego marca el servidor como fallido si aún no puede conectarse. Los errores de autenticación y no encontrado no se reintentan porque requieren un cambio de configuración para resolverse.197El mismo retroceso se aplica cuando un servidor HTTP o SSE falla su conexión inicial al iniciar. A partir de v2.1.121, Claude Code reintenta la conexión inicial hasta tres veces en errores transitorios como una respuesta 5xx, una conexión rechazada o un tiempo de espera agotado, luego marca el servidor como fallido si aún no puede conectarse. Los errores de autenticación y no encontrado no se reintentan porque requieren un cambio de configuración para resolverse.

176 198 

177### Mensajes push con canales199<h3 id="push-messages-with-channels">

200 Mensajes push con canales

201</h3>

178 202 

179Un servidor MCP también puede enviar mensajes directamente a su sesión para que Claude pueda reaccionar a eventos externos como resultados de CI, alertas de monitoreo o mensajes de chat. Para habilitar esto, su servidor declara la capacidad `claude/channel` y usted la activa con la bandera `--channels` al iniciar. Vea [Canales](/es/channels) para usar un canal oficialmente soportado, o [Referencia de canales](/es/channels-reference) para construir el suyo propio.203Un servidor MCP también puede enviar mensajes directamente a su sesión para que Claude pueda reaccionar a eventos externos como resultados de CI, alertas de monitoreo o mensajes de chat. Para habilitar esto, su servidor declara la capacidad `claude/channel` y usted la activa con la bandera `--channels` al iniciar. Vea [Canales](/es/channels) para usar un canal oficialmente soportado, o [Referencia de canales](/es/channels-reference) para construir el suyo propio.

180 204 


192 * Use `/mcp` para autenticarse con servidores remotos que requieren autenticación OAuth 2.0216 * Use `/mcp` para autenticarse con servidores remotos que requieren autenticación OAuth 2.0

193</Tip>217</Tip>

194 218 

195El `timeout` por servidor es un límite de reloj de pared duro por llamada de herramienta, y las notificaciones de progreso del servidor no lo extienden. Los valores por debajo de 1000 se redondean hacia abajo a un segundo. Para servidores HTTP y SSE, el presupuesto de primer byte por solicitud de obtención tiene un mínimo de 60 segundos independientemente de este valor, por lo que solo el perro guardián de llamada de herramienta honra valores más pequeños.219El `timeout` por servidor es un límite de reloj de pared duro por llamada de herramienta, y las notificaciones de progreso del servidor no lo extienden. Los valores por debajo de 1000 se ignoran y caen a `MCP_TOOL_TIMEOUT`, o a su predeterminado de aproximadamente 28 horas cuando esa variable no está establecida. {/* min-version: 2.1.162 */}Antes de v2.1.162, los valores por debajo de 1000 se redondeaban hacia abajo a un segundo en su lugar. Para servidores HTTP y SSE, el presupuesto de primer byte por solicitud de obtención tiene un mínimo de 60 segundos.

196 220 

197### Servidores MCP proporcionados por plugins221<h3 id="plugin-provided-mcp-servers">

222 Servidores MCP proporcionados por plugins

223</h3>

198 224 

199Los [plugins](/es/plugins) pueden agrupar servidores MCP, proporcionando automáticamente herramientas e integraciones cuando el plugin está habilitado. Los servidores MCP de plugins funcionan de manera idéntica a los servidores configurados por el usuario.225Los [plugins](/es/plugins) pueden agrupar servidores MCP, proporcionando automáticamente herramientas e integraciones cuando el plugin está habilitado. Los servidores MCP de plugins funcionan de manera idéntica a los servidores configurados por el usuario.

200 226 


253 279 

254Los servidores de plugins aparecen en la lista con indicadores que muestran que provienen de plugins.280Los servidores de plugins aparecen en la lista con indicadores que muestran que provienen de plugins.

255 281 

282**Nombres de herramientas MCP de plugins**:

283 

284Las herramientas de un servidor MCP agrupado en un plugin incluyen tanto el nombre del plugin como la clave del servidor en su nombre invocable. La forma completa es `mcp__plugin_<plugin-name>_<server-name>__<tool-name>`, donde cualquier carácter fuera de `A-Z`, `a-z`, `0-9`, `_` y `-` se reemplaza con `_`. Para el servidor `database-tools` agrupado en un plugin llamado `my-plugin`, una herramienta `query` es invocable como:

285 

286```

287mcp__plugin_my-plugin_database-tools__query

288```

289 

290Use este nombre completo cuando haga referencia a la herramienta en [reglas de permisos](/es/permissions), la lista `allowed-tools` de una skill, o el [campo `tools` de un subagente](/es/sub-agents#available-tools).

291 

256**Beneficios de los servidores MCP de plugins**:292**Beneficios de los servidores MCP de plugins**:

257 293 

258* **Distribución agrupada**: Herramientas y servidores empaquetados juntos294* **Distribución agrupada**: Herramientas y servidores empaquetados juntos


261 297 

262Vea la [referencia de componentes de plugins](/es/plugins-reference#mcp-servers) para detalles sobre cómo agrupar servidores MCP con plugins.298Vea la [referencia de componentes de plugins](/es/plugins-reference#mcp-servers) para detalles sobre cómo agrupar servidores MCP con plugins.

263 299 

264## Alcances de instalación de MCP300<h2 id="mcp-installation-scopes">

301 Alcances de instalación de MCP

302</h2>

265 303 

266Los servidores MCP se pueden configurar en tres alcances. El alcance que elija controla en qué proyectos se carga el servidor y si la configuración se comparte con su equipo. Los administradores también pueden implementar servidores a nivel empresarial a través de [configuración administrada](#managed-mcp-configuration).304Los servidores MCP se pueden configurar en tres alcances. El alcance que elija controla en qué proyectos se carga el servidor y si la configuración se comparte con su equipo. Los administradores también pueden implementar servidores a nivel empresarial a través de [configuración administrada](#managed-mcp-configuration).

267 305 


271| [Proyecto](#project-scope) | Solo proyecto actual | Sí, a través del control de versiones | `.mcp.json` en la raíz del proyecto |309| [Proyecto](#project-scope) | Solo proyecto actual | Sí, a través del control de versiones | `.mcp.json` en la raíz del proyecto |

272| [Usuario](#user-scope) | Todos sus proyectos | No | `~/.claude.json` |310| [Usuario](#user-scope) | Todos sus proyectos | No | `~/.claude.json` |

273 311 

274### Alcance local312<h3 id="local-scope">

313 Alcance local

314</h3>

275 315 

276El alcance local es el predeterminado. Un servidor con alcance local se carga solo en el proyecto donde lo agregó y permanece privado para usted. Claude Code lo almacena en `~/.claude.json` bajo la ruta de ese proyecto, por lo que el mismo servidor no aparecerá en sus otros proyectos. Use el alcance local para servidores de desarrollo personal, configuraciones experimentales o servidores con credenciales que no desea en el control de versiones.316El alcance local es el predeterminado. Un servidor con alcance local se carga solo en el proyecto donde lo agregó y permanece privado para usted. Claude Code lo almacena en `~/.claude.json` bajo la ruta de ese proyecto, por lo que el mismo servidor no aparecerá en sus otros proyectos. Use el alcance local para servidores de desarrollo personal, configuraciones experimentales o servidores con credenciales que no desea en el control de versiones.

277 317 


304}344}

305```345```

306 346 

307### Alcance de proyecto347<h3 id="project-scope">

348 Alcance de proyecto

349</h3>

308 350 

309Los servidores con alcance de proyecto habilitan la colaboración en equipo al almacenar configuraciones en un archivo `.mcp.json` en el directorio raíz de su proyecto. Este archivo está diseñado para ser verificado en el control de versiones, asegurando que todos los miembros del equipo tengan acceso a las mismas herramientas y servicios MCP. Cuando agrega un servidor con alcance de proyecto, Claude Code crea o actualiza automáticamente este archivo con la estructura de configuración apropiada.351Los servidores con alcance de proyecto habilitan la colaboración en equipo al almacenar configuraciones en un archivo `.mcp.json` en el directorio raíz de su proyecto. Este archivo está diseñado para ser verificado en el control de versiones, asegurando que todos los miembros del equipo tengan acceso a las mismas herramientas y servicios MCP. Cuando agrega un servidor con alcance de proyecto, Claude Code crea o actualiza automáticamente este archivo con la estructura de configuración apropiada.

310 352 


329 371 

330Por razones de seguridad, Claude Code solicita aprobación antes de usar servidores con alcance de proyecto desde archivos `.mcp.json`. Si necesita restablecer estas opciones de aprobación, use el comando `claude mcp reset-project-choices`.372Por razones de seguridad, Claude Code solicita aprobación antes de usar servidores con alcance de proyecto desde archivos `.mcp.json`. Si necesita restablecer estas opciones de aprobación, use el comando `claude mcp reset-project-choices`.

331 373 

332### Alcance de usuario374<h3 id="user-scope">

375 Alcance de usuario

376</h3>

333 377 

334Los servidores con alcance de usuario se almacenan en `~/.claude.json` y proporcionan accesibilidad entre proyectos, haciéndolos disponibles en todos los proyectos en su máquina mientras permanecen privados para su cuenta de usuario. Este alcance funciona bien para servidores de utilidad personal, herramientas de desarrollo o servicios que usa frecuentemente en diferentes proyectos.378Los servidores con alcance de usuario se almacenan en `~/.claude.json` y proporcionan accesibilidad entre proyectos, haciéndolos disponibles en todos los proyectos en su máquina mientras permanecen privados para su cuenta de usuario. Este alcance funciona bien para servidores de utilidad personal, herramientas de desarrollo o servicios que usa frecuentemente en diferentes proyectos.

335 379 


338claude mcp add --transport http hubspot --scope user https://mcp.hubspot.com/anthropic382claude mcp add --transport http hubspot --scope user https://mcp.hubspot.com/anthropic

339```383```

340 384 

341### Jerarquía de alcance y precedencia385<h3 id="scope-hierarchy-and-precedence">

386 Jerarquía de alcance y precedencia

387</h3>

342 388 

343Cuando el mismo servidor está definido en más de un lugar, Claude Code se conecta a él una sola vez, usando la definición de la fuente de mayor precedencia. La entrada completa del servidor de esa fuente se utiliza; los campos no se fusionan entre alcances.389Cuando el mismo servidor está definido en más de un lugar, Claude Code se conecta a él una sola vez, usando la definición de la fuente de mayor precedencia. La entrada completa del servidor de esa fuente se utiliza; los campos no se fusionan entre alcances.

344 390 


350 396 

351Los tres alcances coinciden duplicados por nombre. Los plugins y conectores coinciden por punto final, por lo que uno que apunta a la misma URL o comando que un servidor anterior se trata como un duplicado.397Los tres alcances coinciden duplicados por nombre. Los plugins y conectores coinciden por punto final, por lo que uno que apunta a la misma URL o comando que un servidor anterior se trata como un duplicado.

352 398 

353### Expansión de variables de entorno en `.mcp.json`399<h3 id="environment-variable-expansion-in-mcp-json">

400 Expansión de variables de entorno en `.mcp.json`

401</h3>

354 402 

355Claude Code admite la expansión de variables de entorno en archivos `.mcp.json`, permitiendo que los equipos compartan configuraciones mientras mantienen flexibilidad para rutas específicas de máquinas y valores sensibles como claves API.403Claude Code admite la expansión de variables de entorno en archivos `.mcp.json`, permitiendo que los equipos compartan configuraciones mientras mantienen flexibilidad para rutas específicas de máquinas y valores sensibles como claves API.

356 404 


386 434 

387Si una variable de entorno requerida no está establecida y no tiene un valor predeterminado, Claude Code no podrá analizar la configuración.435Si una variable de entorno requerida no está establecida y no tiene un valor predeterminado, Claude Code no podrá analizar la configuración.

388 436 

389## Ejemplos prácticos437<h2 id="practical-examples">

438 Ejemplos prácticos

439</h2>

390 440 

391{/* ### Ejemplo: Automatizar pruebas de navegador con Playwright441<h3 id="example-monitor-errors-with-sentry">

392 442 Ejemplo: Monitorear errores con Sentry

393```bash443</h3>

394claude mcp add --transport stdio playwright -- npx -y @playwright/mcp@latest

395```

396 

397Luego escriba y ejecute pruebas de navegador:

398 

399```text

400Test if the login flow works with test@example.com

401```

402```text

403Take a screenshot of the checkout page on mobile

404```

405```text

406Verify that the search feature returns results

407``` */}

408 

409### Ejemplo: Monitorear errores con Sentry

410 444 

411```bash theme={null}445```bash theme={null}

412claude mcp add --transport http sentry https://mcp.sentry.dev/mcp446claude mcp add --transport http sentry https://mcp.sentry.dev/mcp


432¿Qué despliegue introdujo estos nuevos errores?466¿Qué despliegue introdujo estos nuevos errores?

433```467```

434 468 

435### Ejemplo: Conectar a GitHub para revisiones de código469<h3 id="example-connect-to-github-for-code-reviews">

470 Ejemplo: Conectar a GitHub para revisiones de código

471</h3>

436 472 

437El servidor MCP remoto de GitHub se autentica con un token de acceso personal de GitHub pasado como encabezado. Para obtener uno, abra su [configuración de token de GitHub](https://github.com/settings/personal-access-tokens), genere un nuevo token de grano fino con acceso a los repositorios con los que desea que Claude trabaje, luego agregue el servidor:473El servidor MCP remoto de GitHub se autentica con un token de acceso personal de GitHub pasado como encabezado. Para obtener uno, abra su [configuración de token de GitHub](https://github.com/settings/personal-access-tokens), genere un nuevo token de grano fino con acceso a los repositorios con los que desea que Claude trabaje, luego agregue el servidor:

438 474 


455Muéstrame todos los PR abiertos asignados a mí491Muéstrame todos los PR abiertos asignados a mí

456```492```

457 493 

458### Ejemplo: Consultar su base de datos PostgreSQL494<h3 id="example-query-your-postgresql-database">

495 Ejemplo: Consultar su base de datos PostgreSQL

496</h3>

459 497 

460```bash theme={null}498```bash theme={null}

461claude mcp add --transport stdio db -- npx -y @bytebase/dbhub \499claude mcp add --transport stdio db -- npx -y @bytebase/dbhub \


476Encuentre clientes que no han realizado una compra en 90 días514Encuentre clientes que no han realizado una compra en 90 días

477```515```

478 516 

479## Autenticarse con servidores MCP remotos517<h2 id="authenticate-with-remote-mcp-servers">

518 Autenticarse con servidores MCP remotos

519</h2>

480 520 

481Muchos servidores MCP basados en la nube requieren autenticación. Claude Code admite OAuth 2.0 para conexiones seguras.521Muchos servidores MCP basados en la nube requieren autenticación. Claude Code admite OAuth 2.0 para conexiones seguras.

482 522 


514 * La autenticación OAuth funciona con servidores HTTP554 * La autenticación OAuth funciona con servidores HTTP

515</Tip>555</Tip>

516 556 

517### Usar un puerto de devolución de llamada OAuth fijo557<h3 id="use-a-fixed-oauth-callback-port">

558 Usar un puerto de devolución de llamada OAuth fijo

559</h3>

518 560 

519Algunos servidores MCP requieren un URI de redireccionamiento específico registrado de antemano. De forma predeterminada, Claude Code elige un puerto disponible aleatorio para la devolución de llamada de OAuth. Use `--callback-port` para fijar el puerto de modo que coincida con un URI de redireccionamiento preregistrado de la forma `http://localhost:PORT/callback`.561Algunos servidores MCP requieren un URI de redireccionamiento específico registrado de antemano. De forma predeterminada, Claude Code elige un puerto disponible aleatorio para la devolución de llamada de OAuth. Use `--callback-port` para fijar el puerto de modo que coincida con un URI de redireccionamiento preregistrado de la forma `http://localhost:PORT/callback`.

520 562 


527 my-server https://mcp.example.com/mcp569 my-server https://mcp.example.com/mcp

528```570```

529 571 

530### Usar credenciales OAuth preconfiguradas572<h3 id="use-pre-configured-oauth-credentials">

573 Usar credenciales OAuth preconfiguradas

574</h3>

531 575 

532Algunos servidores MCP no admiten configuración automática de OAuth mediante Registro Dinámico de Clientes. Si ve un error como "Incompatible auth server: does not support dynamic client registration", el servidor requiere credenciales preconfiguradas. Claude Code también admite servidores que usan un Documento de Metadatos de ID de Cliente (CIMD) en lugar de Registro Dinámico de Clientes, y los descubre automáticamente. Si el descubrimiento automático falla, registre una aplicación OAuth a través del portal de desarrolladores del servidor primero, luego proporcione las credenciales al agregar el servidor.576Algunos servidores MCP no admiten configuración automática de OAuth mediante Registro Dinámico de Clientes. Si ve un error como "Incompatible auth server: does not support dynamic client registration", el servidor requiere credenciales preconfiguradas. Claude Code también admite servidores que usan un Documento de Metadatos de ID de Cliente (CIMD) en lugar de Registro Dinámico de Clientes, y los descubre automáticamente. Si el descubrimiento automático falla, registre una aplicación OAuth a través del portal de desarrolladores del servidor primero, luego proporcione las credenciales al agregar el servidor.

533 577 


598 * Use `claude mcp get <name>` para verificar que las credenciales OAuth estén configuradas para un servidor642 * Use `claude mcp get <name>` para verificar que las credenciales OAuth estén configuradas para un servidor

599</Tip>643</Tip>

600 644 

601### Anular el descubrimiento de metadatos de OAuth645<h3 id="override-oauth-metadata-discovery">

646 Anular el descubrimiento de metadatos de OAuth

647</h3>

602 648 

603Apunte Claude Code a una URL de metadatos de servidor de autorización OAuth específica para omitir la cadena de descubrimiento predeterminada. Establezca `authServerMetadataUrl` cuando los puntos finales estándar del servidor MCP generen errores, o cuando desee enrutar el descubrimiento a través de un proxy interno. De forma predeterminada, Claude Code primero verifica los Metadatos de Recursos Protegidos RFC 9728 en `/.well-known/oauth-protected-resource`, luego recurre a los metadatos del servidor de autorización RFC 8414 en `/.well-known/oauth-authorization-server`.649Apunte Claude Code a una URL de metadatos de servidor de autorización OAuth específica para omitir la cadena de descubrimiento predeterminada. Establezca `authServerMetadataUrl` cuando los puntos finales estándar del servidor MCP generen errores, o cuando desee enrutar el descubrimiento a través de un proxy interno. De forma predeterminada, Claude Code primero verifica los Metadatos de Recursos Protegidos RFC 9728 en `/.well-known/oauth-protected-resource`, luego recurre a los metadatos del servidor de autorización RFC 8414 en `/.well-known/oauth-authorization-server`.

604 650 


620 666 

621La URL debe usar `https://`. `authServerMetadataUrl` requiere Claude Code v2.1.64 o posterior. Los `scopes_supported` de la URL de metadatos anulan los alcances que el servidor ascendente anuncia.667La URL debe usar `https://`. `authServerMetadataUrl` requiere Claude Code v2.1.64 o posterior. Los `scopes_supported` de la URL de metadatos anulan los alcances que el servidor ascendente anuncia.

622 668 

623### Restringir alcances de OAuth669<h3 id="restrict-oauth-scopes">

670 Restringir alcances de OAuth

671</h3>

624 672 

625Establezca `oauth.scopes` para fijar los alcances que Claude Code solicita durante el flujo de autorización. Esta es la forma soportada de restringir un servidor MCP a un subconjunto aprobado por el equipo de seguridad cuando el servidor de autorización ascendente anuncia más alcances de los que desea otorgar. El valor es una cadena única separada por espacios, que coincide con el formato del parámetro `scope` en RFC 6749 §3.3.673Establezca `oauth.scopes` para fijar los alcances que Claude Code solicita durante el flujo de autorización. Esta es la forma soportada de restringir un servidor MCP a un subconjunto aprobado por el equipo de seguridad cuando el servidor de autorización ascendente anuncia más alcances de los que desea otorgar. El valor es una cadena única separada por espacios, que coincide con el formato del parámetro `scope` en RFC 6749 §3.3.

626 674 


644 692 

645Si el servidor luego devuelve un 403 `insufficient_scope` para una llamada de herramienta, Claude Code se reautentica con los mismos alcances fijados. Amplíe `oauth.scopes` cuando una herramienta que necesita requiera un alcance fuera del fijo.693Si el servidor luego devuelve un 403 `insufficient_scope` para una llamada de herramienta, Claude Code se reautentica con los mismos alcances fijados. Amplíe `oauth.scopes` cuando una herramienta que necesita requiera un alcance fuera del fijo.

646 694 

647### Usar encabezados dinámicos para autenticación personalizada695<h3 id="use-dynamic-headers-for-custom-authentication">

696 Usar encabezados dinámicos para autenticación personalizada

697</h3>

648 698 

649Si su servidor MCP usa un esquema de autenticación diferente a OAuth (como Kerberos, tokens de corta duración o un SSO interno), use `headersHelper` para generar encabezados de solicitud en el momento de la conexión. Claude Code ejecuta el comando y fusiona su salida en los encabezados de conexión.699Si su servidor MCP usa un esquema de autenticación diferente a OAuth (como Kerberos, tokens de corta duración o un SSO interno), use `headersHelper` para generar encabezados de solicitud en el momento de la conexión. Claude Code ejecuta el comando y fusiona su salida en los encabezados de conexión.

650 700 


695 `headersHelper` ejecuta comandos de shell arbitrarios. Cuando se define en alcance de proyecto o local, solo se ejecuta después de que acepte el diálogo de confianza del espacio de trabajo.745 `headersHelper` ejecuta comandos de shell arbitrarios. Cuando se define en alcance de proyecto o local, solo se ejecuta después de que acepte el diálogo de confianza del espacio de trabajo.

696</Note>746</Note>

697 747 

698## Agregar servidores MCP desde configuración JSON748<h2 id="add-mcp-servers-from-json-configuration">

749 Agregar servidores MCP desde configuración JSON

750</h2>

699 751 

700Si tiene una configuración JSON para un servidor MCP, puede agregarla directamente:752Si tiene una configuración JSON para un servidor MCP, puede agregarla directamente:

701 753 


731 * Puede usar `--scope user` para agregar el servidor a su configuración de usuario en lugar de la específica del proyecto783 * Puede usar `--scope user` para agregar el servidor a su configuración de usuario en lugar de la específica del proyecto

732</Tip>784</Tip>

733 785 

734## Importar servidores MCP desde Claude Desktop786<h2 id="import-mcp-servers-from-claude-desktop">

787 Importar servidores MCP desde Claude Desktop

788</h2>

735 789 

736Si ya ha configurado servidores MCP en Claude Desktop, puede importarlos:790Si ya ha configurado servidores MCP en Claude Desktop, puede importarlos:

737 791 


764 * Si ya existen servidores con los mismos nombres, obtendrán un sufijo numérico (por ejemplo, `server_1`)818 * Si ya existen servidores con los mismos nombres, obtendrán un sufijo numérico (por ejemplo, `server_1`)

765</Tip>819</Tip>

766 820 

767## Usar servidores MCP desde Claude.ai821<h2 id="use-mcp-servers-from-claude-ai">

822 Usar servidores MCP desde Claude.ai

823</h2>

768 824 

769Si ha iniciado sesión en Claude Code con una cuenta de [Claude.ai](https://claude.ai), los servidores MCP que ha agregado en Claude.ai están automáticamente disponibles en Claude Code:825Si ha iniciado sesión en Claude Code con una cuenta de [Claude.ai](https://claude.ai), los servidores MCP que ha agregado en Claude.ai están automáticamente disponibles en Claude Code:

770 826 


794 850 

795Un servidor que ha agregado en Claude Code tiene [precedencia](#scope-hierarchy-and-precedence) sobre un conector de Claude.ai que apunta a la misma URL. Cuando esto sucede, `/mcp` enumera el conector como oculto y muestra cómo eliminar el duplicado si prefiere usar el conector.851Un servidor que ha agregado en Claude Code tiene [precedencia](#scope-hierarchy-and-precedence) sobre un conector de Claude.ai que apunta a la misma URL. Cuando esto sucede, `/mcp` enumera el conector como oculto y muestra cómo eliminar el duplicado si prefiere usar el conector.

796 852 

853Algunos conectores alojados por Anthropic, como Microsoft 365, Gmail y Google Calendar, no admiten OAuth local desde Claude Code porque el proveedor de identidad ascendente solo acepta la URL de redirección que registró claude.ai. A partir de v2.1.162, autenticar uno de estos hosts en `/mcp` muestra un mensaje que lo dirige a conectarlo en Configuración → Conectores en claude.ai en su lugar. Una vez conectado allí, el conector aparece en Claude Code automáticamente.

854 

797Para desactivar servidores MCP de Claude.ai en Claude Code, establezca la variable de entorno `ENABLE_CLAUDEAI_MCP_SERVERS` en `false`:855Para desactivar servidores MCP de Claude.ai en Claude Code, establezca la variable de entorno `ENABLE_CLAUDEAI_MCP_SERVERS` en `false`:

798 856 

799```bash theme={null}857```bash theme={null}

800ENABLE_CLAUDEAI_MCP_SERVERS=false claude858ENABLE_CLAUDEAI_MCP_SERVERS=false claude

801```859```

802 860 

803## Usar Claude Code como servidor MCP861<h2 id="use-claude-code-as-an-mcp-server">

862 Usar Claude Code como servidor MCP

863</h2>

804 864 

805Puede usar Claude Code mismo como servidor MCP al que otras aplicaciones pueden conectarse:865Puede usar Claude Code mismo como servidor MCP al que otras aplicaciones pueden conectarse:

806 866 


859 * Tenga en cuenta que este servidor MCP solo expone las herramientas de Claude Code a su cliente MCP, por lo que su propio cliente es responsable de implementar la confirmación del usuario para llamadas de herramientas individuales.919 * Tenga en cuenta que este servidor MCP solo expone las herramientas de Claude Code a su cliente MCP, por lo que su propio cliente es responsable de implementar la confirmación del usuario para llamadas de herramientas individuales.

860</Tip>920</Tip>

861 921 

862## Límites de salida de MCP y advertencias922<h2 id="mcp-output-limits-and-warnings">

923 Límites de salida de MCP y advertencias

924</h2>

863 925 

864Cuando las herramientas MCP producen salidas grandes, Claude Code ayuda a gestionar el uso de tokens para evitar abrumar el contexto de su conversación:926Cuando las herramientas MCP producen salidas grandes, Claude Code ayuda a gestionar el uso de tokens para evitar abrumar el contexto de su conversación:

865 927 


881* Generan reportes o documentación detallados943* Generan reportes o documentación detallados

882* Procesan archivos de registro extensos o información de depuración944* Procesan archivos de registro extensos o información de depuración

883 945 

884### Aumentar el límite para una herramienta específica946<h3 id="raise-the-limit-for-a-specific-tool">

947 Aumentar el límite para una herramienta específica

948</h3>

885 949 

886Si está construyendo un servidor MCP, puede permitir que herramientas individuales devuelvan resultados más grandes que el umbral predeterminado de persistencia en disco estableciendo `_meta["anthropic/maxResultSizeChars"]` en la entrada de la herramienta en la respuesta `tools/list`. Claude Code aumenta el umbral de esa herramienta al valor anotado, hasta un límite máximo de 500,000 caracteres.950Si está construyendo un servidor MCP, puede permitir que herramientas individuales devuelvan resultados más grandes que el umbral predeterminado de persistencia en disco estableciendo `_meta["anthropic/maxResultSizeChars"]` en la entrada de la herramienta en la respuesta `tools/list`. Claude Code aumenta el umbral de esa herramienta al valor anotado, hasta un límite máximo de 500,000 caracteres.

887 951 


903 Si frecuentemente encuentra advertencias de salida con servidores MCP específicos que no controla, considere aumentar el límite `MAX_MCP_OUTPUT_TOKENS`. También puede pedirle al autor del servidor que agregue la anotación `anthropic/maxResultSizeChars` o que pagine sus respuestas. La anotación no tiene efecto en herramientas que devuelven contenido de imagen; para esas, aumentar `MAX_MCP_OUTPUT_TOKENS` es la única opción.967 Si frecuentemente encuentra advertencias de salida con servidores MCP específicos que no controla, considere aumentar el límite `MAX_MCP_OUTPUT_TOKENS`. También puede pedirle al autor del servidor que agregue la anotación `anthropic/maxResultSizeChars` o que pagine sus respuestas. La anotación no tiene efecto en herramientas que devuelven contenido de imagen; para esas, aumentar `MAX_MCP_OUTPUT_TOKENS` es la única opción.

904</Warning>968</Warning>

905 969 

906## Responder a solicitudes de elicitación de MCP970<h2 id="respond-to-mcp-elicitation-requests">

971 Responder a solicitudes de elicitación de MCP

972</h2>

907 973 

908Los servidores MCP pueden solicitar entrada estructurada de usted durante una tarea usando elicitación. Cuando un servidor necesita información que no puede obtener por sí solo, Claude Code muestra un diálogo interactivo y pasa su respuesta de vuelta al servidor. No se requiere configuración de su parte: los diálogos de elicitación aparecen automáticamente cuando un servidor los solicita.974Los servidores MCP pueden solicitar entrada estructurada de usted durante una tarea usando elicitación. Cuando un servidor necesita información que no puede obtener por sí solo, Claude Code muestra un diálogo interactivo y pasa su respuesta de vuelta al servidor. No se requiere configuración de su parte: los diálogos de elicitación aparecen automáticamente cuando un servidor los solicita.

909 975 


912* **Modo de formulario**: Claude Code muestra un diálogo con campos de formulario definidos por el servidor (por ejemplo, un indicador de nombre de usuario y contraseña). Complete los campos y envíe.978* **Modo de formulario**: Claude Code muestra un diálogo con campos de formulario definidos por el servidor (por ejemplo, un indicador de nombre de usuario y contraseña). Complete los campos y envíe.

913* **Modo de URL**: Claude Code abre una URL del navegador para autenticación o aprobación. Complete el flujo en el navegador, luego confirme en la CLI.979* **Modo de URL**: Claude Code abre una URL del navegador para autenticación o aprobación. Complete el flujo en el navegador, luego confirme en la CLI.

914 980 

915Para responder automáticamente a solicitudes de elicitación sin mostrar un diálogo, use el [hook `Elicitation`](/es/hooks#Elicitation).981Para responder automáticamente a solicitudes de elicitación sin mostrar un diálogo, use el [hook `Elicitation`](/es/hooks#elicitation).

916 982 

917Si está construyendo un servidor MCP que usa elicitación, vea la [especificación de elicitación de MCP](https://modelcontextprotocol.io/docs/learn/client-concepts#elicitation) para detalles de protocolo y ejemplos de esquema.983Si está construyendo un servidor MCP que usa elicitación, vea la [especificación de elicitación de MCP](https://modelcontextprotocol.io/docs/learn/client-concepts#elicitation) para detalles de protocolo y ejemplos de esquema.

918 984 

919## Usar recursos MCP985<h2 id="use-mcp-resources">

986 Usar recursos MCP

987</h2>

920 988 

921Los servidores MCP pueden exponer recursos que puede referenciar usando menciones @, similar a cómo referencia archivos.989Los servidores MCP pueden exponer recursos que puede referenciar usando menciones @, similar a cómo referencia archivos.

922 990 

923### Referenciar recursos MCP991<h3 id="reference-mcp-resources">

992 Referenciar recursos MCP

993</h3>

924 994 

925<Steps>995<Steps>

926 <Step title="Listar recursos disponibles">996 <Step title="Listar recursos disponibles">


957 * Los recursos pueden contener cualquier tipo de contenido que proporcione el servidor MCP (texto, JSON, datos estructurados, etc.)1027 * Los recursos pueden contener cualquier tipo de contenido que proporcione el servidor MCP (texto, JSON, datos estructurados, etc.)

958</Tip>1028</Tip>

959 1029 

960## Escalar con MCP Tool Search1030<h2 id="scale-with-mcp-tool-search">

1031 Escalar con MCP Tool Search

1032</h2>

961 1033 

962Tool Search mantiene el uso de contexto MCP bajo al diferir las definiciones de herramientas hasta que Claude las necesite. Solo los nombres de herramientas e instrucciones del servidor se cargan al iniciar la sesión, por lo que agregar más servidores MCP tiene un impacto mínimo en su ventana de contexto.1034Tool Search mantiene el uso de contexto MCP bajo al diferir las definiciones de herramientas hasta que Claude las necesite. Solo los nombres de herramientas e instrucciones del servidor se cargan al iniciar la sesión, por lo que agregar más servidores MCP tiene un impacto mínimo en su ventana de contexto. Claude Code no impone un límite fijo de herramientas por servidor; el límite práctico es su presupuesto de ventana de contexto.

963 1035 

964### Cómo funciona1036<h3 id="how-it-works">

1037 Cómo funciona

1038</h3>

965 1039 

966Tool Search está habilitado de forma predeterminada. Las herramientas MCP se difieren en lugar de cargarse en el contexto de antemano, y Claude usa una herramienta de búsqueda para descubrir las relevantes cuando una tarea las necesita. Solo las herramientas que Claude realmente usa entran en el contexto. Desde su perspectiva, las herramientas MCP funcionan exactamente como antes.1040Tool Search está habilitado de forma predeterminada. Las herramientas MCP se difieren en lugar de cargarse en el contexto de antemano, y Claude usa una herramienta de búsqueda para descubrir las relevantes cuando una tarea las necesita. Solo las herramientas que Claude realmente usa entran en el contexto. Desde su perspectiva, las herramientas MCP funcionan exactamente como antes.

967 1041 

968Si prefiere carga basada en umbral, establezca `ENABLE_TOOL_SEARCH=auto` para cargar esquemas de antemano cuando se ajusten dentro del 10% de la ventana de contexto y diferir solo el desbordamiento. Vea [Configurar búsqueda de herramientas](#configure-tool-search) para todas las opciones.1042Si prefiere carga basada en umbral, establezca `ENABLE_TOOL_SEARCH=auto` para cargar esquemas de antemano cuando se ajusten dentro del 10% de la ventana de contexto y diferir solo el desbordamiento. Vea [Configurar búsqueda de herramientas](#configure-tool-search) para todas las opciones.

969 1043 

970### Para autores de servidores MCP1044<h3 id="for-mcp-server-authors">

1045 Para autores de servidores MCP

1046</h3>

971 1047 

972Si está construyendo un servidor MCP, el campo de instrucciones del servidor se vuelve más útil con Tool Search habilitado. Las instrucciones del servidor ayudan a Claude a entender cuándo buscar sus herramientas, similar a cómo funcionan las [skills](/es/skills).1048Si está construyendo un servidor MCP, el campo de instrucciones del servidor se vuelve más útil con Tool Search habilitado. Las instrucciones del servidor ayudan a Claude a entender cuándo buscar sus herramientas, similar a cómo funcionan las [skills](/es/skills).

973 1049 


979 1055 

980Claude Code trunca descripciones de herramientas e instrucciones del servidor en 2KB cada una. Manténgalas concisas para evitar truncamiento, y ponga detalles críticos cerca del inicio.1056Claude Code trunca descripciones de herramientas e instrucciones del servidor en 2KB cada una. Manténgalas concisas para evitar truncamiento, y ponga detalles críticos cerca del inicio.

981 1057 

982### Configurar búsqueda de herramientas1058<h3 id="configure-tool-search">

1059 Configurar búsqueda de herramientas

1060</h3>

983 1061 

984Tool Search está habilitado de forma predeterminada: las herramientas MCP se difieren y se descubren bajo demanda. Claude Code lo desactiva de forma predeterminada en Vertex AI. También se desactiva cuando `ANTHROPIC_BASE_URL` apunta a un host que no es de primera parte, ya que la mayoría de los proxies no reenvían bloques `tool_reference`. Establezca `ENABLE_TOOL_SEARCH` explícitamente para anular cualquiera de estos comportamientos predeterminados.1062Tool Search está habilitado de forma predeterminada: las herramientas MCP se difieren y se descubren bajo demanda. Claude Code lo desactiva de forma predeterminada en Vertex AI. También se desactiva cuando `ANTHROPIC_BASE_URL` apunta a un host que no es de primera parte, ya que la mayoría de los proxies no reenvían bloques `tool_reference`. Establezca `ENABLE_TOOL_SEARCH` explícitamente para anular cualquiera de estos comportamientos predeterminados.

985 1063 

986Tool Search requiere un modelo que admita bloques `tool_reference`: Sonnet 4 y posterior, u Opus 4 y posterior. Los modelos Haiku no lo admiten. En Vertex AI, Tool Search se admite para Claude Sonnet 4.5 y posterior y Claude Opus 4.5 y posterior.1064Tool Search requiere un modelo que admita bloques `tool_reference`. Los modelos Haiku no lo admiten. En Vertex AI, Tool Search se admite para Claude Sonnet 4.5 y posterior y Claude Opus 4.5 y posterior.

987 1065 

988Controle el comportamiento de búsqueda de herramientas con la variable de entorno `ENABLE_TOOL_SEARCH`:1066Controle el comportamiento de búsqueda de herramientas con la variable de entorno `ENABLE_TOOL_SEARCH`:

989 1067 


1015}1093}

1016```1094```

1017 1095 

1018### Eximir un servidor del diferimiento1096<h3 id="exempt-a-server-from-deferral">

1097 Eximir un servidor del diferimiento

1098</h3>

1019 1099 

1020Si las herramientas de un servidor deben ser siempre visibles para Claude sin un paso de búsqueda, establezca `alwaysLoad` en `true` en la configuración de ese servidor. Cada herramienta de ese servidor se carga entonces en el contexto al iniciar la sesión independientemente de la configuración `ENABLE_TOOL_SEARCH`. Use esto para un pequeño número de herramientas que Claude necesita en cada turno, ya que cada herramienta de antemano consume contexto que de otro modo estaría disponible para su conversación.1100Si las herramientas de un servidor deben ser siempre visibles para Claude sin un paso de búsqueda, establezca `alwaysLoad` en `true` en la configuración de ese servidor. Cada herramienta de ese servidor se carga entonces en el contexto al iniciar la sesión independientemente de la configuración `ENABLE_TOOL_SEARCH`. Use esto para un pequeño número de herramientas que Claude necesita en cada turno, ya que cada herramienta de antemano consume contexto que de otro modo estaría disponible para su conversación.

1021 1101 


1037 1117 

1038Establecer `alwaysLoad: true` también bloquea el inicio hasta que el servidor se conecte, limitado al tiempo de espera de conexión estándar de 5 segundos. Esto se aplica incluso cuando MCP startup es de otro modo [no bloqueante de forma predeterminada](/es/env-vars), ya que las herramientas deben estar presentes cuando se construye el primer mensaje. Otros servidores aún se conectan en segundo plano.1118Establecer `alwaysLoad: true` también bloquea el inicio hasta que el servidor se conecte, limitado al tiempo de espera de conexión estándar de 5 segundos. Esto se aplica incluso cuando MCP startup es de otro modo [no bloqueante de forma predeterminada](/es/env-vars), ya que las herramientas deben estar presentes cuando se construye el primer mensaje. Otros servidores aún se conectan en segundo plano.

1039 1119 

1040## Usar indicaciones MCP como comandos1120<h2 id="use-mcp-prompts-as-commands">

1121 Usar indicaciones MCP como comandos

1122</h2>

1041 1123 

1042Los servidores MCP pueden exponer indicaciones que se vuelven disponibles como comandos en Claude Code.1124Los servidores MCP pueden exponer indicaciones que se vuelven disponibles como comandos en Claude Code.

1043 1125 

1044### Ejecutar indicaciones MCP1126<h3 id="execute-mcp-prompts">

1127 Ejecutar indicaciones MCP

1128</h3>

1045 1129 

1046<Steps>1130<Steps>

1047 <Step title="Descubrir indicaciones disponibles">1131 <Step title="Descubrir indicaciones disponibles">


1076 * Los nombres de servidor e indicación se normalizan (los espacios se convierten en guiones bajos)1160 * Los nombres de servidor e indicación se normalizan (los espacios se convierten en guiones bajos)

1077</Tip>1161</Tip>

1078 1162 

1079## Configuración MCP gestionada1163<h2 id="managed-mcp-configuration">

1164 Configuración MCP gestionada

1165</h2>

1080 1166 

1081Para organizaciones que necesitan control centralizado sobre qué servidores MCP pueden conectar los usuarios, consulte [Configuración MCP gestionada](/es/managed-mcp). Cubre la implementación de un conjunto de servidores fijo con `managed-mcp.json`, la restricción de servidores con `allowedMcpServers` y `deniedMcpServers`, y lo que los usuarios ven cuando un servidor está bloqueado.1167Para organizaciones que necesitan control centralizado sobre qué servidores MCP pueden conectar los usuarios, consulte [Configuración MCP gestionada](/es/managed-mcp). Cubre la implementación de un conjunto de servidores fijo con `managed-mcp.json`, la restricción de servidores con `allowedMcpServers` y `deniedMcpServers`, y lo que los usuarios ven cuando un servidor está bloqueado.

Details

222 Conectar un servidor que requiere inicio de sesión222 Conectar un servidor que requiere inicio de sesión

223</h3>223</h3>

224 224 

225Servicios alojados como Sentry, Linear y Notion ejecutan sus servidores MCP detrás de OAuth: agrega la URL del servidor, luego inicia sesión a través de tu navegador.225Servicios alojados como Sentry, Linear y Notion ejecutan sus servidores MCP detrás de OAuth: agrega la URL del servidor, luego inicia sesión a través de su navegador.

226 226 

227Los pasos a continuación usan Sentry como ejemplo. Para conectar un servicio diferente, sustituya su URL, que puede encontrar en el [Directorio de Anthropic](/es/mcp#find-and-build-mcp-servers) o en la documentación del servicio.227Los pasos a continuación usan Sentry como ejemplo. Para conectar un servicio diferente, sustituya su URL, que puede encontrar en el [Directorio de Anthropic](/es/mcp#find-and-build-mcp-servers) o en la documentación del servicio.

228 228 


287 287 

288Después de guardar el archivo, inicie una nueva sesión de Claude Code en el proyecto. Claude Code lee `.mcp.json` al iniciar.288Después de guardar el archivo, inicie una nueva sesión de Claude Code en el proyecto. Claude Code lee `.mcp.json` al iniciar.

289 289 

290La primera vez que Claude Code ve un servidor con ámbito de proyecto, le pide que lo apruebe. El mensaje existe para que un repositorio que clone no pueda lanzar procesos en su máquina sin su consentimiento. Apruebe el mensaje, o ejecute `/mcp` para aprobar más tarde si lo perdió.290La primera vez que Claude Code ve un servidor con ámbito de proyecto, le pide que lo apruebe. El mensaje existe para que un repositorio que Clone no pueda lanzar procesos en su máquina sin su consentimiento. Apruebe el mensaje, o ejecute `/mcp` para aprobar más tarde si lo perdió.

291 291 

292Una vez que haya aprobado, ejecute `/mcp` y verifique que los servidores se muestren como conectados. Si uno muestra un error en su lugar, consulte [Solución de problemas](#troubleshooting).292Una vez que haya aprobado, ejecute `/mcp` y verifique que los servidores se muestren como conectados. Si uno muestra un error en su lugar, consulte [Solución de problemas](#troubleshooting).

293 293 

memory.md +92 −32

Details

18* [Configurar auto memory](#auto-memory) para que Claude tome notas automáticamente18* [Configurar auto memory](#auto-memory) para que Claude tome notas automáticamente

19* [Solucionar problemas](#troubleshoot-memory-issues) cuando las instrucciones no se siguen19* [Solucionar problemas](#troubleshoot-memory-issues) cuando las instrucciones no se siguen

20 20 

21## CLAUDE.md vs auto memory21<h2 id="claude-md-vs-auto-memory">

22 CLAUDE.md vs auto memory

23</h2>

22 24 

23Claude Code tiene dos sistemas de memoria complementarios. Ambos se cargan al inicio de cada conversación. Claude los trata como contexto, no como configuración forzada. Para bloquear una acción independientemente de lo que Claude decida, use un [hook PreToolUse](/es/hooks-guide) en su lugar. Cuanto más específicas y concisas sean sus instrucciones, más consistentemente Claude las seguirá.25Claude Code tiene dos sistemas de memoria complementarios. Ambos se cargan al inicio de cada conversación. Claude los trata como contexto, no como configuración forzada. Para bloquear una acción independientemente de lo que Claude decida, use un [hook PreToolUse](/es/hooks-guide) en su lugar. Cuanto más específicas y concisas sean sus instrucciones, más consistentemente Claude las seguirá.

24 26 


34 36 

35Los subagents también pueden mantener su propia auto memory. Consulte [configuración de subagent](/es/sub-agents#enable-persistent-memory) para obtener detalles.37Los subagents también pueden mantener su propia auto memory. Consulte [configuración de subagent](/es/sub-agents#enable-persistent-memory) para obtener detalles.

36 38 

37## Archivos CLAUDE.md39<h2 id="claude-md-files">

40 Archivos CLAUDE.md

41</h2>

38 42 

39Los archivos CLAUDE.md son archivos markdown que dan a Claude instrucciones persistentes para un proyecto, su flujo de trabajo personal o toda su organización. Usted escribe estos archivos en texto plano; Claude los lee al inicio de cada sesión.43Los archivos CLAUDE.md son archivos markdown que dan a Claude instrucciones persistentes para un proyecto, su flujo de trabajo personal o toda su organización. Usted escribe estos archivos en texto plano; Claude los lee al inicio de cada sesión.

40 44 

41### Cuándo agregar a CLAUDE.md45<h3 id="when-to-add-to-claude-md">

46 Cuándo agregar a CLAUDE.md

47</h3>

42 48 

43Trate CLAUDE.md como el lugar donde escribe lo que de otro modo tendría que re-explicar. Agregue a él cuando:49Trate CLAUDE.md como el lugar donde escribe lo que de otro modo tendría que re-explicar. Agregue a él cuando:

44 50 


49 55 

50Manténgalo en hechos que Claude debe retener en cada sesión: comandos de compilación, convenciones, diseño del proyecto, reglas "siempre haz X". Si una entrada es un procedimiento de múltiples pasos o solo importa para una parte de la base de código, muévala a un [skill](/es/skills) o una [regla con alcance de ruta](#organize-rules-with-claude/rules/) en su lugar. La [descripción general de extensiones](/es/features-overview#build-your-setup-over-time) cubre cuándo usar cada mecanismo.56Manténgalo en hechos que Claude debe retener en cada sesión: comandos de compilación, convenciones, diseño del proyecto, reglas "siempre haz X". Si una entrada es un procedimiento de múltiples pasos o solo importa para una parte de la base de código, muévala a un [skill](/es/skills) o una [regla con alcance de ruta](#organize-rules-with-claude/rules/) en su lugar. La [descripción general de extensiones](/es/features-overview#build-your-setup-over-time) cubre cuándo usar cada mecanismo.

51 57 

52### Elija dónde colocar los archivos CLAUDE.md58<h3 id="choose-where-to-put-claude-md-files">

59 Elija dónde colocar los archivos CLAUDE.md

60</h3>

53 61 

54Los archivos CLAUDE.md pueden vivir en varios lugares, cada uno con un alcance diferente. La tabla a continuación los enumera en orden de carga, desde el alcance más amplio hasta el más específico, por lo que una instrucción de proyecto aparece en contexto después de una instrucción de usuario.62Los archivos CLAUDE.md pueden vivir en varios lugares, cada uno con un alcance diferente. La tabla a continuación los enumera en orden de carga, desde el alcance más amplio hasta el más específico, por lo que una instrucción de proyecto aparece en contexto después de una instrucción de usuario.

55 63 


64 72 

65Para proyectos grandes, puede dividir las instrucciones en archivos específicos de temas usando [reglas de proyecto](#organize-rules-with-claude/rules/). Las reglas le permiten limitar las instrucciones a tipos de archivo específicos o subdirectorios.73Para proyectos grandes, puede dividir las instrucciones en archivos específicos de temas usando [reglas de proyecto](#organize-rules-with-claude/rules/). Las reglas le permiten limitar las instrucciones a tipos de archivo específicos o subdirectorios.

66 74 

67### Configure un CLAUDE.md de proyecto75<h3 id="set-up-a-project-claude-md">

76 Configure un CLAUDE.md de proyecto

77</h3>

68 78 

69Un CLAUDE.md de proyecto puede almacenarse en `./CLAUDE.md` o `./.claude/CLAUDE.md`. Cree este archivo y agregue instrucciones que se apliquen a cualquiera que trabaje en el proyecto: comandos de compilación y prueba, estándares de codificación, decisiones arquitectónicas, convenciones de nomenclatura y flujos de trabajo comunes. Estas instrucciones se comparten con su equipo a través del control de versiones, así que enfóquese en estándares a nivel de proyecto en lugar de preferencias personales.79Un CLAUDE.md de proyecto puede almacenarse en `./CLAUDE.md` o `./.claude/CLAUDE.md`. Cree este archivo y agregue instrucciones que se apliquen a cualquiera que trabaje en el proyecto: comandos de compilación y prueba, estándares de codificación, decisiones arquitectónicas, convenciones de nomenclatura y flujos de trabajo comunes. Estas instrucciones se comparten con su equipo a través del control de versiones, así que enfóquese en estándares a nivel de proyecto en lugar de preferencias personales.

70 80 


74 Establezca `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 subagent, llena los vacíos mediante preguntas de seguimiento y presenta una propuesta revisable antes de escribir cualquier archivo.84 Establezca `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 subagent, llena los vacíos mediante preguntas de seguimiento y presenta una propuesta revisable antes de escribir cualquier archivo.

75</Tip>85</Tip>

76 86 

77### Escriba instrucciones efectivas87<h3 id="write-effective-instructions">

88 Escriba instrucciones efectivas

89</h3>

78 90 

79Los archivos CLAUDE.md se cargan en la ventana de contexto al inicio de cada sesión, consumiendo tokens junto con su conversación. La [visualización de la ventana de contexto](/es/context-window) muestra dónde se carga CLAUDE.md en relación con el resto del contexto de inicio. Debido a que son contexto en lugar de configuración forzada, cómo escribe las instrucciones afecta qué tan confiablemente Claude las sigue. Las instrucciones específicas, concisas y bien estructuradas funcionan mejor.91Los archivos CLAUDE.md se cargan en la ventana de contexto al inicio de cada sesión, consumiendo tokens junto con su conversación. La [visualización de la ventana de contexto](/es/context-window) muestra dónde se carga CLAUDE.md en relación con el resto del contexto de inicio. Debido a que son contexto en lugar de configuración forzada, cómo escribe las instrucciones afecta qué tan confiablemente Claude las sigue. Las instrucciones específicas, concisas y bien estructuradas funcionan mejor.

80 92 


90 102 

91**Consistencia**: si dos reglas se contradicen entre sí, Claude puede elegir una arbitrariamente. Revise sus archivos CLAUDE.md, archivos CLAUDE.md anidados en subdirectorios y archivos [`.claude/rules/`](#organize-rules-with-claude/rules/) periódicamente para eliminar instrucciones desactualizadas o conflictivas. En monorepos, use [`claudeMdExcludes`](#exclude-specific-claude-md-files) para omitir archivos CLAUDE.md de otros equipos que no sean relevantes para su trabajo.103**Consistencia**: si dos reglas se contradicen entre sí, Claude puede elegir una arbitrariamente. Revise sus archivos CLAUDE.md, archivos CLAUDE.md anidados en subdirectorios y archivos [`.claude/rules/`](#organize-rules-with-claude/rules/) periódicamente para eliminar instrucciones desactualizadas o conflictivas. En monorepos, use [`claudeMdExcludes`](#exclude-specific-claude-md-files) para omitir archivos CLAUDE.md de otros equipos que no sean relevantes para su trabajo.

92 104 

93### Importar archivos adicionales105<h3 id="import-additional-files">

106 Importar archivos adicionales

107</h3>

94 108 

95Los archivos CLAUDE.md pueden importar archivos adicionales usando la sintaxis `@path/to/import`. Los archivos importados se expanden y se cargan en contexto al iniciar junto con el CLAUDE.md que los referencia.109Los archivos CLAUDE.md pueden importar archivos adicionales usando la sintaxis `@path/to/import`. Los archivos importados se expanden y se cargan en contexto al iniciar junto con el CLAUDE.md que los referencia.

96 110 


120 134 

121Para un enfoque más estructurado para organizar instrucciones, consulte [`.claude/rules/`](#organize-rules-with-claude/rules/).135Para un enfoque más estructurado para organizar instrucciones, consulte [`.claude/rules/`](#organize-rules-with-claude/rules/).

122 136 

123### AGENTS.md137<h3 id="agents-md">

138 AGENTS.md

139</h3>

124 140 

125Claude Code lee `CLAUDE.md`, no `AGENTS.md`. Si su repositorio ya usa `AGENTS.md` para otros agentes de codificación, cree un `CLAUDE.md` que lo importe para que ambas herramientas lean las mismas instrucciones sin duplicarlas. También puede agregar instrucciones específicas de Claude Code debajo de la importación. Claude carga el archivo importado al inicio de la sesión, luego agrega el resto:141Claude Code lee `CLAUDE.md`, no `AGENTS.md`. Si su repositorio ya usa `AGENTS.md` para otros agentes de codificación, cree un `CLAUDE.md` que lo importe para que ambas herramientas lean las mismas instrucciones sin duplicarlas. También puede agregar instrucciones específicas de Claude Code debajo de la importación. Claude carga el archivo importado al inicio de la sesión, luego agrega el resto:

126 142 


140 156 

141En Windows, crear un enlace simbólico requiere privilegios de administrador o modo de desarrollador, así que use la importación `@AGENTS.md` en su lugar.157En Windows, crear un enlace simbólico requiere privilegios de administrador o modo de desarrollador, así que use la importación `@AGENTS.md` en su lugar.

142 158 

143Ejecutar [`/init`](/es/commands) en un repositorio que ya tiene un `AGENTS.md` lo lee e incorpora las partes relevantes en el `CLAUDE.md` generado. También lee otras configuraciones de herramientas como `.cursorrules` y `.windsurfrules`.159Ejecutar [`/init`](/es/commands) en un repositorio que ya tiene un `AGENTS.md` lo lee e incorpora las partes relevantes en el `CLAUDE.md` generado. También lee otras configuraciones de herramientas como `.cursorrules`, `.devin/rules/` y `.windsurfrules`.

144 160 

145### Cómo se cargan los archivos CLAUDE.md161<h3 id="how-claude-md-files-load">

162 Cómo se cargan los archivos CLAUDE.md

163</h3>

146 164 

147Claude Code lee los archivos CLAUDE.md caminando hacia arriba en el árbol de directorios desde su directorio de trabajo actual, verificando cada directorio en el camino para archivos `CLAUDE.md` y `CLAUDE.local.md`. Esto significa que si ejecuta Claude Code en `foo/bar/`, carga instrucciones desde `foo/bar/CLAUDE.md`, `foo/CLAUDE.md` y cualquier archivo `CLAUDE.local.md` junto a ellos.165Claude Code lee los archivos CLAUDE.md caminando hacia arriba en el árbol de directorios desde su directorio de trabajo actual, verificando cada directorio en el camino para archivos `CLAUDE.md` y `CLAUDE.local.md`. Esto significa que si ejecuta Claude Code en `foo/bar/`, carga instrucciones desde `foo/bar/CLAUDE.md`, `foo/CLAUDE.md` y cualquier archivo `CLAUDE.local.md` junto a ellos.

148 166 


154 172 

155Los comentarios HTML a nivel de bloque (`<!-- notas de mantenimiento -->`) en archivos CLAUDE.md se eliminan antes de que el contenido se inyecte en el contexto de Claude. Úselos para dejar notas para los mantenedores humanos sin gastar tokens de contexto en ellas. Los comentarios dentro de bloques de código se conservan. Cuando abre un archivo CLAUDE.md directamente con la herramienta Read, los comentarios permanecen visibles.173Los comentarios HTML a nivel de bloque (`<!-- notas de mantenimiento -->`) en archivos CLAUDE.md se eliminan antes de que el contenido se inyecte en el contexto de Claude. Úselos para dejar notas para los mantenedores humanos sin gastar tokens de contexto en ellas. Los comentarios dentro de bloques de código se conservan. Cuando abre un archivo CLAUDE.md directamente con la herramienta Read, los comentarios permanecen visibles.

156 174 

157#### Cargar desde directorios adicionales175<h4 id="load-from-additional-directories">

176 Cargar desde directorios adicionales

177</h4>

158 178 

159La bandera `--add-dir` da a Claude acceso a directorios adicionales fuera de su directorio de trabajo principal. De forma predeterminada, los archivos CLAUDE.md de estos directorios no se cargan.179La bandera `--add-dir` da a Claude acceso a directorios adicionales fuera de su directorio de trabajo principal. De forma predeterminada, los archivos CLAUDE.md de estos directorios no se cargan.

160 180 


166 186 

167Esto 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`](/es/cli-reference).187Esto 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`](/es/cli-reference).

168 188 

169### Organizar reglas con `.claude/rules/`189<h3 id="organize-rules-with-claude/rules/">

190 Organizar reglas con `.claude/rules/`

191</h3>

170 192 

171Para proyectos más grandes, puede organizar instrucciones en múltiples archivos usando el directorio `.claude/rules/`. Esto mantiene las instrucciones modulares y más fáciles de mantener para los equipos. Las reglas también pueden ser [limitadas a rutas de archivo específicas](#path-specific-rules), por lo que solo se cargan en contexto cuando Claude trabaja con archivos coincidentes, reduciendo ruido y ahorrando espacio de contexto.193Para proyectos más grandes, puede organizar instrucciones en múltiples archivos usando el directorio `.claude/rules/`. Esto mantiene las instrucciones modulares y más fáciles de mantener para los equipos. Las reglas también pueden ser [limitadas a rutas de archivo específicas](#path-specific-rules), por lo que solo se cargan en contexto cuando Claude trabaja con archivos coincidentes, reduciendo ruido y ahorrando espacio de contexto.

172 194 


174 Las reglas se cargan en contexto cada sesión o cuando se abren archivos coincidentes. Para instrucciones específicas de tareas que no necesitan estar en contexto todo el tiempo, use [skills](/es/skills) en su lugar, que solo se cargan cuando las invoca o cuando Claude determina que son relevantes para su prompt.196 Las reglas se cargan en contexto cada sesión o cuando se abren archivos coincidentes. Para instrucciones específicas de tareas que no necesitan estar en contexto todo el tiempo, use [skills](/es/skills) en su lugar, que solo se cargan cuando las invoca o cuando Claude determina que son relevantes para su prompt.

175</Note>197</Note>

176 198 

177#### Configurar reglas199<h4 id="set-up-rules">

200 Configurar reglas

201</h4>

178 202 

179Coloque archivos markdown en el directorio `.claude/rules/` de su proyecto. Cada archivo debe cubrir un tema, con un nombre de archivo descriptivo como `testing.md` o `api-design.md`. Todos los archivos `.md` se descubren recursivamente, por lo que puede organizar reglas en subdirectorios como `frontend/` o `backend/`:203Coloque archivos markdown en el directorio `.claude/rules/` de su proyecto. Cada archivo debe cubrir un tema, con un nombre de archivo descriptivo como `testing.md` o `api-design.md`. Todos los archivos `.md` se descubren recursivamente, por lo que puede organizar reglas en subdirectorios como `frontend/` o `backend/`:

180 204 


190 214 

191Las reglas sin [frontmatter `paths`](#path-specific-rules) se cargan al iniciar con la misma prioridad que `.claude/CLAUDE.md`.215Las reglas sin [frontmatter `paths`](#path-specific-rules) se cargan al iniciar con la misma prioridad que `.claude/CLAUDE.md`.

192 216 

193#### Reglas específicas de ruta217<h4 id="path-specific-rules">

218 Reglas específicas de ruta

219</h4>

194 220 

195Las reglas pueden limitarse a archivos específicos usando frontmatter YAML con el campo `paths`. Estas reglas condicionales solo se aplican cuando Claude trabaja con archivos que coinciden con los patrones especificados.221Las reglas pueden limitarse a archivos específicos usando frontmatter YAML con el campo `paths`. Estas reglas condicionales solo se aplican cuando Claude trabaja con archivos que coinciden con los patrones especificados.

196 222 


229---255---

230```256```

231 257 

232#### Compartir reglas entre proyectos con enlaces simbólicos258<h4 id="share-rules-across-projects-with-symlinks">

259 Compartir reglas entre proyectos con enlaces simbólicos

260</h4>

233 261 

234El 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 se resuelven y se cargan normalmente, y los enlaces simbólicos circulares se detectan y se manejan correctamente.262El 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 se resuelven y se cargan normalmente, y los enlaces simbólicos circulares se detectan y se manejan correctamente.

235 263 


240ln -s ~/company-standards/security.md .claude/rules/security.md268ln -s ~/company-standards/security.md .claude/rules/security.md

241```269```

242 270 

243#### Reglas a nivel de usuario271<h4 id="user-level-rules">

272 Reglas a nivel de usuario

273</h4>

244 274 

245Las reglas personales en `~/.claude/rules/` se aplican a cada proyecto en su máquina. Úselas para preferencias que no son específicas del proyecto:275Las reglas personales en `~/.claude/rules/` se aplican a cada proyecto en su máquina. Úselas para preferencias que no son específicas del proyecto:

246 276 


252 282 

253Las reglas a nivel de usuario se cargan antes que las reglas del proyecto, dando a las reglas del proyecto mayor prioridad.283Las reglas a nivel de usuario se cargan antes que las reglas del proyecto, dando a las reglas del proyecto mayor prioridad.

254 284 

255### Gestionar CLAUDE.md para equipos grandes285<h3 id="manage-claude-md-for-large-teams">

286 Gestionar CLAUDE.md para equipos grandes

287</h3>

256 288 

257Para organizaciones que implementan Claude Code en equipos, puede centralizar instrucciones y controlar qué archivos CLAUDE.md se cargan.289Para organizaciones que implementan Claude Code en equipos, puede centralizar instrucciones y controlar qué archivos CLAUDE.md se cargan.

258 290 

259#### Implementar CLAUDE.md en toda la organización291<h4 id="deploy-organization-wide-claude-md">

292 Implementar CLAUDE.md en toda la organización

293</h4>

260 294 

261Las organizaciones pueden implementar un CLAUDE.md gestionado centralmente que se aplique a todos los usuarios en una máquina. Este archivo no puede ser excluido por configuraciones individuales.295Las organizaciones pueden implementar un CLAUDE.md gestionado centralmente que se aplique a todos los usuarios en una máquina. Este archivo no puede ser excluido por configuraciones individuales.

262 296 


302 336 

303Las reglas de configuración se aplican por el cliente independientemente de lo que Claude decida hacer. Las instrucciones de CLAUDE.md moldean el comportamiento de Claude pero no son una capa de aplicación forzada.337Las reglas de configuración se aplican por el cliente independientemente de lo que Claude decida hacer. Las instrucciones de CLAUDE.md moldean el comportamiento de Claude pero no son una capa de aplicación forzada.

304 338 

305#### Excluir archivos CLAUDE.md específicos339<h4 id="exclude-specific-claude-md-files">

340 Excluir archivos CLAUDE.md específicos

341</h4>

306 342 

307En monorepos grandes, los archivos CLAUDE.md ancestros pueden contener instrucciones que no son relevantes para su trabajo. La configuración `claudeMdExcludes` le permite omitir archivos específicos por ruta o patrón glob.343En monorepos grandes, los archivos CLAUDE.md ancestros pueden contener instrucciones que no son relevantes para su trabajo. La configuración `claudeMdExcludes` le permite omitir archivos específicos por ruta o patrón glob.

308 344 


321 357 

322Los archivos CLAUDE.md de política gestionada no pueden ser excluidos. Esto asegura que las instrucciones de toda la organización siempre se apliquen independientemente de la configuración individual.358Los archivos CLAUDE.md de política gestionada no pueden ser excluidos. Esto asegura que las instrucciones de toda la organización siempre se apliquen independientemente de la configuración individual.

323 359 

324## Auto memory360<h2 id="auto-memory">

361 Auto memory

362</h2>

325 363 

326Auto memory permite que Claude acumule conocimiento entre sesiones sin que usted escriba nada. Claude guarda notas para sí mismo mientras trabaja: comandos de compilación, información de depuración, notas de arquitectura, preferencias de estilo de código y hábitos de flujo de trabajo. Claude no guarda algo cada sesión. Decide qué vale la pena recordar basándose en si la información sería útil en una conversación futura.364Auto memory permite que Claude acumule conocimiento entre sesiones sin que usted escriba nada. Claude guarda notas para sí mismo mientras trabaja: comandos de compilación, información de depuración, notas de arquitectura, preferencias de estilo de código y hábitos de flujo de trabajo. Claude no guarda algo cada sesión. Decide qué vale la pena recordar basándose en si la información sería útil en una conversación futura.

327 365 


329 Auto memory requiere Claude Code v2.1.59 o posterior. Verifique su versión con `claude --version`.367 Auto memory requiere Claude Code v2.1.59 o posterior. Verifique su versión con `claude --version`.

330</Note>368</Note>

331 369 

332### Habilitar o deshabilitar auto memory370<h3 id="enable-or-disable-auto-memory">

371 Habilitar o deshabilitar auto memory

372</h3>

333 373 

334Auto memory está habilitado de forma predeterminada. Para alternarlo, abra `/memory` en una sesión y use el botón de alternancia de auto memory, o establezca `autoMemoryEnabled` en la configuración de su proyecto:374Auto memory está habilitado de forma predeterminada. Para alternarlo, abra `/memory` en una sesión y use el botón de alternancia de auto memory, o establezca `autoMemoryEnabled` en la configuración de su proyecto:

335 375 


341 381 

342Para deshabilitar auto memory a través de variable de entorno, establezca `CLAUDE_CODE_DISABLE_AUTO_MEMORY=1`.382Para deshabilitar auto memory a través de variable de entorno, establezca `CLAUDE_CODE_DISABLE_AUTO_MEMORY=1`.

343 383 

344### Ubicación de almacenamiento384<h3 id="storage-location">

385 Ubicación de almacenamiento

386</h3>

345 387 

346Cada proyecto obtiene su propio directorio de memoria en `~/.claude/projects/<project>/memory/`. La ruta `<project>` se deriva del repositorio git, por lo que todos los worktrees y subdirectorios dentro del mismo repositorio comparten un directorio de auto memory. Fuera de un repositorio git, se usa la raíz del proyecto en su lugar.388Cada proyecto obtiene su propio directorio de memoria en `~/.claude/projects/<project>/memory/`. La ruta `<project>` se deriva del repositorio git, por lo que todos los worktrees y subdirectorios dentro del mismo repositorio comparten un directorio de auto memory. Fuera de un repositorio git, se usa la raíz del proyecto en su lugar.

347 389 


369 411 

370Auto memory es local de la máquina. Todos los worktrees y subdirectorios dentro del mismo repositorio git comparten un directorio de auto memory. Los archivos no se comparten entre máquinas o entornos en la nube.412Auto memory es local de la máquina. Todos los worktrees y subdirectorios dentro del mismo repositorio git comparten un directorio de auto memory. Los archivos no se comparten entre máquinas o entornos en la nube.

371 413 

372### Cómo funciona414<h3 id="how-it-works">

415 Cómo funciona

416</h3>

373 417 

374Las primeras 200 líneas de `MEMORY.md`, o los primeros 25KB, lo que sea menor, se cargan al inicio de cada conversación. El contenido más allá de ese umbral no se carga al inicio de la sesión. Claude mantiene `MEMORY.md` conciso moviendo notas detalladas a archivos de tema separados.418Las primeras 200 líneas de `MEMORY.md`, o los primeros 25KB, lo que sea menor, se cargan al inicio de cada conversación. El contenido más allá de ese umbral no se carga al inicio de la sesión. Claude mantiene `MEMORY.md` conciso moviendo notas detalladas a archivos de tema separados.

375 419 


379 423 

380Claude lee y escribe archivos de memoria durante su sesión. Cuando ve "Writing memory" o "Recalled memory" en la interfaz de Claude Code, Claude está actualizando o leyendo activamente desde `~/.claude/projects/<project>/memory/`.424Claude lee y escribe archivos de memoria durante su sesión. Cuando ve "Writing memory" o "Recalled memory" en la interfaz de Claude Code, Claude está actualizando o leyendo activamente desde `~/.claude/projects/<project>/memory/`.

381 425 

382### Auditar y editar su memoria426<h3 id="audit-and-edit-your-memory">

427 Auditar y editar su memoria

428</h3>

383 429 

384Los archivos de auto memory son markdown plano que puede editar o eliminar en cualquier momento. Ejecute [`/memory`](#view-and-edit-with-memory) para examinar y abrir archivos de memoria desde dentro de una sesión.430Los archivos de auto memory son markdown plano que puede editar o eliminar en cualquier momento. Ejecute [`/memory`](#view-and-edit-with-%2Fmemory) para examinar y abrir archivos de memoria desde dentro de una sesión.

385 431 

386## Ver y editar con `/memory`432<h2 id="view-and-edit-with-/memory">

433 Ver y editar con `/memory`

434</h2>

387 435 

388El comando `/memory` enumera todos los archivos CLAUDE.md, CLAUDE.local.md y rules cargados en su sesión actual, le permite alternar auto memory activado o desactivado, y proporciona un enlace para abrir la carpeta de auto memory. Seleccione cualquier archivo para abrirlo en su editor.436El comando `/memory` enumera todos los archivos CLAUDE.md, CLAUDE.local.md y rules cargados en su sesión actual, le permite alternar auto memory activado o desactivado, y proporciona un enlace para abrir la carpeta de auto memory. Seleccione cualquier archivo para abrirlo en su editor.

389 437 

390Cuando le pide a Claude que recuerde algo, como "siempre usar pnpm, no npm" o "recuerde que las pruebas de API requieren una instancia local de Redis", Claude lo guarda en auto memory. Para agregar instrucciones a CLAUDE.md en su lugar, pídale a Claude directamente, como "agregue esto a CLAUDE.md", o edite el archivo usted mismo a través de `/memory`.438Cuando le pide a Claude que recuerde algo, como "siempre usar pnpm, no npm" o "recuerde que las pruebas de API requieren una instancia local de Redis", Claude lo guarda en auto memory. Para agregar instrucciones a CLAUDE.md en su lugar, pídale a Claude directamente, como "agregue esto a CLAUDE.md", o edite el archivo usted mismo a través de `/memory`.

391 439 

392## Solucionar problemas de memoria440<h2 id="troubleshoot-memory-issues">

441 Solucionar problemas de memoria

442</h2>

393 443 

394Estos son los problemas más comunes con CLAUDE.md y auto memory, junto con pasos para depurarlos.444Estos son los problemas más comunes con CLAUDE.md y auto memory, junto con pasos para depurarlos.

395 445 

396### Claude no está siguiendo mi CLAUDE.md446<h3 id="claude-isn’t-following-my-claude-md">

447 Claude no está siguiendo mi CLAUDE.md

448</h3>

397 449 

398El contenido de CLAUDE.md se entrega como un mensaje de usuario después del prompt del sistema, no como parte del prompt del sistema en sí. Claude lo lee e intenta seguirlo, pero no hay garantía de cumplimiento estricto, especialmente para instrucciones vagas o conflictivas.450El contenido de CLAUDE.md se entrega como un mensaje de usuario después del prompt del sistema, no como parte del prompt del sistema en sí. Claude lo lee e intenta seguirlo, pero no hay garantía de cumplimiento estricto, especialmente para instrucciones vagas o conflictivas.

399 451 


412 Use el hook [`InstructionsLoaded`](/es/hooks#instructionsloaded) para registrar exactamente qué archivos de instrucciones se cargan, cuándo se cargan y por qué. Esto es útil para depurar reglas específicas de ruta o archivos cargados perezosamente en subdirectorios.464 Use el hook [`InstructionsLoaded`](/es/hooks#instructionsloaded) para registrar exactamente qué archivos de instrucciones se cargan, cuándo se cargan y por qué. Esto es útil para depurar reglas específicas de ruta o archivos cargados perezosamente en subdirectorios.

413</Tip>465</Tip>

414 466 

415### No sé qué guardó auto memory467<h3 id="i-don’t-know-what-auto-memory-saved">

468 No sé qué guardó auto memory

469</h3>

416 470 

417Ejecute `/memory` y seleccione la carpeta de auto memory para examinar lo que Claude ha guardado. Todo es markdown plano que puede leer, editar o eliminar.471Ejecute `/memory` y seleccione la carpeta de auto memory para examinar lo que Claude ha guardado. Todo es markdown plano que puede leer, editar o eliminar.

418 472 

419### Mi CLAUDE.md es demasiado grande473<h3 id="my-claude-md-is-too-large">

474 Mi CLAUDE.md es demasiado grande

475</h3>

420 476 

421Los archivos de más de 200 líneas consumen más contexto y pueden reducir la adherencia. Use [reglas con alcance de ruta](#path-specific-rules) para cargar instrucciones solo cuando Claude trabaja con archivos coincidentes, o recorte contenido que no sea necesario en cada sesión. Dividir en [importaciones `@path`](#import-additional-files) ayuda a la organización pero no reduce el contexto, ya que los archivos importados se cargan al iniciar.477Los archivos de más de 200 líneas consumen más contexto y pueden reducir la adherencia. Use [reglas con alcance de ruta](#path-specific-rules) para cargar instrucciones solo cuando Claude trabaja con archivos coincidentes, o recorte contenido que no sea necesario en cada sesión. Dividir en [importaciones `@path`](#import-additional-files) ayuda a la organización pero no reduce el contexto, ya que los archivos importados se cargan al iniciar.

422 478 

423### Las instrucciones parecen perdidas después de `/compact`479<h3 id="instructions-seem-lost-after-/compact">

480 Las instrucciones parecen perdidas después de `/compact`

481</h3>

424 482 

425CLAUDE.md de raíz de proyecto sobrevive a la compactación: después de `/compact`, Claude vuelve a leer desde el disco e lo reinyecta en la sesión. Los archivos CLAUDE.md anidados en subdirectorios no se reinyectan automáticamente; se recargan la próxima vez que Claude lee un archivo en ese subdirectorio.483CLAUDE.md de raíz de proyecto sobrevive a la compactación: después de `/compact`, Claude vuelve a leer desde el disco e lo reinyecta en la sesión. Los archivos CLAUDE.md anidados en subdirectorios no se reinyectan automáticamente; se recargan la próxima vez que Claude lee un archivo en ese subdirectorio.

426 484 


428 486 

429Consulte [Escriba instrucciones efectivas](#write-effective-instructions) para obtener orientación sobre tamaño, estructura y especificidad.487Consulte [Escriba instrucciones efectivas](#write-effective-instructions) para obtener orientación sobre tamaño, estructura y especificidad.

430 488 

431## Recursos relacionados489<h2 id="related-resources">

490 Recursos relacionados

491</h2>

432 492 

433* [Depurar su configuración](/es/debug-your-config): diagnosticar por qué CLAUDE.md o configuración no están surtiendo efecto493* [Depurar su configuración](/es/debug-your-config): diagnosticar por qué CLAUDE.md o configuración no están surtiendo efecto

434* [Skills](/es/skills): empaquetar flujos de trabajo repetibles que se cargan bajo demanda494* [Skills](/es/skills): empaquetar flujos de trabajo repetibles que se cargan bajo demanda

Details

6 6 

7> Aprende a configurar Claude Code a través de Microsoft Foundry, incluyendo configuración, instalación y solución de problemas.7> Aprende a configurar Claude Code a través de Microsoft Foundry, incluyendo configuración, instalación y solución de problemas.

8 8 

9export const ContactSalesCard = ({surface}) => {

10 const utm = content => `utm_source=claude_code&utm_medium=docs&utm_content=${surface}_${content}`;

11 const iconArrowRight = (size = 13) => <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2.5" strokeLinecap="round" strokeLinejoin="round" aria-hidden="true">

12 <line x1="5" y1="12" x2="19" y2="12" />

13 <polyline points="12 5 19 12 12 19" />

14 </svg>;

15 const STYLES = `

16.cc-cs {

17 --cs-slate: #141413;

18 --cs-clay: #d97757;

19 --cs-clay-deep: #c6613f;

20 --cs-gray-000: #ffffff;

21 --cs-gray-700: #3d3d3a;

22 --cs-border-default: rgba(31, 30, 29, 0.15);

23 font-family: inherit;

24}

25.dark .cc-cs {

26 --cs-slate: #f0eee6;

27 --cs-gray-000: #262624;

28 --cs-gray-700: #bfbdb4;

29 --cs-border-default: rgba(240, 238, 230, 0.14);

30}

31.cc-cs-card {

32 display: flex; align-items: center; justify-content: space-between;

33 gap: 16px; padding: 14px 16px; margin: 0;

34 background: var(--cs-gray-000); border: 0.5px solid var(--cs-border-default);

35 border-radius: 8px; flex-wrap: wrap;

36}

37.cc-cs-text { font-size: 13px; color: var(--cs-gray-700); line-height: 1.5; flex: 1; min-width: 240px; }

38.cc-cs-text strong { font-weight: 550; color: var(--cs-slate); }

39.cc-cs-actions { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }

40.cc-cs-btn-clay {

41 display: inline-flex; align-items: center; gap: 8px;

42 background: var(--cs-clay-deep); color: #fff; border: none;

43 border-radius: 8px; padding: 8px 14px;

44 font-size: 13px; font-weight: 500;

45 transition: background-color 0.15s; white-space: nowrap;

46}

47.cc-cs-btn-clay:hover { background: var(--cs-clay); }

48.cc-cs-btn-ghost {

49 display: inline-flex; align-items: center; gap: 8px;

50 background: transparent; color: var(--cs-gray-700);

51 border: 0.5px solid var(--cs-border-default);

52 border-radius: 8px; padding: 8px 14px;

53 font-size: 13px; font-weight: 500;

54}

55.cc-cs-btn-ghost:hover { background: rgba(0, 0, 0, 0.04); }

56.dark .cc-cs-btn-ghost:hover { background: rgba(255, 255, 255, 0.04); }

57@media (max-width: 720px) {

58 .cc-cs-actions { width: 100%; }

59}

60`;

61 return <div className="cc-cs not-prose">

62 <style>{STYLES}</style>

63 <div className="cc-cs-card">

64 <div className="cc-cs-text">

65 <strong>Deploying Claude Code across your organization?</strong> Talk to sales about enterprise plans, SSO, and centralized billing.

66 </div>

67 <div className="cc-cs-actions">

68 <a href={`https://claude.com/pricing?${utm('view_plans')}#plans-business`} className="cc-cs-btn-ghost">

69 View plans

70 </a>

71 <a href={`https://claude.com/contact-sales?${utm('contact_sales')}`} className="cc-cs-btn-clay">

72 Contact sales {iconArrowRight()}

73 </a>

74 </div>

75 </div>

76 </div>;

77};

78 

79<ContactSalesCard surface="foundry" />

80 

9<h2 id="prerequisites">81<h2 id="prerequisites">

10 Requisitos previos82 Requisitos previos

11</h2>83</h2>


17* Azure CLI instalado y configurado (opcional - solo necesario si no tiene otro mecanismo para obtener credenciales)89* Azure CLI instalado y configurado (opcional - solo necesario si no tiene otro mecanismo para obtener credenciales)

18 90 

19<Note>91<Note>

20 Si está implementando Claude Code para múltiples usuarios, [fije las versiones de su modelo](#4-pin-model-versions) para evitar problemas cuando Anthropic lanza nuevos modelos.92 Si está implementando Claude Code para múltiples usuarios, [fije las versiones de su modelo](#4-pin-model-versions) antes de implementar.

21</Note>93</Note>

22 94 

23<h2 id="setup">95<h2 id="setup">


46**Opción A: Autenticación por clave API**118**Opción A: Autenticación por clave API**

47 119 

481. Navegue a su recurso en el portal de Microsoft Foundry1201. Navegue a su recurso en el portal de Microsoft Foundry

492. Vaya a la sección **Endpoints and keys** (Puntos finales y claves)1212. Vaya a la sección **Endpoints and keys**

503. Copie **API Key** (Clave API)1223. Copie **API Key**

514. Establezca la variable de entorno:1234. Establezca la variable de entorno:

52 124 

53```bash theme={null}125```bash theme={null}


90</h3>162</h3>

91 163 

92<Warning>164<Warning>

93 Fije versiones de modelo específicas para cada implementación. Si utiliza alias de modelo (`sonnet`, `opus`, `haiku`) sin fijar, Claude Code puede intentar utilizar una versión de modelo más nueva que no está disponible en su cuenta de Foundry, rompiendo usuarios existentes cuando Anthropic lanza actualizaciones. Cuando cree implementaciones de Azure, seleccione una versión de modelo específica en lugar de "actualizar automáticamente a la última".165 Fije versiones de modelo específicas para cada implementación. Sin fijar, los alias de modelo como `sonnet` y `opus` se resuelven al valor predeterminado integrado de Claude Code para Foundry, que puede estar rezagado con respecto a la versión más reciente y es posible que aún no esté disponible en su cuenta. Foundry no tiene verificación de modelo de inicio, por lo que las solicitudes fallan cuando el valor predeterminado no está disponible. Cuando cree implementaciones de Azure, seleccione una versión de modelo específica en lugar de "actualizar automáticamente a la última".

94</Warning>166</Warning>

95 167 

96Establezca las variables de modelo para que coincidan con los nombres de implementación que creó en el paso 1.168Establezca las variables de modelo para que coincidan con los nombres de implementación que creó en el paso 1.

model-config.md +151 −29

Details

32| Alias de modelo | Comportamiento |32| Alias de modelo | Comportamiento |

33| ---------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |33| ---------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

34| **`default`** | Valor especial que borra cualquier anulación de modelo y revierte al modelo recomendado para su tipo de cuenta. No es en sí mismo un alias de modelo |34| **`default`** | Valor especial que borra cualquier anulación de modelo y revierte al modelo recomendado para su tipo de cuenta. No es en sí mismo un alias de modelo |

35| **`best`** | Utiliza el modelo disponible más capaz, actualmente equivalente a `opus` |35| **`best`** | Utiliza Fable 5 donde su organización tiene acceso a él, de lo contrario el último modelo Opus |

36| **`fable`** | Utiliza Claude Fable 5 para sus tareas más difíciles y de mayor duración |

36| **`sonnet`** | Utiliza el último modelo Sonnet para tareas de codificación diaria |37| **`sonnet`** | Utiliza el último modelo Sonnet para tareas de codificación diaria |

37| **`opus`** | Utiliza el último modelo Opus para tareas de razonamiento complejo |38| **`opus`** | Utiliza el último modelo Opus para tareas de razonamiento complejo |

38| **`haiku`** | Utiliza el modelo Haiku rápido y eficiente para tareas simples |39| **`haiku`** | Utiliza el modelo Haiku rápido y eficiente para tareas simples |

39| **`sonnet[1m]`** | Utiliza Sonnet con una [ventana de contexto de 1 millón de tokens](https://platform.claude.com/docs/es/build-with-claude/context-windows#1m-token-context-window) para sesiones largas |40| **`sonnet[1m]`** | Utiliza Sonnet con una [ventana de contexto de 1 millón de tokens](https://platform.claude.com/docs/es/build-with-claude/context-windows#1m-token-context-window) para sesiones largas |

40| **`opus[1m]`** | Utiliza Opus con una [ventana de contexto de 1 millón de tokens](https://platform.claude.com/docs/es/build-with-claude/context-windows#1m-token-context-window) para sesiones largas |41| **`opus[1m]`** | Utiliza Opus con una [ventana de contexto de 1 millón de tokens](https://platform.claude.com/docs/es/build-with-claude/context-windows#1m-token-context-window) para sesiones largas |

41| **`opusplan`** | Modo especial que utiliza `opus` durante el Plan Mode, luego cambia a `sonnet` para la ejecución |42| **`opusplan`** | Modo especial que utiliza `opus` durante Plan Mode, luego cambia a `sonnet` para la ejecución |

42 43 

43En la API de Anthropic, `opus` se resuelve a Opus 4.8 y `sonnet` se resuelve a Sonnet 4.6. En [Claude Platform on AWS](/es/claude-platform-on-aws), `opus` se resuelve a Opus 4.7 y `sonnet` se resuelve a Sonnet 4.6. En Bedrock, Vertex y Foundry, `opus` se resuelve a Opus 4.6 y `sonnet` se resuelve a Sonnet 4.5; hay modelos más nuevos disponibles en esos proveedores seleccionando el nombre de modelo completo explícitamente o estableciendo `ANTHROPIC_DEFAULT_OPUS_MODEL` o `ANTHROPIC_DEFAULT_SONNET_MODEL`.44En la API de Anthropic, `opus` se resuelve a Opus 4.8 y `sonnet` se resuelve a Sonnet 4.6. En [Claude Platform on AWS](/es/claude-platform-on-aws), `opus` se resuelve a Opus 4.7 y `sonnet` se resuelve a Sonnet 4.6. En Bedrock, Vertex y Foundry, `opus` se resuelve a Opus 4.6 y `sonnet` se resuelve a Sonnet 4.5; hay modelos más nuevos disponibles en esos proveedores seleccionando el nombre de modelo completo explícitamente o estableciendo `ANTHROPIC_DEFAULT_OPUS_MODEL` o `ANTHROPIC_DEFAULT_SONNET_MODEL`.

44 45 

45Los alias siempre apuntan a la versión recomendada para su proveedor y se actualizan con el tiempo. Para fijar una versión específica, utilice el nombre de modelo completo (por ejemplo, `claude-opus-4-8`) o establezca la variable de entorno correspondiente como `ANTHROPIC_DEFAULT_OPUS_MODEL`.46Los alias apuntan a la versión recomendada para su proveedor y se actualizan con el tiempo. Para fijar una versión específica, utilice el nombre de modelo completo (por ejemplo, `claude-opus-4-8`) o establezca la variable de entorno correspondiente como `ANTHROPIC_DEFAULT_OPUS_MODEL`.

46 47 

47<Note>48<Note>

48 Opus 4.8 requiere Claude Code v2.1.154 o posterior. Ejecute `claude update` para actualizar.49 Opus 4.8 requiere Claude Code v2.1.154 o posterior. Ejecute `claude update` para actualizar.

49</Note>50</Note>

50 51 

52<h3 id="work-with-fable-5">

53 Trabajar con Fable 5

54</h3>

55 

56[Claude Fable 5](https://platform.claude.com/docs/es/about-claude/models/introducing-claude-fable-5-and-claude-mythos-5) es el modelo más capaz en Claude Code, adecuado para tareas más grandes que una sola sesión. Sustenta sesiones largas autónomas, investiga antes de actuar y verifica su trabajo más a menudo que los modelos más pequeños.

57 

58Fable 5 no es el modelo predeterminado. Selecciónelo con `/model fable`. Las solicitudes que sus clasificadores de seguridad marcan, más a menudo en dominios de ciberseguridad y biología, activan [alternancia automática de modelo](#automatic-model-fallback).

59 

60Para aprovechar al máximo Fable 5:

61 

62* **Describa el resultado, no los pasos**: entrégale el resultado que desea y déjelo planificar el camino. Para mantenerlo funcionando hasta que ese resultado se cumpla, [establezca un objetivo](/es/goal).

63* **Entrégale problemas ambiguos**: las investigaciones de causa raíz, la depuración de interrupciones y las decisiones de arquitectura son donde la investigación y verificación adicionales se rentabilizan.

64* **Omita los recordatorios de verificación**: verifica su propio trabajo con menos indicaciones, por lo que los recordatorios para probar o verificar generalmente son innecesarios.

65* **Dimensione tareas más grandes**: entrégale trabajo que normalmente dividiría en partes. Mantiene sesiones largas sin perder el hilo.

66 

67<Note>

68 Fable 5 requiere Claude Code v2.1.170 o posterior. Las versiones anteriores no muestran Fable 5 en el selector de modelo y no pueden seleccionarlo. Ejecute `claude update` para actualizar. Fable 5 no está disponible bajo [retención de datos cero](/es/zero-data-retention), donde el selector `/model` lo omite o lo muestra deshabilitado.

69</Note>

70 

51<h3 id="setting-your-model">71<h3 id="setting-your-model">

52 Configurar su modelo72 Configurar su modelo

53</h3>73</h3>


101 121 

102Los administradores empresariales pueden utilizar `availableModels` en [configuración administrada o de política](/es/settings#settings-files) para restringir qué modelos pueden seleccionar los usuarios.122Los administradores empresariales pueden utilizar `availableModels` en [configuración administrada o de política](/es/settings#settings-files) para restringir qué modelos pueden seleccionar los usuarios.

103 123 

104Cuando se establece `availableModels`, los usuarios no pueden cambiar a modelos que no estén en la lista a través de `/model`, la bandera `--model`, o la variable de entorno `ANTHROPIC_MODEL`.124Cuando se establece `availableModels`, la lista de permitidos se aplica en todas partes donde un usuario puede especificar un modelo:

125 

126* **Modelo de sesión principal**: `/model`, la bandera `--model`, y la variable de entorno `ANTHROPIC_MODEL`

127* **Resolución de alias**: {/* min-version: 2.1.176 */}las variables de entorno `ANTHROPIC_DEFAULT_OPUS_MODEL`, `ANTHROPIC_DEFAULT_SONNET_MODEL`, `ANTHROPIC_DEFAULT_HAIKU_MODEL`, y `ANTHROPIC_DEFAULT_FABLE_MODEL` no pueden redirigir un alias permitido a un modelo fuera de la lista

128* **Modo rápido**: {/* min-version: 2.1.176 */}`/fast` se niega a cambiar cuando cambiaría implícitamente a un modelo Opus fuera de la lista, con el mensaje "no está en los modelos permitidos de su organización"

129* **Modelos de subagentes**: el campo `model` en [frontmatter de subagente](/es/sub-agents#choose-a-model), el parámetro `model` de la herramienta Agent, el selector de modelo en `/agents`, y `CLAUDE_CODE_SUBAGENT_MODEL`

130* **Modelo de asesor**: la configuración [`advisorModel`](/es/advisor) configurada

131* **Cadenas de reserva**: los elementos de una [cadena de modelo de reserva](#fallback-model-chains) fuera de la lista se descartan

132 

133Cambiar a un modelo bloqueado con `/model` se rechaza con un error, mientras que una bandera `--model` bloqueada o un valor `ANTHROPIC_MODEL` se reemplaza al inicio con una advertencia que nombra tanto los modelos solicitados como los sustituidos, y la sesión comienza en el modelo predeterminado. Una anulación de subagente o asesor bloqueada vuelve al modelo heredado o predeterminado en lugar de fallar la solicitud.

105 134 

106```json theme={null}135```json theme={null}

107{136{


113 Comportamiento del modelo predeterminado142 Comportamiento del modelo predeterminado

114</h3>143</h3>

115 144 

116La opción Predeterminado en el selector de modelo no se ve afectada por `availableModels`. Siempre permanece disponible y representa el valor predeterminado de tiempo de ejecución del sistema [basado en el nivel de suscripción del usuario](#default-model-setting).145Por defecto, la opción Predeterminado en el selector de modelo no se ve afectada por `availableModels`. Siempre permanece disponible y representa el valor predeterminado de tiempo de ejecución del sistema [basado en el nivel de suscripción del usuario](#default-model-setting).

117 146 

118Incluso con `availableModels: []`, los usuarios aún pueden usar Claude Code con el modelo Predeterminado para su nivel.147Para extender la lista de permitidos a la opción Predeterminado, establezca `enforceAvailableModels` en `true` en configuración administrada o de política junto con una lista `availableModels` no vacía. Cuando el valor predeterminado del nivel no está en la lista de permitidos, Predeterminado se resuelve a la primera entrada permitida en lugar del valor predeterminado del nivel. Esto requiere Claude Code v2.1.175 o posterior.

148 

149Un array `availableModels` vacío nunca activa la aplicación. Incluso con `availableModels: []`, los usuarios aún pueden usar Claude Code con el modelo Predeterminado para su nivel independientemente de `enforceAvailableModels`.

119 150 

120<h3 id="control-the-model-users-run-on">151<h3 id="control-the-model-users-run-on">

121 Controlar el modelo en el que se ejecutan los usuarios152 Controlar el modelo en el que se ejecutan los usuarios


123 154 

124La configuración de `model` es una selección inicial, no una aplicación. Establece qué modelo está activo cuando comienza una sesión, pero los usuarios aún pueden abrir `/model` y elegir Predeterminado, que se resuelve al valor predeterminado del sistema para su nivel independientemente de lo que esté configurado en `model`.155La configuración de `model` es una selección inicial, no una aplicación. Establece qué modelo está activo cuando comienza una sesión, pero los usuarios aún pueden abrir `/model` y elegir Predeterminado, que se resuelve al valor predeterminado del sistema para su nivel independientemente de lo que esté configurado en `model`.

125 156 

126Para controlar completamente la experiencia del modelo, combine tres configuraciones:157Para controlar completamente la experiencia del modelo, combine estas configuraciones:

127 158 

128* **`availableModels`**: restringe a qué modelos nombrados pueden cambiar los usuarios159* **`availableModels`**: restringe a qué modelos nombrados pueden cambiar los usuarios

160* **`enforceAvailableModels`**: extiende la lista de permitidos `availableModels` a la opción Predeterminado, de modo que Predeterminado no pueda resolverse a un modelo fuera de la lista

129* **`model`**: establece la selección de modelo inicial cuando comienza una sesión161* **`model`**: establece la selección de modelo inicial cuando comienza una sesión

130* **`ANTHROPIC_DEFAULT_SONNET_MODEL`** / **`ANTHROPIC_DEFAULT_OPUS_MODEL`** / **`ANTHROPIC_DEFAULT_HAIKU_MODEL`**: controlan a qué se resuelven la opción Predeterminado y los alias `sonnet`, `opus` y `haiku`162* **`ANTHROPIC_DEFAULT_SONNET_MODEL`** / **`ANTHROPIC_DEFAULT_OPUS_MODEL`** / **`ANTHROPIC_DEFAULT_HAIKU_MODEL`** / **`ANTHROPIC_DEFAULT_FABLE_MODEL`**: controlan a qué se resuelven la opción Predeterminado y los alias `sonnet`, `opus`, `haiku` y `fable`

131 163 

132Este ejemplo inicia a los usuarios en Sonnet 4.5, limita el selector a Sonnet y Haiku, y fija Predeterminado para que se resuelva a Sonnet 4.5 en lugar de la versión más reciente:164Este ejemplo inicia a los usuarios en Sonnet 4.5, limita el selector a Sonnet y Haiku, y asegura que Predeterminado se resuelva a un modelo en la lista de permitidos en lugar del valor predeterminado del nivel:

133 165 

134```json theme={null}166```json theme={null}

135{167{

136 "model": "claude-sonnet-4-5",168 "model": "claude-sonnet-4-5",

137 "availableModels": ["claude-sonnet-4-5", "haiku"],169 "availableModels": ["claude-sonnet-4-5", "haiku"],

170 "enforceAvailableModels": true,

138 "env": {171 "env": {

139 "ANTHROPIC_DEFAULT_SONNET_MODEL": "claude-sonnet-4-5"172 "ANTHROPIC_DEFAULT_SONNET_MODEL": "claude-sonnet-4-5"

140 }173 }

141}174}

142```175```

143 176 

144Sin el bloque `env`, un usuario que seleccione Predeterminado en el selector obtendría la versión más reciente de Sonnet, omitiendo la fijación de versión en `model` y `availableModels`.177Sin `enforceAvailableModels` o el bloque `env`, un usuario que seleccione Predeterminado en el selector obtendría la versión más reciente para su nivel, omitiendo la fijación de versión en `model` y `availableModels`. Las dos configuraciones cubren diferentes alcances: `enforceAvailableModels` hace que Predeterminado obedezca la lista de permitidos, mientras que el bloque `env` fija qué versión resuelve un alias permitido como `sonnet`. Use `enforceAvailableModels` solo cuando restringir familias de modelos sea suficiente; agregue el bloque `env` cuando también necesite fijar una versión específica.

145 178 

146<h3 id="merge-behavior">179<h3 id="merge-behavior">

147 Comportamiento de fusión180 Comportamiento de fusión

148</h3>181</h3>

149 182 

150Cuando `availableModels` se establece en múltiples niveles, como configuración de usuario y configuración de proyecto, los arrays se fusionan y se desduplican. Para aplicar una lista de permitidos estricta, establezca `availableModels` en configuración administrada o de política que tenga la máxima prioridad.183Cuando `availableModels` se establece en configuración de usuario, proyecto y local solamente, los arrays se fusionan y se desduplican en esos niveles.

184 

185Cuando `availableModels` se establece en configuración administrada o de política, el valor administrado o de política reemplaza completamente el resultado fusionado: las entradas agregadas en configuración de usuario o proyecto no pueden ampliarlo. La configuración administrada y de política reemplaza los valores de menor precedencia para `enforceAvailableModels` de la misma manera. A partir de Claude Code v2.1.175, esta es la única forma de aplicar una lista de permitidos estricta; las versiones anteriores fusionan la lista administrada con entradas de menor precedencia.

151 186 

152<h3 id="mantle-model-ids">187<h3 id="mantle-model-ids">

153 IDs de modelo Mantle188 IDs de modelo Mantle

154</h3>189</h3>

155 190 

156Cuando el [punto final Bedrock Mantle](/es/amazon-bedrock#use-the-mantle-endpoint) está habilitado, las entradas en `availableModels` que comienzan con `anthropic.` se agregan al selector `/model` como opciones personalizadas y se enrutan al punto final Mantle. Esta es una excepción a la coincidencia solo de alias descrita en [Fijar modelos para implementaciones de terceros](#pin-models-for-third-party-deployments). La configuración aún restringe el selector a las entradas enumeradas, así que incluya los alias estándar junto con cualquier ID de Mantle.191Cuando el [punto final Bedrock Mantle](/es/amazon-bedrock#use-the-mantle-endpoint) está habilitado, las entradas en `availableModels` que comienzan con `anthropic.` se agregan al selector `/model` como opciones personalizadas y se enrutan al punto final Mantle. La configuración aún restringe el selector a las entradas enumeradas, así que incluya los alias estándar junto con cualquier ID de Mantle.

157 192 

158<h2 id="special-model-behavior">193<h2 id="special-model-behavior">

159 Comportamiento especial del modelo194 Comportamiento especial del modelo


172 207 

173Enterprise de pago por uso significa una organización Enterprise facturada por uso en lugar de por asiento de suscripción.208Enterprise de pago por uso significa una organización Enterprise facturada por uso en lugar de por asiento de suscripción.

174 209 

175Claude Code puede retroceder automáticamente a Sonnet si alcanza un umbral de uso con Opus.210Fable 5 no es el modelo predeterminado en ningún tipo de cuenta. Las sesiones utilizan Fable 5 solo después de que lo elija, con `/model fable`, una configuración de `model`, o el alias `best` donde Fable 5 está disponible. Elegirlo con `/model` lo guarda como el modelo seleccionado en su configuración de usuario, por lo que las sesiones posteriores comienzan en Fable 5 hasta que cambie de modelos.

176 211 

177<h3 id="opusplan-model-setting">212<h3 id="opusplan-model-setting">

178 Configuración del modelo `opusplan`213 Configuración del modelo `opusplan`


181El alias de modelo `opusplan` proporciona un enfoque híbrido automatizado:216El alias de modelo `opusplan` proporciona un enfoque híbrido automatizado:

182 217 

183* **En Plan Mode** - Utiliza `opus` para razonamiento complejo y decisiones de arquitectura218* **En Plan Mode** - Utiliza `opus` para razonamiento complejo y decisiones de arquitectura

184* **En modo de ejecución** - Cambia automáticamente a `sonnet` para generación de código e implementación219* **En Execution Mode** - Cambia automáticamente a `sonnet` para generación de código e implementación

185 220 

186Esto le da lo mejor de ambos mundos: el razonamiento superior de Opus para la planificación y la eficiencia de Sonnet para la ejecución.221Esto le da lo mejor de ambos mundos: el razonamiento superior de Opus para la planificación y la eficiencia de Sonnet para la ejecución.

187 222 

188La fase Opus en Plan Mode se ejecuta con la ventana de contexto estándar de 200K. La actualización automática de 1M descrita en [Contexto extendido](#extended-context) se aplica a la configuración del modelo `opus` y no se extiende a `opusplan`.223La fase Opus en Plan Mode utiliza la misma ventana de contexto que la configuración del modelo `opus`. En los niveles de suscripción donde Opus se [actualiza automáticamente a contexto de 1M](#extended-context), `opusplan` recibe la actualización en Plan Mode también. Para forzar contexto de 1M para ambas fases cuando no está en un nivel de actualización automática, establezca el modelo en `opusplan[1m]`.

224 

225Cuando [`availableModels`](#restrict-model-selection) excluye Opus, `opusplan` se mantiene en Sonnet en Plan Mode en lugar de cambiar. De manera similar, una sesión de Haiku que normalmente se actualizaría a Sonnet en Plan Mode se mantiene en Haiku cuando Sonnet se excluye.

226 

227Para 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, consulte la [herramienta advisor](/es/advisor).

228 

229<h3 id="fallback-model-chains">

230 Cadenas de modelos de respaldo

231</h3>

232 

233Cuando el modelo principal está sobrecargado, no disponible o devuelve otro error de servidor no reintentable, Claude Code puede cambiar a un modelo de respaldo en lugar de fallar la solicitud. Los errores de autenticación, facturación, límite de velocidad, tamaño de solicitud y transporte nunca desencadenan un cambio; esos siguen su reintento normal y manejo de errores.

234 

235Configure uno o más modelos de respaldo y Claude Code los intenta en orden, mostrando un aviso cuando cambia. El cambio dura solo para el turno actual, por lo que su próximo mensaje intenta el modelo principal primero nuevamente. Las cadenas están limitadas a tres modelos después de la eliminación de duplicados, y las entradas adicionales se ignoran.

236 

237Establezca una cadena para una sesión con la bandera `--fallback-model`, que acepta una lista separada por comas:

238 

239```bash theme={null}

240claude --fallback-model sonnet,haiku

241```

242 

243Para persistir una cadena entre sesiones, establezca `fallbackModel` en [configuración](/es/settings) como una matriz:

244 

245```json theme={null}

246{

247 "fallbackModel": ["claude-sonnet-4-6", "claude-haiku-4-5"]

248}

249```

250 

251La bandera `--fallback-model` tiene precedencia sobre la configuración `fallbackModel`. Cada elemento acepta un nombre de modelo o alias, y `"default"` se expande al modelo predeterminado.

252 

253Dos casos causan que un elemento se omita:

254 

255* **Modelo no disponible**: un modelo que no se puede alcanzar, como un modelo retirado fijado en la configuración, se omite y Claude Code continúa con el siguiente elemento.

256* **Fuera de la lista de permitidos**: un elemento no permitido por [`availableModels`](#restrict-model-selection) se descarta cuando se lee la cadena y nunca se intenta.

257 

258<h3 id="automatic-model-fallback">

259 Respaldo automático del modelo

260</h3>

261 

262Esta sección cubre el respaldo basado en contenido de Fable 5. Para respaldo basado en disponibilidad cuando un modelo está sobrecargado o no disponible, consulte [Cadenas de modelos de respaldo](#fallback-model-chains).

263 

264Fable 5 se ejecuta con clasificadores de seguridad para contenido de ciberseguridad y biología. Cuando un clasificador marca una solicitud, Claude Code vuelve a ejecutar esa solicitud en el modelo Opus predeterminado y muestra un aviso en la transcripción: Opus 4.8 en la API de Anthropic y despliegues de [puerta de enlace LLM](/es/llm-gateway), u Opus 4.7 en [Claude Platform en AWS](/es/claude-platform-on-aws).

265 

266La sesión continúa en ese modelo Opus. Para volver a Fable 5, ejecute `/model fable`.

267 

268<h4 id="check-what-triggered-fallback">

269 Verificar qué desencadenó el respaldo

270</h4>

271 

272El respaldo puede desencadenarse en la primera solicitud de una sesión, antes de que envíe algo inusual, porque la primera solicitud lleva contexto del espacio de trabajo como su contenido de CLAUDE.md y estado de git. Un repositorio que contiene material de seguridad o biología puede activar el clasificador solo en ese contexto.

273 

274Para verificar si las personalizaciones son el desencadenante, inicie una sesión con `claude --safe-mode`, que desactiva personalizaciones como CLAUDE.md, skills, servidores MCP y hooks. El estado de git y los nombres de directorios no son personalizaciones y aún se incluyen.

275 

276<h4 id="ask-before-switching">

277 Preguntar antes de cambiar

278</h4>

279 

280Para decidir qué sucede cada vez que se marca una solicitud, en lugar de cambiar automáticamente, ejecute `/config` y desactive "cambiar modelos cuando se marca un mensaje". Una solicitud marcada pausa la sesión con dos opciones: cambiar al modelo Opus o editar el indicador e intentar nuevamente en Fable 5.

281 

282Algunos casos se comportan de manera diferente:

283 

284* Si ambos modelos marcan la misma solicitud, puede editar el indicador e intentar nuevamente, o iniciar una nueva sesión.

285* En sesiones móviles de [Claude Code en la web](/es/claude-code-on-the-web), no se admite edición y reintento. Cambie de modelos o continúe la sesión desde un navegador de escritorio o la aplicación de escritorio.

286* En [modo no interactivo](/es/cli-reference#cli-flags) e integraciones de SDK que no pueden mostrar el indicador, una solicitud marcada termina el turno con un rechazo en su lugar.

287 

288<h4 id="enable-fallback-on-bedrock-vertex-ai-and-foundry">

289 Habilitar respaldo en Bedrock, Vertex AI y Foundry

290</h4>

291 

292En [Amazon Bedrock](/es/amazon-bedrock), [Google Vertex AI](/es/google-vertex-ai) y [Microsoft Foundry](/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:

293 

294* Claude Code debe reconocer el modelo actual como Fable 5: 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).

295* El destino de respaldo debe resolverse en un modelo Opus: el valor de `ANTHROPIC_DEFAULT_OPUS_MODEL` si se establece, de lo contrario una entrada Opus 4.8 en la lista de modelos del proveedor.

296 

297Si no se puede identificar ninguno de los modelos, Claude Code no cambia automáticamente. La solicitud marcada termina con un mensaje de rechazo, y puede cambiar de modelos con [`/model`](#setting-your-model) e intentar nuevamente. Para habilitar el respaldo automático en estos proveedores, establezca `ANTHROPIC_DEFAULT_FABLE_MODEL` en su ID de modelo Fable 5 y `ANTHROPIC_DEFAULT_OPUS_MODEL` en su ID de modelo Opus 4.8.

298 

299<h4 id="security-research-and-biology-workloads">

300 Cargas de trabajo de investigación de seguridad y biología

301</h4>

302 

303Las cargas de trabajo en seguridad ofensiva o biología, incluidas pruebas de penetración, ejercicios Capture the Flag (CTF) y bases de código adyacentes a la biología, desencadenan respaldo frecuentemente, a menudo en la primera solicitud. Para trabajo de biología sustancial, espere que casi todas las solicitudes se redirijan.

304 

305Este es el enrutamiento esperado para estos dominios, no una bandera de cuenta. Si su organización necesita capacidad de clase Fable para este trabajo, pregunte a su equipo de cuenta de Anthropic sobre programas de acceso de confianza.

189 306 

190<h3 id="adjust-effort-level">307<h3 id="adjust-effort-level">

191 Ajustar el nivel de esfuerzo308 Ajustar el nivel de esfuerzo


197 314 

198| Modelo | Niveles |315| Modelo | Niveles |

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

317| Fable 5 | `low`, `medium`, `high`, `xhigh`, `max` |

200| Opus 4.8 y Opus 4.7 | `low`, `medium`, `high`, `xhigh`, `max` |318| Opus 4.8 y Opus 4.7 | `low`, `medium`, `high`, `xhigh`, `max` |

201| Opus 4.6 y Sonnet 4.6 | `low`, `medium`, `high`, `max` |319| Opus 4.6 y Sonnet 4.6 | `low`, `medium`, `high`, `max` |

202 320 

203Si establece un nivel que el modelo activo no admite, Claude Code retrocede al nivel más alto admitido en o por debajo del que estableció. Por ejemplo, `xhigh` se ejecuta como `high` en Opus 4.6.321Si establece un nivel que el modelo activo no admite, Claude Code retrocede al nivel más alto admitido en o por debajo del que estableció. Por ejemplo, `xhigh` se ejecuta como `high` en Opus 4.6.

204 322 

205El esfuerzo predeterminado es `high` en Opus 4.8, Opus 4.6 y Sonnet 4.6, y `xhigh` en Opus 4.7.323El esfuerzo predeterminado es `high` en Fable 5, Opus 4.8, Opus 4.6 y Sonnet 4.6, y `xhigh` en Opus 4.7.

206 324 

207Cuando ejecuta Opus 4.8 u Opus 4.7 por primera vez, Claude Code aplica el esfuerzo predeterminado de ese modelo incluso si estableció anteriormente un nivel diferente para otro modelo: `high` en Opus 4.8 y `xhigh` en Opus 4.7. Ejecute `/effort` nuevamente para elegir un nivel diferente después de cambiar.325Cuando ejecuta Fable 5, Opus 4.8 u Opus 4.7 por primera vez, Claude Code aplica el esfuerzo predeterminado de ese modelo incluso si estableció anteriormente un nivel diferente para otro modelo: `high` en Fable 5 y Opus 4.8, y `xhigh` en Opus 4.7. Ejecute `/effort` nuevamente para elegir un nivel diferente después de cambiar.

208 326 

209`low`, `medium`, `high` y `xhigh` persisten entre sesiones. `max` proporciona el razonamiento más profundo sin restricción en el gasto de tokens y se aplica solo a la sesión actual, excepto cuando se establece a través de la variable de entorno `CLAUDE_CODE_EFFORT_LEVEL`.327`low`, `medium`, `high` y `xhigh` persisten entre sesiones. `max` proporciona el razonamiento más profundo sin restricción en el gasto de tokens y se aplica solo a la sesión actual, excepto cuando se establece a través de la variable de entorno `CLAUDE_CODE_EFFORT_LEVEL`.

210 328 


220| :---------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |338| :---------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

221| `low` | Reserve para tareas cortas, limitadas y sensibles a la latencia que no son sensibles a la inteligencia |339| `low` | Reserve para tareas cortas, limitadas y sensibles a la latencia que no son sensibles a la inteligencia |

222| `medium` | Reduce el uso de tokens para trabajo sensible a costos que puede intercambiar algo de inteligencia |340| `medium` | Reduce el uso de tokens para trabajo sensible a costos que puede intercambiar algo de inteligencia |

223| `high` | Equilibra el uso de tokens e inteligencia. Predeterminado en Opus 4.8, Opus 4.6 y Sonnet 4.6 |341| `high` | Equilibra el uso de tokens e inteligencia. Predeterminado en Fable 5, Opus 4.8, Opus 4.6 y Sonnet 4.6 |

224| `xhigh` | Razonamiento más profundo con gasto de tokens más alto. Predeterminado en Opus 4.7 |342| `xhigh` | Razonamiento más profundo con gasto de tokens más alto. Predeterminado en Opus 4.7 |

225| `max` | Puede mejorar el rendimiento en tareas exigentes pero puede mostrar rendimientos decrecientes y es propenso a pensar demasiado. Pruebe antes de adoptar ampliamente |343| `max` | Puede mejorar el rendimiento en tareas exigentes pero puede mostrar rendimientos decrecientes y es propenso a pensar demasiado. Pruebe antes de adoptar ampliamente |

226| `ultracode` | Una configuración de Claude Code que planifica un [flujo de trabajo dinámico](/es/workflows) para cada tarea sustancial con razonamiento `xhigh` por mensaje. Solo de sesión |344| `ultracode` | Una configuración de Claude Code que planifica un [flujo de trabajo dinámico](/es/workflows) para cada tarea sustancial con razonamiento `xhigh` por mensaje. Solo de sesión |


256 374 

257El razonamiento adaptativo hace que el pensamiento sea opcional en cada paso, por lo que Claude puede responder más rápido a indicaciones rutinarias y reservar un pensamiento más profundo para pasos que se benefician de él. Si desea que Claude piense más o menos a menudo de lo que produce el nivel actual, puede decirlo directamente en su indicación o en `CLAUDE.md`; el modelo responde a esa orientación dentro de su configuración de esfuerzo.375El razonamiento adaptativo hace que el pensamiento sea opcional en cada paso, por lo que Claude puede responder más rápido a indicaciones rutinarias y reservar un pensamiento más profundo para pasos que se benefician de él. Si desea que Claude piense más o menos a menudo de lo que produce el nivel actual, puede decirlo directamente en su indicación o en `CLAUDE.md`; el modelo responde a esa orientación dentro de su configuración de esfuerzo.

258 376 

259Opus 4.7 y posterior siempre utilizan razonamiento adaptativo. El modo de presupuesto de pensamiento fijo y `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` no se aplican a ellos.377Opus 4.7 y posterior siempre utilizan razonamiento adaptativo, al igual que Fable 5. El modo de presupuesto de pensamiento fijo y `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` no se aplican a ellos.

260 378 

261En Opus 4.6 y Sonnet 4.6, puede establecer `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1` para revertir al presupuesto de pensamiento fijo anterior controlado por `MAX_THINKING_TOKENS`. Consulte [variables de entorno](/es/env-vars).379En Opus 4.6 y Sonnet 4.6, puede establecer `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1` para revertir al presupuesto de pensamiento fijo anterior controlado por `MAX_THINKING_TOKENS`. Consulte [variables de entorno](/es/env-vars).

262 380 


267El pensamiento extendido es el razonamiento que Claude emite antes de responder. En modelos que admiten [razonamiento adaptativo](#adjust-effort-level), el nivel de esfuerzo es el control principal de cuánto pensamiento ocurre; la configuración a continuación activa o desactiva el pensamiento y controla cómo se muestra.385El pensamiento extendido es el razonamiento que Claude emite antes de responder. En modelos que admiten [razonamiento adaptativo](#adjust-effort-level), el nivel de esfuerzo es el control principal de cuánto pensamiento ocurre; la configuración a continuación activa o desactiva el pensamiento y controla cómo se muestra.

268 386 

269| Control | Cómo configurarlo |387| Control | Cómo configurarlo |

270| :----------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |388| :----------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

271| Alternar para la sesión actual | Presione `Option+T` en macOS o `Alt+T` en Windows y Linux |389| Alternar para la sesión actual | Presione `Option+T` en macOS o `Alt+T` en Windows y Linux |

272| Establecer el predeterminado global | Ejecute `/config` y alterne el modo de pensamiento. Se guarda como `alwaysThinkingEnabled` en `~/.claude/settings.json` |390| Establecer el predeterminado global | Ejecute `/config` y alterne el modo de pensamiento. Se guarda como `alwaysThinkingEnabled` en `~/.claude/settings.json` |

273| Desactivar independientemente del esfuerzo | Establezca [`MAX_THINKING_TOKENS=0`](/es/env-vars). Otros valores se aplican solo con un [presupuesto de pensamiento fijo](#adaptive-reasoning-and-fixed-thinking-budgets) |391| Desactivar independientemente del esfuerzo | Establezca [`MAX_THINKING_TOKENS=0`](/es/env-vars), que desactiva el pensamiento en la API de Anthropic excepto en Fable 5. En [proveedores de terceros](/es/third-party-integrations) esto 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) |

392 

393El pensamiento no se puede desactivar en Fable 5. El alternar de sesión, `alwaysThinkingEnabled` y `MAX_THINKING_TOKENS=0` no tienen efecto allí, y Fable 5 decide por paso cuánto pensar basado en el nivel de esfuerzo.

274 394 

275La salida de pensamiento se colapsa de forma predeterminada. Presione `Ctrl+O` para alternar el modo detallado y ver el razonamiento como texto gris en cursiva. Las sesiones interactivas en la API de Anthropic reciben bloques de pensamiento redactados de forma predeterminada, por lo que establezca `showThinkingSummaries: true` en [configuración](/es/settings) si desea que los resúmenes completos estén disponibles cuando se expandan. Se le cobra por todos los tokens de pensamiento generados, incluso cuando se colapsan o se redactan.395La salida de pensamiento se colapsa de forma predeterminada. Presione `Ctrl+O` para alternar el modo detallado y ver el razonamiento como texto gris en cursiva. Las sesiones interactivas en la API de Anthropic reciben bloques de pensamiento redactados de forma predeterminada, por lo que establezca `showThinkingSummaries: true` en [configuración](/es/settings) si desea que los resúmenes completos estén disponibles cuando se expandan. Se le cobra por todos los tokens de pensamiento generados, incluso cuando se colapsan o se redactan.

276 396 


278 Contexto extendido398 Contexto extendido

279</h3>399</h3>

280 400 

281Opus 4.6 y posterior, y Sonnet 4.6, admiten una [ventana de contexto de 1 millón de tokens](https://platform.claude.com/docs/es/build-with-claude/context-windows#1m-token-context-window) para sesiones largas con bases de código grandes.401Fable 5, Opus 4.6 y posterior, y Sonnet 4.6 admiten una [ventana de contexto de 1 millón de tokens](https://platform.claude.com/docs/es/build-with-claude/context-windows#1m-token-context-window) para sesiones largas con bases de código grandes.

282 402 

283La disponibilidad varía según el modelo y el plan. En los planes Max, Team y Enterprise, Opus se actualiza automáticamente a contexto de 1M sin configuración adicional. Esto se aplica tanto a los asientos de Team Standard como de Team Premium. Sonnet con contexto de 1M no es parte de la actualización automática y requiere [créditos de uso](https://support.claude.com/es/articles/12429409-extra-usage-for-paid-claude-plans) en todos los planes de suscripción, incluido Max.403La disponibilidad varía según el modelo y el plan. En los planes Max, Team y Enterprise, Opus se actualiza automáticamente a contexto de 1M sin configuración adicional. Esto se aplica tanto a los asientos de Team Standard como de Team Premium. En la API de Anthropic, Fable 5, Opus 4.8 y Opus 4.7 siempre se ejecutan con la ventana de 1M. Sonnet con contexto de 1M no es parte de la actualización automática y requiere [créditos de uso](https://support.claude.com/es/articles/12429409-extra-usage-for-paid-claude-plans) en todos los planes de suscripción, incluido Max.

284 404 

285| Plan | Opus con contexto de 1M | Sonnet con contexto de 1M |405| Plan | Opus con contexto de 1M | Sonnet con contexto de 1M |

286| ---------------------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- |406| ---------------------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- |


340 460 

341| Variable de entorno | Descripción |461| Variable de entorno | Descripción |

342| -------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |462| -------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

463| `ANTHROPIC_DEFAULT_FABLE_MODEL` | El modelo a utilizar para `fable`, y el ID de modelo que Claude Code reconoce como Fable 5 para [alternancia automática de modelo](#automatic-model-fallback) en proveedores de terceros |

343| `ANTHROPIC_DEFAULT_OPUS_MODEL` | El modelo a utilizar para `opus`, o para `opusplan` cuando Plan Mode está activo. |464| `ANTHROPIC_DEFAULT_OPUS_MODEL` | El modelo a utilizar para `opus`, o para `opusplan` cuando Plan Mode está activo. |

344| `ANTHROPIC_DEFAULT_SONNET_MODEL` | El modelo a utilizar para `sonnet`, o para `opusplan` cuando Plan Mode no está activo. |465| `ANTHROPIC_DEFAULT_SONNET_MODEL` | El modelo a utilizar para `sonnet`, o para `opusplan` cuando Plan Mode no está activo. |

345| `ANTHROPIC_DEFAULT_HAIKU_MODEL` | El modelo a utilizar para `haiku`, o [funcionalidad de fondo](/es/costs#background-token-usage) |466| `ANTHROPIC_DEFAULT_HAIKU_MODEL` | El modelo a utilizar para `haiku`, o [funcionalidad de fondo](/es/costs#background-token-usage) |


353 474 

354Al implementar Claude Code a través de [Bedrock](/es/amazon-bedrock), [Vertex AI](/es/google-vertex-ai), [Foundry](/es/microsoft-foundry), o [Claude Platform on AWS](/es/claude-platform-on-aws), fije versiones de modelo antes de implementar para usuarios.475Al implementar Claude Code a través de [Bedrock](/es/amazon-bedrock), [Vertex AI](/es/google-vertex-ai), [Foundry](/es/microsoft-foundry), o [Claude Platform on AWS](/es/claude-platform-on-aws), fije versiones de modelo antes de implementar para usuarios.

355 476 

356Sin fijar, Claude Code utiliza alias de modelo (`sonnet`, `opus`, `haiku`) que se resuelven a la versión más reciente. Cuando Anthropic lanza un nuevo modelo que aún no está habilitado en la cuenta de un usuario, los usuarios de Bedrock y Vertex AI ven un aviso y retroceden a la versión anterior para esa sesión, mientras que los usuarios de Foundry ven errores porque Foundry no tiene ninguna verificación de inicio equivalente.477Sin fijar, Claude Code utiliza alias de modelo como `fable`, `opus`, `sonnet` y `haiku` que se resuelven a un ID de modelo predeterminado integrado para cada proveedor. Ese predeterminado puede rezagarse con respecto a la versión más reciente de Anthropic, y el modelo al que apunta puede que aún no esté habilitado en la cuenta de un usuario. Cuando el predeterminado no está disponible, los usuarios de Bedrock y Vertex AI ven un aviso y retroceden a la versión anterior para esa sesión, mientras que los usuarios de Foundry ven errores porque Foundry no tiene ninguna verificación de inicio equivalente.

357 478 

358<Warning>479<Warning>

359 Establezca las tres variables de entorno de modelo en IDs de versión específicos como parte de su configuración inicial. Fijar le permite controlar cuándo sus usuarios se mueven a un nuevo modelo.480 Establezca las variables de entorno de modelo en IDs de versión específicos como parte de su configuración inicial. Fijar le permite controlar cuándo sus usuarios se mueven a un nuevo modelo.

360</Warning>481</Warning>

361 482 

362Utilice las siguientes variables de entorno con IDs de modelo específicos de versión para su proveedor:483Utilice las siguientes variables de entorno con IDs de modelo específicos de versión para su proveedor:


367| Vertex AI | `export ANTHROPIC_DEFAULT_OPUS_MODEL='claude-opus-4-8'` |488| Vertex AI | `export ANTHROPIC_DEFAULT_OPUS_MODEL='claude-opus-4-8'` |

368| Foundry | `export ANTHROPIC_DEFAULT_OPUS_MODEL='claude-opus-4-8'` |489| Foundry | `export ANTHROPIC_DEFAULT_OPUS_MODEL='claude-opus-4-8'` |

369 490 

370Aplique el mismo patrón para `ANTHROPIC_DEFAULT_SONNET_MODEL` y `ANTHROPIC_DEFAULT_HAIKU_MODEL`. Para IDs de modelo actuales y heredados en todos los proveedores, consulte [Descripción general de modelos](https://platform.claude.com/docs/en/about-claude/models/overview). Para actualizar usuarios a una nueva versión de modelo, actualice estas variables de entorno e implemente nuevamente.491Aplique el mismo patrón para `ANTHROPIC_DEFAULT_FABLE_MODEL`, `ANTHROPIC_DEFAULT_SONNET_MODEL` y `ANTHROPIC_DEFAULT_HAIKU_MODEL`. Para IDs de modelo actuales y heredados en todos los proveedores, consulte [Descripción general de modelos](https://platform.claude.com/docs/en/about-claude/models/overview). Para actualizar usuarios a una nueva versión de modelo, actualice estas variables de entorno e implemente nuevamente.

371 492 

372Para habilitar [contexto extendido](#extended-context) para un modelo fijo, añada `[1m]` al ID de modelo en `ANTHROPIC_DEFAULT_OPUS_MODEL` o `ANTHROPIC_DEFAULT_SONNET_MODEL`:493Para habilitar [contexto extendido](#extended-context) para un modelo fijo, añada `[1m]` al ID de modelo en `ANTHROPIC_DEFAULT_OPUS_MODEL` o `ANTHROPIC_DEFAULT_SONNET_MODEL`:

373 494 


375export ANTHROPIC_DEFAULT_OPUS_MODEL='claude-opus-4-8[1m]'496export ANTHROPIC_DEFAULT_OPUS_MODEL='claude-opus-4-8[1m]'

376```497```

377 498 

378El sufijo `[1m]` aplica la ventana de contexto de 1M a todo el uso de los alias `opus` y `sonnet`. No extiende la fase Opus de modo de plan de `opusplan`, que [permanece limitada a 200K](#opusplan-model-setting).499El sufijo `[1m]` aplica la ventana de contexto de 1M a todo el uso de los alias `opus` y `sonnet`, incluida la fase Opus de modo de plan de [`opusplan`](#opusplan-model-setting).

379 500 

380* Claude Code elimina el sufijo antes de enviar el ID de modelo a su proveedor.501* Claude Code elimina el sufijo antes de enviar el ID de modelo a su proveedor.

381* Solo añada `[1m]` cuando el modelo subyacente [admita contexto de 1M](https://platform.claude.com/docs/en/build-with-claude/context-windows#1m-token-context-window).502* Solo añada `[1m]` cuando el modelo subyacente [admita contexto de 1M](https://platform.claude.com/docs/en/build-with-claude/context-windows#1m-token-context-window).

382* El sufijo se lee por variable, no por modelo. En Bedrock, Vertex y Foundry, un ID de modelo sin `[1m]` en una variable utiliza contexto de 200K incluso si otra variable establece el mismo modelo con el sufijo.503* El sufijo se lee por variable, no por modelo. En Bedrock, Vertex y Foundry, un ID de modelo sin `[1m]` en una variable utiliza contexto de 200K incluso si otra variable establece el mismo modelo con el sufijo.

383 504 

384<Note>505<Note>

385 La lista de permitidos `settings.availableModels` aún se aplica cuando se utilizan proveedores de terceros. El filtrado coincide con el alias de modelo (`opus`, `sonnet`, `haiku`), no con el ID de modelo específico del proveedor.506 La lista de permitidos `settings.availableModels` aún se aplica cuando se utilizan proveedores de terceros. El filtrado coincide con el alias de modelo como `opus`, el prefijo de versión como `claude-opus-4-8`, o el ID de modelo completo. Cualquier sufijo `[1m]` se elimina tanto de la entrada de la lista de permitidos como del modelo solicitado antes de coincidir, por lo que una entrada de `claude-opus-4-8` permite tanto las filas Opus estándar como las de contexto de 1M. Los prefijos específicos del proveedor como `us.anthropic.` no se eliminan: enumere la misma forma en `availableModels` que muestra el selector, o asígnela a través de [`modelOverrides`](#override-model-ids-per-version).

386</Note>507</Note>

387 508 

388<h3 id="customize-pinned-model-display-and-capabilities">509<h3 id="customize-pinned-model-display-and-capabilities">


399| `ANTHROPIC_DEFAULT_OPUS_MODEL_DESCRIPTION` | Descripción de visualización para el modelo Opus fijo en el selector `/model`. Por defecto a `Custom Opus model` cuando no está configurado |520| `ANTHROPIC_DEFAULT_OPUS_MODEL_DESCRIPTION` | Descripción de visualización para el modelo Opus fijo en el selector `/model`. Por defecto a `Custom Opus model` cuando no está configurado |

400| `ANTHROPIC_DEFAULT_OPUS_MODEL_SUPPORTED_CAPABILITIES` | Lista separada por comas de capacidades que admite el modelo Opus fijo |521| `ANTHROPIC_DEFAULT_OPUS_MODEL_SUPPORTED_CAPABILITIES` | Lista separada por comas de capacidades que admite el modelo Opus fijo |

401 522 

402Los mismos sufijos `_NAME`, `_DESCRIPTION` y `_SUPPORTED_CAPABILITIES` están disponibles para `ANTHROPIC_DEFAULT_SONNET_MODEL`, `ANTHROPIC_DEFAULT_HAIKU_MODEL` y `ANTHROPIC_CUSTOM_MODEL_OPTION`.523Los mismos sufijos `_NAME`, `_DESCRIPTION` y `_SUPPORTED_CAPABILITIES` están disponibles para `ANTHROPIC_DEFAULT_SONNET_MODEL`, `ANTHROPIC_DEFAULT_HAIKU_MODEL`, `ANTHROPIC_DEFAULT_FABLE_MODEL` y `ANTHROPIC_CUSTOM_MODEL_OPTION`.

403 524 

404Claude Code habilita características como [niveles de esfuerzo](#adjust-effort-level) y [pensamiento extendido](#extended-thinking) haciendo coincidir el ID de modelo con patrones conocidos. Los IDs específicos del proveedor como ARNs de Bedrock o nombres de implementación personalizados a menudo no coinciden con estos patrones, dejando las características compatibles deshabilitadas. Establezca `_SUPPORTED_CAPABILITIES` para indicar a Claude Code qué características admite realmente el modelo:525Claude Code habilita características como [niveles de esfuerzo](#adjust-effort-level) y [pensamiento extendido](#extended-thinking) haciendo coincidir el ID de modelo con patrones conocidos. Los IDs específicos del proveedor como ARNs de Bedrock o nombres de implementación personalizados a menudo no coinciden con estos patrones, dejando las características compatibles deshabilitadas. Establezca `_SUPPORTED_CAPABILITIES` para indicar a Claude Code qué características admite realmente el modelo:

405 526 


463| `DISABLE_PROMPT_CACHING_HAIKU` | Establezca en `1` para desactivar el almacenamiento en caché de indicaciones solo para modelos Haiku |584| `DISABLE_PROMPT_CACHING_HAIKU` | Establezca en `1` para desactivar el almacenamiento en caché de indicaciones solo para modelos Haiku |

464| `DISABLE_PROMPT_CACHING_SONNET` | Establezca en `1` para desactivar el almacenamiento en caché de indicaciones solo para modelos Sonnet |585| `DISABLE_PROMPT_CACHING_SONNET` | Establezca en `1` para desactivar el almacenamiento en caché de indicaciones solo para modelos Sonnet |

465| `DISABLE_PROMPT_CACHING_OPUS` | Establezca en `1` para desactivar el almacenamiento en caché de indicaciones solo para modelos Opus |586| `DISABLE_PROMPT_CACHING_OPUS` | Establezca en `1` para desactivar el almacenamiento en caché de indicaciones solo para modelos Opus |

587| `DISABLE_PROMPT_CACHING_FABLE` | Establezca en `1` para desactivar el almacenamiento en caché de indicaciones solo para modelos Fable |

466 588 

467Para cambiar el TTL de caché u obtener más información sobre qué desencadena un error de caché, consulte [Cómo Claude Code utiliza el almacenamiento en caché de indicaciones](/es/prompt-caching).589Para cambiar el TTL de caché u obtener más información sobre qué desencadena un error de caché, consulte [Cómo Claude Code utiliza el almacenamiento en caché de indicaciones](/es/prompt-caching).

Details

221**`claude_code.tool`**221**`claude_code.tool`**

222 222 

223| Atributo | Descripción | Controlado Por |223| Atributo | Descripción | Controlado Por |

224| ----------------- | --------------------------------------------------------------------------------------------------------------------------- | ----------------------- |224| --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------- |

225| `tool_name` | Nombre de la herramienta | |225| `tool_name` | Nombre de la herramienta | |

226| `duration_ms` | Duración de pared incluyendo espera de permiso y ejecución | |226| `duration_ms` | Duración de pared incluyendo espera de permiso y ejecución | |

227| `result_tokens` | Tamaño aproximado de token del resultado de la herramienta | |227| `result_tokens` | Tamaño aproximado de token del resultado de la herramienta | |

228| `agent_id` | Identificador del subagente o compañero que ejecutó la herramienta. Ausente en la sesión principal | |228| `agent_id` | Identificador del subagente o compañero que ejecutó la herramienta. Ausente en la sesión principal | |

229| `parent_agent_id` | Identificador del agente que generó este. Ausente para la sesión principal y para agentes generados directamente desde ella | |229| `parent_agent_id` | Identificador del agente que generó este. Ausente para la sesión principal y para agentes generados directamente desde ella | |

230| `tool_use_id` | El ID del bloque `tool_use` del modelo para esta llamada. Coincide con el `tool_use_id` en los eventos [tool\_result](#tool-result-event) y [tool\_decision](#tool-decision-event) y en cargas útiles de hooks, para que puedas unir el span a esos registros | |

231| `gen_ai.tool.call.id` | Mismo valor que `tool_use_id`. Convención semántica de GenAI de OpenTelemetry | |

230| `file_path` | Ruta de archivo de destino para herramientas Read, Edit, y Write | `OTEL_LOG_TOOL_DETAILS` |232| `file_path` | Ruta de archivo de destino para herramientas Read, Edit, y Write | `OTEL_LOG_TOOL_DETAILS` |

231| `full_command` | Cadena de comando para la herramienta Bash | `OTEL_LOG_TOOL_DETAILS` |233| `full_command` | Cadena de comando para la herramienta Bash | `OTEL_LOG_TOOL_DETAILS` |

232| `skill_name` | Nombre de habilidad para la herramienta Skill | `OTEL_LOG_TOOL_DETAILS` |234| `skill_name` | Nombre de habilidad para la herramienta Skill | `OTEL_LOG_TOOL_DETAILS` |


245**`claude_code.tool.execution`**247**`claude_code.tool.execution`**

246 248 

247| Atributo | Descripción | Controlado Por |249| Atributo | Descripción | Controlado Por |

248| ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------- |250| --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------- |

249| `duration_ms` | Tiempo dedicado a ejecutar el cuerpo de la herramienta | |251| `duration_ms` | Tiempo dedicado a ejecutar el cuerpo de la herramienta | |

252| `tool_use_id` | Mismo valor que en el span padre `claude_code.tool` | |

253| `gen_ai.tool.call.id` | Mismo valor que `tool_use_id`. Convención semántica de GenAI de OpenTelemetry | |

250| `success` | `true` o `false` | |254| `success` | `true` o `false` | |

251| `error` | Cadena de categoría de error cuando la ejecución falló, como `Error:ENOENT` o `ShellError`. Contiene el mensaje de error completo en su lugar cuando la puerta está establecida | `OTEL_LOG_TOOL_DETAILS` |255| `error` | Cadena de categoría de error cuando la ejecución falló, como `Error:ENOENT` o `ShellError`. Contiene el mensaje de error completo en su lugar cuando la puerta está establecida | `OTEL_LOG_TOOL_DETAILS` |

252 256 


423Todas las métricas y eventos comparten estos atributos estándar:427Todas las métricas y eventos comparten estos atributos estándar:

424 428 

425| Atributo | Descripción | Controlado Por |429| Atributo | Descripción | Controlado Por |

426| ------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------- |430| ------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------- |

427| `session.id` | Identificador único de sesión | `OTEL_METRICS_INCLUDE_SESSION_ID` (predeterminado: true) |431| `session.id` | Identificador único de sesión | `OTEL_METRICS_INCLUDE_SESSION_ID` (predeterminado: true) |

428| `app.version` | Versión actual de Claude Code | `OTEL_METRICS_INCLUDE_VERSION` (predeterminado: false) |432| `app.version` | Versión actual de Claude Code | `OTEL_METRICS_INCLUDE_VERSION` (predeterminado: false) |

429| `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) |433| `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) |

430| `organization.id` | UUID de organización (cuando está autenticado) | Siempre incluido cuando está disponible |434| `organization.id` | UUID de organización (cuando está autenticado) | Siempre incluido cuando está disponible |

431| `user.account_uuid` | UUID de cuenta (cuando está autenticado) | `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` (predeterminado: true) |435| `user.account_uuid` | UUID de cuenta (cuando está autenticado) | `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` (predeterminado: true) |

432| `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) |436| `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) |

433| `user.id` | Identificador anónimo de dispositivo/instalación, generado por instalación de Claude Code | Siempre incluido |437| `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 |

434| `user.email` | Dirección de correo electrónico del usuario (cuando está autenticado a través de OAuth) | Siempre incluido cuando está disponible |438| `user.email` | Dirección de correo electrónico del usuario (cuando está autenticado a través de OAuth) | Siempre incluido cuando está disponible |

435| `terminal.type` | Tipo de terminal, como `iTerm.app`, `vscode`, `cursor`, o `tmux` | Siempre incluido cuando se detecta |439| `terminal.type` | Tipo de terminal, como `iTerm.app`, `vscode`, `cursor`, o `tmux` | Siempre incluido cuando se detecta |

436| Claves de `OTEL_RESOURCE_ATTRIBUTES` | Atributos personalizados que estableces, como `department` o `team.id`. Consulta [Soporte de organización multiequipo](#multi-team-organization-support) | `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES` (predeterminado: true) |440| 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) |

437 441 

438Los eventos incluyen adicionalmente los siguientes atributos. Estos nunca se adjuntan a las métricas porque causarían cardinalidad ilimitada:442Los eventos incluyen adicionalmente los siguientes atributos. Estos nunca se adjuntan a las métricas porque causarían cardinalidad ilimitada:

439 443 

440* `prompt.id`: UUID correlacionando un mensaje del usuario con todos los eventos posteriores hasta el siguiente mensaje. Consulta [Atributos de correlación de eventos](#event-correlation-attributes).444* `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).

441* `workspace.host_paths`: directorios de espacio de trabajo del host seleccionados en la aplicación de escritorio, como una matriz de cadenas445* `workspace.host_paths`: directorios de espacio de trabajo del host seleccionados en la aplicación de escritorio, como una matriz de cadenas

442 446 

443<h3 id="metrics">447<h3 id="metrics">


484 488 

485* Todos los [atributos estándar](#standard-attributes)489* Todos los [atributos estándar](#standard-attributes)

486* `type`: (`"added"`, `"removed"`)490* `type`: (`"added"`, `"removed"`)

491* `model`: Identificador de modelo para el modelo que realizó el cambio (por ejemplo, "claude-sonnet-4-6"). Requiere Claude Code v2.1.172 o posterior

487 492 

488<h4 id="pull-request-counter">493<h4 id="pull-request-counter">

489 Contador de solicitud de extracción494 Contador de solicitud de extracción


538* `model`: Identificador de modelo (por ejemplo, "claude-sonnet-4-6")543* `model`: Identificador de modelo (por ejemplo, "claude-sonnet-4-6")

539* `query_source`: Categoría del subsistema que emitió la solicitud. Uno de `"main"`, `"subagent"`, o `"auxiliary"`544* `query_source`: Categoría del subsistema que emitió la solicitud. Uno de `"main"`, `"subagent"`, o `"auxiliary"`

540* `speed`: `"fast"` cuando la solicitud utilizó modo rápido. Ausente de otra manera545* `speed`: `"fast"` cuando la solicitud utilizó modo rápido. Ausente de otra manera

541* `effort`: [Nivel de esfuerzo](/es/model-config#adjust-effort-level) aplicado a la solicitud. Consulta [Contador de costo](#cost-counter) para detalles.546* `effort`: [Nivel de esfuerzo](/es/model-config#adjust-effort-level) aplicado a la solicitud. Consulte [Contador de costo](#cost-counter) para detalles.

542* `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. Consulta [Contador de costo](#cost-counter) para definiciones y comportamiento de redacción.547* `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.

543 548 

544<h4 id="code-edit-tool-decision-counter">549<h4 id="code-edit-tool-decision-counter">

545 Contador de decisión de herramienta de edición de código550 Contador de decisión de herramienta de edición de código


552* Todos los [atributos estándar](#standard-attributes)557* Todos los [atributos estándar](#standard-attributes)

553* `tool_name`: Nombre de la herramienta (`"Edit"`, `"Write"`, `"NotebookEdit"`)558* `tool_name`: Nombre de la herramienta (`"Edit"`, `"Write"`, `"NotebookEdit"`)

554* `decision`: Decisión del usuario (`"accept"`, `"reject"`)559* `decision`: Decisión del usuario (`"accept"`, `"reject"`)

555* `source`: Fuente de decisión. Uno de `"config"`, `"hook"`, `"user_permanent"`, `"user_temporary"`, `"user_abort"`, o `"user_reject"`. Consulta el [Evento de decisión de herramienta](#tool-decision-event) para saber qué significa cada valor.560* `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.

556* `language`: Lenguaje de programación del archivo editado, como `"TypeScript"`, `"Python"`, `"JavaScript"`, o `"Markdown"`. Devuelve `"unknown"` para extensiones de archivo no reconocidas.561* `language`: Lenguaje de programación del archivo editado, como `"TypeScript"`, `"Python"`, `"JavaScript"`, o `"Markdown"`. Devuelve `"unknown"` para extensiones de archivo no reconocidas.

557 562 

558<h4 id="active-time-counter">563<h4 id="active-time-counter">


576 Atributos de correlación de eventos581 Atributos de correlación de eventos

577</h4>582</h4>

578 583 

579Cuando un usuario envía un mensaje, Claude Code puede hacer múltiples llamadas de API y ejecutar varias herramientas. El atributo `prompt.id` te permite vincular todos esos eventos al único mensaje que los desencadenó.584Cuando un usuario envía un mensaje, Claude Code puede hacer múltiples llamadas de API y ejecutar varias herramientas. El atributo `prompt.id` le permite vincular todos esos eventos al único mensaje que los desencadenó.

580 585 

581| Atributo | Descripción |586| Atributo | Descripción |

582| ----------- | --------------------------------------------------------------------------------------------------------------- |587| ----------- | --------------------------------------------------------------------------------------------------------------- |

583| `prompt.id` | Identificador UUID v4 que vincula todos los eventos producidos mientras se procesa un único mensaje del usuario |588| `prompt.id` | Identificador UUID v4 que vincula todos los eventos producidos mientras se procesa un único mensaje del usuario |

584 589 

585Para rastrear toda la actividad desencadenada por un único mensaje, filtra tus 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.590Para 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.

586 591 

587<Note>592<Note>

588 `prompt.id` se excluye intencionalmente de las métricas porque cada mensaje genera un ID único, lo que crearía un número siempre creciente de series temporales. Úsalo solo para análisis a nivel de evento y auditoría.593 `prompt.id` se excluye intencionalmente de las métricas porque cada mensaje genera un ID único, lo que crearía un número siempre creciente de series temporales. Úselo solo para análisis a nivel de evento y auditoría.

589</Note>594</Note>

590 595 

591<h4 id="user-prompt-event">596<h4 id="user-prompt-event">


611 Evento de resultado de herramienta616 Evento de resultado de herramienta

612</h4>617</h4>

613 618 

614Se registra cuando una herramienta completa la ejecución. No se emite si la llamada de herramienta fue rechazada; consulta el [Evento de decisión de herramienta](#tool-decision-event) para rechazos.619Se 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.

615 620 

616**Nombre del Evento**: `claude_code.tool_result`621**Nombre del Evento**: `claude_code.tool_result`

617 622 


628* `error_type`: Cadena de categoría de error cuando la herramienta falló, como `"Error:ENOENT"` o `"ShellError"`633* `error_type`: Cadena de categoría de error cuando la herramienta falló, como `"Error:ENOENT"` o `"ShellError"`

629* `error` (cuando `OTEL_LOG_TOOL_DETAILS=1`): Mensaje de error completo cuando la herramienta falló634* `error` (cuando `OTEL_LOG_TOOL_DETAILS=1`): Mensaje de error completo cuando la herramienta falló

630* `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 herramienta)635* `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 herramienta)

631* `decision_source`: Fuente de decisión de permiso. Uno de `"config"`, `"hook"`, `"user_permanent"`, o `"user_temporary"`. Consulta 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.636* `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.

632* `tool_input_size_bytes`: Tamaño de la entrada de herramienta serializada en JSON en bytes637* `tool_input_size_bytes`: Tamaño de la entrada de herramienta serializada en JSON en bytes

633* `tool_result_size_bytes`: Tamaño del resultado de la herramienta en bytes638* `tool_result_size_bytes`: Tamaño del resultado de la herramienta en bytes

634* `mcp_server_scope`: Identificador de alcance del servidor MCP (para herramientas MCP)639* `mcp_server_scope`: Identificador de alcance del servidor MCP (para herramientas MCP)


665* `speed`: `"fast"` o `"normal"`, indicando si el modo rápido estaba activo670* `speed`: `"fast"` o `"normal"`, indicando si el modo rápido estaba activo

666* `query_source`: Subsistema que emitió la solicitud, como `"repl_main_thread"`, `"compact"`, o un nombre de subagente671* `query_source`: Subsistema que emitió la solicitud, como `"repl_main_thread"`, `"compact"`, o un nombre de subagente

667* `effort`: [Nivel de esfuerzo](/es/model-config#adjust-effort-level) aplicado a la solicitud: `"low"`, `"medium"`, `"high"`, `"xhigh"`, o `"max"`. Ausente cuando el modelo no admite esfuerzo.672* `effort`: [Nivel de esfuerzo](/es/model-config#adjust-effort-level) aplicado a la solicitud: `"low"`, `"medium"`, `"high"`, `"xhigh"`, o `"max"`. Ausente cuando el modelo no admite esfuerzo.

668* `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. Consulta [Contador de costo](#cost-counter) para definiciones y comportamiento de redacción.673* `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.

669 674 

670<h4 id="api-error-event">675<h4 id="api-error-event">

671 Evento de error de API676 Evento de error de API


690* `speed`: `"fast"` o `"normal"`, indicando si el modo rápido estaba activo695* `speed`: `"fast"` o `"normal"`, indicando si el modo rápido estaba activo

691* `query_source`: Subsistema que emitió la solicitud, como `"repl_main_thread"`, `"compact"`, o un nombre de subagente696* `query_source`: Subsistema que emitió la solicitud, como `"repl_main_thread"`, `"compact"`, o un nombre de subagente

692* `effort`: [Nivel de esfuerzo](/es/model-config#adjust-effort-level) aplicado a la solicitud. Ausente cuando el modelo no admite esfuerzo.697* `effort`: [Nivel de esfuerzo](/es/model-config#adjust-effort-level) aplicado a la solicitud. Ausente cuando el modelo no admite esfuerzo.

693* `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. Consulta [Contador de costo](#cost-counter) para definiciones y comportamiento de redacción.698* `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.

699 

700<h4 id="api-refusal-event">

701 Evento de rechazo de API

702</h4>

703 

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

705 

706**Nombre del Evento**: `claude_code.api_refusal`

707 

708**Atributos**:

709 

710* Todos los [atributos estándar](#standard-attributes)

711* `event.name`: `"api_refusal"`

712* `event.timestamp`: Marca de tiempo ISO 8601

713* `event.sequence`: Contador monotónicamente creciente para ordenar eventos dentro de una sesión

714* `model`: Identificador de modelo de la solicitud

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

694 716 

695<h4 id="api-request-body-event">717<h4 id="api-request-body-event">

696 Evento de cuerpo de solicitud de API718 Evento de cuerpo de solicitud de API


759 * `"user_temporary"`: Se emite cuando el usuario eligió "Sí" en un mensaje de permiso para una aprobación única, o eligió una de las opciones "... durante esta 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.781 * `"user_temporary"`: Se emite cuando el usuario eligió "Sí" en un mensaje de permiso para una aprobación única, o eligió una de las opciones "... durante esta 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.

760 * `"user_abort"`: Se emite cuando el usuario descartó el mensaje de permiso sin responder. Se trata como un rechazo.782 * `"user_abort"`: Se emite cuando el usuario descartó el mensaje de permiso sin responder. Se trata como un rechazo.

761 * `"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.783 * `"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.

762* `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`. Usa este atributo para ver qué comando fue rechazado cuando `decision` es `"reject"`.784* `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"`.

763 * Para herramienta Bash: incluye `bash_command`, `full_command`, `timeout`, `description`, `dangerouslyDisableSandbox`785 * Para herramienta Bash: incluye `bash_command`, `full_command`, `timeout`, `description`, `dangerouslyDisableSandbox`

764 * Para herramienta WorkspaceBash: incluye `bash_command`, `full_command`, `timeout`786 * Para herramienta WorkspaceBash: incluye `bash_command`, `full_command`, `timeout`

765 * Para herramientas MCP: incluye `mcp_server_name`, `mcp_tool_name`787 * Para herramientas MCP: incluye `mcp_server_name`, `mcp_tool_name`


823* `server_scope`: Alcance en el que está configurado el servidor, como `"user"`, `"project"`, o `"local"`845* `server_scope`: Alcance en el que está configurado el servidor, como `"user"`, `"project"`, o `"local"`

824* `duration_ms`: Duración del intento de conexión en milisegundos846* `duration_ms`: Duración del intento de conexión en milisegundos

825* `error_code`: Código de error cuando la conexión falló847* `error_code`: Código de error cuando la conexión falló

848* `is_plugin`: `true` cuando el servidor es proporcionado por un plugin, `false` de otra manera

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

850* `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 Anthropic

826* `server_name` (cuando `OTEL_LOG_TOOL_DETAILS=1`): Nombre del servidor configurado851* `server_name` (cuando `OTEL_LOG_TOOL_DETAILS=1`): Nombre del servidor configurado

827* `error` (cuando `OTEL_LOG_TOOL_DETAILS=1`): Mensaje de error completo cuando la conexión falló852* `error` (cuando `OTEL_LOG_TOOL_DETAILS=1`): Mensaje de error completo cuando la conexión falló

828 853 


867 Evento de plugin cargado892 Evento de plugin cargado

868</h4>893</h4>

869 894 

870Se registra una vez por plugin habilitado al inicio de la sesión. Usa este evento para inventariar qué plugins están activos en tu flota, como complemento a `plugin_installed` que registra la acción de instalación en sí.895Se 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í.

871 896 

872**Nombre del Evento**: `claude_code.plugin_loaded`897**Nombre del Evento**: `claude_code.plugin_loaded`

873 898 


882* `plugin.version`: versión del manifiesto del plugin. Se incluye solo cuando el nombre no está redactado y el manifiesto declara una versión907* `plugin.version`: versión del manifiesto del plugin. Se incluye solo cuando el nombre no está redactado y el manifiesto declara una versión

883* `plugin.scope`: categoría de procedencia para el plugin: `"official"`, `"org"`, `"user-local"`, o `"default-bundle"`908* `plugin.scope`: categoría de procedencia para el plugin: `"official"`, `"org"`, `"user-local"`, o `"default-bundle"`

884* `enabled_via`: cómo el plugin llegó a estar habilitado: `"default-enable"`, `"org-policy"`, `"seed-mount"`, o `"user-install"`909* `enabled_via`: cómo el plugin llegó a estar habilitado: `"default-enable"`, `"org-policy"`, `"seed-mount"`, o `"user-install"`

885* `plugin_id_hash`: hash determinista del nombre del plugin y mercado, enviado solo a tu exportador configurado. Te permite contar cuántos plugins de terceros distintos se cargan en tu flota sin registrar sus nombres910* `plugin_id_hash`: hash determinista del nombre del plugin y mercado, enviado solo a su exportador configurado. Le permite contar cuántos plugins de terceros distintos se cargan en su flota sin registrar sus nombres

886* `has_hooks`: si el plugin contribuye hooks911* `has_hooks`: si el plugin contribuye hooks

887* `has_mcp`: si el plugin contribuye servidores MCP912* `has_mcp`: si el plugin contribuye servidores MCP

913* `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 posterior

888* `skill_path_count`: número de directorios de habilidades que declara el plugin914* `skill_path_count`: número de directorios de habilidades que declara el plugin

889* `command_path_count`: número de directorios de comandos que declara el plugin915* `command_path_count`: número de directorios de comandos que declara el plugin

890* `agent_path_count`: número de directorios de agentes que declara el plugin916* `agent_path_count`: número de directorios de agentes que declara el plugin

917* `safe_mode`: `"true"` cuando la sesión se inició con [`--safe-mode`](/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 posterior

891 918 

892<h4 id="skill-activated-event">919<h4 id="skill-activated-event">

893 Evento de habilidad activada920 Evento de habilidad activada

894</h4>921</h4>

895 922 

896Se registra cuando se invoca una habilidad, ya sea que Claude la llame a través de la herramienta Skill o que la ejecutes como un comando `/`.923Se 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 `/`.

897 924 

898**Nombre del Evento**: `claude_code.skill_activated`925**Nombre del Evento**: `claude_code.skill_activated`

899 926 


906* `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`933* `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`

907* `invocation_trigger`: Cómo se activó la habilidad (`"user-slash"`, `"claude-proactive"`, o `"nested-skill"`)934* `invocation_trigger`: Cómo se activó la habilidad (`"user-slash"`, `"claude-proactive"`, o `"nested-skill"`)

908* `skill.source`: De dónde se cargó la habilidad (por ejemplo, `"bundled"`, `"userSettings"`, `"projectSettings"`, `"plugin"`)935* `skill.source`: De dónde se cargó la habilidad (por ejemplo, `"bundled"`, `"userSettings"`, `"projectSettings"`, `"plugin"`)

936* `skill.kind`: `"workflow"` cuando la habilidad es una habilidad de flujo de trabajo. Ausente de otra manera

909* `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 plugin937* `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

910* `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 plugin938* `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 plugin

911 939 


951 Evento de hook registrado979 Evento de hook registrado

952</h4>980</h4>

953 981 

954Se registra una vez por hook configurado al inicio de la sesión. Usa este evento para inventariar qué hooks están activos en tu flota, como complemento a los eventos `hook_execution_start` y `hook_execution_complete` por ejecución.982Se 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.

955 983 

956**Nombre del Evento**: `claude_code.hook_registered`984**Nombre del Evento**: `claude_code.hook_registered`

957 985 


964* `hook_event`: tipo de evento de hook, como `"PreToolUse"` o `"PostToolUse"`992* `hook_event`: tipo de evento de hook, como `"PreToolUse"` o `"PostToolUse"`

965* `hook_type`: tipo de implementación de hook: `"command"`, `"prompt"`, `"mcp_tool"`, `"http"`, o `"agent"`993* `hook_type`: tipo de implementación de hook: `"command"`, `"prompt"`, `"mcp_tool"`, `"http"`, o `"agent"`

966* `hook_source`: dónde se define el hook: `"userSettings"`, `"projectSettings"`, `"localSettings"`, `"flagSettings"`, `"policySettings"`, o `"pluginHook"`994* `hook_source`: dónde se define el hook: `"userSettings"`, `"projectSettings"`, `"localSettings"`, `"flagSettings"`, `"policySettings"`, o `"pluginHook"`

995* `safe_mode`: `"true"` cuando la sesión se inició con [`--safe-mode`](/es/cli-reference), `"false"` de otra manera. Requiere Claude Code v2.1.169 o posterior

967* `hook_matcher` (cuando `OTEL_LOG_TOOL_DETAILS=1`): la cadena de coincidencia de la configuración del hook, cuando se establece una996* `hook_matcher` (cuando `OTEL_LOG_TOOL_DETAILS=1`): la cadena de coincidencia de la configuración del hook, cuando se establece una

968* `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`997* `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`

969* `plugin_id_hash` (cuando `hook_source` es `"pluginHook"`): hash determinista del nombre del plugin y mercado, enviado solo a tu exportador configurado. Te permite contar plugins contribuyentes distintos sin registrar sus nombres998* `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

970 999 

971<h4 id="hook-execution-start-event">1000<h4 id="hook-execution-start-event">

972 Evento de inicio de ejecución de hook1001 Evento de inicio de ejecución de hook


987* `num_hooks`: Número de comandos de hook coincidentes1016* `num_hooks`: Número de comandos de hook coincidentes

988* `managed_only`: `"true"` cuando solo se permiten hooks de política administrada1017* `managed_only`: `"true"` cuando solo se permiten hooks de política administrada

989* `hook_source`: `"policySettings"` o `"merged"`1018* `hook_source`: `"policySettings"` o `"merged"`

1019* `safe_mode`: `"true"` cuando la sesión se inició con [`--safe-mode`](/es/cli-reference), `"false"` de otra manera. Requiere Claude Code v2.1.169 o posterior

990* `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 habilitados1020* `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 habilitados

991 1021 

992<h4 id="hook-execution-complete-event">1022<h4 id="hook-execution-complete-event">


1013* `total_duration_ms`: Duración de pared de todos los hooks coincidentes1043* `total_duration_ms`: Duración de pared de todos los hooks coincidentes

1014* `managed_only`: `"true"` cuando solo se permiten hooks de política administrada1044* `managed_only`: `"true"` cuando solo se permiten hooks de política administrada

1015* `hook_source`: `"policySettings"` o `"merged"`1045* `hook_source`: `"policySettings"` o `"merged"`

1046* `safe_mode`: `"true"` cuando la sesión se inició con [`--safe-mode`](/es/cli-reference), `"false"` de otra manera. Requiere Claude Code v2.1.169 o posterior

1016* `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 habilitados1047* `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 habilitados

1017 1048 

1018<h4 id="hook-plugin-metrics-event">1049<h4 id="hook-plugin-metrics-event">

1019 Evento de métricas de plugin de hook1050 Evento de métricas de plugin de hook

1020</h4>1051</h4>

1021 1052 

1022Se 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. Usa este evento para monitorear el comportamiento del plugin como tasas de búsqueda, costos y duraciones desde tu propia pila de observabilidad.1053Se 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.

1023 1054 

1024**Nombre del Evento**: `claude_code.hook_plugin_metrics`1055**Nombre del Evento**: `claude_code.hook_plugin_metrics`

1025 1056 


1059 Evento de encuesta de retroalimentación1090 Evento de encuesta de retroalimentación

1060</h4>1091</h4>

1061 1092 

1062Se registra cuando se muestra una encuesta de calidad de sesión o se responde. Consulta [Encuestas de calidad de sesión](/es/data-usage#session-quality-surveys) para saber qué recopilan las encuestas y cómo controlarlas.1093Se registra cuando se muestra una encuesta de calidad de sesión o se responde. Consulte [Encuestas de calidad de sesión](/es/data-usage#session-quality-surveys) para saber qué recopilan las encuestas y cómo controlarlas.

1063 1094 

1064**Nombre del Evento**: `claude_code.feedback_survey`1095**Nombre del Evento**: `claude_code.feedback_survey`

1065 1096 


1073* `appearance_id`: ID único que vincula los eventos emitidos para una instancia de encuesta1104* `appearance_id`: ID único que vincula los eventos emitidos para una instancia de encuesta

1074* `survey_type`: Qué encuesta produjo el evento. `"session"` es el mensaje de calificación "¿Cómo está Claude?"1105* `survey_type`: Qué encuesta produjo el evento. `"session"` es el mensaje de calificación "¿Cómo está Claude?"

1075* `response`: La selección del usuario en eventos `responded`1106* `response`: La selección del usuario en eventos `responded`

1076* `enabled_via_override`: `true` cuando [`CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL`](/es/env-vars) está establecido. Se emite como booleano, no como cadena. Presente en eventos de encuesta `session`. Filtra en este atributo para confirmar que la anulación se aplica en toda una flota1107* `enabled_via_override`: `true` cuando [`CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL`](/es/env-vars) está establecido. Se emite como booleano, no como cadena. Presente en eventos de encuesta `session`. Filtre en este atributo para confirmar que la anulación se aplica en toda una flota

1077 1108 

1078<h2 id="interpret-metrics-and-events-data">1109<h2 id="interpret-metrics-and-events-data">

1079 Interpretar datos de métricas y eventos1110 Interpretar datos de métricas y eventos


1089| ------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- |1120| ------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- |

1090| `claude_code.token.usage` | Desglosar por `type` (entrada/salida), usuario, equipo, modelo, `skill.name`, `plugin.name`, o `agent.name` |1121| `claude_code.token.usage` | Desglosar por `type` (entrada/salida), usuario, equipo, modelo, `skill.name`, `plugin.name`, o `agent.name` |

1091| `claude_code.session.count` | Rastrear adopción y compromiso a lo largo del tiempo |1122| `claude_code.session.count` | Rastrear adopción y compromiso a lo largo del tiempo |

1092| `claude_code.lines_of_code.count` | Medir productividad rastreando adiciones/eliminaciones de código |1123| `claude_code.lines_of_code.count` | Medir productividad rastreando adiciones y eliminaciones de código, desglosado por modelo |

1093| `claude_code.commit.count` & `claude_code.pull_request.count` | Entender el impacto en los flujos de trabajo de desarrollo |1124| `claude_code.commit.count` & `claude_code.pull_request.count` | Entender el impacto en los flujos de trabajo de desarrollo |

1094 1125 

1095<h3 id="cost-monitoring">1126<h3 id="cost-monitoring">


1103* Atribuir gastos a habilidades, plugins, o tipos de subagente específicos a través de los atributos `skill.name`, `plugin.name`, y `agent.name`1134* Atribuir gastos a habilidades, plugins, o tipos de subagente específicos a través de los atributos `skill.name`, `plugin.name`, y `agent.name`

1104 1135 

1105<Note>1136<Note>

1106 Las métricas de costo son aproximaciones. Para datos de facturación oficiales, consulta tu proveedor de API (Claude Console, Amazon Bedrock, o Google Cloud Vertex).1137 Las métricas de costo son aproximaciones. Para datos de facturación oficiales, consulte su proveedor de API (Claude Console, Amazon Bedrock, o Google Cloud Vertex).

1107</Note>1138</Note>

1108 1139 

1109<h3 id="alerting-and-segmentation">1140<h3 id="alerting-and-segmentation">


1116* Consumo inusual de tokens1147* Consumo inusual de tokens

1117* Alto volumen de sesiones de usuarios específicos1148* Alto volumen de sesiones de usuarios específicos

1118 1149 

1119Todas las métricas pueden segmentarse por `user.account_uuid`, `user.account_id`, `organization.id`, `session.id`, `model`, y `app.version`.1150Todas las métricas pueden segmentarse por los [atributos estándar](#standard-attributes). El atributo `model` está disponible en `claude_code.token.usage`, `claude_code.cost.usage`, y {/* min-version: 2.1.172 */}a partir de v2.1.172, `claude_code.lines_of_code.count`. Los desgloses por modelo de confirmaciones solo pueden aproximarse uniéndose contra las métricas de token o costo en `session.id`, ya que una sesión puede abarcar múltiples modelos.

1120 1151 

1121<h3 id="detect-retry-exhaustion">1152<h3 id="detect-retry-exhaustion">

1122 Detectar agotamiento de reintentos1153 Detectar agotamiento de reintentos


1134 1165 

1135Los datos de eventos proporcionan información detallada sobre las interacciones de Claude Code:1166Los datos de eventos proporcionan información detallada sobre las interacciones de Claude Code:

1136 1167 

1137**Patrones de Uso de Herramientas**: analiza eventos de resultado de herramientas para identificar:1168**Patrones de Uso de Herramientas**: analice eventos de resultado de herramientas para identificar:

1138 1169 

1139* Herramientas más utilizadas frecuentemente1170* Herramientas más utilizadas frecuentemente

1140* Tasas de éxito de herramientas1171* Tasas de éxito de herramientas

1141* Tiempos de ejecución promedio de herramientas1172* Tiempos de ejecución promedio de herramientas

1142* Patrones de error por tipo de herramienta1173* Patrones de error por tipo de herramienta

1143 1174 

1144**Monitoreo de Rendimiento**: rastrea duraciones de solicitudes de API y tiempos de ejecución de herramientas para identificar cuellos de botella de rendimiento.1175**Monitoreo de Rendimiento**: rastree duraciones de solicitudes de API y tiempos de ejecución de herramientas para identificar cuellos de botella de rendimiento.

1145 1176 

1146<h2 id="audit-security-events">1177<h2 id="audit-security-events">

1147 Auditar eventos de seguridad1178 Auditar eventos de seguridad

1148</h2>1179</h2>

1149 1180 

1150Los eventos de OpenTelemetry son la fuente de datos de auditoría para la actividad de Claude Code. Cada evento lleva atributos de identidad que vinculan llamadas de herramientas, actividad MCP y decisiones de permisos al usuario que las desencadenó, y el exportador de registros OTLP puede entregar estos eventos a cualquier plataforma de Gestión de Información y Eventos de Seguridad (SIEM) con un receptor OTLP o a un Recopilador de OpenTelemetry que reenvíe a tu SIEM.1181Los eventos de OpenTelemetry son la fuente de datos de auditoría para la actividad de Claude Code. Cada evento lleva atributos de identidad que vinculan llamadas de herramientas, actividad MCP y decisiones de permisos al usuario que las desencadenó, y el exportador de registros OTLP puede entregar estos eventos a cualquier plataforma de Gestión de Información y Eventos de Seguridad (SIEM) con un receptor OTLP o a un Recopilador de OpenTelemetry que reenvíe a su SIEM.

1151 1182 

1152<h3 id="attribute-actions-to-users">1183<h3 id="attribute-actions-to-users">

1153 Atribuir acciones a usuarios1184 Atribuir acciones a usuarios


1157 1188 

1158Las llamadas de herramientas MCP, comandos Bash y ediciones de archivos se atribuyen por lo tanto al desarrollador que inició la sesión. Claude Code no actúa bajo una cuenta de servicio separada; la identidad registrada en cada evento es la propia cuenta de Claude del desarrollador.1189Las llamadas de herramientas MCP, comandos Bash y ediciones de archivos se atribuyen por lo tanto al desarrollador que inició la sesión. Claude Code no actúa bajo una cuenta de servicio separada; la identidad registrada en cada evento es la propia cuenta de Claude del desarrollador.

1159 1190 

1160Cuando Claude Code se autentica con una clave de API directa, o contra Bedrock, Vertex AI, o Microsoft Foundry, no hay cuenta de Claude en la sesión y solo `user.id` y `session.id` se rellenan. En estas implementaciones, adjunta la identidad del usuario mismo con `OTEL_RESOURCE_ATTRIBUTES`, establecido por usuario a través del archivo de [configuración administrada](#administrator-configuration) o un contenedor de lanzamiento:1191Cuando Claude Code se autentica con una clave de API directa, o contra Bedrock, Vertex AI, o Microsoft Foundry, no hay cuenta de Claude en la sesión y solo `user.id` y `session.id` se rellenan. En estas implementaciones, adjunte la identidad del usuario usted mismo con `OTEL_RESOURCE_ATTRIBUTES`, establecido por usuario a través del archivo de [configuración administrada](#administrator-configuration) o un contenedor de lanzamiento:

1161 1192 

1162```bash theme={null}1193```bash theme={null}

1163export OTEL_RESOURCE_ATTRIBUTES="enduser.id=jdoe@example.com,enduser.directory_id=S-1-5-21-..."1194export OTEL_RESOURCE_ATTRIBUTES="enduser.id=jdoe@example.com,enduser.directory_id=S-1-5-21-..."


1167 Auditar actividad MCP1198 Auditar actividad MCP

1168</h3>1199</h3>

1169 1200 

1170Para capturar la actividad del servidor MCP con detalle completo de llamadas, habilita el exportador de registros y establece `OTEL_LOG_TOOL_DETAILS=1`. Cada operación MCP produce entonces eventos estructurados que llevan el nombre del servidor, nombre de la herramienta y argumentos de llamada junto con los atributos de identidad estándar:1201Para capturar la actividad del servidor MCP con detalle completo de llamadas, habilite el exportador de registros y establezca `OTEL_LOG_TOOL_DETAILS=1`. Cada operación MCP produce entonces eventos estructurados que llevan el nombre del servidor, nombre de la herramienta y argumentos de llamada junto con los atributos de identidad estándar:

1171 1202 

1172| Evento | Qué registra para MCP |1203| Evento | Qué registra para MCP |

1173| ----------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |1204| ----------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |


1179 1210 

1180* `tool_result`: mantiene `tool_name` y `mcp_server_scope`, omite `mcp_server_name`, `mcp_tool_name`, y argumentos1211* `tool_result`: mantiene `tool_name` y `mcp_server_scope`, omite `mcp_server_name`, `mcp_tool_name`, y argumentos

1181* `tool_decision`: mantiene `tool_name`, omite `tool_parameters`1212* `tool_decision`: mantiene `tool_name`, omite `tool_parameters`

1182* `mcp_server_connection`: omite `server_name` y el mensaje de error1213* `mcp_server_connection`: omite `server_name` y el mensaje de error, pero mantiene `is_plugin`, `plugin_id_hash`, y `plugin.name`, con nombres de plugins que no son de Anthropic redactados al literal `"third-party"`, por lo que los servidores proporcionados por plugins siguen siendo distinguibles sin registro detallado

1183 1214 

1184<h3 id="map-security-questions-to-events">1215<h3 id="map-security-questions-to-events">

1185 Mapear preguntas de seguridad a eventos1216 Mapear preguntas de seguridad a eventos

1186</h3>1217</h3>

1187 1218 

1188Al construir reglas de detección, busca la señal que deseas monitorear y consulta tu backend para el evento correspondiente y atributos:1219Al construir reglas de detección, busque la señal que desea monitorear y consulte su backend para el evento correspondiente y atributos:

1189 1220 

1190| Señal | Evento | Atributos Clave |1221| Señal | Evento | Atributos Clave |

1191| ----------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------ |1222| ----------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------ |


1193| Escalada de modo de permiso | `permission_mode_changed` | `from_mode`, `to_mode`, `trigger` |1224| Escalada de modo de permiso | `permission_mode_changed` | `from_mode`, `to_mode`, `trigger` |

1194| Hook de política bloqueó una acción | `hook_execution_complete` | `hook_event`, `num_blocking` |1225| Hook de política bloqueó una acción | `hook_execution_complete` | `hook_event`, `num_blocking` |

1195| Inicio de sesión, cierre de sesión y fallo de autenticación | `auth` | `action`, `success`, `error_category` |1226| Inicio de sesión, cierre de sesión y fallo de autenticación | `auth` | `action`, `success`, `error_category` |

1196| Conexión del servidor MCP o fallo | `mcp_server_connection` | `status`, `server_name`, `error_code` |1227| Conexión del servidor MCP o fallo | `mcp_server_connection` | `status`, `server_name`, `is_plugin`, `error_code` |

1197| Plugin instalado y su origen | `plugin_installed` | `plugin.name`, `marketplace.name`, `marketplace.is_official` |1228| Plugin instalado y su origen | `plugin_installed` | `plugin.name`, `marketplace.name`, `marketplace.is_official` |

1198| 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) |1229| 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) |

1199 1230 

1200Claude 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 tu SIEM o backend de observabilidad.1231Claude 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.

1201 1232 

1202<h3 id="send-events-to-a-siem">1233<h3 id="send-events-to-a-siem">

1203 Enviar eventos a un SIEM1234 Enviar eventos a un SIEM

1204</h3>1235</h3>

1205 1236 

1206Apunta `OTEL_EXPORTER_OTLP_LOGS_ENDPOINT` al receptor OTLP de tu SIEM, o a un Recopilador de OpenTelemetry que reenvíe a la API de ingesta nativa de tu SIEM. El siguiente ejemplo de configuración de ajustes administrados exporta solo eventos, con detalle completo de herramientas habilitado para auditoría de MCP y Bash:1237Apunte `OTEL_EXPORTER_OTLP_LOGS_ENDPOINT` al receptor OTLP de su SIEM, o a un Recopilador de OpenTelemetry que reenvíe a la API de ingesta nativa de su SIEM. El siguiente ejemplo de configuración de ajustes administrados exporta solo eventos, con detalle completo de herramientas habilitado para auditoría de MCP y Bash:

1207 1238 

1208```json theme={null}1239```json theme={null}

1209{1240{


1230 1261 

1231* **Bases de datos de series temporales (por ejemplo, Prometheus)**: Cálculos de tasa, métricas agregadas1262* **Bases de datos de series temporales (por ejemplo, Prometheus)**: Cálculos de tasa, métricas agregadas

1232* **Almacenes columnares (por ejemplo, ClickHouse)**: Consultas complejas, análisis de usuario único1263* **Almacenes columnares (por ejemplo, ClickHouse)**: Consultas complejas, análisis de usuario único

1233* **Plataformas de observabilidad completas (por ejemplo, Honeycomb, Datadog)**: Consultas avanzadas, visualización, alertas1264* **Plataformas de observabilidad completas (por ejemplo, Honeycomb, Datadog, Grafana Cloud)**: Consultas avanzadas, visualización, alertas

1234 1265 

1235<h3 id="for-events/logs">1266<h3 id="for-events/logs">

1236 Para eventos/registros1267 Para eventos/registros


1238 1269 

1239* **Sistemas de agregación de registros (por ejemplo, Elasticsearch, Loki)**: Búsqueda de texto completo, análisis de registros1270* **Sistemas de agregación de registros (por ejemplo, Elasticsearch, Loki)**: Búsqueda de texto completo, análisis de registros

1240* **Almacenes columnares (por ejemplo, ClickHouse)**: Análisis de eventos estructurados1271* **Almacenes columnares (por ejemplo, ClickHouse)**: Análisis de eventos estructurados

1241* **Plataformas de observabilidad completas (por ejemplo, Honeycomb, Datadog)**: Correlación entre métricas y eventos1272* **Plataformas de observabilidad completas (por ejemplo, Honeycomb, Datadog, Grafana Cloud)**: Correlación entre métricas y eventos

1242 1273 

1243<h3 id="for-traces">1274<h3 id="for-traces">

1244 Para trazas1275 Para trazas


1247Elige un backend que admita almacenamiento de trazas distribuidas y correlación de spans:1278Elige un backend que admita almacenamiento de trazas distribuidas y correlación de spans:

1248 1279 

1249* **Sistemas de trazas distribuidas (por ejemplo, Jaeger, Zipkin, Grafana Tempo)**: Visualización de spans, cascadas de solicitudes, análisis de latencia1280* **Sistemas de trazas distribuidas (por ejemplo, Jaeger, Zipkin, Grafana Tempo)**: Visualización de spans, cascadas de solicitudes, análisis de latencia

1250* **Plataformas de observabilidad completas (por ejemplo, Honeycomb, Datadog)**: Búsqueda de trazas y correlación con métricas y registros1281* **Plataformas de observabilidad completas (por ejemplo, Honeycomb, Datadog, Grafana Cloud)**: Búsqueda de trazas y correlación con métricas y registros

1251 1282 

1252Para organizaciones que requieren métricas de Usuarios Activos Diarios/Semanales/Mensuales (DAU/WAU/MAU), considera backends que admitan consultas de valores únicos eficientes.1283Para organizaciones que requieren métricas de Usuarios Activos Diarios/Semanales/Mensuales (DAU/WAU/MAU), considera backends que admitan consultas de valores únicos eficientes.

1253 1284 

Details

57 * Usuario: `~/.claude/output-styles`57 * Usuario: `~/.claude/output-styles`

58 * Proyecto: `.claude/output-styles`58 * Proyecto: `.claude/output-styles`

59 * Política administrada: `.claude/output-styles` dentro del [directorio de configuración administrada](/es/settings#settings-files)59 * Política administrada: `.claude/output-styles` dentro del [directorio de configuración administrada](/es/settings#settings-files)

60 

61 Los estilos de salida del proyecto se cargan desde cada `.claude/output-styles/` entre el directorio de trabajo y la raíz del repositorio. {/* min-version: 2.1.178 */}A partir de v2.1.178, cuando más de uno de estos directorios anidados define un estilo con el mismo nombre, Claude Code utiliza el más cercano al directorio de trabajo.

60 </Step>62 </Step>

61 63 

62 <Step title="Agregar frontmatter e instrucciones">64 <Step title="Agregar frontmatter e instrucciones">

overview.md +2 −2

Details

124 <Tab title="JetBrains">124 <Tab title="JetBrains">

125 Un plugin para IntelliJ IDEA, PyCharm, WebStorm y otros IDEs de JetBrains con visualización de diff interactiva y compartición de contexto de selección.125 Un plugin para IntelliJ IDEA, PyCharm, WebStorm y otros IDEs de JetBrains con visualización de diff interactiva y compartición de contexto de selección.

126 126 

127 Instala el [plugin Claude Code](https://plugins.jetbrains.com/plugin/27310-claude-code-beta-) desde el Marketplace de JetBrains y reinicia tu IDE.127 Instala el [plugin Claude Code](https://plugins.jetbrains.com/plugin/27310-claude-code-beta-) desde el Marketplace de JetBrains y reinicia tu IDE. El plugin requiere la CLI de Claude Code, instalada por separado; consulta los [pasos de configuración de JetBrains](/es/jetbrains#installation).

128 128 

129 [Comenzar con JetBrains →](/es/jetbrains)129 [Comenzar con JetBrains →](/es/jetbrains)

130 </Tab>130 </Tab>


209 209 

210 * Aléjate de tu escritorio y sigue trabajando desde tu teléfono o cualquier navegador con [Remote Control](/es/remote-control)210 * Aléjate de tu escritorio y sigue trabajando desde tu teléfono o cualquier navegador con [Remote Control](/es/remote-control)

211 * Envía un mensaje a [Dispatch](/es/desktop#sessions-from-dispatch) con una tarea desde tu teléfono y abre la sesión de escritorio que crea211 * Envía un mensaje a [Dispatch](/es/desktop#sessions-from-dispatch) con una tarea desde tu teléfono y abre la sesión de escritorio que crea

212 * Inicia una tarea de larga duración en la [web](/es/claude-code-on-the-web) o [aplicación iOS](https://apps.apple.com/app/claude-by-anthropic/id6473753684), luego extráela a tu terminal con `claude --teleport`212 * Inicia una tarea de larga duración en la [web](/es/claude-code-on-the-web) o [aplicación iOS](https://apps.apple.com/app/claude-by-anthropic/id6473753684), luego extráela a tu terminal con `claude --teleport`. Teleport requiere una suscripción a claude.ai.

213 * Transfiere una sesión de terminal a la [aplicación de escritorio](/es/desktop) con `/desktop` para revisión visual de diff213 * Transfiere una sesión de terminal a la [aplicación de escritorio](/es/desktop) con `/desktop` para revisión visual de diff

214 * Enruta tareas desde el chat del equipo: menciona `@Claude` en [Slack](/es/slack) con un informe de error y obtén una solicitud de extracción de vuelta214 * Enruta tareas desde el chat del equipo: menciona `@Claude` en [Slack](/es/slack) con un informe de error y obtén una solicitud de extracción de vuelta

215 </Accordion>215 </Accordion>

Details

21| [`plan`](#analyze-before-you-edit-with-plan-mode) | Solo lecturas | Explorar una base de código antes de cambiarla |21| [`plan`](#analyze-before-you-edit-with-plan-mode) | Solo lecturas | Explorar una base de código antes de cambiarla |

22| [`auto`](#eliminate-prompts-with-auto-mode) | Todo, con verificaciones de seguridad de fondo | Tareas largas, reducir fatiga de avisos |22| [`auto`](#eliminate-prompts-with-auto-mode) | Todo, con verificaciones de seguridad de fondo | Tareas largas, reducir fatiga de avisos |

23| [`dontAsk`](#allow-only-pre-approved-tools-with-dontask-mode) | Solo herramientas preaprobadas | CI bloqueado y scripts |23| [`dontAsk`](#allow-only-pre-approved-tools-with-dontask-mode) | Solo herramientas preaprobadas | CI bloqueado y scripts |

24| [`bypassPermissions`](#skip-all-checks-with-bypasspermissions-mode) | Todo | Solo contenedores e máquinas virtuales aisladas |24| [`bypassPermissions`](#skip-all-checks-with-bypasspermissions-mode) | Todo | Solo contenedores y máquinas virtuales aisladas |

25 25 

26En todos los modos excepto `bypassPermissions`, las escrituras en [rutas protegidas](#protected-paths) nunca se aprueban automáticamente, protegiendo el estado del repositorio y la configuración propia de Claude contra corrupción accidental.26En todos los modos excepto `bypassPermissions`, las escrituras en [rutas protegidas](#protected-paths) nunca se aprueban automáticamente, protegiendo el estado del repositorio y la configuración propia de Claude contra corrupción accidental.

27 27 

28Los modos establecen la línea base. Superpón [reglas de permisos](/es/permissions#manage-permissions) encima para preaprobación o bloqueo de herramientas específicas en cualquier modo excepto `bypassPermissions`, que omite completamente la capa de permisos.28Los modos establecen la línea base. Superpón [reglas de permisos](/es/permissions#manage-permissions) encima para preaprobación o bloqueo de herramientas específicas. Las reglas de denegación y las reglas de solicitud explícita se aplican en todos los modos, incluido `bypassPermissions`. Las reglas de permiso no tienen efecto en ese modo porque todo lo demás ya está aprobado.

29 29 

30<h2 id="switch-permission-modes">30<h2 id="switch-permission-modes">

31 Cambiar modos de permisos31 Cambiar modos de permisos


95 <Tab title="Web y móvil">95 <Tab title="Web y móvil">

96 Usa el menú desplegable de modo junto al cuadro de solicitud en [claude.ai/code](https://claude.ai/code) o en la aplicación móvil. Los avisos de permisos aparecen en claude.ai para aprobación. Qué modos aparecen depende de dónde se ejecute la sesión:96 Usa el menú desplegable de modo junto al cuadro de solicitud en [claude.ai/code](https://claude.ai/code) o en la aplicación móvil. Los avisos de permisos aparecen en claude.ai para aprobación. Qué modos aparecen depende de dónde se ejecute la sesión:

97 97 

98 * **Sesiones en la nube** en [Claude Code en la web](/es/claude-code-on-the-web): Aceptar ediciones automáticamente y Modo de planificación. Pedir permisos, Automático y Omitir permisos no están disponibles.98 * **Sesiones en la nube** en [Claude Code en la web](/es/claude-code-on-the-web): Aceptar ediciones, Modo de planificación y Modo automático. Aceptar ediciones corresponde al modo `default`: el entorno en la nube aprueba previamente las ediciones de archivos independientemente del modo, por lo que el menú desplegable muestra Aceptar ediciones en lugar de Pedir permisos. `defaultMode: "acceptEdits"` de la configuración sigue siendo respetado. El modo automático aparece solo cuando tu organización lo permite y el modelo seleccionado lo admite. Omitir permisos no está disponible.

99 * **Sesiones de [Control remoto](/es/remote-control)** en tu máquina local: Pedir permisos, Aceptar ediciones automáticamente y Modo de planificación. Automático y Omitir permisos no están disponibles.99 * **Sesiones de [Control remoto](/es/remote-control)** en tu máquina local: Pedir permisos, Aceptar ediciones automáticamente y Modo de planificación. Automático y Omitir permisos no están disponibles.

100 100 

101 Para Control remoto, también puedes establecer el modo de inicio al lanzar el host:101 Para Control remoto, también puedes establecer el modo de inicio al lanzar el host:


176 El modo automático requiere Claude Code v2.1.83 o posterior.176 El modo automático requiere Claude Code v2.1.83 o posterior.

177</Note>177</Note>

178 178 

179El modo automático permite que Claude ejecute sin avisos de permisos. Un modelo clasificador separado revisa las acciones antes de que se ejecuten, bloqueando cualquier cosa que escale más allá de su solicitud, apunte a infraestructura no reconocida, o parezca impulsada por contenido hostil que Claude leyó.179El modo automático permite que Claude ejecute sin avisos de permisos rutinarios. Un modelo clasificador separado revisa las acciones antes de que se ejecuten, bloqueando cualquier cosa que escale más allá de su solicitud, apunte a infraestructura no reconocida, o parezca impulsada por contenido hostil que Claude leyó. Las [reglas de solicitud](/es/permissions#manage-permissions) explícitas aún fuerzan un aviso.

180 180 

181El modo automático también instruye a Claude para continuar trabajando sin detenerse para hacer preguntas aclaratorias, aunque Claude aún pregunta cuando su solicitud o una skill depende explícitamente de ello. Para obtener un comportamiento autónomo más fuerte mientras mantiene avisos de permisos, establezca el [estilo de salida proactivo](/es/output-styles) en su lugar.181El modo automático también instruye a Claude para continuar trabajando sin detenerse para hacer preguntas aclaratorias, aunque Claude aún pregunta cuando su solicitud o una skill depende explícitamente de ello. Para obtener un comportamiento autónomo más fuerte mientras mantiene avisos de permisos, establezca el [estilo de salida proactivo](/es/output-styles) en su lugar.

182 182 


193 193 

194Si Claude Code reporta el modo automático como no disponible, uno de estos requisitos no se cumple; esto no es una interrupción transitoria. Un mensaje separado que nombra un modelo y dice que el modo automático "no puede determinar la seguridad" de una acción es una interrupción transitoria del clasificador; consulte la [referencia de errores](/es/errors#auto-mode-cannot-determine-the-safety-of-an-action).194Si Claude Code reporta el modo automático como no disponible, uno de estos requisitos no se cumple; esto no es una interrupción transitoria. Un mensaje separado que nombra un modelo y dice que el modo automático "no puede determinar la seguridad" de una acción es una interrupción transitoria del clasificador; consulte la [referencia de errores](/es/errors#auto-mode-cannot-determine-the-safety-of-an-action).

195 195 

196Si establece `defaultMode: "auto"` en [configuración](/es/settings#available-settings) y la sesión comienza en modo `default` sin error, la configuración probablemente esté en `.claude/settings.json` o `.claude/settings.local.json`. Claude Code ignora `auto` de esos archivos para que un repositorio no pueda otorgarse a sí mismo modo automático. Muévalo a `~/.claude/settings.json`.196Si establece `defaultMode: "auto"` en [configuración](/es/settings#available-settings) y la sesión comienza en modo `default` sin error, la configuración probablemente esté en `.claude/settings.json` o `.claude/settings.local.json`. Claude Code v2.1.142 y posterior ignoran `auto` de esos archivos para que un repositorio no pueda otorgarse a sí mismo modo automático. Muévalo a `~/.claude/settings.json`.

197 197 

198<h3 id="enable-auto-mode-on-bedrock-vertex-ai-or-foundry">198<h3 id="enable-auto-mode-on-bedrock-vertex-ai-or-foundry">

199 Habilitar modo automático en Bedrock, Vertex AI, o Foundry199 Habilitar modo automático en Bedrock, Vertex AI, o Foundry

200</h3>200</h3>

201 201 

202En [Amazon Bedrock](/es/amazon-bedrock), [Google Cloud Vertex AI](/es/google-vertex-ai), y [Microsoft Foundry](/es/microsoft-foundry), el modo automático no aparece en el ciclo `Shift+Tab` hasta que `CLAUDE_CODE_ENABLE_AUTO_MODE` se establezca en `1`. Solo Claude Opus 4.7 y Opus 4.8 son compatibles en estos proveedores.202En [Amazon Bedrock](/es/amazon-bedrock), [Google Cloud Vertex AI](/es/google-vertex-ai), y [Microsoft Foundry](/es/microsoft-foundry), el modo automático no aparece en el ciclo `Shift+Tab` hasta que `CLAUDE_CODE_ENABLE_AUTO_MODE` se establezca en `1`. La variable funciona en Claude Code v2.1.158 y posterior. Solo Claude Opus 4.7 y Opus 4.8 son compatibles en estos proveedores.

203 203 

204Para habilitarlo para un desarrollador, añada la variable al bloque `env` en `~/.claude/settings.json`:204Para habilitarlo para un desarrollador, añada la variable al bloque `env` en `~/.claude/settings.json`:

205 205 


293 1. Antes de que un subagente comience, la descripción de tarea delegada se evalúa, por lo que una tarea que se ve peligrosa se bloquea en el momento de generación.293 1. Antes de que un subagente comience, la descripción de tarea delegada se evalúa, por lo que una tarea que se ve peligrosa se bloquea en el momento de generación.

294 2. Mientras el subagente se ejecuta, cada una de sus acciones pasa por el clasificador con las mismas reglas que la sesión principal, y cualquier `permissionMode` en el frontmatter del subagente se ignora.294 2. Mientras el subagente se ejecuta, cada una de sus acciones pasa por el clasificador con las mismas reglas que la sesión principal, y cualquier `permissionMode` en el frontmatter del subagente se ignora.

295 3. Cuando el subagente termina, el clasificador revisa su historial de acciones completo; si esa verificación de retorno marca una preocupación, se antepone una advertencia de seguridad a los resultados del subagente.295 3. Cuando el subagente termina, el clasificador revisa su historial de acciones completo; si esa verificación de retorno marca una preocupación, se antepone una advertencia de seguridad a los resultados del subagente.

296 

297 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 el subagente comenzara.

296 </Accordion>298 </Accordion>

297 299 

298 <Accordion title="Costo y latencia">300 <Accordion title="Costo y latencia">


304 Permitir solo herramientas preaprobadas con modo dontAsk306 Permitir solo herramientas preaprobadas con modo dontAsk

305</h2>307</h2>

306 308 

307El modo `dontAsk` auto-deniega cada llamada de herramienta que de otro modo solicitaría. Solo las acciones que coinciden con tus reglas `permissions.allow` y [comandos Bash de solo lectura](/es/permissions#read-only-commands) pueden ejecutarse; las reglas `ask` explícitas se deniegan en lugar de solicitar. Esto hace que el modo sea completamente no interactivo para tuberías de CI o entornos restringidos donde predefines exactamente qué puede hacer Claude.309El modo `dontAsk` auto-deniega cada llamada de herramienta que de otro modo solicitaría. Solo las acciones que coinciden con tus reglas `permissions.allow` y [comandos Bash de solo lectura](/es/permissions#read-only-commands) pueden ejecutarse; las reglas [`ask` explícitas](/es/permissions#manage-permissions) se deniegan en lugar de solicitar. Esto hace que el modo sea completamente no interactivo para tuberías de CI o entornos restringidos donde predefines exactamente qué puede hacer Claude. Las sesiones en la nube en [Claude Code en la web](/es/claude-code-on-the-web) ignoran `defaultMode: "dontAsk"`; consulta [bypassPermissions](#skip-all-checks-with-bypasspermissions-mode) para obtener más detalles.

308 310 

309Establécelo al inicio con la bandera:311Establécelo al inicio con la bandera:

310 312 


316 Omitir todas las verificaciones con modo bypassPermissions318 Omitir todas las verificaciones con modo bypassPermissions

317</h2>319</h2>

318 320 

319El modo `bypassPermissions` desactiva los avisos de permisos y las verificaciones de seguridad para que las llamadas de herramientas se ejecuten inmediatamente. A partir de v2.1.126, esto incluye escrituras en [rutas protegidas](#protected-paths), que las versiones anteriores aún solicitaban. Las eliminaciones dirigidas al directorio raíz del sistema de archivos o al directorio de inicio, como `rm -rf /` y `rm -rf ~`, aún solicitan como un cortacircuitos contra errores del modelo. Use este modo solo en entornos aislados como contenedores, máquinas virtuales, o devcontainers sin acceso a internet, donde Claude Code no puede dañar su sistema anfitrión.321El modo `bypassPermissions` desactiva los avisos de permisos y las verificaciones de seguridad para que las llamadas de herramientas se ejecuten inmediatamente. A partir de v2.1.126, esto incluye escrituras en [rutas protegidas](#protected-paths), que las versiones anteriores aún solicitaban. Las [reglas ask](/es/permissions#manage-permissions) explícitas aún fuerzan un aviso en este modo, y las eliminaciones dirigidas al directorio raíz del sistema de archivos o al directorio de inicio, como `rm -rf /` y `rm -rf ~`, aún solicitan como un cortacircuitos contra errores del modelo. Use este modo solo en entornos aislados como contenedores, máquinas virtuales, o dev containers sin acceso a internet, donde Claude Code no puede dañar su sistema anfitrión.

320 322 

321No puede entrar en `bypassPermissions` desde una sesión que se inició sin una de las banderas de habilitación; reinicie con una para habilitarlo:323No puede entrar en `bypassPermissions` desde una sesión que se inició sin una de las banderas de habilitación; reinicie con una para habilitarlo:

322 324 


334 336 

335La verificación se omite automáticamente dentro de un sandbox reconocido. Para ejecutarse de forma autónoma en un contenedor, use la configuración de [dev container](/es/devcontainer), que ejecuta Claude Code como un usuario no root.337La verificación se omite automáticamente dentro de un sandbox reconocido. Para ejecutarse de forma autónoma en un contenedor, use la configuración de [dev container](/es/devcontainer), que ejecuta Claude Code como un usuario no root.

336 338 

339[Claude Code en la web](/es/claude-code-on-the-web) no respeta `defaultMode: "bypassPermissions"` o `"dontAsk"` de sus archivos de configuración, por lo que la configuración registrada en un repositorio no puede iniciar una sesión en la nube en modo bypass-permissions. La configuración se ignora silenciosamente y la sesión se inicia en el modo mostrado en el menú desplegable de modo en su lugar. Consulte [Cambiar modos de permisos](#switch-permission-modes) para ver qué modos ofrecen las sesiones en la nube.

340 

337<Warning>341<Warning>

338 `bypassPermissions` no ofrece protección contra inyección de solicitud o acciones no intencionadas. Para verificaciones de seguridad de fondo sin avisos, use [modo automático](#eliminate-prompts-with-auto-mode) en su lugar. Los administradores pueden bloquear este modo estableciendo `permissions.disableBypassPermissionsMode` a `"disable"` en [configuración administrada](/es/permissions#managed-settings).342 `bypassPermissions` no ofrece protección contra inyección de solicitud o acciones no intencionadas. Para verificaciones de seguridad de fondo con muchos menos avisos, use [modo automático](#eliminate-prompts-with-auto-mode) en su lugar. Los administradores pueden bloquear este modo estableciendo `permissions.disableBypassPermissionsMode` en `"disable"` en [configuración administrada](/es/permissions#managed-settings).

339</Warning>343</Warning>

340 344 

341<h2 id="protected-paths">345<h2 id="protected-paths">


351| `dontAsk` | Denegadas |355| `dontAsk` | Denegadas |

352| `bypassPermissions` | Permitidas |356| `bypassPermissions` | Permitidas |

353 357 

358Las reglas de [`permissions.allow`](/es/permissions#manage-permissions) en archivos de configuración no pre-aprueban escrituras en rutas protegidas. La verificación de seguridad se ejecuta antes de que Claude Code evalúe las reglas de permitir desde la configuración, por lo que una entrada como `Edit(.claude/**)` en `~/.claude/settings.json` o `.claude/settings.json` no cambia el resultado por modo en la tabla anterior. En modos que solicitan, la solicitud para una escritura en `.claude/` ofrece **Sí, y permitir que Claude edite su propia configuración para esta sesión**, lo que aprueba escrituras posteriores en `.claude/` en esa sesión sin solicitar de nuevo.

359 

354Directorios protegidos:360Directorios protegidos:

355 361 

356* `.git`362* `.git`


362* `.devcontainer`368* `.devcontainer`

363* `.yarn`369* `.yarn`

364* `.mvn`370* `.mvn`

365* `.claude`, excepto para `.claude/commands`, `.claude/agents`, `.claude/skills`, y `.claude/worktrees` donde Claude crea rutinariamente contenido371* `.claude`, excepto para `.claude/worktrees` donde Claude almacena sus propios git worktrees

366 372 

367Archivos protegidos:373Archivos protegidos:

368 374 

permissions.md +82 −10

Details

30* Las reglas **Ask** solicitan confirmación cada vez que Claude Code intenta usar la herramienta especificada.30* Las reglas **Ask** solicitan confirmación cada vez que Claude Code intenta usar la herramienta especificada.

31* Las reglas **Deny** impiden que Claude Code use la herramienta especificada.31* Las reglas **Deny** impiden que Claude Code use la herramienta especificada.

32 32 

33Las reglas se evalúan en orden: **deny -> ask -> allow**. La primera regla coincidente gana, por lo que las reglas de negación siempre tienen prioridad.33Las reglas se evalúan en orden: deny, luego ask, luego allow. La primera coincidencia en ese orden determina el resultado, y la especificidad de la regla no cambia el orden. Una regla deny amplia como `Bash(aws *)` bloquea cada llamada coincidente, incluidas las llamadas que también coinciden con una regla allow más específica como `Bash(aws s3 ls)`, por lo que una regla deny no puede llevar excepciones de lista de permitidos. La misma precedencia se aplica entre ask y allow: una regla ask coincidente solicita confirmación incluso cuando una regla allow más específica también coincide con la misma llamada.

34 34 

35Las reglas de negación se comportan de manera diferente dependiendo de si nombran una herramienta o delimitan un patrón dentro de una. Un nombre de herramienta simple como `Bash` elimina la herramienta del contexto de Claude por completo, por lo que Claude nunca la ve. Una regla delimitada como `Bash(rm *)` deja la herramienta disponible y bloquea las llamadas coincidentes cuando Claude intenta usarlas.35Las reglas deny se comportan de manera diferente dependiendo de si nombran una herramienta o delimitan un patrón dentro de una. Un nombre de herramienta simple como `Bash` elimina la herramienta del contexto de Claude por completo, por lo que Claude nunca la ve. Una regla delimitada como `Bash(rm *)` deja la herramienta disponible y bloquea las llamadas coincidentes cuando Claude intenta usarlas.

36 36 

37<Note>37<Note>

38 Las reglas de permisos se aplican mediante Claude Code, no por el modelo. Las instrucciones en su prompt o `CLAUDE.md` determinan lo que Claude intenta hacer, pero no cambian lo que Claude Code permite. Para otorgar o revocar acceso, use `/permissions`, las reglas descritas aquí, un [modo de permisos](/es/permission-modes), o un [hook PreToolUse](#extend-permissions-with-hooks).38 Las reglas de permisos se aplican mediante Claude Code, no por el modelo. Las instrucciones en su prompt o `CLAUDE.md` determinan lo que Claude intenta hacer, pero no cambian lo que Claude Code permite. Para otorgar o revocar acceso, use `/permissions`, las reglas descritas aquí, un [modo de permisos](/es/permission-modes), o un [hook PreToolUse](#extend-permissions-with-hooks).


45Claude Code admite varios modos de permisos que controlan cómo se aprueban las herramientas. Consulte [Modos de permisos](/es/permission-modes) para saber cuándo usar cada uno. Establezca `defaultMode` en sus [archivos de configuración](/es/settings#settings-files):45Claude Code admite varios modos de permisos que controlan cómo se aprueban las herramientas. Consulte [Modos de permisos](/es/permission-modes) para saber cuándo usar cada uno. Establezca `defaultMode` en sus [archivos de configuración](/es/settings#settings-files):

46 46 

47| Modo | Descripción |47| Modo | Descripción |

48| :------------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |48| :------------------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

49| `default` | Comportamiento estándar: solicita permiso en el primer uso de cada herramienta |49| `default` | Comportamiento estándar: solicita permiso en el primer uso de cada herramienta |

50| `acceptEdits` | Acepta automáticamente ediciones de archivos y comandos comunes del sistema de archivos (`mkdir`, `touch`, `mv`, `cp`, etc.) para rutas en el directorio de trabajo o `additionalDirectories` |50| `acceptEdits` | Acepta automáticamente ediciones de archivos y comandos comunes del sistema de archivos (`mkdir`, `touch`, `mv`, `cp`, etc.) para rutas en el directorio de trabajo o `additionalDirectories` |

51| `plan` | Plan Mode: Claude lee archivos y ejecuta comandos de shell de solo lectura para explorar pero no edita sus archivos de origen |51| `plan` | Plan Mode: Claude lee archivos y ejecuta comandos de shell de solo lectura para explorar pero no edita sus archivos de origen |

52| `auto` | Auto-aprueba llamadas de herramientas con comprobaciones de seguridad en segundo plano que verifican que las acciones se alineen con su solicitud. Actualmente una vista previa de investigación |52| `auto` | Auto-aprueba llamadas de herramientas con comprobaciones de seguridad en segundo plano que verifican que las acciones se alineen con su solicitud. Actualmente una vista previa de investigación |

53| `dontAsk` | Deniega automáticamente las herramientas a menos que estén preaprobadas a través de `/permissions` o reglas `permissions.allow` |53| `dontAsk` | Deniega automáticamente las herramientas a menos que estén preaprobadas a través de `/permissions` o reglas `permissions.allow` |

54| `bypassPermissions` | Omite todos los avisos de permisos. Las eliminaciones de directorio raíz y directorio de inicio como `rm -rf /` aún solicitan como un disyuntor de circuito |54| `bypassPermissions` | Omite avisos de permisos, excepto aquellos forzados por reglas `ask` explícitas. Las eliminaciones de directorio raíz y directorio de inicio como `rm -rf /` y `rm -rf ~` aún solicitan como un disyuntor de circuito |

55 55 

56<Warning>56<Warning>

57 El modo `bypassPermissions` omite todos los avisos de permisos, incluyendo escrituras en `.git`, `.config/git`, `.claude`, `.vscode`, `.idea`, `.husky`, `.cargo`, `.devcontainer`, `.yarn`, y `.mvn`. Las eliminaciones dirigidas al directorio raíz del sistema de archivos o al directorio de inicio, como `rm -rf /` y `rm -rf ~`, aún solicitan como un disyuntor de circuito contra errores del modelo. Use este modo solo en entornos aislados como contenedores o máquinas virtuales donde Claude Code no pueda causar daño. Los administradores pueden evitar este modo estableciendo `permissions.disableBypassPermissionsMode` en `"disable"` en [configuración administrada](#managed-settings).57 El modo `bypassPermissions` omite avisos de permisos, incluyendo escrituras en `.git`, `.config/git`, `.claude`, `.vscode`, `.idea`, `.husky`, `.cargo`, `.devcontainer`, `.yarn`, y `.mvn`. Las reglas `ask` explícitas aún fuerzan un aviso, y las eliminaciones dirigidas al directorio raíz del sistema de archivos o al directorio de inicio, como `rm -rf /` y `rm -rf ~`, aún solicitan como un disyuntor de circuito contra errores del modelo. Use este modo solo en entornos aislados como contenedores o máquinas virtuales donde Claude Code no pueda causar daño. Los administradores pueden evitar este modo estableciendo `permissions.disableBypassPermissionsMode` en `"disable"` en [configuración administrada](#managed-settings).

58</Warning>58</Warning>

59 59 

60Para evitar que se use el modo `bypassPermissions` o `auto`, establezca `permissions.disableBypassPermissionsMode` o `permissions.disableAutoMode` en `"disable"` en cualquier [archivo de configuración](/es/settings#settings-files). Estos son más útiles en [configuración administrada](#managed-settings) donde no pueden ser anulados.60Para evitar que se use el modo `bypassPermissions` o `auto`, establezca `permissions.disableBypassPermissionsMode` o `permissions.disableAutoMode` en `"disable"` en cualquier [archivo de configuración](/es/settings#settings-files). Estos son más útiles en [configuración administrada](#managed-settings) donde no pueden ser anulados.


91| `Read(./.env)` | Coincide con la lectura del archivo `.env` en el directorio actual |91| `Read(./.env)` | Coincide con la lectura del archivo `.env` en el directorio actual |

92| `WebFetch(domain:example.com)` | Coincide con solicitudes de obtención a example.com |92| `WebFetch(domain:example.com)` | Coincide con solicitudes de obtención a example.com |

93 93 

94<h3 id="match-by-input-parameter">

95 Coincidir por parámetro de entrada

96</h3>

97 

98Las reglas de denegación y solicitud pueden coincidir con un parámetro de entrada de nivel superior en cualquier herramienta con `Tool(param:value)`. La regla coincide cuando Claude llama a la herramienta con ese parámetro establecido en ese valor exacto. Esta sintaxis es para reglas de denegación y solicitud; una regla de permiso para un valor de parámetro no establecería que la llamada sea segura en general, por lo que las reglas de permiso continúan usando la sintaxis de especificador propia de cada herramienta. Esto funciona para cualquier parámetro escalar que acepte la herramienta:

99 

100| Regla | Coincide |

101| :----------------------------- | :------------------------------------------------------ |

102| `Agent(model:opus)` | Llamadas de Agent que solicitan el nivel de modelo Opus |

103| `Agent(isolation:worktree)` | Llamadas de Agent que solicitan un git worktree |

104| `Bash(run_in_background:true)` | Llamadas de Bash que se ejecutan en segundo plano |

105 

106La coincidencia de parámetros sigue estas reglas:

107 

108* El nombre del parámetro debe ser un campo directo de la entrada de la herramienta, como `model` en la herramienta Agent. Los campos anidados dentro de un objeto o matriz no son coincidentes

109* Cada regla nombra un parámetro. Para controlar tanto `model` como `isolation`, escriba dos reglas, `Agent(model:opus)` y `Agent(isolation:worktree)`, en lugar de combinarlas en una regla

110* El valor admite `*` como un comodín que coincide con cualquier secuencia de caracteres, por lo que `Agent(isolation:*)` coincide con cualquier valor de aislamiento explícito. Sin `*` la coincidencia es exacta

111* Un parámetro que el modelo omite nunca se coincide, por lo que `Agent(model:*)` no coincide con una llamada que deja `model` sin establecer

112* El valor se compara con la entrada literal que Claude envía, antes de cualquier normalización. `Agent(model:opus)` coincide con el alias `opus` pero no con un ID de modelo completo. Ejecute con [`--verbose`](/es/cli-reference) para ver los nombres y valores exactos de los parámetros en cada llamada de herramienta

113* Se ignora el espacio en blanco alrededor de los dos puntos

114 

115Los campos que una herramienta ya coincide con sus propias reglas de canonicalización no son coincidentes de esta manera: `command` para Bash y PowerShell, `file_path` para Read, Edit y Write, `path` para Grep y Glob, `notebook_path` para NotebookEdit, y `url` para WebFetch. Una regla como `Bash(command:rm *)` sería eludible por un comando compuesto, por lo que Claude Code la ignora y emite una advertencia de inicio. Use `Bash(rm *)`, `Read(./path)`, o `WebFetch(domain:host)` en su lugar.

116 

94<h3 id="wildcard-patterns">117<h3 id="wildcard-patterns">

95 Patrones de comodín118 Patrones de comodín

96</h3>119</h3>


116 139 

117El espacio antes de `*` importa: `Bash(ls *)` coincide con `ls -la` pero no con `lsof`, mientras que `Bash(ls*)` coincide con ambos. El sufijo `:*` es una forma equivalente de escribir un comodín final, por lo que `Bash(ls:*)` coincide con los mismos comandos que `Bash(ls *)`.140El espacio antes de `*` importa: `Bash(ls *)` coincide con `ls -la` pero no con `lsof`, mientras que `Bash(ls*)` coincide con ambos. El sufijo `:*` es una forma equivalente de escribir un comodín final, por lo que `Bash(ls:*)` coincide con los mismos comandos que `Bash(ls *)`.

118 141 

119El diálogo de permisos escribe la forma separada por espacios cuando selecciona "Sí, no preguntar de nuevo" para un prefijo de comando. La forma `:*` solo se reconoce al final de un patrón. En un patrón como `Bash(git:* push)`, el dos puntos se trata como un carácter literal y no coincidirá con comandos git.142El diálogo de permisos escribe la forma separada por espacios cuando selecciona "Sí, no preguntar de nuevo" para un prefijo de comando. La forma `:*` solo se reconoce al final de un patrón. En un patrón como `Bash(git:* push)`, los dos puntos se tratan como un carácter literal y no coincidirán con comandos git.

143 

144<h3 id="tool-name-wildcards">

145 Comodines de nombre de herramienta

146</h3>

147 

148Las reglas de denegación y solicitud también aceptan patrones glob en la posición del nombre de la herramienta. El patrón debe coincidir con el nombre completo de la herramienta: `"*"` coincide con todas las herramientas, y `"mcp__*"` coincide con todas las herramientas MCP en todos los servidores. Una herramienta coincidida por una regla de denegación de nombre simple se elimina del contexto de Claude, igual que un nombre de herramienta simple. Esta configuración deniega todas las herramientas MCP:

149 

150```json theme={null}

151{

152 "permissions": {

153 "deny": [

154 "mcp__*"

155 ]

156 }

157}

158```

159 

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

161 

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

163 

164La 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](/es/hooks) coinciden solo con el nombre canónico, 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](/es/tools-reference).

120 165 

121<h2 id="tool-specific-permission-rules">166<h2 id="tool-specific-permission-rules">

122 Reglas de permisos específicas de herramientas167 Reglas de permisos específicas de herramientas


252| `Read(//**/.env)` | cualquier `.env` en cualquier lugar del sistema de archivos | nada; la regla está anclada en la raíz del sistema de archivos |297| `Read(//**/.env)` | cualquier `.env` en cualquier lugar del sistema de archivos | nada; la regla está anclada en la raíz del sistema de archivos |

253 298 

254<Note>299<Note>

255 En patrones gitignore, `*` coincide con archivos en un solo directorio mientras que `**` coincide recursivamente en directorios. Para permitir todo acceso a archivos, use solo el nombre de la herramienta sin paréntesis: `Read`, `Edit` o `Write`.300 En patrones gitignore, `*` coincide dentro de un solo segmento de ruta y puede aparecer en cualquier posición en el patrón, mientras que `**` coincide en directorios. Para permitir todo acceso a archivos, use solo el nombre de la herramienta sin paréntesis: `Read`, `Edit` o `Write`.

256</Note>301</Note>

257 302 

258Cuando Claude accede a un symlink, las reglas de permisos verifican dos rutas: el symlink mismo y el archivo al que se resuelve. Las reglas de permiso y negación tratan ese par de manera diferente: las reglas de permiso recurren a solicitarle, mientras que las reglas de negación bloquean directamente.303Cuando Claude accede a un symlink, las reglas de permisos verifican dos rutas: el symlink mismo y el archivo al que se resuelve. Las reglas de permiso y negación tratan ese par de manera diferente: las reglas de permiso recurren a solicitarle, mientras que las reglas de negación bloquean directamente.


266 WebFetch311 WebFetch

267</h3>312</h3>

268 313 

269* `WebFetch(domain:example.com)` coincide con solicitudes de obtención a example.com314Las reglas WebFetch usan un prefijo `domain:` y coinciden con el nombre de host de la URL solicitada. La coincidencia no distingue mayúsculas de minúsculas, admite comodines `*` y elimina un punto final de ambas la regla y el nombre de host para que `example.com.` y `example.com` se traten igual.

315 

316* `WebFetch(domain:example.com)` coincide con solicitudes a `example.com`

317* `WebFetch(domain:*.example.com)` coincide con cualquier subdominio en cualquier profundidad, como `api.example.com` o `a.b.example.com`, pero no con `example.com` mismo

318* `WebFetch(domain:*)` coincide con cada dominio y es equivalente a una regla `WebFetch` desnuda

319 

320En cualquier posición que no sea un `*.` inicial o un `*` desnudo, el comodín coincide solo con el texto entre dos puntos. `WebFetch(domain:example.*)` coincide con `example.org`, donde `*` se convierte en `org`, pero no con `example.evil.com`, donde `*` tendría que convertirse en `evil.com` y cruzar un punto. Esto evita que un comodín final coincida con dominios que un atacante podría registrar.

270 321 

271<h3 id="mcp">322<h3 id="mcp">

272 MCP323 MCP


296}347}

297```348```

298 349 

350<h3 id="cd">

351 Cd

352</h3>

353 

354Las reglas `Cd` controlan a qué directorios el comando [`/cd`](/es/commands) puede mover la sesión. `Cd` no es una herramienta invocable por el modelo: Claude no puede llamarla, y las reglas se aplican solo cuando ejecuta `/cd` usted mismo.

355 

356Una regla de negación `Cd` desnuda deshabilita `/cd` completamente. Una regla de negación `Cd(<path-pattern>)` bloquea objetivos coincidentes. Las reglas de negación verifican cada ortografía del objetivo, incluyendo cada salto de symlink que resuelve, por lo que una regla escrita para una ruta también bloquea objetivos que se resuelven a ella.

357 

358Agregar cualquier regla de permiso `Cd` cambia `/cd` al modo de lista de permitidos: el directorio objetivo resuelto debe coincidir con una de sus reglas de permiso, o `/cd` se niega. Sin reglas `Cd` configuradas, `/cd` mantiene su comportamiento predeterminado y le solicita confiar en un directorio desconocido.

359 

360Los patrones de ruta comparten los anclajes `//`, `~/` y `/` de [reglas Read y Edit](#read-and-edit), pero la coincidencia está anclada a la ruta del directorio completo en lugar de estilo gitignore. `*` coincide exactamente con un segmento de ruta y `**` coincide en segmentos. Un `/**` final también coincide con su raíz nombrada.

361 

362| Regla | Coincide | No coincide |

363| --------------------- | ------------------------------------------------------------ | ----------------------------- |

364| `Cd(~/code/*)` | `~/code/app` | `~/code/app/src`, `~/code` |

365| `Cd(~/code/**)` | `~/code` y cualquier directorio bajo él | directorios fuera de `~/code` |

366| `Cd(**/node_modules)` | cualquier directorio `node_modules` en cualquier profundidad | `node_modules/pkg` |

367 

299<h2 id="extend-permissions-with-hooks">368<h2 id="extend-permissions-with-hooks">

300 Extender permisos con hooks369 Extender permisos con hooks

301</h2>370</h2>


318 387 

319Los archivos en directorios adicionales siguen las mismas reglas de permisos que el directorio de trabajo original: se vuelven legibles sin avisos, y los permisos de edición de archivos siguen el modo de permisos actual.388Los archivos en directorios adicionales siguen las mismas reglas de permisos que el directorio de trabajo original: se vuelven legibles sin avisos, y los permisos de edición de archivos siguen el modo de permisos actual.

320 389 

390Para cambiar el directorio de trabajo principal de la sesión en lugar de agregar otro, use [`/cd`](/es/commands). El comando `/cd` requiere Claude Code v2.1.169 o posterior. A diferencia de `/add-dir`, reubica la sesión: se carga el `CLAUDE.md` del nuevo directorio y `--resume` encuentra la sesión desde allí.

391 

321<h3 id="additional-directories-grant-file-access-not-configuration">392<h3 id="additional-directories-grant-file-access-not-configuration">

322 Los directorios adicionales otorgan acceso a archivos, no configuración393 Los directorios adicionales otorgan acceso a archivos, no configuración

323</h3>394</h3>


331| Configuración | Cargado desde `--add-dir` |402| Configuración | Cargado desde `--add-dir` |

332| :--------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |403| :--------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

333| [Skills](/es/skills) en `.claude/skills/` | Sí, con recarga en vivo |404| [Skills](/es/skills) en `.claude/skills/` | Sí, con recarga en vivo |

405| [Subagentes](/es/sub-agents) en `.claude/agents/` | Sí |

334| Configuración de plugins en `.claude/settings.json` | Solo `enabledPlugins` y `extraKnownMarketplaces` |406| Configuración de plugins en `.claude/settings.json` | Solo `enabledPlugins` y `extraKnownMarketplaces` |

335| Archivos [CLAUDE.md](/es/memory), `.claude/rules/` y `CLAUDE.local.md` | Solo cuando `CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD=1` está establecido. `CLAUDE.local.md` además requiere la fuente de configuración `local`, que está habilitada por defecto |407| Archivos [CLAUDE.md](/es/memory), `.claude/rules/` y `CLAUDE.local.md` | Solo cuando `CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD=1` está establecido. `CLAUDE.local.md` además requiere la fuente de configuración `local`, que está habilitada por defecto |

336 408 

337Los subagentes, comandos y estilos de salida se descubren desde el directorio de trabajo actual y sus directorios padres, su directorio de usuario en `~/.claude/`, y configuración administrada. Los hooks y otras claves de `settings.json` se cargan desde la carpeta `.claude/` del directorio de trabajo actual sin recurso a directorios padres, junto con su `~/.claude/settings.json` de usuario y configuración administrada. Para compartir esa configuración entre proyectos, use uno de estos enfoques:409Los comandos y estilos de salida se descubren desde el directorio de trabajo actual y sus directorios padres, su directorio de usuario en `~/.claude/`, y configuración administrada. Los hooks y otras claves de `settings.json` se cargan desde la carpeta `.claude/` del directorio de trabajo actual sin recurso a directorios padres, junto con su `~/.claude/settings.json` de usuario y configuración administrada. Para compartir esa configuración entre proyectos, use uno de estos enfoques:

338 410 

339* **Configuración a nivel de usuario**: coloque archivos en `~/.claude/agents/`, `~/.claude/output-styles/`, o `~/.claude/settings.json` para hacerlos disponibles en cada proyecto411* **Configuración a nivel de usuario**: coloque archivos en `~/.claude/agents/`, `~/.claude/output-styles/`, o `~/.claude/settings.json` para hacerlos disponibles en cada proyecto

340* **Plugins**: empaquete y distribuya configuración como un [plugin](/es/plugins) que los equipos pueden instalar412* **Plugins**: empaquete y distribuya configuración como un [plugin](/es/plugins) que los equipos pueden instalar


356* Las restricciones del sistema de archivos en el sandbox combinan la configuración [`sandbox.filesystem`](/es/sandboxing) con reglas de negación Read y Edit; ambas se fusionan en el límite final del sandbox428* Las restricciones del sistema de archivos en el sandbox combinan la configuración [`sandbox.filesystem`](/es/sandboxing) con reglas de negación Read y Edit; ambas se fusionan en el límite final del sandbox

357* Las restricciones de red combinan reglas de permisos WebFetch con las listas `allowedDomains` y `deniedDomains` del sandbox429* Las restricciones de red combinan reglas de permisos WebFetch con las listas `allowedDomains` y `deniedDomains` del sandbox

358 430 

359Cuando el sandboxing está habilitado con `autoAllowBashIfSandboxed: true`, que es el valor predeterminado, los comandos Bash en sandbox se ejecutan sin solicitar incluso si sus permisos incluyen `ask: Bash(*)`. El límite del sandbox sustituye el aviso por comando. Las reglas de negación explícitas aún se aplican, y los comandos `rm` o `rmdir` que apunten a `/`, su directorio de inicio u otras rutas críticas del sistema aún desencadenan un aviso. Consulte [modos de sandbox](/es/sandboxing#sandbox-modes) para cambiar este comportamiento.431Cuando el sandboxing está habilitado con `autoAllowBashIfSandboxed: true`, que es el valor predeterminado, los comandos Bash en sandbox se ejecutan sin solicitar incluso si sus permisos incluyen una regla ask `Bash` simple, o la [forma equivalente `Bash(*)`](#match-all-uses-of-a-tool): el límite del sandbox sustituye ese aviso de herramienta completa. Las reglas ask con alcance de contenido como `Bash(git push *)` aún fuerzan un aviso, las reglas de negación explícitas aún se aplican, y los comandos `rm` o `rmdir` que apunten a `/`, su directorio de inicio u otras rutas críticas del sistema aún desencadenan un aviso. Los comandos que no se ejecutarán en sandbox, como comandos excluidos, respetan la regla ask `Bash` simple como es habitual. Consulte [modos de sandbox](/es/sandboxing#sandbox-modes) para cambiar este comportamiento.

360 432 

361<h2 id="managed-settings">433<h2 id="managed-settings">

362 Configuración administrada434 Configuración administrada

platforms.md +1 −1

Details

23| [Web](/es/claude-code-on-the-web) | Tareas de larga duración que no necesitan mucha dirección, o trabajo que debe continuar cuando está desconectado | Nube administrada por Anthropic, continúa después de desconectarse |23| [Web](/es/claude-code-on-the-web) | Tareas de larga duración que no necesitan mucha dirección, o trabajo que debe continuar cuando está desconectado | Nube administrada por Anthropic, continúa después de desconectarse |

24| Móvil | Iniciar y monitorear tareas mientras está lejos de su computadora | Sesiones en la nube desde la aplicación Claude para iOS y Android, [Remote Control](/es/remote-control) para sesiones locales, [Dispatch](/es/desktop#sessions-from-dispatch) a Desktop en Pro y Max |24| Móvil | Iniciar y monitorear tareas mientras está lejos de su computadora | Sesiones en la nube desde la aplicación Claude para iOS y Android, [Remote Control](/es/remote-control) para sesiones locales, [Dispatch](/es/desktop#sessions-from-dispatch) a Desktop en Pro y Max |

25 25 

26La CLI es la superficie más completa para el trabajo nativo de terminal: scripting y el Agent SDK son solo CLI. Los proveedores de terceros también funcionan en [VS Code](/es/vs-code#use-third-party-providers). Las implementaciones empresariales de [Desktop](/es/desktop) admiten Vertex AI y proveedores de puerta de enlace; para Bedrock o Foundry, use la CLI o VS Code en lugar de Desktop. Desktop y las extensiones de IDE intercambian algunas características solo de CLI por revisión visual e integración más estrecha del editor. La web se ejecuta en la nube de Anthropic, por lo que las tareas continúan después de desconectarse. Móvil es un cliente delgado en esas mismas sesiones en la nube o en una sesión local a través de Remote Control, y puede enviar tareas a Desktop con Dispatch.26La CLI es la superficie más completa para el trabajo nativo de terminal: scripting y el Agent SDK son solo CLI. Los proveedores de terceros también funcionan en [VS Code](/es/vs-code#use-third-party-providers). Las implementaciones empresariales de [Desktop](/es/desktop) admiten Vertex AI y proveedores de puerta de enlace; para Bedrock o Foundry, use la CLI o VS Code, o la [Cowork en vista previa de investigación 3P](https://claude.com/docs/cowork/3p/overview), que ejecuta la pestaña Code en esos proveedores. Desktop y las extensiones de IDE intercambian algunas características solo de CLI por revisión visual e integración más estrecha del editor. La web se ejecuta en la nube de Anthropic, por lo que las tareas continúan después de desconectarse. Móvil es un cliente delgado en esas mismas sesiones en la nube o en una sesión local a través de Remote Control, y puede enviar tareas a Desktop con Dispatch.

27 27 

28Puede mezclar superficies en el mismo proyecto. La configuración, la memoria del proyecto y los servidores MCP se comparten entre las superficies locales.28Puede mezclar superficies en el mismo proyecto. La configuración, la memoria del proyecto y los servidores MCP se comparten entre las superficies locales.

29 29 

plugin-hints.md +7 −4

Details

16 Cómo funciona16 Cómo funciona

17</h2>17</h2>

18 18 

19Claude Code establece la variable de entorno [`CLAUDECODE`](/es/env-vars) en `1` para cada comando que ejecuta a través de las herramientas Bash y PowerShell, y para comandos de [hook](/es/hooks). Cuando tu CLI ve esa variable, escribe una etiqueta `<claude-code-hint />` que se cierra automáticamente en stderr. En comandos hook la etiqueta de sugerencia se elimina e ignora. Solo la salida de las herramientas Bash y PowerShell activa el mensaje de instalación.19Claude Code establece la variable de entorno [`CLAUDECODE`](/es/env-vars) en `1` para cada comando que ejecuta a través de las herramientas Bash y PowerShell, y para comandos de [hook](/es/hooks). {/* min-version: 2.1.172 */}A partir de v2.1.172 también establece [`CLAUDE_CODE_CHILD_SESSION`](/es/env-vars) en `1` en esos mismos subprocesos. Cuando tu CLI ve una de estas variables, escribe una etiqueta `<claude-code-hint />` que se cierra automáticamente en stderr. En comandos hook la etiqueta de sugerencia se elimina e ignora. Solo la salida de las herramientas Bash y PowerShell activa el mensaje de instalación.

20 20 

21Cuando Claude Code recibe la salida del comando, hace lo siguiente:21Cuando Claude Code recibe la salida del comando, hace lo siguiente:

22 22 


31 Emite la sugerencia31 Emite la sugerencia

32</h2>32</h2>

33 33 

34Condiciona la emisión en la variable de entorno `CLAUDECODE` para que el marcador nunca aparezca en la terminal de un usuario humano. Luego escribe la etiqueta en stderr en su propia línea.34Condiciona la emisión en una variable de entorno para que el marcador sea poco probable que aparezca cuando un usuario humano ejecute tu CLI directamente, luego escribe la etiqueta en stderr en su propia línea. Elige qué variable verificar:

35 35 

36Los siguientes ejemplos emiten una sugerencia para un plugin llamado `example-cli` en el marketplace oficial:36* `CLAUDECODE`: se establece en cada versión de Claude Code, por lo que llega a la mayoría de sesiones. También se establece en sesiones de tmux y subprocesos del servidor MCP de stdio que Claude Code inicia, y las extensiones de IDE la establecen en sus terminales integradas, donde un usuario humano puede estar ejecutando tu CLI directamente.

37* {/* min-version: 2.1.172 */}`CLAUDE_CODE_CHILD_SESSION`: se establece solo en subprocesos que el propio Claude Code genera, como llamadas de herramientas, comandos de hook y comandos de [línea de estado](/es/statusline), por lo que la etiqueta normalmente no llega a una terminal humana. Un proceso de larga duración que se inició dentro de una sesión, como un servidor tmux, captura la variable, por lo que los shells lanzados posteriormente desde ese proceso aún muestran la etiqueta sin procesar. Requiere Claude Code v2.1.172 o posterior, por lo que las sesiones en versiones anteriores pierden la sugerencia.

38 

39Los siguientes ejemplos condicionan `CLAUDECODE` para máximo alcance y emiten una sugerencia para un plugin llamado `example-cli` en el marketplace oficial:

37 40 

38<CodeGroup>41<CodeGroup>

39 ```javascript Node.js theme={null}42 ```javascript Node.js theme={null}


147La orientación restante se recomienda pero no se aplica. Claude Code no puede observar si tu CLI la sigue:150La orientación restante se recomienda pero no se aplica. Claude Code no puede observar si tu CLI la sigue:

148 151 

149* **Escribe en stderr**: stderr mantiene la etiqueta fuera de tuberías de shell como `example-cli deploy | jq`. Claude Code escanea ambas secuencias, por lo que stdout también funciona.152* **Escribe en stderr**: stderr mantiene la etiqueta fuera de tuberías de shell como `example-cli deploy | jq`. Claude Code escanea ambas secuencias, por lo que stdout también funciona.

150* **Condiciona en `CLAUDECODE`**: solo emite cuando la variable de entorno `CLAUDECODE` está establecida. Esto evita que el marcador aparezca a los usuarios que ejecutan tu CLI directamente.153* **Condiciona en una variable de entorno**: solo emite cuando `CLAUDECODE` o `CLAUDE_CODE_CHILD_SESSION` está establecida. Consulta [Emitir la sugerencia](#emit-the-hint) para saber cómo difieren las dos variables.

151 154 

152<h2 id="get-your-plugin-into-the-official-marketplace">155<h2 id="get-your-plugin-into-the-official-marketplace">

153 Obtén tu plugin en el marketplace oficial156 Obtén tu plugin en el marketplace oficial

Details

171| `plugins` | array | Lista de plugins disponibles | Ver a continuación |171| `plugins` | array | Lista de plugins disponibles | Ver a continuación |

172 172 

173<Note>173<Note>

174 **Nombres reservados**: Los siguientes nombres de marketplace están reservados para uso oficial de Anthropic y no pueden ser utilizados por marketplaces de terceros: `claude-code-marketplace`, `claude-code-plugins`, `claude-plugins-official`, `anthropic-marketplace`, `anthropic-plugins`, `agent-skills`, `anthropic-agent-skills`, `knowledge-work-plugins`, `life-sciences`, `claude-for-legal`, `claude-for-financial-services`, `financial-services-plugins`. Los nombres que se hacen pasar por marketplaces oficiales, como `official-claude-plugins` o `anthropic-tools-v2`, también están bloqueados.174 **Nombres reservados**: Los siguientes nombres de marketplace están reservados para uso oficial de Anthropic y no pueden ser utilizados por marketplaces de terceros: `claude-code-marketplace`, `claude-code-plugins`, `claude-plugins-official`, `claude-plugins-community`, `claude-community`, `anthropic-marketplace`, `anthropic-plugins`, `agent-skills`, `anthropic-agent-skills`, `knowledge-work-plugins`, `life-sciences`, `claude-for-legal`, `claude-for-financial-services`, `financial-services-plugins`. Los nombres que se hacen pasar por marketplaces oficiales, como `official-claude-plugins` o `anthropic-tools-v2`, también están bloqueados.

175</Note>175</Note>

176 176 

177<h3 id="owner-fields">177<h3 id="owner-fields">


269 Por ejemplo, un marketplace alojado en `acme-corp/plugin-catalog` (fuente de marketplace) puede listar un plugin obtenido de `acme-corp/code-formatter` (fuente de plugin). La fuente de marketplace y la fuente de plugin apuntan a diferentes repositorios y se fijan independientemente.269 Por ejemplo, un marketplace alojado en `acme-corp/plugin-catalog` (fuente de marketplace) puede listar un plugin obtenido de `acme-corp/code-formatter` (fuente de plugin). La fuente de marketplace y la fuente de plugin apuntan a diferentes repositorios y se fijan independientemente.

270</Note>270</Note>

271 271 

272Los tipos de fuente basados en git que se muestran a continuación son `github`, `url` y `git-subdir`. Cuando tanto `ref` como `sha` se establecen en cualquiera de ellos, `sha` es el pin efectivo. Claude Code obtiene y verifica el commit fijado directamente, por lo que la instalación tiene éxito incluso si la rama o etiqueta nombrada por `ref` ha sido eliminada posteriormente, siempre que el commit aún sea alcanzable desde el repositorio.

273 

272<h3 id="relative-paths">274<h3 id="relative-paths">

273 Rutas relativas275 Rutas relativas

274</h3>276</h3>


450 Entradas de plugins avanzadas452 Entradas de plugins avanzadas

451</h3>453</h3>

452 454 

453Este ejemplo muestra una entrada de plugin usando muchos de los campos opcionales, incluidas rutas personalizadas para skills, agentes, hooks y servidores MCP:455Este ejemplo muestra una entrada de plugin usando muchos de los campos opcionales, incluidas rutas personalizadas para commands, agents, hooks y MCP servers:

454 456 

455```json theme={null}457```json theme={null}

456{458{


470 "license": "MIT",472 "license": "MIT",

471 "keywords": ["enterprise", "workflow", "automation"],473 "keywords": ["enterprise", "workflow", "automation"],

472 "category": "productivity",474 "category": "productivity",

473 "skills": ["./skills/core/", "./skills/enterprise/"],

474 "commands": [475 "commands": [

475 "./commands/core/",476 "./commands/core/",

476 "./commands/enterprise/",477 "./commands/enterprise/",


502 503 

503Cosas clave a notar:504Cosas clave a notar:

504 505 

505* **`skills`, `commands` y `agents`**: Puede especificar múltiples directorios o archivos individuales. Las rutas son relativas a la raíz del plugin.506* **`commands` y `agents`**: Puede especificar múltiples directorios o archivos individuales. Las rutas son relativas a la raíz del plugin.

506* **`${CLAUDE_PLUGIN_ROOT}`**: Use esta variable en hooks y configuraciones de MCP server para hacer referencia a archivos dentro del directorio de instalación del plugin. Esto es necesario porque los plugins se copian a una ubicación de caché cuando se instalan. Para dependencias o estado que deben sobrevivir a las actualizaciones de plugins, use [`${CLAUDE_PLUGIN_DATA}`](/es/plugins-reference#persistent-data-directory) en su lugar.507* **`${CLAUDE_PLUGIN_ROOT}`**: Use esta variable en hooks y configuraciones de MCP server para hacer referencia a archivos dentro del directorio de instalación del plugin. Esto es necesario porque los plugins se copian a una ubicación de caché cuando se instalan. Para dependencias o estado que deben sobrevivir a las actualizaciones de plugins, use [`${CLAUDE_PLUGIN_DATA}`](/es/plugins-reference#persistent-data-directory) en su lugar.

507* **`strict: false`**: Dado que esto se establece en false, el plugin no necesita su propio `plugin.json`. La entrada del marketplace define todo. Consulte [Modo estricto](#strict-mode) a continuación.508* **`strict: false`**: Dado que esto se establece en false, el plugin no necesita su propio `plugin.json`. La entrada del marketplace define todo. Consulte [Modo estricto](#strict-mode) a continuación.

508 509 

510Por defecto, las skills de un plugin se cargan desde el directorio `skills/` bajo su `source`, y cualquier ruta listada bajo `skills` se agrega a ese escaneo. La excepción es una fuente de raíz de marketplace como `source: "./"`, donde varias entradas de plugin comparten una carpeta `skills/`. En ese caso, listar subdirectorios específicos bajo `skills` hace que esa lista sea el conjunto completo para la entrada, y otros directorios bajo `skills/` no se cargan. Listar el directorio `skills/` en sí o la raíz del plugin mantiene el escaneo completo. Si ninguna de las rutas listadas existe, se ejecuta el escaneo predeterminado en su lugar.

511 

509<h3 id="strict-mode">512<h3 id="strict-mode">

510 Modo estricto513 Modo estricto

511</h3>514</h3>

512 515 

513El campo `strict` controla si `plugin.json` es la autoridad para definiciones de componentes (skills, agentes, hooks, servidores MCP, estilos de salida).516El campo `strict` controla si `plugin.json` es la autoridad para definiciones de componentes (skills, agents, hooks, MCP servers, estilos de salida).

514 517 

515| Valor | Comportamiento |518| Valor | Comportamiento |

516| :---------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |519| :---------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |


520**Cuándo usar cada modo:**523**Cuándo usar cada modo:**

521 524 

522* **`strict: true`**: el plugin tiene su propio `plugin.json` y gestiona sus propios componentes. La entrada del marketplace puede agregar skills o hooks adicionales encima. Este es el predeterminado y funciona para la mayoría de los plugins.525* **`strict: true`**: el plugin tiene su propio `plugin.json` y gestiona sus propios componentes. La entrada del marketplace puede agregar skills o hooks adicionales encima. Este es el predeterminado y funciona para la mayoría de los plugins.

523* **`strict: false`**: el operador del marketplace quiere control total. El repositorio del plugin proporciona archivos sin procesar, y la entrada del marketplace define cuáles de esos archivos se exponen como skills, agentes, hooks, etc. Útil cuando el marketplace reestructura o cura los componentes de un plugin de manera diferente a la que el autor del plugin pretendía.526* **`strict: false`**: el operador del marketplace quiere control total. El repositorio del plugin proporciona archivos sin procesar, y la entrada del marketplace define cuáles de esos archivos se exponen como skills, agents, hooks, etc. Útil cuando el marketplace reestructura o cura los componentes de un plugin de manera diferente a la que el autor del plugin pretendía.

524 527 

525<h2 id="host-and-distribute-marketplaces">528<h2 id="host-and-distribute-marketplaces">

526 Alojar y distribuir marketplaces529 Alojar y distribuir marketplaces


1021 1024 

1022* `[name]`: nombre del marketplace a actualizar, como se muestra en `claude plugin marketplace list`. Actualiza todos los marketplaces si se omite1025* `[name]`: nombre del marketplace a actualizar, como se muestra en `claude plugin marketplace list`. Actualiza todos los marketplaces si se omite

1023 1026 

1024Tanto `remove` como `update` fallan cuando se ejecutan contra un marketplace administrado por seed, que es de solo lectura. Al actualizar todos los marketplaces, las entradas administradas por seed se omiten y otros marketplaces aún se actualizan. Para cambiar plugins proporcionados por seed, pida a su administrador que actualice la imagen seed. Consulte [Precargar plugins para contenedores](/es/docs/plugins#pre-populate-plugins-for-containers).1027Tanto `remove` como `update` fallan cuando se ejecutan contra un marketplace administrado por seed, que es de solo lectura. Al actualizar todos los marketplaces, las entradas administradas por seed se omiten y otros marketplaces aún se actualizan. Para cambiar plugins proporcionados por seed, pida a su administrador que actualice la imagen seed. Consulte [Precargar plugins para contenedores](#pre-populate-plugins-for-containers).

1025 1028 

1026<h2 id="troubleshooting">1029<h2 id="troubleshooting">

1027 Solución de problemas1030 Solución de problemas


1075* Compruebe que los directorios de plugins contengan archivos requeridos1078* Compruebe que los directorios de plugins contengan archivos requeridos

1076* Para fuentes de GitHub, asegúrese de que los repositorios sean públicos o tenga acceso1079* Para fuentes de GitHub, asegúrese de que los repositorios sean públicos o tenga acceso

1077* Pruebe las fuentes de plugins manualmente clonando/descargando1080* Pruebe las fuentes de plugins manualmente clonando/descargando

1081* Si la fuente fija tanto `ref` como `sha`, una rama o etiqueta ascendente eliminada no bloquea la instalación. Si la instalación aún falla, confirme que el commit fijado aún existe en el repositorio

1078 1082 

1079<h3 id="private-repository-authentication-fails">1083<h3 id="private-repository-authentication-fails">

1080 La autenticación del repositorio privado falla1084 La autenticación del repositorio privado falla

plugins.md +10 −6

Details

17Claude Code admite dos formas de agregar skills, agentes y hooks personalizados:17Claude Code admite dos formas de agregar skills, agentes y hooks personalizados:

18 18 

19| Enfoque | Nombres de skills | Mejor para |19| Enfoque | Nombres de skills | Mejor para |

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

21| **Independiente** (directorio `.claude/`) | `/hello` | Flujos de trabajo personales, personalizaciones específicas del proyecto, experimentos rápidos |21| **Independiente** (directorio `.claude/`) | `/hello` | Flujos de trabajo personales, personalizaciones específicas del proyecto, experimentos rápidos |

22| **Plugins** (directorios con `.claude-plugin/plugin.json`) | `/plugin-name:hello` | Compartir con compañeros de equipo, distribuir a la comunidad, lanzamientos versionados, reutilizable en múltiples proyectos |22| **Plugins** (directorios con skills, agentes, hooks o un manifiesto `.claude-plugin/plugin.json`) | `/plugin-name:hello` | Compartir con compañeros de equipo, distribuir a la comunidad, lanzamientos versionados, reutilizable en múltiples proyectos |

23 23 

24**Use configuración independiente cuando**:24**Use configuración independiente cuando**:

25 25 


216| `bin/` | Raíz del plugin | Ejecutables agregados a la `PATH` de la herramienta Bash mientras el plugin está habilitado |216| `bin/` | Raíz del plugin | Ejecutables agregados a la `PATH` de la herramienta Bash mientras el plugin está habilitado |

217| `settings.json` | Raíz del plugin | [Configuraciones](/es/settings) predeterminadas aplicadas cuando el plugin está habilitado |217| `settings.json` | Raíz del plugin | [Configuraciones](/es/settings) predeterminadas aplicadas cuando el plugin está habilitado |

218 218 

219Un plugin que incluye exactamente un skill puede colocar `SKILL.md` directamente en la raíz del plugin en lugar de crear un directorio `skills/`. Claude Code lo carga como un único skill y utiliza el campo `name` del frontmatter para el nombre de invocación. Use el diseño `skills/` para plugins que pueden crecer a más de un skill.

220 

219<Note>221<Note>

220 **Próximos pasos**: ¿Listo para agregar más características? Salte a [Desarrollar plugins más complejos](#develop-more-complex-plugins) para agregar agentes, hooks, servidores MCP y servidores LSP. Para especificaciones técnicas completas de todos los componentes del plugin, consulte [Referencia de plugins](/es/plugins-reference).222 **Próximos pasos**: ¿Listo para agregar más características? Salte a [Desarrollar plugins más complejos](#develop-more-complex-plugins) para agregar agentes, hooks, servidores MCP y servidores LSP. Para especificaciones técnicas completas de todos los componentes del plugin, consulte [Referencia de plugins](/es/plugins-reference).

221</Note>223</Note>


402 404 

403Anthropic mantiene dos marketplaces públicos para plugins de Claude Code:405Anthropic mantiene dos marketplaces públicos para plugins de Claude Code:

404 406 

405* **`claude-plugins-official`**: un conjunto curado de plugins mantenidos por Anthropic. Disponible automáticamente en cada instalación de Claude Code.407* **`claude-plugins-official`**: un conjunto curado de plugins mantenidos por Anthropic. Registrado automáticamente la primera vez que inicia Claude Code de forma interactiva. Un script no interactivo que se ejecuta antes de ese primer lanzamiento debe agregarlo explícitamente con `claude plugin marketplace add anthropics/claude-plugins-official`.

406* **`claude-community`**: el marketplace público de la comunidad donde los envíos de terceros llegan después de la revisión. Los usuarios lo agregan con `/plugin marketplace add anthropics/claude-plugins-community` e instalan desde él como `@claude-community`.408* **`claude-community`**: el marketplace público de la comunidad donde los envíos de terceros llegan después de la revisión. Los usuarios lo agregan con `/plugin marketplace add anthropics/claude-plugins-community` e instalan desde él como `@claude-community`.

407 409 

408Para enviar su plugin para revisión del marketplace de la comunidad, use uno de los formularios en la aplicación:410Para enviar su plugin para revisión del marketplace de la comunidad, use uno de los formularios en la aplicación:

409 411 

410* **Claude.ai**: [claude.ai/settings/plugins/submit](https://claude.ai/settings/plugins/submit)412* **claude.ai**: [claude.ai/admin-settings/directory/submissions/plugins/new](https://claude.ai/admin-settings/directory/submissions/plugins/new)

411* **Console**: [platform.claude.com/plugins/submit](https://platform.claude.com/plugins/submit)413* **Console**: [platform.claude.com/plugins/submit](https://platform.claude.com/plugins/submit)

412 414 

415El formulario de claude.ai requiere una organización de Team o Enterprise y acceso a la gestión de directorios; los Propietarios de la organización tienen este acceso por defecto. Los autores individuales que no forman parte de una organización de Team o Enterprise pueden usar el formulario de Console en su lugar.

416 

413Ejecute `claude plugin validate` localmente antes de enviar. La canalización de revisión ejecuta la misma verificación en cada envío, junto con el análisis de seguridad automatizado.417Ejecute `claude plugin validate` localmente antes de enviar. La canalización de revisión ejecuta la misma verificación en cada envío, junto con el análisis de seguridad automatizado.

414 418 

415Los plugins aprobados se fijan a un SHA de commit específico en el catálogo [`anthropics/claude-plugins-community`](https://github.com/anthropics/claude-plugins-community), y CI actualiza el pin automáticamente a medida que envía nuevos commits a su repositorio. El catálogo público se sincroniza cada noche desde la canalización de revisión, por lo que puede haber un retraso entre la aprobación y que su plugin aparezca en `marketplace.json`. Para verificar si su plugin ya es instalable, busque su nombre en el [catálogo de la comunidad](https://github.com/anthropics/claude-plugins-community/blob/main/.claude-plugin/marketplace.json).419Los plugins aprobados se fijan a un SHA de commit específico en el catálogo [`anthropics/claude-plugins-community`](https://github.com/anthropics/claude-plugins-community), y CI actualiza el pin automáticamente a medida que envía nuevos commits a su repositorio. El catálogo público se sincroniza cada noche desde la canalización de revisión, por lo que puede haber un retraso entre la aprobación y que su plugin aparezca en `marketplace.json`. Para verificar si su plugin ya es instalable, busque su nombre en el [catálogo de la comunidad](https://github.com/anthropics/claude-plugins-community/blob/main/.claude-plugin/marketplace.json).


496 claude --plugin-dir ./my-plugin500 claude --plugin-dir ./my-plugin

497 ```501 ```

498 502 

499 Pruebe cada componente: ejecute sus skills, verifique que los agentes aparezcan en `/agents` y verifique que los hooks se activen correctamente.503 Pruebe cada componente: ejecute sus comandos, verifique que los agentes aparezcan en `/agents` y verifique que los hooks se activen correctamente.

500 </Step>504 </Step>

501</Steps>505</Steps>

502 506 


512| Debe copiar manualmente para compartir | Instalar con `/plugin install` |516| Debe copiar manualmente para compartir | Instalar con `/plugin install` |

513 517 

514<Note>518<Note>

515 Después de migrar, puede eliminar los archivos originales de `.claude/` para evitar duplicados. La versión del plugin tendrá prioridad cuando se cargue.519 Después de migrar, elimine los archivos originales de `.claude/` para evitar duplicados. Las definiciones de `.claude/agents/` a nivel de proyecto y usuario anulan los agentes del plugin con el mismo nombre, por lo que la versión del plugin solo tiene efecto una vez que se eliminan los originales.

516</Note>520</Note>

517 521 

518<h2 id="next-steps">522<h2 id="next-steps">

Details

46* Claude puede invocarlos automáticamente según el contexto de la tarea46* Claude puede invocarlos automáticamente según el contexto de la tarea

47* Los skills pueden incluir archivos de apoyo junto a SKILL.md47* Los skills pueden incluir archivos de apoyo junto a SKILL.md

48 48 

49Si un plugin no tiene un directorio `skills/` y ningún campo de manifiesto `skills`, un `SKILL.md` en la raíz del plugin se carga como una única skill. Establezca el campo frontmatter `name` para controlar el nombre de invocación de la skill. Sin él, Claude Code recurre al nombre del directorio de instalación, que para plugins instalados desde el marketplace es una cadena de versión que cambia en cada actualización. Para plugins que distribuyen más de una skill, use el diseño de directorio `skills/` mostrado arriba.

50 

49Para obtener detalles completos, consulte [Skills](/es/skills).51Para obtener detalles completos, consulte [Skills](/es/skills).

50 52 

51<h3 id="agents">53<h3 id="agents">


256**Campos opcionales:**258**Campos opcionales:**

257 259 

258| Campo | Descripción |260| Campo | Descripción |

259| :---------------------- | :------------------------------------------------------------------ |261| :---------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

260| `args` | Argumentos de línea de comandos para el servidor LSP |262| `args` | Argumentos de línea de comandos para el servidor LSP |

261| `transport` | Transporte de comunicación: `stdio` (predeterminado) o `socket` |263| `transport` | Transporte de comunicación: `stdio` (predeterminado) o `socket` |

262| `env` | Variables de entorno a establecer al iniciar el servidor |264| `env` | Variables de entorno a establecer al iniciar el servidor |


265| `workspaceFolder` | Ruta de carpeta de espacio de trabajo para el servidor |267| `workspaceFolder` | Ruta de carpeta de espacio de trabajo para el servidor |

266| `startupTimeout` | Tiempo máximo para esperar el inicio del servidor (milisegundos) |268| `startupTimeout` | Tiempo máximo para esperar el inicio del servidor (milisegundos) |

267| `maxRestarts` | Número máximo de intentos de reinicio antes de rendirse |269| `maxRestarts` | Número máximo de intentos de reinicio antes de rendirse |

270| `diagnostics` | Si se deben insertar diagnósticos en el contexto de Claude después de ediciones (predeterminado `true`). Establezca en `false` para mantener la navegación de código pero suprimir la inyección automática de diagnósticos. |

268 271 

269<Warning>272<Warning>

270 **Debe instalar el binario del servidor de lenguaje por separado.** Los plugins LSP configuran cómo Claude Code se conecta a un servidor de lenguaje, pero no incluyen el servidor en sí. Si ve `Executable not found in $PATH` en la pestaña Errors de `/plugin`, instale el binario requerido para su lenguaje.273 **Debe instalar el binario del servidor de lenguaje por separado.** Los plugins LSP configuran cómo Claude Code se conecta a un servidor de lenguaje, pero no incluyen el servidor en sí. Si ve `Executable not found in $PATH` en la pestaña Errors de `/plugin`, instale el binario requerido para su lenguaje.


530</h3>533</h3>

531 534 

532| Campo | Tipo | Descripción | Ejemplo |535| Campo | Tipo | Descripción | Ejemplo |

533| :---------------------- | :-------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------- |536| :---------------------- | :-------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------- |

534| `skills` | string\|array | Directorios de skills personalizados que contienen `<name>/SKILL.md` (además del predeterminado `skills/`) | `"./custom/skills/"` |537| `skills` | string\|array | Directorios de skills personalizados que contienen `<name>/SKILL.md`. Se añade al predeterminado `skills/`. Consulte [Reglas de comportamiento de rutas](#path-behavior-rules) para la excepción de raíz del marketplace | `"./custom/skills/"` |

535| `commands` | string\|array | Archivos de skill planos `.md` o directorios personalizados (reemplaza el predeterminado `commands/`) | `"./custom/cmd.md"` o `["./cmd1.md"]` |538| `commands` | string\|array | Archivos de skill planos `.md` o directorios personalizados (reemplaza el predeterminado `commands/`) | `"./custom/cmd.md"` o `["./cmd1.md"]` |

536| `agents` | string\|array | Archivos de agent personalizados (reemplaza el predeterminado `agents/`) | `"./custom/agents/reviewer.md"` |539| `agents` | string\|array | Archivos de agent personalizados (reemplaza el predeterminado `agents/`) | `"./custom/agents/reviewer.md"` |

537| `hooks` | string\|array\|object | Rutas de configuración de hooks o configuración en línea | `"./my-extra-hooks.json"` |540| `hooks` | string\|array\|object | Rutas de configuración de hooks o configuración en línea | `"./my-extra-hooks.json"` |


629Si una ruta personalizada reemplaza o extiende el directorio predeterminado del plugin depende del campo:632Si una ruta personalizada reemplaza o extiende el directorio predeterminado del plugin depende del campo:

630 633 

631* **Reemplaza el predeterminado**: `commands`, `agents`, `outputStyles`, `experimental.themes`, `experimental.monitors`. Por ejemplo, cuando el manifiesto especifica `commands`, el directorio predeterminado `commands/` no se escanea. Para mantener el predeterminado y añadir más, enumérelo explícitamente: `"commands": ["./commands/", "./extras/"]`634* **Reemplaza el predeterminado**: `commands`, `agents`, `outputStyles`, `experimental.themes`, `experimental.monitors`. Por ejemplo, cuando el manifiesto especifica `commands`, el directorio predeterminado `commands/` no se escanea. Para mantener el predeterminado y añadir más, enumérelo explícitamente: `"commands": ["./commands/", "./extras/"]`

632* **Se añade al predeterminado**: `skills`. El directorio predeterminado `skills/` siempre se escanea, y los directorios enumerados en `skills` se cargan junto a él635* **Se añade 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 del marketplace cuya `source` se resuelve a la raíz del marketplace](/es/plugin-marketplaces#advanced-plugin-entries), declarar subdirectorios específicos reemplaza el escaneo

633* **Reglas de fusión propias**: [hooks](#hooks), [MCP servers](#mcp-servers) y [LSP servers](#lsp-servers). Consulte cada sección para ver cómo se combinan múltiples fuentes636* **Reglas de fusión propias**: [hooks](#hooks), [MCP servers](#mcp-servers) y [LSP servers](#lsp-servers). Consulte cada sección para ver cómo se combinan múltiples fuentes

634 637 

635Cuando un plugin tiene tanto una carpeta predeterminada como la clave de manifiesto coincidente, Claude Code v2.1.140 y posterior marca la carpeta ignorada en `/doctor`, `claude plugin list` y la vista de detalles `/plugin`. El plugin aún se carga usando las rutas del manifiesto. No se muestra advertencia cuando la clave del manifiesto apunta a la carpeta predeterminada, por ejemplo `"commands": ["./commands/deploy.md"]`, porque la carpeta se aborda explícitamente en ese caso.638Cuando un plugin tiene tanto una carpeta predeterminada como la clave de manifiesto coincidente, Claude Code v2.1.140 y posterior marca la carpeta ignorada en `/doctor`, `claude plugin list` y la vista de detalles `/plugin`. El plugin aún se carga usando las rutas del manifiesto. No se muestra advertencia cuando la clave del manifiesto apunta a la carpeta predeterminada, por ejemplo `"commands": ["./commands/deploy.md"]`, porque la carpeta se aborda explícitamente en ese caso.


1093| `--available` | Incluir plugins disponibles desde marketplaces. Requiere `--json` | |1096| `--available` | Incluir plugins disponibles desde marketplaces. Requiere `--json` | |

1094| `-h, --help` | Mostrar ayuda para el comando | |1097| `-h, --help` | Mostrar ayuda para el comando | |

1095 1098 

1099Dentro de una sesión interactiva, `/plugin list` imprime el mismo listado en línea. La forma interactiva acepta `--enabled` o `--disabled` para mostrar solo plugins en ese estado, y `ls` como abreviatura de `list`.

1100 

1096<h3 id="plugin-details">1101<h3 id="plugin-details">

1097 plugin details1102 plugin details

1098</h3>1103</h3>

Details

79 79 

80La [configuración de modelo `opusplan`](/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 de modo de plan es un cambio de modelo e inicia un caché nuevo.80La [configuración de modelo `opusplan`](/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 de modo de plan es un cambio de modelo e inicia un caché nuevo.

81 81 

82El [respaldo automático de modelo](/es/model-config#automatic-model-fallback) en Fable 5 también es un cambio de modelo. Cuando un clasificador de seguridad marca una solicitud, Claude Code la vuelve a ejecutar en el modelo Opus predeterminado y la sesión continúa allí.

83 

82<h3 id="changing-effort-level">84<h3 id="changing-effort-level">

83 Cambiar el nivel de esfuerzo85 Cambiar el nivel de esfuerzo

84</h3>86</h3>


101 Conectar o desconectar un servidor MCP103 Conectar o desconectar un servidor MCP

102</h3>104</h3>

103 105 

104Las definiciones de herramientas se encuentran en la capa del prompt del sistema, por lo que el caché se invalida cuando el conjunto de definiciones de herramientas en la solicitud cambia entre turnos. Si un cambio de [servidor MCP](/es/mcp) hace esto depende de si sus herramientas se difieren por [búsqueda de herramientas](/es/mcp#scale-with-mcp-tool-search) o se cargan en el prefijo:106Las definiciones de herramientas se encuentran en la capa del prompt del sistema, por lo que el caché se invalida cuando el conjunto de definiciones de herramientas en la solicitud cambia entre turnos. Alternar la [herramienta de asesor](/es/advisor) es una excepción: su definición se encuentra después del punto de ruptura de caché, por lo que habilitar o deshabilitar `/advisor` mantiene el prefijo en caché intacto. Si un cambio de [servidor MCP](/es/mcp) hace esto depende de si sus herramientas se difieren por [búsqueda de herramientas](/es/mcp#scale-with-mcp-tool-search) o se cargan en el prefijo:

105 107 

106* **Herramientas diferidas**, el valor predeterminado en modelos compatibles: un servidor que se conecta, desconecta o cambia su lista de herramientas solo añade contenido nuevo y no perturba nada ya almacenado en caché.108* **Herramientas diferidas**, el valor predeterminado en modelos compatibles: un servidor que se conecta, desconecta o cambia su lista de herramientas solo añade contenido nuevo y no perturba nada ya almacenado en caché.

107* **Herramientas cargadas en el prefijo**: cualquier cambio en ellas invalida el caché. Esto sucede cuando [la búsqueda de herramientas no está disponible o está deshabilitada](/es/mcp#configure-tool-search), como en modelos Haiku, en Vertex AI, o con una puerta de enlace `ANTHROPIC_BASE_URL` personalizada. También sucede para un servidor o herramienta marcada [`alwaysLoad`](/es/mcp#exempt-a-server-from-deferral), y para definiciones mantenidas al frente por [carga basada en umbral](/es/mcp#configure-tool-search).109* **Herramientas cargadas en el prefijo**: cualquier cambio en ellas invalida el caché. Esto sucede cuando [la búsqueda de herramientas no está disponible o está deshabilitada](/es/mcp#configure-tool-search), como en modelos Haiku, en Vertex AI, o con una puerta de enlace `ANTHROPIC_BASE_URL` personalizada. También sucede para un servidor o herramienta marcada [`alwaysLoad`](/es/mcp#exempt-a-server-from-deferral), y para definiciones mantenidas al frente por [carga basada en umbral](/es/mcp#configure-tool-search).


118 120 

119La excepción es un plugin que proporciona [servidores MCP](/es/plugins-reference#mcp-servers). Habilitar o deshabilitar uno sigue las mismas reglas que [conectar o desconectar un servidor MCP](#connecting-or-disconnecting-an-mcp-server): el caché sobrevive cuando las herramientas del servidor se difieren, y la siguiente solicitud vuelve a leer toda la conversación cuando se cargan en el prefijo.121La excepción es un plugin que proporciona [servidores MCP](/es/plugins-reference#mcp-servers). Habilitar o deshabilitar uno sigue las mismas reglas que [conectar o desconectar un servidor MCP](#connecting-or-disconnecting-an-mcp-server): el caché sobrevive cuando las herramientas del servidor se difieren, y la siguiente solicitud vuelve a leer toda la conversación cuando se cargan en el prefijo.

120 122 

121Los cambios de plugin se aplican cuando ejecuta [`/reload-plugins`](/es/discover-plugins#apply-plugin-changes-without-restarting) o inicia una nueva sesión. El costo, ya sean anuncios añadidos o una relectura completa, se muestra en el primer turno después de la recarga, no cuando ejecuta `/plugin install`, `/plugin enable`, o `/plugin disable`.123Los cambios de plugin se aplican cuando ejecuta [`/reload-plugins`](/es/discover-plugins#apply-plugin-changes-without-restarting) o inicia una nueva sesión. El costo, ya sean anuncios añadidos o una relectura completa, se muestra en el primer turno después de la recarga, no cuando ejecuta `/plugin install`, `/plugin enable`, o `/plugin disable`. {/* min-version: 2.1.163 */}A partir de v2.1.163, cuando una recarga activaría la relectura completa, `/reload-plugins` muestra una advertencia y no aplica la recarga. Pase `--force` para aplicar de todas formas.

122 124 

123Deshabilitar un plugin que habilitó anteriormente en la sesión restaura la forma de solicitud anterior. Si ese prefijo aún está dentro de su [vida útil de caché](#cache-lifetime), la siguiente solicitud lee la entrada de caché más antigua en lugar de reconstruir.125Deshabilitar un plugin que habilitó anteriormente en la sesión restaura la forma de solicitud anterior. Si ese prefijo aún está dentro de su [vida útil de caché](#cache-lifetime), la siguiente solicitud lee la entrada de caché más antigua en lugar de reconstruir.

124 126 


128 130 

129Agregar un nombre de herramienta simple como `Bash` o `WebFetch` como una [regla de denegación](/es/permissions#manage-permissions) elimina esa herramienta del contexto de Claude por completo. Las definiciones de herramientas integradas se cargan en la capa del prompt del sistema, por lo que agregar o eliminar una de estas reglas a mitad de sesión invalida el caché. El cambio entra en vigor en el siguiente turno, ya sea que lo agregue a través de `/permissions` o [editando un archivo de configuración directamente](/es/settings#when-edits-take-effect).131Agregar un nombre de herramienta simple como `Bash` o `WebFetch` como una [regla de denegación](/es/permissions#manage-permissions) elimina esa herramienta del contexto de Claude por completo. Las definiciones de herramientas integradas se cargan en la capa del prompt del sistema, por lo que agregar o eliminar una de estas reglas a mitad de sesión invalida el caché. El cambio entra en vigor en el siguiente turno, ya sea que lo agregue a través de `/permissions` o [editando un archivo de configuración directamente](/es/settings#when-edits-take-effect).

130 132 

131Solo un nombre de herramienta simple, o la forma equivalente `Bash(*)`, tiene este efecto. Las reglas de denegación con alcance como `Bash(rm *)`, y todas las reglas de permitir y preguntar, no cambian qué herramientas ve Claude. Claude Code las verifica cuando Claude intenta una llamada, dejando el prefijo intacto.133Solo una regla de denegación que coincida en la posición del nombre de la herramienta tiene este efecto: un nombre de herramienta simple, la forma equivalente `Bash(*)`, o un [glob de nombre de herramienta](/es/permissions#tool-name-wildcards) como `"*"`. Un glob que coincida solo con herramientas MCP, como `"mcp__*"`, elimina esas herramientas de la misma manera pero deja el caché intacto cuando las herramientas coincidentes se [difieren](#connecting-or-disconnecting-an-mcp-server), el valor predeterminado, ya que las definiciones diferidas nunca estuvieron en el prefijo en caché. Las reglas de denegación con alcance como `Bash(rm *)`, y todas las reglas de permitir y preguntar, no cambian qué herramientas ve Claude. Claude Code las verifica cuando Claude intenta una llamada, dejando el prefijo intacto.

132 134 

133<h3 id="compacting-the-conversation">135<h3 id="compacting-the-conversation">

134 Compactar la conversación136 Compactar la conversación


290| `DISABLE_PROMPT_CACHING_HAIKU` | Desactivar solo para Haiku |292| `DISABLE_PROMPT_CACHING_HAIKU` | Desactivar solo para Haiku |

291| `DISABLE_PROMPT_CACHING_SONNET` | Desactivar solo para Sonnet |293| `DISABLE_PROMPT_CACHING_SONNET` | Desactivar solo para Sonnet |

292| `DISABLE_PROMPT_CACHING_OPUS` | Desactivar solo para Opus |294| `DISABLE_PROMPT_CACHING_OPUS` | Desactivar solo para Opus |

295| `DISABLE_PROMPT_CACHING_FABLE` | Desactivar solo para Fable |

293 296 

294Para establecer la política de almacenamiento en caché en toda una organización, coloque cualquiera de estas o las [variables de TTL](#cache-lifetime) en el bloque `env` de [managed settings](/es/settings#settings-files). Para uso normal, deje el almacenamiento en caché habilitado.297Para establecer la política de almacenamiento en caché en toda una organización, coloque cualquiera de estas o las [variables de TTL](#cache-lifetime) en el bloque `env` de [configuración administrada](/es/settings#settings-files). Para uso normal, deje el almacenamiento en caché habilitado.

295 298 

296<h2 id="related-resources">299<h2 id="related-resources">

297 Recursos relacionados300 Recursos relacionados

quickstart.md +12 −5

Details

118claude118claude

119```119```

120 120 

121Verá la pantalla de bienvenida de Claude Code con la información de su sesión, conversaciones recientes y las últimas actualizaciones. Escriba `/help` para ver los comandos disponibles o `/resume` para continuar una conversación anterior.121Verá la pantalla de Claude Code con la versión, el modelo actual y el directorio de trabajo mostrados arriba. Escriba `/help` para ver los comandos disponibles o `/resume` para continuar una conversación anterior.

122 122 

123<Tip>123<Tip>

124 Después de iniciar sesión (Paso 2), sus credenciales se almacenan en su sistema. Obtenga más información en [Gestión de credenciales](/es/authentication#credential-management).124 Después de iniciar sesión (Paso 2), sus credenciales se almacenan en su sistema. Obtenga más información en [Gestión de credenciales](/es/authentication#credential-management).


278 Comandos esenciales278 Comandos esenciales

279</h2>279</h2>

280 280 

281Aquí están los comandos más importantes para el uso diario:281Aquí están los comandos más importantes para el uso diario. Los comandos de shell se ejecutan desde su terminal para iniciar o reanudar Claude Code. Los comandos de sesión se ejecutan dentro de Claude Code después de que se inicia.

282 

283**Comandos de shell**

282 284 

283| Comando | Qué hace | Ejemplo |285| Comando | Qué hace | Ejemplo |

284| ------------------- | ------------------------------------------------------------- | ----------------------------------- |286| ------------------- | ------------------------------------------------------------- | ----------------------------------- |


287| `claude -p "query"` | Ejecuta una consulta única y luego sale | `claude -p "explain this function"` |289| `claude -p "query"` | Ejecuta una consulta única y luego sale | `claude -p "explain this function"` |

288| `claude -c` | Continúa la conversación más reciente en el directorio actual | `claude -c` |290| `claude -c` | Continúa la conversación más reciente en el directorio actual | `claude -c` |

289| `claude -r` | Reanuda una conversación anterior | `claude -r` |291| `claude -r` | Reanuda una conversación anterior | `claude -r` |

292 

293**Comandos de sesión**

294 

295| Comando | Qué hace | Ejemplo |

296| ---------------- | ---------------------------------- | -------- |

290| `/clear` | Borra el historial de conversación | `/clear` |297| `/clear` | Borra el historial de conversación | `/clear` |

291| `/help` | Muestra los comandos disponibles | `/help` |298| `/help` | Muestra los comandos disponibles | `/help` |

292| `exit` o Ctrl+D | Salir de Claude Code | `exit` |299| `/exit` o Ctrl+D | Salir de Claude Code | `/exit` |

293 300 

294Consulte la [referencia de CLI](/es/cli-reference) para obtener una lista completa de comandos.301Consulte la [referencia de CLI](/es/cli-reference) para obtener una lista completa de comandos de shell y la [referencia de comandos](/es/commands) para obtener una lista completa de comandos de sesión.

295 302 

296<h2 id="pro-tips-for-beginners">303<h2 id="pro-tips-for-beginners">

297 Consejos profesionales para principiantes304 Consejos profesionales para principiantes


336 </Accordion>343 </Accordion>

337</AccordionGroup>344</AccordionGroup>

338 345 

339<h2 id="what-s-next">346<h2 id="whats-next">

340 ¿Qué sigue?347 ¿Qué sigue?

341</h2>348</h2>

342 349 

remote-control.md +21 −10

Details

93 /remote-control My Project93 /remote-control My Project

94 ```94 ```

95 95 

96 Esto inicia una sesión de Remote Control que lleva su historial de conversación actual y muestra una URL de sesión y código QR que puede usar para [conectarse desde otro dispositivo](#connect-from-another-device). Las banderas `--verbose`, `--sandbox` y `--no-sandbox` no están disponibles con este comando.96 Esto inicia una sesión de Remote Control que lleva su historial de conversación actual.

97 

98 Las banderas `--verbose`, `--sandbox` y `--no-sandbox` no están disponibles con este comando.

97 </Tab>99 </Tab>

98 100 

99 <Tab title="VS Code">101 <Tab title="VS Code">


111 </Tab>113 </Tab>

112</Tabs>114</Tabs>

113 115 

116<h3 id="check-connection-status">

117 Verifique el estado de la conexión

118</h3>

119 

120En una sesión de terminal interactiva, un indicador `/rc active` se encuentra en el pie de página debajo del cuadro de entrada mientras la conexión está activa, y se oculta si la terminal es demasiado estrecha para ajustarlo. El texto del indicador es un enlace a la sesión en claude.ai. Selecciónelo con la tecla de flecha hacia abajo y presione Intro, o ejecute `/remote-control` nuevamente, para abrir un panel de estado con la URL de la sesión y un código QR que puede usar para [conectarse desde otro dispositivo](#connect-from-another-device).

121 

122Si la conexión falla, el indicador se vuelve rojo y muestra `/rc failed`. Selecciónelo con la tecla de flecha hacia abajo y presione Intro para ver el motivo del fallo y una opción de descartar, o ejecute `/remote-control` nuevamente para reintentar.

123 

114<h3 id="connect-from-another-device">124<h3 id="connect-from-another-device">

115 Conectarse desde otro dispositivo125 Conectarse desde otro dispositivo

116</h3>126</h3>


1283. El último mensaje significativo en el historial de conversación existente1383. El último mensaje significativo en el historial de conversación existente

1294. Un nombre generado automáticamente como `myhost-graceful-unicorn`, donde `myhost` es el nombre de host de su máquina o el prefijo que estableció con `--remote-control-session-name-prefix`1394. Un nombre generado automáticamente como `myhost-graceful-unicorn`, donde `myhost` es el nombre de host de su máquina o el prefijo que estableció con `--remote-control-session-name-prefix`

130 140 

131Si no estableció un nombre explícito, el título se actualiza para reflejar su solicitud una vez que envíe una. Renombrar una sesión desde claude.ai o la aplicación Claude también actualiza el título local que se muestra en `claude --resume`.141Si no estableció un nombre explícito, el título se actualiza para reflejar su solicitud una vez que envíe una. {/* min-version: 2.1.176 */}A partir de Claude Code v2.1.176, los títulos generados automáticamente coinciden con el idioma de su conversación, o la configuración [`language`](/es/settings#available-settings) si una está configurada. Renombrar una sesión desde claude.ai o la aplicación Claude también actualiza el título local que se muestra en `claude --resume`.

132 142 

133Si el entorno ya tiene una sesión activa, se le preguntará si desea continuarla o iniciar una nueva.143Si el entorno ya tiene una sesión activa, se le preguntará si desea continuarla o iniciar una nueva.

134 144 


164 174 

165Cuando Remote Control está activo, Claude puede enviar notificaciones push a su teléfono.175Cuando Remote Control está activo, Claude puede enviar notificaciones push a su teléfono.

166 176 

167Claude decide cuándo enviar. Típicamente envía una cuando una tarea de larga duración finaliza o cuando necesita una decisión de usted para continuar. También puede solicitar un push en su solicitud, por ejemplo `notify me when the tests finish`. Más allá del botón de alternancia activado/desactivado a continuación, no hay configuración por evento.177Claude decide cuándo enviar. Típicamente envía una cuando una tarea de larga duración finaliza o cuando necesita una decisión de usted para continuar. También puede solicitar un push en su solicitud, por ejemplo `notify me when the tests finish`. Más allá de los dos botones de alternancia activado/desactivado a continuación, no hay configuración por evento.

168 178 

169<Note>179<Note>

170 Las notificaciones push móviles requieren Claude Code v2.1.110 o posterior.180 Las notificaciones push móviles requieren Claude Code v2.1.110 o posterior.


186 </Step>196 </Step>

187 197 

188 <Step title="Habilite push en Claude Code">198 <Step title="Habilite push en Claude Code">

189 En su terminal, ejecute `/config` y habilite **Push when Claude decides**.199 En su terminal, ejecute `/config` y habilite **Push when Claude decides** para notificaciones proactivas, **Push when actions required** para mensajes de solicitud de permiso y preguntas, o ambos.

190 </Step>200 </Step>

191</Steps>201</Steps>

192 202 


204* **El proceso local debe seguir ejecutándose**: Remote Control se ejecuta como un proceso local. Si cierra la terminal, cierra VS Code, o detiene el proceso `claude` de otra manera, la sesión finaliza.214* **El proceso local debe seguir ejecutándose**: Remote Control se ejecuta como un proceso local. Si cierra la terminal, cierra VS Code, o detiene el proceso `claude` de otra manera, la sesión finaliza.

205* **Interrupción de red extendida**: si su máquina está despierta pero no puede alcanzar la red durante más de aproximadamente 10 minutos, la sesión agota el tiempo de espera y el proceso se cierra. Ejecute `claude remote-control` nuevamente para iniciar una nueva sesión.215* **Interrupción de red extendida**: si su máquina está despierta pero no puede alcanzar la red durante más de aproximadamente 10 minutos, la sesión agota el tiempo de espera y el proceso se cierra. Ejecute `claude remote-control` nuevamente para iniciar una nueva sesión.

206* **Ultraplan desconecta Remote Control**: iniciar una sesión de [ultraplan](/es/ultraplan) desconecta cualquier sesión de Remote Control activa porque ambas características ocupan la interfaz claude.ai/code y solo una puede estar conectada a la vez.216* **Ultraplan desconecta Remote Control**: iniciar una sesión de [ultraplan](/es/ultraplan) desconecta cualquier sesión de Remote Control activa porque ambas características ocupan la interfaz claude.ai/code y solo una puede estar conectada a la vez.

207* **Algunos comandos son solo locales**: comandos que abren un selector interactivo en la terminal, como `/mcp`, `/plugin`, o `/resume`, funcionan solo desde la CLI local. Los comandos que producen salida de texto, incluyendo `/compact`, `/clear`, `/context`, `/usage`, `/exit`, `/usage-credits`, `/recap`, y `/reload-plugins`, funcionan desde móvil y web.217* **Algunos comandos son solo locales**: comandos que abren un selector interactivo en la terminal, como `/plugin` o `/resume`, funcionan solo desde la CLI local. Los comandos que producen salida de texto, incluyendo `/compact`, `/clear`, `/context`, `/usage`, `/exit`, `/usage-credits`, `/recap`, y `/reload-plugins`, funcionan desde móvil y web. {/* min-version: 2.1.166 */}A partir de v2.1.166, `/mcp` también funciona desde móvil y web: devuelve un resumen de texto del estado del servidor en lugar de abrir el selector, y acepta los mismos [subcomandos](/es/commands#all-commands) que la CLI local, con una diferencia: desde móvil y web, `/mcp reconnect` sin nombre de servidor reconecta cada servidor que ha fallado o necesita autenticación, mientras que la CLI local requiere un nombre de servidor para `reconnect`.

208 218 

209<h2 id="troubleshooting">219<h2 id="troubleshooting">

210 Solución de problemas220 Solución de problemas


232 "Remote Control is not yet enabled for your account"242 "Remote Control is not yet enabled for your account"

233</h3>243</h3>

234 244 

235La verificación de elegibilidad puede fallar con ciertas variables de entorno presentes:245La verificación de Remote Control no ha llegado a su cuenta, o sus derechos en caché están desactualizados. Si cambió recientemente de plan, ejecute `claude auth logout` y luego `claude auth login` para actualizarlos. Ejecute `claude doctor` para ver qué verificación de elegibilidad individual falló. Los conflictos de variables de entorno, las verificaciones inaccesibles y la política de la organización producen cada uno su propio mensaje, por lo que este error significa la puerta de verificación en sí.

236 246 

237* `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` o `DISABLE_TELEMETRY`: desactívelas e intente de nuevo.247<h3 id="couldn’t-verify-remote-control-eligibility">

238* `CLAUDE_CODE_USE_BEDROCK`, `CLAUDE_CODE_USE_VERTEX`, o `CLAUDE_CODE_USE_FOUNDRY`: Remote Control requiere autenticación de claude.ai y no funciona con proveedores de terceros.248 "Couldn't verify Remote Control eligibility"

249</h3>

239 250 

240Si ninguno de estos está configurado, ejecute `/logout` luego `/login` para actualizar.251Claude Code no pudo alcanzar el servicio de banderas de características para verificar si Remote Control está habilitado para su cuenta, típicamente porque está sin conexión o un proxy está bloqueando la solicitud. Reintente una vez que tenga acceso a la red, o ejecute `claude doctor` para obtener detalles. El mensaje relacionado "Couldn't verify your organization's Remote Control policy" tiene la misma causa y la misma solución. Ambos mensajes se agregaron en v2.1.178.

241 252 

242<h3 id="remote-control-is-disabled-by-your-organization-s-policy">253<h3 id="remote-control-is-disabled-by-your-organizations-policy">

243 "Remote Control is disabled by your organization's policy"254 "Remote Control is disabled by your organization's policy"

244</h3>255</h3>

245 256 

routines.md +78 −28

Details

26 26 

27Esta página cubre la creación de una rutina, la configuración de cada tipo de disparador, la administración de ejecuciones y cómo se aplican los límites de uso.27Esta página cubre la creación de una rutina, la configuración de cada tipo de disparador, la administración de ejecuciones y cómo se aplican los límites de uso.

28 28 

29## Casos de uso de ejemplo29<h2 id="example-use-cases">

30 Casos de uso de ejemplo

31</h2>

30 32 

31Cada ejemplo empareja un tipo de disparador con el tipo de trabajo para el que las rutinas son adecuadas: desatendido, repetible y vinculado a un resultado claro.33Cada ejemplo empareja un tipo de disparador con el tipo de trabajo para el que las rutinas son adecuadas: desatendido, repetible y vinculado a un resultado claro.

32 34 


44 46 

45Las secciones a continuación le guían a través de la creación de una rutina y la configuración de cada uno de estos tipos de disparadores.47Las secciones a continuación le guían a través de la creación de una rutina y la configuración de cada uno de estos tipos de disparadores.

46 48 

47## Crear una rutina49<h2 id="create-a-routine">

50 Crear una rutina

51</h2>

48 52 

49Cree una rutina desde la web en [claude.ai/code/routines](https://claude.ai/code/routines), desde la aplicación de escritorio o desde la CLI. Las tres superficies escriben en la misma cuenta en la nube, por lo que una rutina que cree en una aparece en las otras inmediatamente. En la aplicación de escritorio, haga clic en **Routines** en la barra lateral, luego en **New routine**, y elija **Remote**; elegir **Local** en su lugar crea una [tarea programada de escritorio](/es/desktop-scheduled-tasks), que se ejecuta en su máquina en lugar de en la nube.53Cree una rutina desde la web en [claude.ai/code/routines](https://claude.ai/code/routines), desde la aplicación de escritorio o desde la CLI. Las tres superficies escriben en la misma cuenta en la nube, por lo que una rutina que cree en una aparece en las otras inmediatamente. En la aplicación de escritorio, haga clic en **Routines** en la barra lateral, luego en **New routine**, y elija **Remote**; elegir **Local** en su lugar crea una [tarea programada de escritorio](/es/desktop-scheduled-tasks), que se ejecuta en su máquina en lugar de en la nube.

50 54 


54 58 

55Las rutinas pertenecen a su cuenta individual de claude.ai. No se comparten con compañeros de equipo y cuentan contra la asignación diaria de ejecuciones de su cuenta. Cualquier cosa que una rutina haga a través de su identidad de GitHub conectada o conectores aparece como usted: los commits y las solicitudes de extracción llevan su usuario de GitHub, y los mensajes de Slack, tickets de Linear u otras acciones de conectores utilizan sus cuentas vinculadas para esos servicios.59Las rutinas pertenecen a su cuenta individual de claude.ai. No se comparten con compañeros de equipo y cuentan contra la asignación diaria de ejecuciones de su cuenta. Cualquier cosa que una rutina haga a través de su identidad de GitHub conectada o conectores aparece como usted: los commits y las solicitudes de extracción llevan su usuario de GitHub, y los mensajes de Slack, tickets de Linear u otras acciones de conectores utilizan sus cuentas vinculadas para esos servicios.

56 60 

57### Crear desde la web61<h3 id="create-from-the-web">

62 Crear desde la web

63</h3>

58 64 

59<Steps>65<Steps>

60 <Step title="Abrir el formulario de creación">66 <Step title="Abrir el formulario de creación">


114 </Step>120 </Step>

115</Steps>121</Steps>

116 122 

117### Crear desde la CLI123<h3 id="create-from-the-cli">

124 Crear desde la CLI

125</h3>

118 126 

119Ejecute `/schedule` en cualquier sesión para crear una rutina programada conversacionalmente. También puede pasar una descripción directamente, para una rutina recurrente como `/schedule daily PR review at 9am` o una única como `/schedule clean up feature flag in one week`. Claude recorre la misma información que recopila el formulario web, luego guarda la rutina en su cuenta.127Ejecute `/schedule` en cualquier sesión para crear una rutina programada conversacionalmente. También puede pasar una descripción directamente, para una rutina recurrente como `/schedule daily PR review at 9am` o una única como `/schedule clean up feature flag in one week`. Claude recorre la misma información que recopila el formulario web, luego guarda la rutina en su cuenta.

120 128 


122 130 

123La CLI también admite la administración de rutinas existentes. Ejecute `/schedule list` para ver todas las rutinas, `/schedule update` para cambiar una, o `/schedule run` para activarla inmediatamente.131La CLI también admite la administración de rutinas existentes. Ejecute `/schedule list` para ver todas las rutinas, `/schedule update` para cambiar una, o `/schedule run` para activarla inmediatamente.

124 132 

125## Configurar disparadores133<h2 id="configure-triggers">

134 Configurar disparadores

135</h2>

126 136 

127Una rutina comienza cuando uno de sus disparadores coincide. Puede adjuntar cualquier combinación de disparadores de horario, API y GitHub a la misma rutina, y agregarlos o quitarlos en cualquier momento desde la sección **Select a trigger** del formulario de edición de la rutina.137Una rutina comienza cuando uno de sus disparadores coincide. Puede adjuntar cualquier combinación de disparadores de horario, API y GitHub a la misma rutina, y agregarlos o quitarlos en cualquier momento desde la sección **Select a trigger** del formulario de edición de la rutina.

128 138 

129### Agregar un disparador de horario139<h3 id="add-a-schedule-trigger">

140 Agregar un disparador de horario

141</h3>

130 142 

131Un disparador de horario ejecuta la rutina en una cadencia recurrente, o una sola vez en un momento futuro específico. Elija una frecuencia preestablecida en la sección **Select a trigger**: cada hora, diaria, días de semana o semanal. Los tiempos se ingresan en su zona local y se convierten automáticamente, por lo que la rutina se ejecuta a esa hora de reloj de pared independientemente de dónde se encuentre la infraestructura en la nube.143Un disparador de horario ejecuta la rutina en una cadencia recurrente, o una sola vez en un momento futuro específico. Elija una frecuencia preestablecida en la sección **Select a trigger**: cada hora, diaria, días de semana o semanal. Los tiempos se ingresan en su zona local y se convierten automáticamente, por lo que la rutina se ejecuta a esa hora de reloj de pared independientemente de dónde se encuentre la infraestructura en la nube.

132 144 


134 146 

135Para un intervalo personalizado como cada dos horas o el primero de cada mes, elija el preestablecido más cercano en el formulario, luego ejecute `/schedule update` en la CLI para establecer una expresión cron específica. El intervalo mínimo es una hora; las expresiones que se ejecutan con más frecuencia se rechazan.147Para un intervalo personalizado como cada dos horas o el primero de cada mes, elija el preestablecido más cercano en el formulario, luego ejecute `/schedule update` en la CLI para establecer una expresión cron específica. El intervalo mínimo es una hora; las expresiones que se ejecutan con más frecuencia se rechazan.

136 148 

137#### Programar una ejecución única149<h4 id="schedule-a-one-off-run">

150 Programar una ejecución única

151</h4>

138 152 

139Una programación única dispara la rutina una sola vez en una marca de tiempo específica. Úsela para recordarse más adelante en la semana, para abrir un PR de limpieza después de que finalice un despliegue, o para iniciar una tarea de seguimiento cuando llega un cambio ascendente. Después de que se dispara la rutina, se desactiva automáticamente y la interfaz de usuario web la marca como **Ran**. Para ejecutarla nuevamente, edite la rutina y establezca una nueva hora única.153Una programación única dispara la rutina una sola vez en una marca de tiempo específica. Úsela para recordarse más adelante en la semana, para abrir un PR de limpieza después de que finalice un despliegue, o para iniciar una tarea de seguimiento cuando llega un cambio ascendente. Después de que se dispara la rutina, se desactiva automáticamente y la interfaz de usuario web la marca como **Ran**. Para ejecutarla nuevamente, edite la rutina y establezca una nueva hora única.

140 154 


152 166 

153Las ejecuciones únicas no cuentan contra el límite diario de ejecuciones de rutina. Consumen el uso de suscripción regular de su plan como cualquier otra sesión. Consulte [Uso y límites](#usage-and-limits) para obtener detalles.167Las ejecuciones únicas no cuentan contra el límite diario de ejecuciones de rutina. Consumen el uso de suscripción regular de su plan como cualquier otra sesión. Consulte [Uso y límites](#usage-and-limits) para obtener detalles.

154 168 

155### Agregar un disparador de API169<h3 id="add-an-api-trigger">

170 Agregar un disparador de API

171</h3>

156 172 

157Un disparador de API proporciona a una rutina un punto final HTTP dedicado. POSTear al punto final con el token de portador de la rutina inicia una nueva sesión y devuelve una URL de sesión. Úselo para conectar Claude Code en sistemas de alertas, canalizaciones de implementación, herramientas internas o en cualquier lugar donde pueda hacer una solicitud HTTP autenticada.173Un disparador de API proporciona a una rutina un punto final HTTP dedicado. POSTear al punto final con el token de portador de la rutina inicia una nueva sesión y devuelve una URL de sesión. Úselo para conectar Claude Code en sistemas de alertas, canalizaciones de implementación, herramientas internas o en cualquier lugar donde pueda hacer una solicitud HTTP autenticada.

158 174 


172 </Step>188 </Step>

173 189 

174 <Step title="Llamar al punto final">190 <Step title="Llamar al punto final">

175 Envíe el token en el encabezado `Authorization: Bearer` cuando POST a la URL. La sección [Trigger a routine](#trigger-a-routine) a continuación muestra un ejemplo completo.191 Envíe el token en el encabezado `Authorization: Bearer` cuando POST a la URL. La sección [Activar una rutina](#trigger-a-routine) a continuación muestra un ejemplo completo.

176 </Step>192 </Step>

177</Steps>193</Steps>

178 194 

179Cada rutina tiene su propio token, limitado a activar solo esa rutina. Para rotarlo o revocarlo, vuelva al mismo modal y haga clic en **Regenerate** o **Revoke**.195Cada rutina tiene su propio token, limitado a activar solo esa rutina. Para rotarlo o revocarlo, vuelva al mismo modal y haga clic en **Regenerate** o **Revoke**.

180 196 

181#### Activar una rutina197<h4 id="trigger-a-routine">

198 Activar una rutina

199</h4>

182 200 

183Envíe una solicitud POST al punto final `/fire` con el token de portador en el encabezado `Authorization`. El cuerpo de la solicitud acepta un campo `text` opcional para contexto específico de la ejecución, como un cuerpo de alerta o un registro fallido, pasado a la rutina junto con su prompt guardado. El valor es texto de forma libre y no se analiza: si envía JSON u otra carga útil estructurada, la rutina la recibe como una cadena literal.201Envíe una solicitud POST al punto final `/fire` con el token de portador en el encabezado `Authorization`. El cuerpo de la solicitud acepta un campo `text` opcional para contexto específico de la ejecución, como un cuerpo de alerta o un registro fallido, pasado a la rutina junto con su prompt guardado. El valor es texto de forma libre y no se analiza: si envía JSON u otra carga útil estructurada, la rutina la recibe como una cadena literal.

184 202 


209 El punto final `/fire` se envía bajo el encabezado beta `experimental-cc-routine-2026-04-01`. Las formas de solicitud y respuesta, los límites de velocidad y la semántica de tokens pueden cambiar mientras la característica está en vista previa de investigación. Los cambios importantes se envían detrás de nuevas versiones de encabezado beta con fecha, y las dos versiones de encabezado anteriores más recientes continúan funcionando para que los llamadores tengan tiempo de migrar.227 El punto final `/fire` se envía bajo el encabezado beta `experimental-cc-routine-2026-04-01`. Las formas de solicitud y respuesta, los límites de velocidad y la semántica de tokens pueden cambiar mientras la característica está en vista previa de investigación. Los cambios importantes se envían detrás de nuevas versiones de encabezado beta con fecha, y las dos versiones de encabezado anteriores más recientes continúan funcionando para que los llamadores tengan tiempo de migrar.

210</Warning>228</Warning>

211 229 

212#### Referencia de API230<h4 id="api-reference">

231 Referencia de API

232</h4>

213 233 

214Para la referencia completa de la API, incluidas todas las respuestas de error, reglas de validación y límites de campo, consulte [Trigger a routine via API](https://platform.claude.com/docs/es/api/claude-code/routines-fire) en la documentación de la plataforma Claude.234Para la referencia completa de la API, incluidas todas las respuestas de error, reglas de validación y límites de campo, consulte [Activar una rutina a través de API](https://platform.claude.com/docs/es/api/claude-code/routines-fire) en la documentación de la plataforma Claude.

215 235 

216El punto final `/fire` está disponible solo para usuarios de claude.ai y no es parte de la superficie de la API de Claude Platform.236El punto final `/fire` está disponible solo para usuarios de claude.ai y no es parte de la superficie de la API de Claude Platform.

217 237 

218### Agregar un disparador de GitHub238<h3 id="add-a-github-trigger">

239 Agregar un disparador de GitHub

240</h3>

219 241 

220Un disparador de GitHub inicia una nueva sesión automáticamente cuando ocurre un evento coincidente en un repositorio conectado. Cada evento coincidente inicia su propia sesión.242Un disparador de GitHub inicia una nueva sesión automáticamente cuando ocurre un evento coincidente en un repositorio conectado. Cada evento coincidente inicia su propia sesión.

221 243 


247 </Step>269 </Step>

248</Steps>270</Steps>

249 271 

250#### Eventos admitidos272<h4 id="supported-events">

273 Eventos admitidos

274</h4>

251 275 

252Los disparadores de GitHub pueden suscribirse a cualquiera de las siguientes categorías de eventos. Dentro de cada categoría, puede elegir una acción específica, como `pull_request.opened`, o reaccionar a todas las acciones en la categoría.276Los disparadores de GitHub pueden suscribirse a cualquiera de las siguientes categorías de eventos. Dentro de cada categoría, puede elegir una acción específica, como `pull_request.opened`, o reaccionar a todas las acciones en la categoría.

253 277 


256| Solicitud de extracción | Se abre, cierra, asigna, etiqueta, sincroniza o actualiza de otra manera un PR |280| Solicitud de extracción | Se abre, cierra, asigna, etiqueta, sincroniza o actualiza de otra manera un PR |

257| Lanzamiento | Se crea, publica, edita o elimina un lanzamiento |281| Lanzamiento | Se crea, publica, edita o elimina un lanzamiento |

258 282 

259#### Filtrar solicitudes de extracción283<h4 id="filter-pull-requests">

284 Filtrar solicitudes de extracción

285</h4>

260 286 

261Use filtros para reducir qué solicitudes de extracción inician una nueva sesión. Todas las condiciones de filtro deben coincidir para que la rutina se active. Los campos de filtro disponibles son:287Use filtros para reducir qué solicitudes de extracción inician una nueva sesión. Todas las condiciones de filtro deben coincidir para que la rutina se active. Los campos de filtro disponibles son:

262 288 


281* **Solo listo para revisión**: es borrador es `false`. Omite borradores para que la rutina solo se ejecute cuando el PR esté listo para revisión.307* **Solo listo para revisión**: es borrador es `false`. Omite borradores para que la rutina solo se ejecute cuando el PR esté listo para revisión.

282* **Retroportación controlada por etiqueta**: las etiquetas incluyen `needs-backport`. Activa una rutina de puerto a otra rama solo cuando un mantenedor etiqueta el PR.308* **Retroportación controlada por etiqueta**: las etiquetas incluyen `needs-backport`. Activa una rutina de puerto a otra rama solo cuando un mantenedor etiqueta el PR.

283 309 

284#### Cómo se asignan las sesiones a los eventos310<h4 id="how-sessions-map-to-events">

311 Cómo se asignan las sesiones a los eventos

312</h4>

285 313 

286Cada evento de GitHub coincidente inicia una nueva sesión. La reutilización de sesiones entre eventos no está disponible para rutinas activadas por GitHub, por lo que dos actualizaciones de PR producen dos sesiones independientes.314Cada evento de GitHub coincidente inicia una nueva sesión. La reutilización de sesiones entre eventos no está disponible para rutinas activadas por GitHub, por lo que dos actualizaciones de PR producen dos sesiones independientes.

287 315 

288## Administrar rutinas316<h2 id="manage-routines">

317 Administrar rutinas

318</h2>

289 319 

290Haga clic en una rutina en la lista para abrir su página de detalles. La página de detalles muestra los repositorios de la rutina, conectores, prompt, horario, tokens de API, disparadores de GitHub y una lista de ejecuciones anteriores.320Haga clic en una rutina en la lista para abrir su página de detalles. La página de detalles muestra los repositorios de la rutina, conectores, prompt, horario, tokens de API, disparadores de GitHub y una lista de ejecuciones anteriores.

291 321 

292### Ver e interactuar con ejecuciones322<h3 id="view-and-interact-with-runs">

323 Ver e interactuar con ejecuciones

324</h3>

293 325 

294Haga clic en cualquier ejecución para abrirla como una sesión completa. Desde allí puede ver qué hizo Claude, revisar cambios, crear una solicitud de extracción o continuar la conversación. Cada sesión de ejecución funciona como cualquier otra sesión: use el menú desplegable junto al título de la sesión para renombrar, archivar o eliminar.326Haga clic en cualquier ejecución para abrirla como una sesión completa. Desde allí puede ver qué hizo Claude, revisar cambios, crear una solicitud de extracción o continuar la conversación. Cada sesión de ejecución funciona como cualquier otra sesión: use el menú desplegable junto al título de la sesión para renombrar, archivar o eliminar.

295 327 


297 Un estado verde en la lista de ejecuciones significa que la sesión se inició y se cerró sin un error de infraestructura. No significa que la tarea en su prompt haya tenido éxito. Abra la ejecución para leer la transcripción y confirmar qué hizo realmente Claude. Las solicitudes de red bloqueadas, las herramientas de conectores faltantes y los fallos a nivel de tarea aparecen allí en lugar de en el indicador de estado.329 Un estado verde en la lista de ejecuciones significa que la sesión se inició y se cerró sin un error de infraestructura. No significa que la tarea en su prompt haya tenido éxito. Abra la ejecución para leer la transcripción y confirmar qué hizo realmente Claude. Las solicitudes de red bloqueadas, las herramientas de conectores faltantes y los fallos a nivel de tarea aparecen allí en lugar de en el indicador de estado.

298</Note>330</Note>

299 331 

300### Editar y controlar rutinas332<h3 id="edit-and-control-routines">

333 Editar y controlar rutinas

334</h3>

301 335 

302Desde la página de detalles de la rutina puede:336Desde la página de detalles de la rutina puede:

303 337 


306* Haga clic en el icono de lápiz para abrir **Edit routine** y cambiar el nombre, prompt, repositorios, entorno, conectores o cualquiera de los disparadores de la rutina. La sección **Select a trigger** es donde agrega o elimina horarios, tokens de API y disparadores de eventos de GitHub.340* Haga clic en el icono de lápiz para abrir **Edit routine** y cambiar el nombre, prompt, repositorios, entorno, conectores o cualquiera de los disparadores de la rutina. La sección **Select a trigger** es donde agrega o elimina horarios, tokens de API y disparadores de eventos de GitHub.

307* Haga clic en el icono de eliminar para eliminar la rutina. Las sesiones anteriores creadas por la rutina permanecen en su lista de sesiones.341* Haga clic en el icono de eliminar para eliminar la rutina. Las sesiones anteriores creadas por la rutina permanecen en su lista de sesiones.

308 342 

309### Repositorios y permisos de rama343<h3 id="repositories-and-branch-permissions">

344 Repositorios y permisos de rama

345</h3>

310 346 

311Las rutinas necesitan acceso a GitHub para clonar repositorios. Cuando crea una rutina desde la CLI con `/schedule`, Claude verifica si su cuenta tiene GitHub conectado y le solicita que ejecute `/web-setup` si no es así. Consulte [Opciones de autenticación de GitHub](/es/claude-code-on-the-web#github-authentication-options) para las dos formas de otorgar acceso.347Las rutinas necesitan acceso a GitHub para clonar repositorios. Cuando crea una rutina desde la CLI con `/schedule`, Claude verifica si su cuenta tiene GitHub conectado y le solicita que ejecute `/web-setup` si no es así. Consulte [Opciones de autenticación de GitHub](/es/claude-code-on-the-web#github-authentication-options) para las dos formas de otorgar acceso.

312 348 


314 350 

315De forma predeterminada, Claude solo puede insertar en ramas con prefijo `claude/`. Esto evita que las rutinas modifiquen accidentalmente ramas protegidas o de larga duración. Para eliminar esta restricción para un repositorio específico, habilite **Allow unrestricted branch pushes** para ese repositorio al crear o editar la rutina.351De forma predeterminada, Claude solo puede insertar en ramas con prefijo `claude/`. Esto evita que las rutinas modifiquen accidentalmente ramas protegidas o de larga duración. Para eliminar esta restricción para un repositorio específico, habilite **Allow unrestricted branch pushes** para ese repositorio al crear o editar la rutina.

316 352 

317### Conectores353<h3 id="connectors">

354 Conectores

355</h3>

318 356 

319Las rutinas pueden usar sus conectores MCP conectados para leer y escribir en servicios externos durante cada ejecución. Por ejemplo, una rutina que clasifica solicitudes de soporte podría leer de un canal de Slack y crear problemas en Linear.357Las rutinas pueden usar sus conectores MCP conectados para leer y escribir en servicios externos durante cada ejecución. Por ejemplo, una rutina que clasifica solicitudes de soporte podría leer de un canal de Slack y crear problemas en Linear.

320 358 


324 362 

325Para administrar o agregar conectores fuera del formulario de rutina, visite **Settings > Connectors** en claude.ai o use `/schedule update` en la CLI.363Para administrar o agregar conectores fuera del formulario de rutina, visite **Settings > Connectors** en claude.ai o use `/schedule update` en la CLI.

326 364 

327### Entornos y acceso a la red365<h3 id="environments-and-network-access">

366 Entornos y acceso a la red

367</h3>

328 368 

329Cada rutina se ejecuta en un [entorno en la nube](/es/claude-code-on-the-web#the-cloud-environment) que controla el acceso a la red, variables de entorno y scripts de configuración. La rutina hereda la política de red del entorno en cada ejecución.369Cada rutina se ejecuta en un [entorno en la nube](/es/claude-code-on-the-web#the-cloud-environment) que controla el acceso a la red, variables de entorno y scripts de configuración. La rutina hereda la política de red del entorno en cada ejecución.

330 370 

331El entorno **Default** utiliza acceso a la red **Trusted**: la [lista de permitidos predeterminada](/es/claude-code-on-the-web#default-allowed-domains) de registros de paquetes, API de proveedores de nube, registros de contenedores y dominios de desarrollo comunes es accesible, pero los dominios arbitrarios no. Las solicitudes salientes a otros hosts fallan con `403` y `x-deny-reason: host_not_allowed`. El tráfico del conector MCP se enruta a través de los servidores de Anthropic, por lo que los conectores que agregue a la rutina funcionan sin agregar sus hosts a **Allowed domains**. Elimine cualquier conector que no necesite en [Conectores](#conectores).371El entorno **Default** utiliza acceso a la red **Trusted**: la [lista de permitidos predeterminada](/es/claude-code-on-the-web#default-allowed-domains) de registros de paquetes, API de proveedores de nube, registros de contenedores y dominios de desarrollo comunes es accesible, pero los dominios arbitrarios no. Las solicitudes salientes a otros hosts fallan con `403` y `x-deny-reason: host_not_allowed`. El tráfico del conector MCP se enruta a través de los servidores de Anthropic, por lo que los conectores que agregue a la rutina funcionan sin agregar sus hosts a **Allowed domains**. Elimine cualquier conector que no necesite en [Conectores](#connectors).

332 372 

333Para permitir dominios adicionales:373Para permitir dominios adicionales:

334 374 


356 396 

357Consulte [Network access](/es/claude-code-on-the-web#network-access) para obtener detalles sobre los niveles de acceso y la lista de permitidos predeterminada.397Consulte [Network access](/es/claude-code-on-the-web#network-access) para obtener detalles sobre los niveles de acceso y la lista de permitidos predeterminada.

358 398 

359## Uso y límites399<h2 id="usage-and-limits">

400 Uso y límites

401</h2>

360 402 

361Las rutinas reducen el uso de suscripción de la misma manera que lo hacen las sesiones interactivas. Además de los límites de suscripción estándar, las rutinas tienen un límite diario de cuántas ejecuciones pueden comenzar por cuenta. Vea su consumo actual y ejecuciones diarias de rutina restantes en [claude.ai/code/routines](https://claude.ai/code/routines) o [claude.ai/settings/usage](https://claude.ai/settings/usage).403Las rutinas reducen el uso de suscripción de la misma manera que lo hacen las sesiones interactivas. Además de los límites de suscripción estándar, las rutinas tienen un límite diario de cuántas ejecuciones pueden comenzar por cuenta. Vea su consumo actual y ejecuciones diarias de rutina restantes en [claude.ai/code/routines](https://claude.ai/code/routines) o [claude.ai/settings/usage](https://claude.ai/settings/usage).

362 404 


364 406 

365Las ejecuciones únicas no cuentan contra el límite diario de ejecuciones de rutina. Reducen su uso de suscripción regular como cualquier otra sesión, pero están exentas de la asignación diaria de ejecuciones de rutina por cuenta.407Las ejecuciones únicas no cuentan contra el límite diario de ejecuciones de rutina. Reducen su uso de suscripción regular como cualquier otra sesión, pero están exentas de la asignación diaria de ejecuciones de rutina por cuenta.

366 408 

367## Solución de problemas409<h2 id="troubleshooting">

410 Solución de problemas

411</h2>

368 412 

369### `/schedule` devuelve "Unknown command"413<h3 id="/schedule-returns-unknown-command">

414 `/schedule` devuelve "Unknown command"

415</h3>

370 416 

371La CLI oculta `/schedule` cuando uno de sus requisitos no se cumple. La causa suele ser una de las siguientes:417La CLI oculta `/schedule` cuando uno de sus requisitos no se cumple. La causa suele ser una de las siguientes:

372 418 


377 423 

378Siempre puede crear y administrar rutinas en [claude.ai/code/routines](https://claude.ai/code/routines) independientemente de cómo esté configurada la CLI.424Siempre puede crear y administrar rutinas en [claude.ai/code/routines](https://claude.ai/code/routines) independientemente de cómo esté configurada la CLI.

379 425 

380### "Routines are disabled by your organization's policy"426<h3 id="routines-are-disabled-by-your-organizations-policy">

427 "Routines are disabled by your organization's policy"

428</h3>

381 429 

382Su administrador de Team o Enterprise probablemente ha desactivado el botón de alternancia **Routines** en [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code). Esta es una configuración de organización del lado del servidor, por lo que no se puede anular desde su configuración local. Póngase en contacto con su administrador para solicitar que se habiliten las rutinas para su organización.430Su administrador de Team o Enterprise probablemente ha desactivado el botón de alternancia **Routines** en [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code). Esta es una configuración de organización del lado del servidor, por lo que no se puede anular desde su configuración local. Póngase en contacto con su administrador para solicitar que se habiliten las rutinas para su organización.

383 431 

384## Recursos relacionados432<h2 id="related-resources">

433 Recursos relacionados

434</h2>

385 435 

386* [`/loop` e programación en sesión](/es/scheduled-tasks): programe tareas locales dentro de una sesión de CLI abierta436* [`/loop` e programación en sesión](/es/scheduled-tasks): programe tareas locales dentro de una sesión de CLI abierta

387* [Tareas programadas de escritorio](/es/desktop-scheduled-tasks): tareas programadas locales que se ejecutan en su máquina con acceso a archivos locales437* [Tareas programadas de escritorio](/es/desktop-scheduled-tasks): tareas programadas locales que se ejecutan en su máquina con acceso a archivos locales

Details

65 65 

66Los [modos de permiso](/es/permission-modes) deciden si se ejecuta una llamada de herramienta y si se le solicita primero. El aislamiento restringe lo que un comando puede acceder una vez que se ejecuta. Los dos funcionan juntos: cuando un modo de permiso permite que las acciones se ejecuten sin preguntarle, un límite de aislamiento limita lo que esas acciones pueden alcanzar.66Los [modos de permiso](/es/permission-modes) deciden si se ejecuta una llamada de herramienta y si se le solicita primero. El aislamiento restringe lo que un comando puede acceder una vez que se ejecuta. Los dos funcionan juntos: cuando un modo de permiso permite que las acciones se ejecuten sin preguntarle, un límite de aislamiento limita lo que esas acciones pueden alcanzar.

67 67 

68`--dangerously-skip-permissions` elimina completamente la revisión por acción, por lo que un límite de aislamiento es lo único que limita lo que Claude puede hacer. Siempre ejecútelo dentro de un contenedor, una máquina virtual o el [tiempo de ejecución sandbox](#sandbox-runtime), para que las herramientas de archivo, los servidores MCP y los hooks también estén dentro del límite.68`--dangerously-skip-permissions` elimina la revisión por acción que no sea [reglas de solicitud](/es/permissions#manage-permissions) explícitas, por lo que un límite de aislamiento es lo único que limita lo que Claude puede hacer. Siempre ejecútelo dentro de un contenedor, una máquina virtual o el [tiempo de ejecución sandbox](#sandbox-runtime), para que las herramientas de archivo, los servidores MCP y los hooks también estén dentro del límite.

69 69 

70El [modo automático](/es/permission-modes#eliminate-prompts-with-auto-mode) reemplaza la solicitud con un clasificador que revisa acciones y bloquea las que escalan más allá de la solicitud, apuntan a infraestructura no reconocida o parecen impulsadas por contenido hostil que Claude leyó. El clasificador es un control por acción, no un límite de aislamiento, por lo que un límite de aislamiento aún agrega defensa en profundidad para ejecuciones sin supervisión, y no es requerido como lo es para `--dangerously-skip-permissions`.70El [modo automático](/es/permission-modes#eliminate-prompts-with-auto-mode) reemplaza la solicitud con un clasificador que revisa acciones y bloquea las que escalan más allá de la solicitud, apuntan a infraestructura no reconocida o parecen impulsadas por contenido hostil que Claude leyó. El clasificador es un control por acción, no un límite de aislamiento, por lo que un límite de aislamiento aún agrega defensa en profundidad para ejecuciones sin supervisión, y no es requerido como lo es para `--dangerously-skip-permissions`.

71 71 

72La [herramienta Bash aislada](#sandboxed-bash-tool) por sí sola restringe solo Bash, por lo que no es suficiente para ejecuciones completamente sin supervisión en ninguno de los modos. Puede superponer enfoques: ejecutar la herramienta Bash aislada dentro de un contenedor o máquina virtual le da restricciones de comando a nivel de SO además del límite del entorno externo. Para cómo el sandbox Bash en sí interactúa con reglas de permiso y modos, consulte [Cómo el sandboxing se relaciona con permisos y modos de permiso](/es/sandboxing#how-sandboxing-relates-to-permissions-and-permission-modes).72La [herramienta Bash aislada](#sandboxed-bash-tool) por sí sola restringe solo Bash, por lo que no es suficiente para ejecuciones completamente sin supervisión en ninguno de los modos. Puede superponer enfoques: ejecutar la herramienta Bash aislada dentro de un contenedor o máquina virtual le da restricciones de comando a nivel de SO además del límite del entorno externo. Para cómo el sandbox Bash en sí interactúa con reglas de permiso y modos de permiso, consulte [Cómo el sandboxing se relaciona con permisos y modos de permiso](/es/sandboxing#how-sandboxing-relates-to-permissions-and-permission-modes).

73 73 

74<h2 id="sandboxed-bash-tool">74<h2 id="sandboxed-bash-tool">

75 Herramienta Bash aislada75 Herramienta Bash aislada

sandboxing.md +8 −5

Details

49 </Step>49 </Step>

50 50 

51 <Step title="Ejecutar un comando Bash">51 <Step title="Ejecutar un comando Bash">

52 Pida a Claude que ejecute un comando, como una compilación o un conjunto de pruebas. De forma predeterminada, los comandos dentro del sandbox solo pueden escribir en el directorio de trabajo. La primera vez que un comando necesita un nuevo dominio de red, Claude Code solicita aprobación.52 Pida a Claude que ejecute un comando, como una compilación o un conjunto de pruebas. De forma predeterminada, los comandos dentro del sandbox solo pueden escribir en el directorio de trabajo y el directorio temporal de la sesión. La primera vez que un comando necesita un nuevo dominio de red, Claude Code solicita aprobación.

53 53 

54 Los comandos que no pueden ejecutarse aislados vuelven al flujo de permiso regular. Para ampliar o reducir estos límites, consulte [Configurar sandboxing](#configure-sandboxing).54 Los comandos que no pueden ejecutarse aislados vuelven al flujo de permiso regular. Para ampliar o reducir estos límites, consulte [Configurar sandboxing](#configure-sandboxing).

55 </Step>55 </Step>


134 134 

135* Las [reglas de denegación](/es/permissions) explícitas siempre se respetan135* Las [reglas de denegación](/es/permissions) explícitas siempre se respetan

136* Los comandos `rm` o `rmdir` que apunten a `/`, su directorio de inicio u otras rutas críticas del sistema aún desencadenan una solicitud de permiso136* Los comandos `rm` o `rmdir` que apunten a `/`, su directorio de inicio u otras rutas críticas del sistema aún desencadenan una solicitud de permiso

137* Las [reglas de solicitud](/es/permissions) se aplican a comandos que vuelven al flujo de permiso regular137* Las [reglas de solicitud](/es/permissions) con alcance de contenido como `Bash(git push *)` aún fuerzan una solicitud incluso para comandos aislados

138* Una regla de solicitud `Bash` simple, o la forma equivalente `Bash(*)`, se omite para comandos que se ejecutan aislados; aún se aplica a comandos que vuelven al flujo de permiso regular

138 139 

139**Modo de permisos regulares**: Todos los comandos Bash pasan por el flujo de permiso regular, incluso cuando están aislados. Esto proporciona más control pero requiere más aprobaciones.140**Modo de permisos regulares**: Todos los comandos Bash pasan por el flujo de permiso regular, incluso cuando están aislados. Esto proporciona más control pero requiere más aprobaciones.

140 141 

141En ambos modos, el sandbox aplica las mismas restricciones de sistema de archivos y red. La diferencia es solo si los comandos aislados se aprueban automáticamente o requieren permiso explícito.142En ambos modos, el sandbox aplica las mismas restricciones de sistema de archivos y red. La diferencia es solo si los comandos aislados se aprueban automáticamente o requieren permiso explícito.

142 143 

144El directorio temporal de la sesión es escribible dentro del sandbox de forma predeterminada, junto con el directorio de trabajo. 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 no aislados heredan su `$TMPDIR` de shell sin cambios, lo que significa que los comandos aislados y no aislados resuelven `$TMPDIR` a directorios diferentes. Para pasar archivos temporales entre los dos, escríbalos en el directorio de trabajo en su lugar.

145 

143Algunos comandos no pueden ejecutarse dentro del sandbox en absoluto, como herramientas que son incompatibles con él o que necesitan un host que no ha permitido. En lugar de fallar la tarea o requerirle que apague el sandboxing, Claude Code incluye una salida de emergencia: cuando un comando falla debido a restricciones del sandbox, Claude analiza la falla y puede reintentar el comando con el parámetro `dangerouslyDisableSandbox`. El comando reintentado se ejecuta fuera del sandbox, por lo que pasa por el flujo de permiso regular y requiere su aprobación.146Algunos comandos no pueden ejecutarse dentro del sandbox en absoluto, como herramientas que son incompatibles con él o que necesitan un host que no ha permitido. En lugar de fallar la tarea o requerirle que apague el sandboxing, Claude Code incluye una salida de emergencia: cuando un comando falla debido a restricciones del sandbox, Claude analiza la falla y puede reintentar el comando con el parámetro `dangerouslyDisableSandbox`. El comando reintentado se ejecuta fuera del sandbox, por lo que pasa por el flujo de permiso regular y requiere su aprobación.

144 147 

145Puede deshabilitar esta salida de emergencia estableciendo `"allowUnsandboxedCommands": false` en su [configuración de sandbox](/es/settings#sandbox-settings). Cuando está deshabilitado, que la pestaña Overrides de `/sandbox` muestra como **Modo de sandbox estricto**, el parámetro `dangerouslyDisableSandbox` se ignora completamente y todos los comandos deben ejecutarse aislados o estar explícitamente listados en `excludedCommands`.148Puede deshabilitar esta salida de emergencia estableciendo `"allowUnsandboxedCommands": false` en su [configuración de sandbox](/es/settings#sandbox-settings). Cuando está deshabilitado, que la pestaña Overrides de `/sandbox` muestra como **Modo de sandbox estricto**, el parámetro `dangerouslyDisableSandbox` se ignora completamente y todos los comandos deben ejecutarse aislados o estar explícitamente listados en `excludedCommands`.


154 157 

155Personalice el comportamiento del sandbox a través de su archivo `settings.json`. Consulte [Configuración](/es/settings#sandbox-settings) para obtener la referencia de configuración completa.158Personalice el comportamiento del sandbox a través de su archivo `settings.json`. Consulte [Configuración](/es/settings#sandbox-settings) para obtener la referencia de configuración completa.

156 159 

157De forma predeterminada, los comandos aislados solo pueden escribir en el directorio de trabajo actual. Si comandos de subproceso como `kubectl`, `terraform` o `npm` necesitan escribir fuera del directorio del proyecto, use `sandbox.filesystem.allowWrite` para otorgar acceso a rutas específicas:160De forma predeterminada, los comandos aislados solo pueden escribir en el directorio de trabajo actual y el directorio temporal de la sesión. Si comandos de subproceso como `kubectl`, `terraform` o `npm` necesitan escribir fuera de esos directorios, use `sandbox.filesystem.allowWrite` para otorgar acceso a rutas específicas:

158 161 

159```json theme={null}162```json theme={null}

160{163{


209 212 

210La herramienta Bash aislada restringe el acceso al sistema de archivos a directorios específicos:213La herramienta Bash aislada restringe el acceso al sistema de archivos a directorios específicos:

211 214 

212* **Comportamiento de escritura predeterminado**: acceso de lectura y escritura al directorio de trabajo actual y sus subdirectorios215* **Comportamiento de escritura predeterminado**: acceso de lectura y escritura al directorio de trabajo actual y sus subdirectorios, más el directorio temporal de sesión al que apunta `$TMPDIR`

213* **Comportamiento de lectura predeterminado**: acceso de lectura a toda la computadora, excepto ciertos directorios denegados. Tenga en cuenta que este comportamiento predeterminado aún permite leer archivos de credenciales como `~/.aws/credentials` y `~/.ssh/`. Agréguelos a `denyRead` para bloquearlos.216* **Comportamiento de lectura predeterminado**: acceso de lectura a toda la computadora, excepto ciertos directorios denegados. Tenga en cuenta que este comportamiento predeterminado aún permite leer archivos de credenciales como `~/.aws/credentials` y `~/.ssh/`. Agréguelos a `denyRead` para bloquearlos.

214* **Acceso bloqueado**: no puede modificar archivos fuera del directorio de trabajo actual sin permiso explícito, incluidos archivos de configuración de shell como `~/.bashrc` y binarios del sistema en `/bin/`217* **Acceso bloqueado**: no puede modificar archivos fuera del directorio de trabajo actual y el directorio temporal de sesión sin permiso explícito, incluidos archivos de configuración de shell como `~/.bashrc` y binarios del sistema en `/bin/`

215* **Git worktrees**: cuando el directorio de trabajo es un [git worktree vinculado](/es/worktrees), el sandbox también permite escrituras en el directorio compartido `.git` del repositorio principal para que comandos como `git commit` puedan actualizar referencias e índices. Las escrituras a `hooks/` y `config` dentro de ese directorio permanecen denegadas.218* **Git worktrees**: cuando el directorio de trabajo es un [git worktree vinculado](/es/worktrees), el sandbox también permite escrituras en el directorio compartido `.git` del repositorio principal para que comandos como `git commit` puedan actualizar referencias e índices. Las escrituras a `hooks/` y `config` dentro de ese directorio permanecen denegadas.

216* **Configurable**: defina rutas permitidas y denegadas personalizadas a través de la configuración219* **Configurable**: defina rutas permitidas y denegadas personalizadas a través de la configuración

217 220 

security.md +4 −4

Details

22 22 

23Claude Code utiliza permisos de solo lectura estrictos de forma predeterminada. Cuando se necesitan acciones adicionales (editar archivos, ejecutar pruebas, ejecutar comandos), Claude Code solicita permiso explícito. Los usuarios controlan si aprobar acciones una sola vez o permitirlas automáticamente.23Claude Code utiliza permisos de solo lectura estrictos de forma predeterminada. Cuando se necesitan acciones adicionales (editar archivos, ejecutar pruebas, ejecutar comandos), Claude Code solicita permiso explícito. Los usuarios controlan si aprobar acciones una sola vez o permitirlas automáticamente.

24 24 

25Diseñamos Claude Code para ser transparente y seguro. Por ejemplo, requerimos aprobación para comandos bash antes de ejecutarlos, lo que le da control directo. Este enfoque permite a los usuarios y organizaciones configurar permisos directamente.25Claude Code requiere aprobación antes de ejecutar comandos Bash que puedan modificar su sistema. Un conjunto integrado de comandos de solo lectura como `ls`, `cat`, y `git status` se ejecuta sin una solicitud. Este enfoque permite a los usuarios y organizaciones configurar permisos directamente.

26 26 

27Para la configuración detallada de permisos, consulte [Permissions](/es/permissions).27Para la configuración detallada de permisos, consulte [Permissions](/es/permissions).

28 28 


56* **Sistema de permisos**: Las operaciones sensibles requieren aprobación explícita56* **Sistema de permisos**: Las operaciones sensibles requieren aprobación explícita

57* **Análisis consciente del contexto**: Detecta instrucciones potencialmente dañinas analizando la solicitud completa57* **Análisis consciente del contexto**: Detecta instrucciones potencialmente dañinas analizando la solicitud completa

58* **Sanitización de entrada**: Previene la inyección de comandos procesando entradas del usuario58* **Sanitización de entrada**: Previene la inyección de comandos procesando entradas del usuario

59* **Lista de bloqueo de comandos**: Bloquea comandos arriesgados que obtienen contenido arbitrario de la web como `curl` y `wget` de forma predeterminada. Cuando se permite explícitamente, tenga en cuenta las [limitaciones del patrón de permisos](/es/permissions#tool-specific-permission-rules)59* **Aprobación de comandos de red**: Los comandos que obtienen contenido de la web como `curl` y `wget` no se aprueban automáticamente de forma predeterminada. Solicitan aprobación como cualquier otro comando Bash que no sea de solo lectura, por lo que aún puede aprobarlos una vez o agregar una regla de permiso explícita como `Bash(curl *)`. Para bloquearlos completamente, agréguelos a [`permissions.deny`](/es/permissions#tool-specific-permission-rules)

60 60 

61<h3 id="privacy-safeguards">61<h3 id="privacy-safeguards">

62 Medidas de protección de privacidad62 Medidas de protección de privacidad


77* **Aprobación de solicitudes de red**: Las herramientas que realizan solicitudes de red requieren aprobación del usuario de forma predeterminada77* **Aprobación de solicitudes de red**: Las herramientas que realizan solicitudes de red requieren aprobación del usuario de forma predeterminada

78* **Ventanas de contexto aisladas**: La obtención web utiliza una ventana de contexto separada para evitar inyectar solicitudes potencialmente maliciosas78* **Ventanas de contexto aisladas**: La obtención web utiliza una ventana de contexto separada para evitar inyectar solicitudes potencialmente maliciosas

79* **Verificación de confianza**: Las primeras ejecuciones de base de código y los nuevos servidores MCP requieren verificación de confianza79* **Verificación de confianza**: Las primeras ejecuciones de base de código y los nuevos servidores MCP requieren verificación de confianza

80 * Nota: La verificación de confianza está deshabilitada cuando se ejecuta de forma no interactiva con la bandera `-p`. La excepción es [`--worktree`](/es/worktrees), que aún requiere que la confianza haya sido aceptada para el directorio80 * Nota: La verificación de confianza está deshabilitada cuando se ejecuta de forma no interactiva con la bandera `-p`

81 * Nota: Cuando inicia Claude Code directamente en su directorio de inicio, la aceptación de confianza se mantiene solo para la sesión actual y no se escribe en el disco, por lo que el mensaje reaparece en cada lanzamiento. No hay ninguna configuración para persistirlo. Inicie Claude Code desde un subdirectorio de proyecto en su lugar, donde la aceptación de confianza se guarda por directorio81 * Nota: Cuando inicia Claude Code directamente en su directorio de inicio, la aceptación de confianza se mantiene solo para la sesión actual y no se escribe en el disco, por lo que el mensaje reaparece en cada lanzamiento. No hay ninguna configuración para persistirlo. Inicie Claude Code desde un subdirectorio de proyecto en su lugar, donde la aceptación de confianza se guarda por directorio

82* **Detección de inyección de comandos**: Los comandos bash sospechosos requieren aprobación manual incluso si fueron permitidos previamente82* **Detección de inyección de comandos**: Los comandos bash sospechosos requieren aprobación manual incluso si fueron permitidos previamente

83* **Coincidencia de cierre seguro**: Los comandos no coincidentes se establecen de forma predeterminada para requerir aprobación manual83* **Coincidencia de cierre seguro**: Los comandos no coincidentes se establecen de forma predeterminada para requerir aprobación manual

84* **Descripciones en lenguaje natural**: Los comandos bash complejos incluyen explicaciones para la comprensión del usuario84* **Descripciones en lenguaje natural**: Los comandos bash complejos incluyen explicaciones para la comprensión del usuario

85* **Almacenamiento seguro de credenciales**: Las claves API y tokens están encriptados. Consulte [Credential Management](/es/authentication#credential-management)85* **Almacenamiento seguro de credenciales**: Las claves API y tokens se almacenan en el Keychain de macOS cuando está disponible, y están protegidos por permisos de archivo en Windows y Linux. Consulte [Credential Management](/es/authentication#credential-management)

86 86 

87<Warning>87<Warning>

88 **Riesgo de seguridad de WebDAV en Windows**: Cuando ejecute Claude Code en Windows, le recomendamos que no habilite WebDAV ni permita que Claude Code acceda a rutas como `\\*` que pueden contener subdirectorios de WebDAV. [WebDAV ha sido deprecado por Microsoft](https://learn.microsoft.com/en-us/windows/whats-new/deprecated-features#:~:text=The%20Webclient%20\(WebDAV\)%20service%20is%20deprecated) debido a riesgos de seguridad. Habilitar WebDAV puede permitir que Claude Code desencadene solicitudes de red a hosts remotos, eludiendo el sistema de permisos.88 **Riesgo de seguridad de WebDAV en Windows**: Cuando ejecute Claude Code en Windows, le recomendamos que no habilite WebDAV ni permita que Claude Code acceda a rutas como `\\*` que pueden contener subdirectorios de WebDAV. [WebDAV ha sido deprecado por Microsoft](https://learn.microsoft.com/en-us/windows/whats-new/deprecated-features#:~:text=The%20Webclient%20\(WebDAV\)%20service%20is%20deprecated) debido a riesgos de seguridad. Habilitar WebDAV puede permitir que Claude Code desencadene solicitudes de red a hosts remotos, eludiendo el sistema de permisos.

Details

105 En cada confirmación o inserción que Claude realiza105 En cada confirmación o inserción que Claude realiza

106</h3>106</h3>

107 107 

108Cuando Claude ejecuta `git commit` o `git push` a través de su herramienta Bash, el plugin ejecuta una revisión agéntica más profunda del cambio en segundo plano. Esta revisión lee el código circundante, incluidos los llamadores, desinfectantes y archivos relacionados, para decidir si un hallazgo es real antes de informarlo. El contexto adicional mantiene los falsos positivos bajos en patrones que se ven peligrosos en aislamiento pero son seguros en su base de código.108Cuando Claude ejecuta `git commit` o `git push` a través de su herramienta Bash, el plugin ejecuta una revisión agéntica más profunda del cambio en segundo plano. Esta revisión lee el código circundante, incluidos los llamadores, sanitizadores y archivos relacionados, para decidir si un hallazgo es real antes de informarlo. El contexto adicional mantiene los falsos positivos bajos en patrones que se ven peligrosos en aislamiento pero son seguros en su base de código.

109 109 

110Esta capa se activa solo en confirmaciones e inserciones que Claude realiza a través de su herramienta Bash. Las confirmaciones que ejecuta desde su propio shell, incluido el escape de shell `!` dentro de una sesión, no se revisan. Las revisiones de confirmación e inserción se limitan a 20 por hora móvil. Si los hallazgos de la revisión de confirmación duplican lo que la revisión de fin de turno ya informó, Claude no se vuelve a solicitar, por lo que una confirmación limpia no produce salida visible de esta capa.110Esta capa se activa solo en confirmaciones e inserciones que Claude realiza a través de su herramienta Bash. Las confirmaciones que ejecuta desde su propio shell, incluido el escape de shell `!` dentro de una sesión, no se revisan. Las revisiones de confirmación e inserción se limitan a 20 por hora móvil. Si los hallazgos de la revisión de confirmación duplican lo que la revisión de fin de turno ya informó, Claude no se vuelve a solicitar, por lo que una confirmación limpia no produce salida visible de esta capa.

111 111 

Details

174 174 

175Claude Code aplica actualizaciones de configuración automáticamente sin reinicio, excepto para configuraciones avanzadas como la configuración de OpenTelemetry, que requieren un reinicio completo para tomar efecto.175Claude Code aplica actualizaciones de configuración automáticamente sin reinicio, excepto para configuraciones avanzadas como la configuración de OpenTelemetry, que requieren un reinicio completo para tomar efecto.

176 176 

177<h3 id="invalid-entries-in-delivered-settings">

178 Entradas inválidas en la configuración entregada

179</h3>

180 

181Las cargas útiles entregadas se analizan de forma tolerante con las mismas reglas que las otras fuentes administradas. Cuando una carga útil contiene una entrada que falla en la validación del esquema, Claude Code elimina esa entrada, muestra un error de validación y aplica todas las configuraciones válidas restantes. Consulte [Entradas inválidas en configuración administrada](/es/settings#invalid-entries-in-managed-settings) para el comportamiento a nivel de campo, incluida la forma en que se manejan los campos de aplicación de seguridad. Requiere Claude Code v2.1.169 o posterior.

182 

183La entrega administrada por servidor agrega estos comportamientos:

184 

185* La caché en `~/.claude/remote-settings.json` almacena la carga útil salvada con entradas inválidas eliminadas. La carga útil inválida sin procesar nunca se persiste.

186* Cuando ningún campo en la carga útil puede salvarse, Claude Code mantiene la última configuración en caché aceptada y registra un error fatal.

187* El [diálogo de aprobación de seguridad](#security-approval-dialogs) evalúa la carga útil salvada, por lo que una entrada inválida eliminada nunca se presenta para aprobación y nunca se ejecuta.

188 

189Para depurar problemas de entrega, ejecute `claude --debug-file <path>` y busque en el registro `Remote settings`. Valide un cambio de carga útil con `claude doctor` en una máquina de prueba antes de implementarlo en la organización.

190 

177<h3 id="enforce-fail-closed-startup">191<h3 id="enforce-fail-closed-startup">

178 Aplicar inicio cerrado por fallo192 Aplicar inicio cerrado por fallo

179</h3>193</h3>

sessions.md +3 −3

Details

30| `claude --from-pr <number>` | Reanuda la sesión vinculada a esa solicitud de extracción |30| `claude --from-pr <number>` | Reanuda la sesión vinculada a esa solicitud de extracción |

31| `/resume` | Cambia a una conversación diferente desde dentro de una sesión activa |31| `/resume` | Cambia a una conversación diferente desde dentro de una sesión activa |

32 32 

33Las sesiones creadas con [`claude -p`](/es/headless) o el [Agent SDK](/es/agent-sdk/overview) no aparecen en el selector de sesiones, pero aún puede reanudar una pasando su ID de sesión a `claude --resume <session-id>`.33Las sesiones creadas con [`claude -p`](/es/headless) o el [Agent SDK](/es/agent-sdk/overview) no aparecen en el selector de sesiones, pero aún puede reanudar una pasando su ID de sesión a `claude --resume <session-id>`. Ejecute esto desde el directorio en el que se inició la sesión: la búsqueda de ID de sesión se limita al directorio del proyecto actual y sus git worktrees, por lo que una sesión creada en otro lugar reporta `No conversation found with session ID: <session-id>`.

34 34 

35<h3 id="where-the-session-picker-looks">35<h3 id="where-the-session-picker-looks">

36 Dónde busca el selector de sesiones36 Dónde busca el selector de sesiones

37</h3>37</h3>

38 38 

39Las sesiones se almacenan por directorio de proyecto. De forma predeterminada, el selector de sesiones muestra sesiones interactivas del worktree actual, más sesiones iniciadas en otro lugar que agregaron el directorio actual con `/add-dir`. Use `Ctrl+W` para ampliar a todos los worktrees del repositorio o `Ctrl+A` para ampliar a cada proyecto en esta máquina.39Las sesiones se almacenan por directorio de proyecto. De forma predeterminada, el selector de sesiones muestra sesiones interactivas del worktree actual, más sesiones iniciadas en otro lugar que agregaron el directorio actual con `/add-dir`. {/* min-version: 2.1.169 */}A partir de v2.1.169, mover una sesión con [`/cd`](/es/commands) la traslada al almacenamiento del proyecto del nuevo directorio, por lo que aparece en el selector de ese directorio después. Use `Ctrl+W` para ampliar a todos los worktrees del repositorio o `Ctrl+A` para ampliar a cada proyecto en esta máquina.

40 40 

41Seleccionar una sesión de otro worktree del mismo repositorio la reanuda en su lugar. Seleccionar una sesión de un proyecto no relacionado copia un comando `cd` y reanuda a su portapapeles en su lugar.41Seleccionar una sesión de otro worktree del mismo repositorio la reanuda en su lugar. Seleccionar una sesión de un proyecto no relacionado copia un comando `cd` y reanuda a su portapapeles en su lugar.

42 42 


63Una vez que una sesión está nombrada, vuelva a ella con `claude --resume <name>` o `/resume <name>`. Vea [Reanude una sesión](#resume-a-session) para saber cómo se comporta la resolución de nombres en worktrees.63Una vez que una sesión está nombrada, vuelva a ella con `claude --resume <name>` o `/resume <name>`. Vea [Reanude una sesión](#resume-a-session) para saber cómo se comporta la resolución de nombres en worktrees.

64 64 

65<h2 id="use-the-session-picker">65<h2 id="use-the-session-picker">

66 Use el selector de sesiones66 Usar el selector de sesiones

67</h2>67</h2>

68 68 

69Ejecute `/resume` dentro de una sesión, o `claude --resume` sin argumentos, para abrir el selector de sesiones interactivo. Use estos atajos de teclado para navegar, buscar y ampliar la lista:69Ejecute `/resume` dentro de una sesión, o `claude --resume` sin argumentos, para abrir el selector de sesiones interactivo. Use estos atajos de teclado para navegar, buscar y ampliar la lista:

settings.md +111 −25

Details

19</h3>19</h3>

20 20 

21| Ámbito | Ubicación | A quién afecta | ¿Se comparte con el equipo? |21| Ámbito | Ubicación | A quién afecta | ¿Se comparte con el equipo? |

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

23| **Managed** | Configuraciones administradas por servidor, plist / registro, o `managed-settings.json` a nivel de sistema | Todos los usuarios en la máquina | Sí (implementado por TI) |23| **Managed** | Configuraciones administradas por servidor, plist / registro, o `managed-settings.json` a nivel de sistema | Todos los usuarios en la máquina | Sí (implementado por TI) |

24| **User** | Directorio `~/.claude/` | Usted, en todos los proyectos | No |24| **User** | Directorio `~/.claude/` | Usted, en todos los proyectos | No |

25| **Project** | `.claude/` en el repositorio | Todos los colaboradores en este repositorio | Sí (confirmado en git) |25| **Project** | `.claude/` en el repositorio | Todos los colaboradores en este repositorio | Sí (confirmado en git) |

26| **Local** | `.claude/settings.local.json` | Usted, solo en este repositorio | No (ignorado por git) |26| **Local** | `.claude/settings.local.json` | Usted, solo en este repositorio | No (ignorado por git cuando Claude Code lo crea) |

27 27 

28<h3 id="when-to-use-each-scope">28<h3 id="when-to-use-each-scope">

29 Cuándo usar cada ámbito29 Cuándo usar cada ámbito


94* **Configuraciones de usuario** se definen en `~/.claude/settings.json` y se aplican a todos los proyectos.94* **Configuraciones de usuario** se definen en `~/.claude/settings.json` y se aplican a todos los proyectos.

95* **Configuraciones de proyecto** se guardan en su directorio de proyecto:95* **Configuraciones de proyecto** se guardan en su directorio de proyecto:

96 * `.claude/settings.json` para configuraciones que se verifican en el control de código fuente y se comparten con su equipo96 * `.claude/settings.json` para configuraciones que se verifican en el control de código fuente y se comparten con su equipo

97 * `.claude/settings.local.json` para configuraciones que no se verifican, útil para preferencias personales y experimentación. Claude Code configurará git para ignorar `.claude/settings.local.json` cuando se cree.97 * `.claude/settings.local.json` para configuraciones que no se verifican, útil para preferencias personales y experimentación. Cuando Claude Code crea `.claude/settings.local.json`, configura git para ignorar el archivo. Si crea el archivo usted mismo, agréguelo a su gitignore manualmente.

98* **Configuraciones administradas**: Para organizaciones que necesitan control centralizado, Claude Code admite múltiples mecanismos de entrega para configuraciones administradas. Todos utilizan el mismo formato JSON y no pueden ser anulados por configuraciones de usuario o proyecto:98* **Configuraciones administradas**: Para organizaciones que necesitan control centralizado, Claude Code admite múltiples mecanismos de entrega para configuraciones administradas. Todos utilizan el mismo formato JSON y no pueden ser anulados por configuraciones de usuario o proyecto:

99 99 

100 * **Configuraciones administradas por servidor**: entregadas desde los servidores de Anthropic a través de la consola de administración de Claude.ai. Consulte [configuraciones administradas por servidor](/es/server-managed-settings).100 * **Configuraciones administradas por servidor**: entregadas desde los servidores de Anthropic a través de la consola de administración de Claude.ai. Consulte [configuraciones administradas por servidor](/es/server-managed-settings).

101 * **Políticas de MDM/nivel de SO**: entregadas a través de administración de dispositivos nativa en macOS y Windows:101 * **Políticas de MDM/nivel de SO**: entregadas a través de administración de dispositivos nativa en macOS y Windows:

102 * macOS: dominio de preferencias administradas `com.anthropic.claudecode`. El plist de nivel superior refleja las claves de `managed-settings.json`, con configuraciones anidadas como diccionarios y matrices como matrices de plist. Implemente a través de perfiles de configuración en Jamf, Iru (Kandji) u herramientas MDM similares.102 * macOS: dominio de preferencias administradas `com.anthropic.claudecode`. Las claves de nivel superior del plist reflejan `managed-settings.json`, con configuraciones anidadas como diccionarios y matrices como matrices de plist. Implemente a través de perfiles de configuración en Jamf, Iru (Kandji) u herramientas MDM similares.

103 * Windows: clave de registro `HKLM\SOFTWARE\Policies\ClaudeCode` con un valor `Settings` (REG\_SZ o REG\_EXPAND\_SZ) que contiene JSON (implementado a través de Política de grupo o Intune)103 * Windows: clave de registro `HKLM\SOFTWARE\Policies\ClaudeCode` con un valor `Settings` (REG\_SZ o REG\_EXPAND\_SZ) que contiene JSON (implementado a través de Política de grupo o Intune)

104 * Windows (nivel de usuario): `HKCU\SOFTWARE\Policies\ClaudeCode` (prioridad de política más baja, solo se usa cuando no existe una fuente a nivel de administrador)104 * Windows (nivel de usuario): `HKCU\SOFTWARE\Policies\ClaudeCode` (prioridad de política más baja, solo se usa cuando no existe una fuente a nivel de administrador)

105 * **Basado en archivos**: `managed-settings.json` y `managed-mcp.json` implementados en directorios del sistema:105 * **Basado en archivos**: `managed-settings.json` y `managed-mcp.json` implementados en directorios del sistema:


174* `model`: use [`/model`](/es/model-config#setting-your-model) para cambiar en mitad de sesión174* `model`: use [`/model`](/es/model-config#setting-your-model) para cambiar en mitad de sesión

175* [`outputStyle`](/es/output-styles): parte del indicador del sistema, que se reconstruye en `/clear` o reinicio175* [`outputStyle`](/es/output-styles): parte del indicador del sistema, que se reconstruye en `/clear` o reinicio

176 176 

177<h3 id="invalid-entries-in-managed-settings">

178 Entradas inválidas en configuraciones administradas

179</h3>

180 

181Las configuraciones administradas se analizan con tolerancia. Cuando una configuración administrada contiene una entrada que falla la validación del esquema, Claude Code elimina esa entrada, registra una advertencia y aplica cada política válida restante. Un único error tipográfico no puede deshabilitar el resto de la política de su organización. Este comportamiento es consistente en los tres mecanismos de entrega: [configuraciones administradas por servidor](/es/server-managed-settings), políticas de plist y registro implementadas a través de MDM, y archivos `managed-settings.json`. Requiere Claude Code v2.1.169 o posterior.

182 

183Los campos de aplicación de seguridad se manejan por campo en lugar de ser eliminados al por mayor cuando están presentes pero son inválidos:

184 

185| Campo | Comportamiento cuando está presente pero es inválido |

186| :--------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

187| `allowedMcpServers` | Aplicado como una lista blanca vacía, por lo que no se admiten MCP servers hasta que se corrija el valor. Una entrada individual inválida se elimina y se aplica el subconjunto válido. |

188| `allowManagedMcpServersOnly` | Tratado como `true`. |

189| `availableModels` | {/* min-version: 2.1.175 */}Aplicado como una lista blanca vacía, por lo que solo el modelo Predeterminado está disponible hasta que se corrija el valor. Una entrada individual que no es cadena se elimina y se aplica el subconjunto válido. Se aplica en v2.1.175 y posterior. |

190| `enforceAvailableModels` | {/* min-version: 2.1.175 */}Tratado como `true`. Se aplica en v2.1.175 y posterior. |

191| `forceLoginOrgUUID` | No se permite que ninguna organización inicie sesión hasta que se corrija el valor. |

192| `deniedMcpServers` | Una entrada individual inválida se elimina y se aplica el subconjunto válido. Un valor completamente inválido se descarta con una advertencia, ya que denegar cada servidor bloquearía servidores que la política nunca nombró. |

193 

194`requiredMinimumVersion` y `requiredMaximumVersion` fallan abiertos por diseño: un valor inválido se elimina en lugar de aplicarse, por lo que un empuje de política defectuoso no puede evitar que Claude Code se inicie.

195 

196Los errores de validación aparecen en tres lugares:

197 

198* Las sesiones interactivas muestran un diálogo al inicio que enumera las entradas inválidas.

199* Las ejecuciones sin interfaz con `-p` imprimen un resumen en stderr.

200* [`claude doctor`](/es/debug-your-config) enumera cada entrada inválida con su fuente y campo.

201 

202Valide cambios de política ejecutando `claude doctor` en una máquina de prueba antes de implementarlos en toda la flota.

203 

204Esta tolerancia se aplica solo a configuraciones administradas. Los archivos de configuración de usuario, proyecto y local permanecen estrictos: un archivo que falla la validación se rechaza en su totalidad y se reporta.

205 

177<h3 id="available-settings">206<h3 id="available-settings">

178 Configuraciones disponibles207 Configuraciones disponibles

179</h3>208</h3>


181`settings.json` admite varias opciones:210`settings.json` admite varias opciones:

182 211 

183| Clave | Descripción | Ejemplo |212| Clave | Descripción | Ejemplo |

184| :-------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------- |213| :-------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------ |

214| `advisorModel` | {/* min-version: 2.1.98 */}Modelo para la [herramienta advisor](/es/advisor) del lado del servidor. Acepta un alias de modelo como `"opus"`, `"sonnet"`, o `"fable"` ({/* min-version: 2.1.170 */}v2.1.170+), o un ID de modelo completo. Se escribe automáticamente cuando ejecuta `/advisor`. Desactive para deshabilitar el advisor. Requiere Claude Code v2.1.98 o posterior | `"opus"` |

185| `agent` | Ejecutar el hilo principal como un subagent nombrado, y establecer el agente predeterminado para sesiones despachadas desde `claude agents`. Aplica el indicador del sistema del subagent, restricciones de herramientas y modelo. Consulte [Invocar subagents explícitamente](/es/sub-agents#invoke-subagents-explicitly) | `"code-reviewer"` |215| `agent` | Ejecutar el hilo principal como un subagent nombrado, y establecer el agente predeterminado para sesiones despachadas desde `claude agents`. Aplica el indicador del sistema del subagent, restricciones de herramientas y modelo. Consulte [Invocar subagents explícitamente](/es/sub-agents#invoke-subagents-explicitly) | `"code-reviewer"` |

216| `agentPushNotifEnabled` | {/* min-version: 2.1.119 */}Cuando [Remote Control](/es/remote-control) está conectado, permitir que Claude envíe notificaciones push proactivas a su teléfono, por ejemplo cuando una tarea larga finaliza. Predeterminado: `false`. Aparece en `/config` como **Push when Claude decides**. Consulte [Notificaciones push móviles](/es/remote-control#mobile-push-notifications). Requiere Claude Code v2.1.119 o posterior | `true` |

186| `allowAllClaudeAiMcps` | (Solo configuraciones administradas) Cargar conectores de claude.ai junto con un `managed-mcp.json` implementado, que de otra manera toma control exclusivo y los suprime. Consulte [Configuración de MCP administrada](/es/managed-mcp) | `true` |217| `allowAllClaudeAiMcps` | (Solo configuraciones administradas) Cargar conectores de claude.ai junto con un `managed-mcp.json` implementado, que de otra manera toma control exclusivo y los suprime. Consulte [Configuración de MCP administrada](/es/managed-mcp) | `true` |

187| `allowedChannelPlugins` | (Solo configuraciones administradas) Lista blanca de plugins de canal que pueden enviar mensajes. Reemplaza la lista blanca predeterminada de Anthropic cuando se establece. Sin definir = recurrir a la predeterminada, matriz vacía = bloquear todos los plugins de canal. Requiere `channelsEnabled: true`. Consulte [Restringir qué plugins de canal pueden ejecutarse](/es/channels#restrict-which-channel-plugins-can-run) | `[{ "marketplace": "claude-plugins-official", "plugin": "telegram" }]` |218| `allowedChannelPlugins` | (Solo configuraciones administradas) Lista blanca de plugins de canal que pueden enviar mensajes. Reemplaza la lista blanca predeterminada de Anthropic cuando se establece. Sin definir = recurrir a la predeterminada, matriz vacía = bloquear todos los plugins de canal. Requiere `channelsEnabled: true`. Consulte [Restringir qué plugins de canal pueden ejecutarse](/es/channels#restrict-which-channel-plugins-can-run) | `[{ "marketplace": "claude-plugins-official", "plugin": "telegram" }]` |

188| `allowedHttpHookUrls` | Lista blanca de patrones de URL que los hooks HTTP pueden dirigirse. Admite `*` como comodín. Cuando se establece, los hooks con URLs que no coinciden se bloquean. Sin definir = sin restricción, matriz vacía = bloquear todos los hooks HTTP. Las matrices se fusionan entre fuentes de configuración. Consulte [Configuración de hooks](#hook-configuration) | `["https://hooks.example.com/*"]` |219| `allowedHttpHookUrls` | Lista blanca de patrones de URL que los hooks HTTP pueden dirigirse. Admite `*` como comodín. Cuando se establece, los hooks con URLs que no coinciden se bloquean. Sin definir = sin restricción, matriz vacía = bloquear todos los hooks HTTP. Las matrices se fusionan entre fuentes de configuración. Consulte [Configuración de hooks](#hook-configuration) | `["https://hooks.example.com/*"]` |


190| `allowManagedHooksOnly` | (Solo configuraciones administradas) Solo se cargan hooks administrados, hooks SDK y hooks de plugins forzadamente habilitados en la configuración administrada `enabledPlugins`. Se bloquean hooks de usuario, proyecto y todos los demás plugins. Consulte [Configuración de hooks](#hook-configuration) | `true` |221| `allowManagedHooksOnly` | (Solo configuraciones administradas) Solo se cargan hooks administrados, hooks SDK y hooks de plugins forzadamente habilitados en la configuración administrada `enabledPlugins`. Se bloquean hooks de usuario, proyecto y todos los demás plugins. Consulte [Configuración de hooks](#hook-configuration) | `true` |

191| `allowManagedMcpServersOnly` | (Solo configuraciones administradas) Solo se respetan `allowedMcpServers` de configuraciones administradas. `deniedMcpServers` aún se fusiona desde todas las fuentes. Los usuarios aún pueden agregar MCP servers, pero solo se aplica la lista blanca definida por el administrador. Consulte [Configuración de MCP administrada](/es/managed-mcp) | `true` |222| `allowManagedMcpServersOnly` | (Solo configuraciones administradas) Solo se respetan `allowedMcpServers` de configuraciones administradas. `deniedMcpServers` aún se fusiona desde todas las fuentes. Los usuarios aún pueden agregar MCP servers, pero solo se aplica la lista blanca definida por el administrador. Consulte [Configuración de MCP administrada](/es/managed-mcp) | `true` |

192| `allowManagedPermissionRulesOnly` | (Solo configuraciones administradas) Evitar que configuraciones de usuario y proyecto definan reglas de permiso `allow`, `ask` o `deny`. Solo se aplican las reglas en configuraciones administradas. Consulte [Configuraciones solo administradas](/es/permissions#managed-only-settings) | `true` |223| `allowManagedPermissionRulesOnly` | (Solo configuraciones administradas) Evitar que configuraciones de usuario y proyecto definan reglas de permiso `allow`, `ask` o `deny`. Solo se aplican las reglas en configuraciones administradas. Consulte [Configuraciones solo administradas](/es/permissions#managed-only-settings) | `true` |

193| `alwaysThinkingEnabled` | Habilitar [pensamiento extendido](/es/model-config#extended-thinking) de forma predeterminada para todas las sesiones. Típicamente configurado a través del comando `/config` en lugar de editar directamente. Para forzar el pensamiento desactivado independientemente de esta configuración, establezca [`CLAUDE_CODE_DISABLE_THINKING`](/es/env-vars) en `env` | `true` |224| `alwaysThinkingEnabled` | Habilitar [pensamiento extendido](/es/model-config#extended-thinking) de forma predeterminada para todas las sesiones. Típicamente configurado a través del comando `/config` en lugar de editar directamente. Para forzar el pensamiento desactivado independientemente de esta configuración, establezca [`MAX_THINKING_TOKENS=0`](/es/env-vars) en `env`, que deshabilita el pensamiento en la API de Anthropic excepto en Fable 5, que no puede tener el pensamiento desactivado. En [proveedores de terceros](/es/third-party-integrations) esto omite el parámetro `thinking` en su lugar, y los modelos de razonamiento adaptativo aún pueden pensar | `true` |

194| `apiKeyHelper` | Script personalizado, a ejecutarse en `/bin/sh`, para generar un valor de autenticación. Este valor se enviará como encabezados `X-Api-Key` y `Authorization: Bearer` para solicitudes de modelo. Establezca el intervalo de actualización con [`CLAUDE_CODE_API_KEY_HELPER_TTL_MS`](/es/env-vars) | `/bin/generate_temp_api_key.sh` |225| `apiKeyHelper` | Script personalizado, a ejecutarse en `/bin/sh`, para generar un valor de autenticación. Este valor se enviará como encabezados `X-Api-Key` y `Authorization: Bearer` para solicitudes de modelo. Establezca el intervalo de actualización con [`CLAUDE_CODE_API_KEY_HELPER_TTL_MS`](/es/env-vars) | `/bin/generate_temp_api_key.sh` |

195| `attribution` | Personalizar atribución para commits de git y solicitudes de extracción. Consulte [Configuración de atribución](#attribution-settings) | `{"commit": "🤖 Generated with Claude Code", "pr": ""}` |226| `attribution` | Personalizar atribución para commits de git y solicitudes de extracción. Consulte [Configuración de atribución](#attribution-settings) | `{"commit": "🤖 Generated with Claude Code", "pr": ""}` |

227| `autoCompactEnabled` | {/* min-version: 2.1.119 */}Compactar automáticamente la conversación cuando el contexto se acerca al límite. Predeterminado: `true`. Aparece en `/config` como **Auto-compact**. Para deshabilitar a través de variable de entorno, establezca [`DISABLE_AUTO_COMPACT`](/es/env-vars) en `env` | `false` |

196| `autoMemoryDirectory` | Directorio personalizado para almacenamiento de [memoria automática](/es/memory#storage-location). Acepta una ruta absoluta o una ruta con prefijo `~/`. Se honra desde configuraciones de proyecto o local solo después de aceptar el diálogo de confianza del espacio de trabajo, ya que un repositorio clonado puede proporcionar este archivo | `"~/my-memory-dir"` |228| `autoMemoryDirectory` | Directorio personalizado para almacenamiento de [memoria automática](/es/memory#storage-location). Acepta una ruta absoluta o una ruta con prefijo `~/`. Se honra desde configuraciones de proyecto o local solo después de aceptar el diálogo de confianza del espacio de trabajo, ya que un repositorio clonado puede proporcionar este archivo | `"~/my-memory-dir"` |

197| `autoMemoryEnabled` | Habilitar [memoria automática](/es/memory#enable-or-disable-auto-memory). Cuando es `false`, Claude no lee ni escribe en el directorio de memoria automática. Predeterminado: `true`. También puede alternar esto con `/memory` durante una sesión. Para deshabilitar a través de variable de entorno, establezca [`CLAUDE_CODE_DISABLE_AUTO_MEMORY`](/es/env-vars) en `env` | `false` |229| `autoMemoryEnabled` | Habilitar [memoria automática](/es/memory#enable-or-disable-auto-memory). Cuando es `false`, Claude no lee ni escribe en el directorio de memoria automática. Predeterminado: `true`. También puede alternar esto con `/memory` durante una sesión. Para deshabilitar a través de variable de entorno, establezca [`CLAUDE_CODE_DISABLE_AUTO_MEMORY`](/es/env-vars) en `env` | `false` |

198| `autoMode` | Personalizar qué bloquea y permite el clasificador de [modo automático](/es/permission-modes#eliminate-prompts-with-auto-mode). Contiene matrices `environment`, `allow`, `soft_deny` y `hard_deny` de reglas en prosa. Incluya la cadena literal `"$defaults"` en una matriz para heredar las reglas integradas en esa posición. Consulte [Configurar modo automático](/es/auto-mode-config). No se lee desde configuraciones de proyecto compartidas | `{"soft_deny": ["$defaults", "Never run terraform apply"]}` |230| `autoMode` | Personalizar qué bloquea y permite el clasificador de [modo automático](/es/permission-modes#eliminate-prompts-with-auto-mode). Contiene matrices `environment`, `allow`, `soft_deny` y `hard_deny` de reglas en prosa. Incluya la cadena literal `"$defaults"` en una matriz para heredar las reglas integradas en esa posición. Consulte [Configurar modo automático](/es/auto-mode-config). No se lee desde configuraciones de proyecto compartidas | `{"soft_deny": ["$defaults", "Never run terraform apply"]}` |

199| `autoScrollEnabled` | En [renderizado de pantalla completa](/es/fullscreen), seguir la nueva salida hasta el final de la conversación. Predeterminado: `true`. Aparece en `/config` como **Auto-scroll**. Los avisos de permiso aún se desplazan a la vista cuando esto está desactivado | `false` |231| `autoScrollEnabled` | En [renderizado de pantalla completa](/es/fullscreen), seguir la nueva salida hasta el final de la conversación. Predeterminado: `true`. Aparece en `/config` como **Auto-scroll**. Los avisos de permiso aún se desplazan a la vista cuando esto está desactivado | `false` |

200| `autoUpdatesChannel` | Canal de lanzamiento a seguir para actualizaciones. Use `"stable"` para una versión que típicamente tiene aproximadamente una semana de antigüedad y omite versiones con regresiones importantes, o `"latest"` (predeterminado) para el lanzamiento más reciente. Para deshabilitar completamente las actualizaciones automáticas, establezca [`DISABLE_AUTOUPDATER`](/es/setup#disable-auto-updates) en `env` | `"stable"` |232| `autoUpdatesChannel` | Canal de lanzamiento a seguir para actualizaciones. Use `"stable"` para una versión que típicamente tiene aproximadamente una semana de antigüedad y omite versiones con regresiones importantes, o `"latest"` (predeterminado) para el lanzamiento más reciente. Para deshabilitar completamente las actualizaciones automáticas, establezca [`DISABLE_AUTOUPDATER`](/es/setup#disable-auto-updates) en `env` | `"stable"` |

201| `availableModels` | Restringir qué modelos pueden seleccionar los usuarios a través de `/model`, `--model`, o `ANTHROPIC_MODEL`. No afecta la opción Predeterminado. Consulte [Restringir selección de modelo](/es/model-config#restrict-model-selection) | `["sonnet", "haiku"]` |233| `availableModels` | Restringir qué modelos pueden seleccionar los usuarios para la sesión principal, [subagents](/es/sub-agents), y el [advisor](/es/advisor). Consulte [Restringir selección de modelo](/es/model-config#restrict-model-selection). Consulte `enforceAvailableModels` para también restringir Predeterminado | `["sonnet", "haiku"]` |

202| `awaySummaryEnabled` | Mostrar un resumen de sesión de una línea cuando regresa a la terminal después de estar ausente unos minutos. Establezca en `false` o desactive Resumen de sesión en `/config` para deshabilitar. Igual que [`CLAUDE_CODE_ENABLE_AWAY_SUMMARY`](/es/env-vars) | `true` |234| `awaySummaryEnabled` | Mostrar un resumen de sesión de una línea cuando regresa a la terminal después de estar ausente unos minutos. Establezca en `false` o desactive Resumen de sesión en `/config` para deshabilitar. Igual que [`CLAUDE_CODE_ENABLE_AWAY_SUMMARY`](/es/env-vars) | `true` |

203| `awsAuthRefresh` | Script personalizado que modifica el directorio `.aws` (consulte [configuración avanzada de credenciales](/es/amazon-bedrock#advanced-credential-configuration)) | `aws sso login --profile myprofile` |235| `awsAuthRefresh` | Script personalizado que modifica el directorio `.aws` (consulte [configuración avanzada de credenciales](/es/amazon-bedrock#advanced-credential-configuration)) | `aws sso login --profile myprofile` |

204| `awsCredentialExport` | Script personalizado que genera JSON con credenciales de AWS (consulte [configuración avanzada de credenciales](/es/amazon-bedrock#advanced-credential-configuration)) | `/bin/generate_aws_grant.sh` |236| `awsCredentialExport` | Script personalizado que genera JSON con credenciales de AWS (consulte [configuración avanzada de credenciales](/es/amazon-bedrock#advanced-credential-configuration)) | `/bin/generate_aws_grant.sh` |


213| `disableAgentView` | Establecer en `true` para desactivar [agentes de fondo y vista de agentes](/es/agent-view): `claude agents`, `--bg`, `/background` y el supervisor bajo demanda. Típicamente establecido en [configuraciones administradas](/es/permissions#managed-settings). Equivalente a establecer `CLAUDE_CODE_DISABLE_AGENT_VIEW` en `1` | `true` |245| `disableAgentView` | Establecer en `true` para desactivar [agentes de fondo y vista de agentes](/es/agent-view): `claude agents`, `--bg`, `/background` y el supervisor bajo demanda. Típicamente establecido en [configuraciones administradas](/es/permissions#managed-settings). Equivalente a establecer `CLAUDE_CODE_DISABLE_AGENT_VIEW` en `1` | `true` |

214| `disableAllHooks` | Deshabilitar todos los [hooks](/es/hooks) y cualquier [línea de estado](/es/statusline) personalizada | `true` |246| `disableAllHooks` | Deshabilitar todos los [hooks](/es/hooks) y cualquier [línea de estado](/es/statusline) personalizada | `true` |

215| `disableAutoMode` | Establecer en `"disable"` para evitar que se active el [modo automático](/es/permission-modes#eliminate-prompts-with-auto-mode). Elimina `auto` del ciclo `Shift+Tab` y rechaza `--permission-mode auto` al inicio. Más útil en [configuraciones administradas](/es/permissions#managed-settings) donde los usuarios no pueden anularlo | `"disable"` |247| `disableAutoMode` | Establecer en `"disable"` para evitar que se active el [modo automático](/es/permission-modes#eliminate-prompts-with-auto-mode). Elimina `auto` del ciclo `Shift+Tab` y rechaza `--permission-mode auto` al inicio. Más útil en [configuraciones administradas](/es/permissions#managed-settings) donde los usuarios no pueden anularlo | `"disable"` |

248| `disableBundledSkills` | Establecer en `true` para deshabilitar los [skills](/es/skills) y flujos de trabajo que se envían con Claude Code: los skills agrupados y flujos de trabajo se eliminan completamente, mientras que los comandos de barra inclinada integrados como `/init` permanecen escribibles pero se ocultan del modelo. Los skills de plugins, `.claude/skills/` y `.claude/commands/` no se ven afectados. Equivalente a establecer `CLAUDE_CODE_DISABLE_BUNDLED_SKILLS` en `1` | `true` |

216| `disableDeepLinkRegistration` | Establecer en `"disable"` para evitar que Claude Code registre el controlador de protocolo `claude-cli://` con el sistema operativo al inicio. Los [enlaces profundos](/es/deep-links) permiten que herramientas externas abran una sesión de Claude Code con un indicador rellenado previamente. Útil en entornos donde el registro del controlador de protocolo está restringido o se gestiona por separado | `"disable"` |249| `disableDeepLinkRegistration` | Establecer en `"disable"` para evitar que Claude Code registre el controlador de protocolo `claude-cli://` con el sistema operativo al inicio. Los [enlaces profundos](/es/deep-links) permiten que herramientas externas abran una sesión de Claude Code con un indicador rellenado previamente. Útil en entornos donde el registro del controlador de protocolo está restringido o se gestiona por separado | `"disable"` |

217| `disabledMcpjsonServers` | Lista de MCP servers específicos de archivos `.mcp.json` para rechazar | `["filesystem"]` |250| `disabledMcpjsonServers` | Lista de MCP servers específicos de archivos `.mcp.json` para rechazar | `["filesystem"]` |

218| `disableRemoteControl` | {/* min-version: 2.1.128 */}Deshabilitar [Control Remoto](/es/remote-control): bloquea `claude remote-control`, la bandera `--remote-control`, auto-inicio y el toggle en sesión. Típicamente colocado en [configuraciones administradas](/es/permissions#managed-settings) para aplicación de MDM por dispositivo, pero funciona desde cualquier ámbito. Requiere Claude Code v2.1.128 o posterior | `true` |251| `disableRemoteControl` | {/* min-version: 2.1.128 */}Deshabilitar [Control Remoto](/es/remote-control): bloquea `claude remote-control`, la bandera `--remote-control`, auto-inicio y el toggle en sesión. Típicamente colocado en [configuraciones administradas](/es/permissions#managed-settings) para aplicación de MDM por dispositivo, pero funciona desde cualquier ámbito. Requiere Claude Code v2.1.128 o posterior | `true` |


222| `effortLevel` | Persistir el [nivel de esfuerzo](/es/model-config#adjust-effort-level) entre sesiones. Acepta `"low"`, `"medium"`, `"high"`, o `"xhigh"`. Se escribe automáticamente cuando ejecuta `/effort` con uno de esos valores. `--effort` y [`CLAUDE_CODE_EFFORT_LEVEL`](/es/env-vars) anulan esto para una sesión. Consulte [Ajustar nivel de esfuerzo](/es/model-config#adjust-effort-level) para modelos compatibles | `"xhigh"` |255| `effortLevel` | Persistir el [nivel de esfuerzo](/es/model-config#adjust-effort-level) entre sesiones. Acepta `"low"`, `"medium"`, `"high"`, o `"xhigh"`. Se escribe automáticamente cuando ejecuta `/effort` con uno de esos valores. `--effort` y [`CLAUDE_CODE_EFFORT_LEVEL`](/es/env-vars) anulan esto para una sesión. Consulte [Ajustar nivel de esfuerzo](/es/model-config#adjust-effort-level) para modelos compatibles | `"xhigh"` |

223| `enableAllProjectMcpServers` | Aprobar automáticamente todos los MCP servers definidos en archivos `.mcp.json` de proyecto | `true` |256| `enableAllProjectMcpServers` | Aprobar automáticamente todos los MCP servers definidos en archivos `.mcp.json` de proyecto | `true` |

224| `enabledMcpjsonServers` | Lista de MCP servers específicos de archivos `.mcp.json` para aprobar | `["memory", "github"]` |257| `enabledMcpjsonServers` | Lista de MCP servers específicos de archivos `.mcp.json` para aprobar | `["memory", "github"]` |

258| `enforceAvailableModels` | {/* min-version: 2.1.175 */}Cuando es `true` y `availableModels` es una lista no vacía en configuraciones administradas o de política, el modelo Predeterminado también está restringido a la lista blanca. Consulte [Restringir selección de modelo](/es/model-config#restrict-model-selection) para detalles y el [comportamiento de fusión](/es/model-config#merge-behavior) cuando `availableModels` se establece en múltiples niveles. Requiere Claude Code v2.1.175 o posterior | `true` |

225| `env` | Variables de entorno aplicadas a cada sesión y a subprocesos que Claude Code genera desde ella. {/* min-version: 2.1.143 */}A partir de v2.1.143, `NO_COLOR` y `FORCE_COLOR` establecidos aquí se pasan a subprocesos pero no cambian los colores de la interfaz propia de Claude Code. Establezca esos en su shell antes de lanzar `claude` para cambiar los colores de la interfaz | `{"FOO": "bar"}` |259| `env` | Variables de entorno aplicadas a cada sesión y a subprocesos que Claude Code genera desde ella. {/* min-version: 2.1.143 */}A partir de v2.1.143, `NO_COLOR` y `FORCE_COLOR` establecidos aquí se pasan a subprocesos pero no cambian los colores de la interfaz propia de Claude Code. Establezca esos en su shell antes de lanzar `claude` para cambiar los colores de la interfaz | `{"FOO": "bar"}` |

260| `fallbackModel` | Modelo(s) de respaldo a intentar en orden cuando el modelo principal está sobrecargado o no disponible. Claude Code cambia al siguiente modelo disponible en la cadena para el resto del turno y muestra un aviso. `"default"` se expande al modelo predeterminado. Las cadenas se limitan a tres modelos; las entradas adicionales se ignoran. A diferencia de la mayoría de configuraciones de matriz, esta clave no se fusiona entre archivos de configuración: el archivo de mayor precedencia que la define suministra toda la cadena. La bandera [`--fallback-model`](/es/cli-reference#cli-flags) anula esto para una sesión. Consulte [Cadenas de modelo de respaldo](/es/model-config#fallback-model-chains) | `["claude-sonnet-4-6", "claude-haiku-4-5"]` |

226| `fastModePerSessionOptIn` | Cuando es `true`, el modo rápido no persiste entre sesiones. Cada sesión comienza con el modo rápido desactivado, requiriendo que los usuarios lo habiliten con `/fast`. La preferencia de modo rápido del usuario aún se guarda. Consulte [Requerir opt-in por sesión](/es/fast-mode#require-per-session-opt-in) | `true` |261| `fastModePerSessionOptIn` | Cuando es `true`, el modo rápido no persiste entre sesiones. Cada sesión comienza con el modo rápido desactivado, requiriendo que los usuarios lo habiliten con `/fast`. La preferencia de modo rápido del usuario aún se guarda. Consulte [Requerir opt-in por sesión](/es/fast-mode#require-per-session-opt-in) | `true` |

227| `feedbackSurveyRate` | Probabilidad (0–1) de que la [encuesta de calidad de sesión](/es/data-usage#session-quality-surveys) aparezca cuando sea elegible. Establecer en `0` para suprimir completamente, o establezca [`CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY`](/es/env-vars) en `env`. Útil cuando se usa Bedrock, Vertex, o Foundry donde la tasa de muestreo predeterminada no se aplica | `0.05` |262| `feedbackSurveyRate` | Probabilidad (0–1) de que la [encuesta de calidad de sesión](/es/data-usage#session-quality-surveys) aparezca cuando sea elegible. Establecer en `0` para suprimir completamente, o establezca [`CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY`](/es/env-vars) en `env`. Útil cuando se usa Bedrock, Vertex, o Foundry donde la tasa de muestreo predeterminada no se aplica | `0.05` |

263| `fileCheckpointingEnabled` | {/* min-version: 2.1.119 */}Capturar archivos antes de cada edición para que [`/rewind`](/es/checkpointing) pueda restaurarlos. Predeterminado: `true`. Aparece en `/config` como **Rewind code (checkpoints)**. Para deshabilitar a través de variable de entorno, establezca [`CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING`](/es/env-vars) en `env` | `false` |

228| `fileSuggestion` | Configurar un script personalizado para autocompletado de archivo `@`. Consulte [Configuración de sugerencia de archivo](#file-suggestion-settings) | `{"type": "command", "command": "~/.claude/file-suggestion.sh"}` |264| `fileSuggestion` | Configurar un script personalizado para autocompletado de archivo `@`. Consulte [Configuración de sugerencia de archivo](#file-suggestion-settings) | `{"type": "command", "command": "~/.claude/file-suggestion.sh"}` |

265| `footerLinksRegexes` | {/* min-version: 2.1.176 */}Renderizar insignias clickeables adicionales en el pie de página cuando una regex coincide con la salida del turno. Cada entrada tiene un `pattern`, una plantilla de URL `url` con placeholders `{name}` rellenados desde grupos de captura nombrados, y una `label` opcional. Se lee desde configuraciones de usuario, bandera `--settings` y configuraciones administradas solamente. Consulte [Insignias de enlace de pie de página](#footer-link-badges) para restricciones de URL, lista blanca de esquemas y límites. Requiere Claude Code v2.1.176 o posterior | `[{"type": "regex", "pattern": "\\b(?<key>PROJ-\\d+)\\b", "url": "https://issues.example.com/browse/{key}", "label": "{key}"}]` |

229| `forceLoginMethod` | Use `claudeai` para restringir el inicio de sesión a cuentas de Claude.ai, `console` para restringir el inicio de sesión a cuentas de Claude Console. Cuando se establece en configuraciones administradas, se bloquean sesiones autenticadas por `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN`, o `apiKeyHelper` al inicio, ya que ninguno de los valores puede satisfacerse sin OAuth de primera parte. Las sesiones de proveedores de terceros como Bedrock, Vertex y Foundry no se bloquean: se autentican contra su proveedor de nube en lugar de Anthropic | `claudeai` |266| `forceLoginMethod` | Use `claudeai` para restringir el inicio de sesión a cuentas de Claude.ai, `console` para restringir el inicio de sesión a cuentas de Claude Console. Cuando se establece en configuraciones administradas, se bloquean sesiones autenticadas por `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN`, o `apiKeyHelper` al inicio, ya que ninguno de los valores puede satisfacerse sin OAuth de primera parte. Las sesiones de proveedores de terceros como Bedrock, Vertex y Foundry no se bloquean: se autentican contra su proveedor de nube en lugar de Anthropic | `claudeai` |

230| `forceLoginOrgUUID` | Requerir que el inicio de sesión pertenezca a una organización específica de Anthropic. Acepta una cadena UUID única, que también preselecciona esa organización durante el inicio de sesión, o una matriz de UUID donde se acepta cualquier organización listada sin preselección. Cuando se establece en configuraciones administradas, el inicio de sesión falla si la cuenta autenticada no pertenece a una organización listada, y sesiones autenticadas por `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN`, o `apiKeyHelper` se bloquean al inicio ya que la pertenencia a la organización no puede verificarse para ellas. Las sesiones de proveedores de terceros como Bedrock, Vertex y Foundry no se bloquean: use su IAM de nube para restringir qué cuentas de nube pueden usarse. Una matriz vacía falla cerrada y bloquea el inicio de sesión con un mensaje de configuración incorrecta | `"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"` o `["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy"]` |267| `forceLoginOrgUUID` | Requerir que el inicio de sesión pertenezca a una organización específica de Anthropic. Acepta una cadena UUID única, que también preselecciona esa organización durante el inicio de sesión, o una matriz de UUID donde se acepta cualquier organización listada sin preselección. Cuando se establece en configuraciones administradas, el inicio de sesión falla si la cuenta autenticada no pertenece a una organización listada, y sesiones autenticadas por `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN`, o `apiKeyHelper` se bloquean al inicio ya que la pertenencia a la organización no puede verificarse para ellas. Las sesiones de proveedores de terceros como Bedrock, Vertex y Foundry no se bloquean: use su IAM de nube para restringir qué cuentas de nube pueden usarse. Una matriz vacía falla cerrada y bloquea el inicio de sesión con un mensaje de configuración incorrecta | `"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"` o `["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy"]` |

231| `forceRemoteSettingsRefresh` | (Solo configuraciones administradas) Bloquear el inicio de CLI hasta que se obtengan configuraciones administradas remotas recientemente del servidor. Si la obtención falla, la CLI se cierra en lugar de continuar con configuraciones en caché o sin configuraciones. Cuando no se establece, el inicio continúa sin esperar configuraciones remotas. Consulte [aplicación de cierre de falla](/es/server-managed-settings#enforce-fail-closed-startup) | `true` |268| `forceRemoteSettingsRefresh` | (Solo configuraciones administradas) Bloquear el inicio de CLI hasta que se obtengan configuraciones administradas remotas recientemente del servidor. Si la obtención falla, la CLI se cierra en lugar de continuar con configuraciones en caché o sin configuraciones. Cuando no se establece, el inicio continúa sin esperar configuraciones remotas. Consulte [aplicación de cierre de falla](/es/server-managed-settings#enforce-fail-closed-startup) | `true` |


234| `httpHookAllowedEnvVars` | Lista blanca de nombres de variables de entorno que los hooks HTTP pueden interpolar en encabezados. Cuando se establece, el `allowedEnvVars` efectivo de cada hook es la intersección con esta lista. Sin definir = sin restricción. Las matrices se fusionan entre fuentes de configuración. Consulte [Configuración de hooks](#hook-configuration) | `["MY_TOKEN", "HOOK_SECRET"]` |271| `httpHookAllowedEnvVars` | Lista blanca de nombres de variables de entorno que los hooks HTTP pueden interpolar en encabezados. Cuando se establece, el `allowedEnvVars` efectivo de cada hook es la intersección con esta lista. Sin definir = sin restricción. Las matrices se fusionan entre fuentes de configuración. Consulte [Configuración de hooks](#hook-configuration) | `["MY_TOKEN", "HOOK_SECRET"]` |

235| `includeCoAuthoredBy` | **Obsoleto**: Use `attribution` en su lugar. Si incluir la línea `co-authored-by Claude` en commits de git y solicitudes de extracción (predeterminado: `true`) | `false` |272| `includeCoAuthoredBy` | **Obsoleto**: Use `attribution` en su lugar. Si incluir la línea `co-authored-by Claude` en commits de git y solicitudes de extracción (predeterminado: `true`) | `false` |

236| `includeGitInstructions` | Incluir instrucciones de flujo de trabajo de commit y PR integradas y la instantánea de estado de git en el indicador del sistema de Claude (predeterminado: `true`). Establecer en `false` para eliminar ambas, por ejemplo cuando se usan skills de flujo de trabajo de git personalizados. La variable de entorno `CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS` tiene precedencia sobre esta configuración cuando se establece | `false` |273| `includeGitInstructions` | Incluir instrucciones de flujo de trabajo de commit y PR integradas y la instantánea de estado de git en el indicador del sistema de Claude (predeterminado: `true`). Establecer en `false` para eliminar ambas, por ejemplo cuando se usan skills de flujo de trabajo de git personalizados. La variable de entorno `CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS` tiene precedencia sobre esta configuración cuando se establece | `false` |

237| `language` | Configurar el idioma de respuesta preferido de Claude (por ejemplo, `"japanese"`, `"spanish"`, `"french"`). Claude responderá en este idioma de forma predeterminada. También establece el idioma de [dictado de voz](/es/voice-dictation#change-the-dictation-language) | `"japanese"` |274| `inputNeededNotifEnabled` | {/* min-version: 2.1.119 */}Cuando [Remote Control](/es/remote-control) está conectado, enviar una notificación push a su teléfono cuando un aviso de permiso o pregunta está esperando su entrada. Predeterminado: `false`. Aparece en `/config` como **Push when actions required**. Consulte [Notificaciones push móviles](/es/remote-control#mobile-push-notifications). Requiere Claude Code v2.1.119 o posterior | `true` |

275| `language` | Configurar el idioma de respuesta preferido de Claude (por ejemplo, `"japanese"`, `"spanish"`, `"french"`). Claude responderá en este idioma de forma predeterminada. También establece el idioma de [dictado de voz](/es/voice-dictation#change-the-dictation-language) y títulos de sesión generados automáticamente. {/* min-version: 2.1.176 */}A partir de v2.1.176, cuando no está definido, los títulos de sesión coinciden con el idioma de su conversación | `"japanese"` |

238| `maxSkillDescriptionChars` | {/* min-version: 2.1.105 */}Límite de caracteres por skill en el texto combinado de `description` y `when_to_use` en el [listado de skills](/es/skills#skill-descriptions-are-cut-short) que Claude ve cada turno (predeterminado: `1536`). El texto más largo que esto se trunca. Aumente para mantener descripciones largas intactas al costo de más contexto por turno; disminuya para ajustar más skills bajo [`skillListingBudgetFraction`](#available-settings). Requiere Claude Code v2.1.105 o posterior | `2048` |276| `maxSkillDescriptionChars` | {/* min-version: 2.1.105 */}Límite de caracteres por skill en el texto combinado de `description` y `when_to_use` en el [listado de skills](/es/skills#skill-descriptions-are-cut-short) que Claude ve cada turno (predeterminado: `1536`). El texto más largo que esto se trunca. Aumente para mantener descripciones largas intactas al costo de más contexto por turno; disminuya para ajustar más skills bajo [`skillListingBudgetFraction`](#available-settings). Requiere Claude Code v2.1.105 o posterior | `2048` |

239| `minimumVersion` | Piso que evita que las actualizaciones automáticas en segundo plano e `claude update` instalen una versión por debajo de esta. Cambiar del canal `"latest"` a `"stable"` a través de `/config` le solicita que permanezca en la versión actual o permita la degradación. Elegir permanecer establece este valor. También útil en [configuraciones administradas](/es/permissions#managed-settings) para fijar un mínimo en toda la organización | `"2.1.100"` |277| `minimumVersion` | Piso que evita que las actualizaciones automáticas en segundo plano e `claude update` instalen una versión por debajo de esta. Cambiar del canal `"latest"` a `"stable"` a través de `/config` le solicita que permanezca en la versión actual o permita la degradación. Elegir permanecer establece este valor. También útil en [configuraciones administradas](/es/permissions#managed-settings) para fijar un mínimo en toda la organización. Para un piso duro que bloquea el inicio completamente, consulte `requiredMinimumVersion` | `"2.1.100"` |

240| `model` | Anular el modelo predeterminado a usar para Claude Code. `--model` y [`ANTHROPIC_MODEL`](/es/model-config#environment-variables) anulan esto para una sesión | `"claude-sonnet-4-6"` |278| `model` | Anular el modelo predeterminado a usar para Claude Code. `--model` y [`ANTHROPIC_MODEL`](/es/model-config#environment-variables) anulan esto para una sesión | `"claude-sonnet-4-6"` |

241| `modelOverrides` | Asignar IDs de modelo de Anthropic a IDs de modelo específicos del proveedor como ARNs de perfil de inferencia de Bedrock. Cada entrada del selector de modelo usa su valor asignado al llamar a la API del proveedor. Consulte [Anular IDs de modelo por versión](/es/model-config#override-model-ids-per-version) | `{"claude-opus-4-6": "arn:aws:bedrock:..."}` |279| `modelOverrides` | Asignar IDs de modelo de Anthropic a IDs de modelo específicos del proveedor como ARNs de perfil de inferencia de Bedrock. Cada entrada del selector de modelo usa su valor asignado al llamar a la API del proveedor. Consulte [Anular IDs de modelo por versión](/es/model-config#override-model-ids-per-version) | `{"claude-opus-4-6": "arn:aws:bedrock:..."}` |

242| `otelHeadersHelper` | Script para generar encabezados dinámicos de OpenTelemetry. Se ejecuta al inicio y periódicamente. Establezca el intervalo de actualización con [`CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS`](/es/env-vars). Consulte [Encabezados dinámicos](/es/monitoring-usage#dynamic-headers) | `/bin/generate_otel_headers.sh` |280| `otelHeadersHelper` | Script para generar encabezados dinámicos de OpenTelemetry. Se ejecuta al inicio y periódicamente. Establezca el intervalo de actualización con [`CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS`](/es/env-vars). Consulte [Encabezados dinámicos](/es/monitoring-usage#dynamic-headers) | `/bin/generate_otel_headers.sh` |


244| `parentSettingsBehavior` | {/* min-version: 2.1.133 */}(Solo configuraciones administradas) Controla si las configuraciones administradas suministradas programáticamente por un proceso host de incrustación, como el Agent SDK o una extensión IDE, se aplican cuando también está presente un nivel administrado implementado por administrador. `"first-wins"`: las configuraciones suministradas por el padre se descartan y solo se aplica el nivel administrado. `"merge"`: las configuraciones suministradas por el padre se aplican bajo el nivel administrado, filtradas para que puedan restringir la política pero no flexibilizarla. No tiene efecto cuando no se implementa ningún nivel administrado. Predeterminado: `"first-wins"`. Requiere Claude Code v2.1.133 o posterior | `"merge"` |282| `parentSettingsBehavior` | {/* min-version: 2.1.133 */}(Solo configuraciones administradas) Controla si las configuraciones administradas suministradas programáticamente por un proceso host de incrustación, como el Agent SDK o una extensión IDE, se aplican cuando también está presente un nivel administrado implementado por administrador. `"first-wins"`: las configuraciones suministradas por el padre se descartan y solo se aplica el nivel administrado. `"merge"`: las configuraciones suministradas por el padre se aplican bajo el nivel administrado, filtradas para que puedan restringir la política pero no flexibilizarla. No tiene efecto cuando no se implementa ningún nivel administrado. Predeterminado: `"first-wins"`. Requiere Claude Code v2.1.133 o posterior | `"merge"` |

245| `permissions` | Consulte la tabla a continuación para la estructura de permisos. | |283| `permissions` | Consulte la tabla a continuación para la estructura de permisos. | |

246| `plansDirectory` | Personalizar dónde se almacenan los archivos de plan. La ruta es relativa a la raíz del proyecto. Predeterminado: `~/.claude/plans` | `"./plans"` |284| `plansDirectory` | Personalizar dónde se almacenan los archivos de plan. La ruta es relativa a la raíz del proyecto. Predeterminado: `~/.claude/plans` | `"./plans"` |

247| `pluginSuggestionMarketplaces` | (Solo configuraciones administradas) Nombres de marketplace cuyos plugins pueden aparecer como sugerencias de instalación contextual, además del marketplace oficial. Las sugerencias provienen de la declaración `relevance` de cada plugin en su entrada de marketplace. Un nombre solo tiene efecto cuando el marketplace está registrado en la máquina y su fuente registrada también se declara en configuraciones administradas, ya sea como la entrada `extraKnownMarketplaces` para ese nombre o como una entrada de `strictKnownMarketplaces`. Un marketplace registrado desde una fuente diferente bajo un nombre en lista blanca se ignora. | `["acme-corp-plugins"]` |285| `pluginSuggestionMarketplaces` | (Solo configuraciones administradas) Nombres de marketplace cuyos plugins pueden aparecer como sugerencias de instalación contextual. No se muestran sugerencias declaradas por marketplace sin esta lista blanca; la sugerencia integrada de diseño de frontend de primera parte no se ve afectada. Las sugerencias provienen de la declaración `relevance` de cada plugin en su entrada de marketplace. Un nombre solo tiene efecto cuando el marketplace está registrado en la máquina y su fuente registrada también se declara en configuraciones administradas, ya sea como la entrada `extraKnownMarketplaces` para ese nombre o como una entrada de `strictKnownMarketplaces`. Un marketplace registrado desde una fuente diferente bajo un nombre en lista blanca se ignora. El marketplace oficial está exento del requisito de fuente: permitir su nombre solo es suficiente, ya que ese nombre solo puede registrarse desde la fuente oficial de Anthropic. | `["acme-corp-plugins"]` |

248| `pluginTrustMessage` | (Solo configuraciones administradas) Mensaje personalizado agregado a la advertencia de confianza de plugin mostrada antes de la instalación. Use esto para agregar contexto específico de la organización, por ejemplo para confirmar que los plugins de su marketplace interno están verificados. | `"All plugins from our marketplace are approved by IT"` |286| `pluginTrustMessage` | (Solo configuraciones administradas) Mensaje personalizado agregado a la advertencia de confianza de plugin mostrada antes de la instalación. Use esto para agregar contexto específico de la organización, por ejemplo para confirmar que los plugins de su marketplace interno están verificados. | `"All plugins from our marketplace are approved by IT"` |

249| `policyHelper` | {/* min-version: 2.1.136 */}Ejecutable implementado por administrador que calcula configuraciones administradas dinámicamente al inicio. Solo se honra desde MDM o un archivo `managed-settings.json` del sistema. Consulte [Calcular configuraciones administradas con un asistente de política](#compute-managed-settings-with-a-policy-helper). Requiere Claude Code v2.1.136 o posterior | `{"path": "/usr/local/bin/claude-policy"}` |287| `policyHelper` | {/* min-version: 2.1.136 */}Ejecutable implementado por administrador que calcula configuraciones administradas dinámicamente al inicio. Solo se honra desde MDM o un archivo `managed-settings.json` del sistema. Consulte [Calcular configuraciones administradas con un asistente de política](#compute-managed-settings-with-a-policy-helper). Requiere Claude Code v2.1.136 o posterior | `{"path": "/usr/local/bin/claude-policy"}` |

250| `preferredNotifChannel` | Método para notificaciones de tarea completada y solicitud de permiso: `"auto"`, `"terminal_bell"`, `"iterm2"`, `"iterm2_with_bell"`, `"kitty"`, `"ghostty"`, o `"notifications_disabled"`. Predeterminado: `"auto"`, que envía una notificación de escritorio en iTerm2, Ghostty y Kitty y no hace nada en otras terminales. Establezca `"terminal_bell"` para sonar el carácter de campana en cualquier terminal. Aparece en `/config` como **Notifications**. Consulte [Obtener una campana de terminal o notificación](/es/terminal-config#get-a-terminal-bell-or-notification) | `"terminal_bell"` |288| `preferredNotifChannel` | Método para notificaciones de tarea completada y solicitud de permiso: `"auto"`, `"terminal_bell"`, `"iterm2"`, `"iterm2_with_bell"`, `"kitty"`, `"ghostty"`, o `"notifications_disabled"`. Predeterminado: `"auto"`, que envía una notificación de escritorio en iTerm2, Ghostty y Kitty y no hace nada en otras terminales. Establezca `"terminal_bell"` para sonar el carácter de campana en cualquier terminal. Aparece en `/config` como **Notifications**. Consulte [Obtener una campana de terminal o notificación](/es/terminal-config#get-a-terminal-bell-or-notification) | `"terminal_bell"` |

251| `prefersReducedMotion` | Reducir o deshabilitar animaciones de UI (spinners, shimmer, efectos flash) para accesibilidad | `true` |289| `prefersReducedMotion` | Reducir o deshabilitar animaciones de UI (spinners, shimmer, efectos flash) para accesibilidad | `true` |

252| `prUrlTemplate` | Plantilla de URL para la insignia de PR mostrada en el pie de página y en resúmenes de resultados de herramientas. Sustituye `{host}`, `{owner}`, `{repo}`, `{number}` y `{url}` de la URL de PR reportada por `gh`. Use para apuntar enlaces de PR a una herramienta de revisión de código interna en lugar de `github.com`. No afecta autolinks `#123` en la prosa de Claude | `"https://reviews.example.com/{owner}/{repo}/pull/{number}"` |290| `prUrlTemplate` | Plantilla de URL para la insignia de PR mostrada en el pie de página y en resúmenes de resultados de herramientas. Sustituye `{host}`, `{owner}`, `{repo}`, `{number}` y `{url}` de la URL de PR reportada por `gh`. Use para apuntar enlaces de PR a una herramienta de revisión de código interna en lugar de `github.com`. No afecta autolinks `#123` en la prosa de Claude | `"https://reviews.example.com/{owner}/{repo}/pull/{number}"` |

291| `requiredMaximumVersion` | Solo configuraciones administradas. Versión máxima de Claude Code permitida para iniciar. Si la versión en ejecución es más nueva, Claude Code se cierra al inicio e instruye al usuario a instalar una versión aprobada a través del método aprobado de la organización; `claude install <version>` también puede funcionar. Las actualizaciones automáticas en segundo plano y `claude update` omiten versiones por encima del techo, por lo que una instalación en rango permanece en rango. `claude update`, `claude install` y `claude doctor` continúan funcionando por encima del techo para que los usuarios puedan recuperarse. Las versiones anteriores a esta configuración la ignoran | `"2.1.150"` |

292| `requiredMinimumVersion` | Solo configuraciones administradas. Versión mínima de Claude Code requerida para iniciar. Si la versión en ejecución es más antigua, Claude Code se cierra al inicio e instruye al usuario a actualizar a través del método aprobado de la organización. `claude update`, `claude install` y `claude doctor` continúan funcionando por debajo del piso para que los usuarios puedan recuperarse. Difiere de `minimumVersion`, que evita degradaciones pero nunca bloquea el inicio. Las versiones anteriores a esta configuración la ignoran | `"2.1.150"` |

253| `respectGitignore` | Controlar si el selector de archivo `@` respeta patrones `.gitignore`. Cuando es `true` (predeterminado), los archivos que coinciden con patrones `.gitignore` se excluyen de las sugerencias | `false` |293| `respectGitignore` | Controlar si el selector de archivo `@` respeta patrones `.gitignore`. Cuando es `true` (predeterminado), los archivos que coinciden con patrones `.gitignore` se excluyen de las sugerencias | `false` |

254| `showClearContextOnPlanAccept` | Mostrar la opción "borrar contexto" en la pantalla de aceptación del plan. Predeterminado: `false`. Establecer en `true` para restaurar la opción | `true` |294| `showClearContextOnPlanAccept` | Mostrar la opción "borrar contexto" en la pantalla de aceptación del plan. Predeterminado: `false`. Establecer en `true` para restaurar la opción | `true` |

255| `showThinkingSummaries` | Mostrar resúmenes de [pensamiento extendido](/es/model-config#extended-thinking) en sesiones interactivas. Cuando no está definido o es `false` (predeterminado en modo interactivo), los bloques de pensamiento se redactan por la API y se muestran como un stub contraído. La redacción solo cambia lo que ve, no lo que genera el modelo: para reducir el gasto de pensamiento, [baje el presupuesto o deshabilite el pensamiento](/es/model-config#extended-thinking) en su lugar. Esta configuración no tiene efecto en modo no interactivo (`-p`), el Agent SDK, o extensiones IDE como VS Code | `true` |295| `showThinkingSummaries` | Mostrar resúmenes de [pensamiento extendido](/es/model-config#extended-thinking) en sesiones interactivas. Cuando no está definido o es `false` (predeterminado en modo interactivo), los bloques de pensamiento se redactan por la API y se muestran como un stub contraído. La redacción solo cambia lo que ve, no lo que genera el modelo: para reducir el gasto de pensamiento, [baje el presupuesto o deshabilite el pensamiento](/es/model-config#extended-thinking) en su lugar. Esta configuración no tiene efecto en modo no interactivo (`-p`), el Agent SDK, o extensiones IDE como VS Code | `true` |


265| `strictKnownMarketplaces` | (Solo configuraciones administradas) Lista blanca de fuentes de marketplace de plugins. Sin definir = sin restricciones, matriz vacía = bloqueo. Aplicada en adición de marketplace y en instalación, actualización, actualización y auto-actualización de plugins, por lo que un marketplace agregado antes de que se estableciera la política no puede usarse para obtener plugins. Consulte [Restricciones de marketplace administradas](/es/plugin-marketplaces#managed-marketplace-restrictions) | `[{ "source": "github", "repo": "acme-corp/plugins" }]` |305| `strictKnownMarketplaces` | (Solo configuraciones administradas) Lista blanca de fuentes de marketplace de plugins. Sin definir = sin restricciones, matriz vacía = bloqueo. Aplicada en adición de marketplace y en instalación, actualización, actualización y auto-actualización de plugins, por lo que un marketplace agregado antes de que se estableciera la política no puede usarse para obtener plugins. Consulte [Restricciones de marketplace administradas](/es/plugin-marketplaces#managed-marketplace-restrictions) | `[{ "source": "github", "repo": "acme-corp/plugins" }]` |

266| `strictPluginOnlyCustomization` | (Solo configuraciones administradas) Bloquear skills, agents, hooks y MCP servers de fuentes de usuario y proyecto, para que solo puedan provenir de plugins o configuraciones administradas. `true` bloquea las cuatro superficies; una matriz bloquea solo las nombradas. Consulte [`strictPluginOnlyCustomization`](#strictpluginonlycustomization) | `["skills", "hooks"]` |306| `strictPluginOnlyCustomization` | (Solo configuraciones administradas) Bloquear skills, agents, hooks y MCP servers de fuentes de usuario y proyecto, para que solo puedan provenir de plugins o configuraciones administradas. `true` bloquea las cuatro superficies; una matriz bloquea solo las nombradas. Consulte [`strictPluginOnlyCustomization`](#strictpluginonlycustomization) | `["skills", "hooks"]` |

267| `syntaxHighlightingDisabled` | Deshabilitar resaltado de sintaxis en diffs, bloques de código y vistas previas de archivos | `true` |307| `syntaxHighlightingDisabled` | Deshabilitar resaltado de sintaxis en diffs, bloques de código y vistas previas de archivos | `true` |

268| `teammateMode` | Cómo se muestran los compañeros de [equipo de agentes](/es/agent-teams): `auto` (elige paneles divididos en tmux o iTerm2, en proceso de otra manera), `in-process`, o `tmux`. `--teammate-mode` anula esto para una sesión. Consulte [elegir un modo de visualización](/es/agent-teams#choose-a-display-mode) | `"in-process"` |308| `teammateMode` | Cómo se muestran los compañeros de [equipo de agentes](/es/agent-teams): `auto` (elige paneles divididos en tmux o iTerm2, en proceso de otra manera), `in-process`, o `tmux` (paneles divididos usando tmux o iTerm2, detectado desde su terminal). `--teammate-mode` anula esto para una sesión. Consulte [elegir un modo de visualización](/es/agent-teams#choose-a-display-mode) | `"in-process"` |

269| `terminalProgressBarEnabled` | Mostrar la barra de progreso del terminal en terminales compatibles: ConEmu, Ghostty 1.2.0+, e iTerm2 3.6.6+. Predeterminado: `true`. Aparece en `/config` como **Terminal progress bar** | `false` |309| `terminalProgressBarEnabled` | Mostrar la barra de progreso del terminal en terminales compatibles: ConEmu, Ghostty 1.2.0+, e iTerm2 3.6.6+. Predeterminado: `true`. Aparece en `/config` como **Terminal progress bar** | `false` |

270| `tui` | Renderizador de interfaz de usuario de terminal. Use `"fullscreen"` para el renderizador [alt-screen](/es/fullscreen) sin parpadeos con scrollback virtualizado. Use `"default"` para el renderizador clásico de pantalla principal. Establezca a través de `/tui`. También puede establecer la variable de entorno [`CLAUDE_CODE_NO_FLICKER`](/es/env-vars) | `"fullscreen"` |310| `theme` | {/* min-version: 2.1.119 */}Tema de color para la interfaz: `"auto"`, `"dark"`, `"light"`, `"dark-daltonized"`, `"light-daltonized"`, `"dark-ansi"`, `"light-ansi"`, o una referencia de tema personalizado como `"custom:<slug>"` o `"custom:<plugin-name>:<slug>"`. Predeterminado: `"dark"`. Consulte [Crear un tema personalizado](/es/terminal-config#create-a-custom-theme). Aparece en `/config` como **Theme** | `"dark"` |

311| `tui` | Renderizador de interfaz de usuario de terminal. Use `"fullscreen"` para el renderizador [alt-screen](/es/fullscreen) sin parpadeos con scrollback virtualizado. Use `"default"` para el renderizador clásico de pantalla principal. Establezca a través de `/tui`. También puede establecer la variable de entorno [`CLAUDE_CODE_NO_FLICKER`](/es/env-vars). Las sesiones de fondo abiertas desde [vista de agentes](/es/agent-view) siempre usan el renderizador de pantalla completa independientemente de esta configuración | `"fullscreen"` |

271| `ultracode` | Activar [ultracode](/es/workflows#let-claude-decide-with-ultracode) para la sesión. Solo para sesión y no se lee desde `settings.json`. Establezca a través de `/effort ultracode`, `--settings`, o una solicitud de control del Agent SDK | `true` |312| `ultracode` | Activar [ultracode](/es/workflows#let-claude-decide-with-ultracode) para la sesión. Solo para sesión y no se lee desde `settings.json`. Establezca a través de `/effort ultracode`, `--settings`, o una solicitud de control del Agent SDK | `true` |

272| `useAutoModeDuringPlan` | Si el modo de plan usa semántica de modo automático cuando el modo automático está disponible. Predeterminado: `true`. No se lee desde configuraciones de proyecto compartidas. Aparece en `/config` como "Use auto mode during plan" | `false` |313| `useAutoModeDuringPlan` | Si el modo de plan usa semántica de modo automático cuando el modo automático está disponible. Predeterminado: `true`. No se lee desde configuraciones de proyecto compartidas. Aparece en `/config` como "Use auto mode during plan" | `false` |

314| `verbose` | {/* min-version: 2.1.119 */}Mostrar salida completa de herramientas en lugar de resúmenes truncados. Predeterminado: `false`. Aparece en `/config` como **Verbose output**. La bandera `--verbose` anula esto para una sesión | `true` |

273| `viewMode` | Modo de vista de transcripción predeterminado al inicio: `"default"`, `"verbose"`, o `"focus"`. Anula la selección pegajosa de `/focus` cuando se establece. La bandera `--verbose` anula esto para una sesión | `"verbose"` |315| `viewMode` | Modo de vista de transcripción predeterminado al inicio: `"default"`, `"verbose"`, o `"focus"`. Anula la selección pegajosa de `/focus` cuando se establece. La bandera `--verbose` anula esto para una sesión | `"verbose"` |

274| `voice` | Configuración de [dictado de voz](/es/voice-dictation): `enabled` activa el dictado, `mode` selecciona `"hold"` o `"tap"`, y `autoSubmit` envía el indicador al soltar la tecla en modo hold. Se escribe automáticamente cuando ejecuta `/voice`. Requiere una cuenta de Claude.ai | `{ "enabled": true, "mode": "tap" }` |316| `voice` | Configuración de [dictado de voz](/es/voice-dictation): `enabled` activa el dictado, `mode` selecciona `"hold"` o `"tap"`, y `autoSubmit` envía el indicador al soltar la tecla en modo hold. Se escribe automáticamente cuando ejecuta `/voice`. Requiere una cuenta de Claude.ai | `{ "enabled": true, "mode": "tap" }` |

275| `voiceEnabled` | Alias heredado para `voice.enabled`. Prefiera el objeto `voice` | `true` |317| `voiceEnabled` | Alias heredado para `voice.enabled`. Prefiera el objeto `voice` | `true` |

318| `wheelScrollAccelerationEnabled` | {/* min-version: 2.1.174 */}En [renderizado de pantalla completa](/es/fullscreen#mouse-wheel-scrolling), acelerar la velocidad de desplazamiento de la rueda del ratón durante desplazamientos rápidos. Predeterminado: `true`. Establezca en `false` para una velocidad de desplazamiento constante por muesca de rueda. Requiere Claude Code v2.1.174 o posterior | `false` |

276| `workflowKeywordTriggerEnabled` | {/* min-version: 2.1.157 */}Si la palabra clave `ultracode` en un indicador activa un [flujo de trabajo dinámico](/es/workflows#ask-for-a-workflow-in-your-prompt). Establecer en `false` para escribir la palabra sin activar uno. La configuración de esfuerzo ultracode, `/workflows` y comandos de flujo de trabajo guardados no se ven afectados. Predeterminado: `true`. Aparece en `/config` como **Ultracode keyword trigger**. Agregado en v2.1.157; antes de v2.1.160 la palabra clave de activación era `workflow` | `false` |319| `workflowKeywordTriggerEnabled` | {/* min-version: 2.1.157 */}Si la palabra clave `ultracode` en un indicador activa un [flujo de trabajo dinámico](/es/workflows#ask-for-a-workflow-in-your-prompt). Establecer en `false` para escribir la palabra sin activar uno. La configuración de esfuerzo ultracode, `/workflows` y comandos de flujo de trabajo guardados no se ven afectados. Predeterminado: `true`. Aparece en `/config` como **Ultracode keyword trigger**. Agregado en v2.1.157; antes de v2.1.160 la palabra clave de activación era `workflow` | `false` |

277| `wslInheritsWindowsSettings` | (Solo configuraciones administradas de Windows) Cuando es `true`, Claude Code en WSL lee configuraciones administradas de la cadena de política de Windows además de `/etc/claude-code`, con fuentes de Windows teniendo prioridad. Solo se honra cuando se establece en la clave de registro HKLM o `C:\Program Files\ClaudeCode\managed-settings.json`, ambas requieren administrador de Windows para escribir. Para que la política HKCU también se aplique en WSL, la bandera debe establecerse además en HKCU mismo. No tiene efecto en Windows nativo | `true` |320| `wslInheritsWindowsSettings` | (Solo configuraciones administradas de Windows) Cuando es `true`, Claude Code en WSL lee configuraciones administradas de la cadena de política de Windows además de `/etc/claude-code`, con fuentes de Windows teniendo prioridad. Solo se honra cuando se establece en la clave de registro HKLM o `C:\Program Files\ClaudeCode\managed-settings.json`, ambas requieren administrador de Windows para escribir. Para que la política HKCU también se aplique en WSL, la bandera debe establecerse además en HKCU mismo. No tiene efecto en Windows nativo | `true` |

278 321 


283Estas configuraciones se almacenan en `~/.claude.json` en lugar de `settings.json`. Agregarlas a `settings.json` activará un error de validación de esquema.326Estas configuraciones se almacenan en `~/.claude.json` en lugar de `settings.json`. Agregarlas a `settings.json` activará un error de validación de esquema.

284 327 

285<Note>328<Note>

286 Las versiones anteriores a v2.1.119 también almacenan `autoScrollEnabled`, `editorMode`, `showTurnDuration`, `teammateMode` y `terminalProgressBarEnabled` aquí en lugar de en `settings.json`.329 Las versiones anteriores a v2.1.119 también almacenan varios números de preferencias de `/config` aquí en lugar de en `settings.json`, incluyendo `theme`, `verbose`, `editorMode`, `autoCompactEnabled` y `preferredNotifChannel`.

287</Note>330</Note>

288 331 

289| Clave | Descripción | Ejemplo |332| Clave | Descripción | Ejemplo |


314 357 

315| Claves | Descripción | Ejemplo |358| Claves | Descripción | Ejemplo |

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

317| `allow` | Matriz de reglas de permiso para permitir el uso de herramientas. Consulte [Sintaxis de regla de permiso](#permission-rule-syntax) a continuación para detalles de coincidencia de patrones | `[ "Bash(git diff *)" ]` |360| `allow` | Matriz de reglas de permiso para permitir el uso de herramientas. Los globs de nombre de herramienta se admiten solo en la posición de herramienta después de un prefijo literal `mcp__<server>__`, como `mcp__github__get_*`; el segmento de servidor debe estar libre de glob. Consulte [Sintaxis de regla de permiso](#permission-rule-syntax) a continuación para detalles de coincidencia de patrones | `[ "Bash(git diff *)" ]` |

318| `ask` | Matriz de reglas de permiso para pedir confirmación al usar herramientas. Consulte [Sintaxis de regla de permiso](#permission-rule-syntax) a continuación | `[ "Bash(git push *)" ]` |361| `ask` | Matriz de reglas de permiso para pedir confirmación al usar herramientas. Consulte [Sintaxis de regla de permiso](#permission-rule-syntax) a continuación | `[ "Bash(git push *)" ]` |

319| `deny` | Matriz de reglas de permiso para denegar el uso de herramientas. Use esto para excluir archivos sensibles del acceso de Claude Code. Consulte [Sintaxis de regla de permiso](#permission-rule-syntax) y [Limitaciones de permiso de Bash](/es/permissions#tool-specific-permission-rules) | `[ "WebFetch", "Bash(curl *)", "Read(./.env)", "Read(./secrets/**)" ]` |362| `deny` | Matriz de reglas de permiso para denegar el uso de herramientas. Use esto para excluir archivos sensibles del acceso de Claude Code. Los nombres de herramientas aceptan patrones glob: `"*"` deniega cada herramienta y `"mcp__*"` deniega todas las herramientas MCP. Consulte [Sintaxis de regla de permiso](#permission-rule-syntax) y [Limitaciones de permiso de Bash](/es/permissions#tool-specific-permission-rules) | `[ "WebFetch", "Bash(curl *)", "Read(./.env)", "Read(./secrets/**)" ]` |

320| `additionalDirectories` | [Directorios de trabajo](/es/permissions#working-directories) adicionales para acceso a archivos. La mayoría de la configuración de `.claude/` [no se descubre](/es/permissions#additional-directories-grant-file-access-not-configuration) desde estos directorios | `[ "../docs/" ]` |363| `additionalDirectories` | [Directorios de trabajo](/es/permissions#working-directories) adicionales para acceso a archivos. La mayoría de la configuración de `.claude/` [no se descubre](/es/permissions#additional-directories-grant-file-access-not-configuration) desde estos directorios | `[ "../docs/" ]` |

321| `defaultMode` | [Modo de permiso](/es/permission-modes) predeterminado al abrir Claude Code. Valores válidos: `default`, `acceptEdits`, `plan`, `auto`, `dontAsk`, `bypassPermissions`. {/* min-version: 2.1.142 */}A partir de Claude Code v2.1.142, `auto` se ignora cuando se establece en configuraciones de proyecto o local (`.claude/settings.json`, `.claude/settings.local.json`) para que un repositorio no pueda otorgarse a sí mismo modo automático. Establézcalo en `~/.claude/settings.json` en su lugar. La bandera CLI `--permission-mode` anula esta configuración para una única sesión | `"acceptEdits"` |364| `defaultMode` | [Modo de permiso](/es/permission-modes) predeterminado al abrir Claude Code. Valores válidos: `default`, `acceptEdits`, `plan`, `auto`, `dontAsk`, `bypassPermissions`. {/* min-version: 2.1.142 */}A partir de Claude Code v2.1.142, `auto` se ignora cuando se establece en configuraciones de proyecto o local (`.claude/settings.json`, `.claude/settings.local.json`) para que un repositorio no pueda otorgarse a sí mismo modo automático. Establézcalo en `~/.claude/settings.json` en su lugar. La bandera CLI `--permission-mode` anula esta configuración para una única sesión | `"acceptEdits"` |

322| `disableBypassPermissionsMode` | Establecer en `"disable"` para evitar que se active el modo `bypassPermissions`. Esto deshabilita la bandera de línea de comandos `--dangerously-skip-permissions`. Típicamente colocado en [configuraciones administradas](/es/permissions#managed-settings) para aplicar política organizacional, pero funciona desde cualquier ámbito | `"disable"` |365| `disableBypassPermissionsMode` | Establecer en `"disable"` para evitar que se active el modo `bypassPermissions`. Esto deshabilita la bandera de línea de comandos `--dangerously-skip-permissions`. Típicamente colocado en [configuraciones administradas](/es/permissions#managed-settings) para aplicar política organizacional, pero funciona desde cualquier ámbito | `"disable"` |


326 Sintaxis de regla de permiso369 Sintaxis de regla de permiso

327</h3>370</h3>

328 371 

329Las reglas de permiso siguen el formato `Tool` o `Tool(specifier)`. Las reglas se evalúan en orden: primero reglas de denegación, luego preguntar, luego permitir. La primera regla coincidente gana.372Las reglas de permiso siguen el formato `Tool` o `Tool(specifier)`. Las reglas se evalúan en orden: primero reglas de denegación, luego preguntar, luego permitir. La primera regla coincidente determina el resultado independientemente de la especificidad de la regla. Consulte [orden de evaluación de regla de permiso](/es/permissions#manage-permissions) para obtener detalles.

330 373 

331Ejemplos rápidos:374Ejemplos rápidos:

332 375 


431**Atribución de commit predeterminada:**474**Atribución de commit predeterminada:**

432 475 

433```text theme={null}476```text theme={null}

434🤖 Generated with [Claude Code](https://claude.com/claude-code)477Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

435 

436 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

437```478```

438 479 

480El nombre del modelo en el trailer refleja el modelo activo para la sesión.

481 

439**Atribución de solicitud de extracción predeterminada:**482**Atribución de solicitud de extracción predeterminada:**

440 483 

441```text theme={null}484```text theme={null}


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

492#!/bin/bash535#!/bin/bash

493query=$(cat | jq -r '.query')536query=$(cat | jq -r '.query')

537# Replace your-repo-file-index with your own file search command

494your-repo-file-index --query "$query" | head -20538your-repo-file-index --query "$query" | head -20

495```539```

496 540 

541<h3 id="footer-link-badges">

542 Insignias de enlace de pie de página

543</h3>

544 

545La configuración `footerLinksRegexes` renderiza insignias clickeables adicionales en el pie de página debajo del cuadro de entrada. Use esto para convertir IDs impresos por CLI de proyecto, como herramientas de revisión e rastreadores de problemas, en enlaces de sesión.

546 

547Cada entrada `pattern` de regex se compara contra la salida del turno: resultados de herramientas, incluyendo contenidos de archivo y páginas obtenidas, y respuestas propias de Claude. Los placeholders `{name}` en `url` y `label` se rellenan desde grupos de captura nombrados en el patrón.

548 

549El siguiente ejemplo renderiza una insignia siempre que aparezca una clave de problema como `PROJ-1234` en la salida del turno. El grupo nombrado `(?<key>...)` captura la clave, y `{key}` la sustituye en la URL y etiqueta:

550 

551```json ~/.claude/settings.json theme={null}

552{

553 "footerLinksRegexes": [

554 {

555 "type": "regex",

556 "pattern": "\\b(?<key>PROJ-\\d+)\\b",

557 "url": "https://issues.example.com/browse/{key}",

558 "label": "{key}"

559 }

560 ]

561}

562```

563 

564Con esto configurado, cuando `PROJ-1234` aparece en un resultado de herramienta o en la respuesta de Claude, aparece una ficha `PROJ-1234` en el pie de página vinculada a `https://issues.example.com/browse/PROJ-1234`.

565 

566Las siguientes restricciones se aplican a cada entrada:

567 

568| Restricción | Comportamiento |

569| :---------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

570| Origen de URL | Los valores capturados se codifican en URL y la URL construida debe compartir el origen literal de la plantilla. Una captura puede rellenar un segmento de ruta o valor de consulta pero no puede cambiar a dónde apunta el enlace |

571| Longitud de URL | Las URLs construidas más largas que 2048 caracteres se descartan |

572| Esquema de URL | Debe ser `https`, `http`, o un esquema de enlace profundo reconocido de editor o espacio de trabajo: `vscode`, `vscode-insiders`, `cursor`, `windsurf`, `zed`, `jetbrains`, `idea`, `slack`, `linear`, `notion`, `figma` |

573| Etiqueta | Predeterminado al texto coincidente y se trunca a 28 columnas de visualización |

574| Recuento de insignias | Como máximo 5 insignias se renderizan. La más antigua se desplaza por coincidencias más nuevas y `/clear` las elimina |

575| Ámbito de configuración | Se lee desde configuraciones de usuario, bandera `--settings` y configuraciones administradas solamente. Se ignora en `.claude/settings.json` de proyecto y `.claude/settings.local.json` local |

576 

577Cuando un turno se completa, Claude Code compara cada entrada `pattern` regex contra la salida del turno en el hilo principal, por lo que una regex lenta bloquea la UI hasta que finaliza. Las cuantificadores anidados como `(a+)+$` pueden tomar exponencialmente tiempo contra ciertas entradas y congelar la sesión, por lo que mantenga cada `pattern` lineal y evite anidar `+` o `*`.

578 

579Las insignias de pie de página se renderizan junto a una [línea de estado personalizada](/es/statusline) cuando se configura una; ninguna reemplaza a la otra. Use una línea de estado para una fila impulsada por script que calcula su propio contenido desde datos de sesión, e insignias de pie de página para convertir IDs de la conversación en enlaces sin un script.

580 

497<h3 id="hook-configuration">581<h3 id="hook-configuration">

498 Configuración de hooks582 Configuración de hooks

499</h3>583</h3>


583Por ejemplo, si su configuración de usuario establece `permissions.defaultMode` en `acceptEdits` y la configuración compartida de un proyecto la establece en `default`, el valor del proyecto se aplica. El ejemplo a continuación cubre cómo se combinan las configuraciones con valores de matriz como reglas de permiso en su lugar.667Por ejemplo, si su configuración de usuario establece `permissions.defaultMode` en `acceptEdits` y la configuración compartida de un proyecto la establece en `default`, el valor del proyecto se aplica. El ejemplo a continuación cubre cómo se combinan las configuraciones con valores de matriz como reglas de permiso en su lugar.

584 668 

585<Note>669<Note>

586 **Las configuraciones de matriz se fusionan entre ámbitos.** Cuando la misma configuración con valor de matriz (como `sandbox.filesystem.allowWrite` o `permissions.allow`) aparece en múltiples ámbitos, las matrices se **concatenan y se deduplicán**, no se reemplazan. Esto significa que los ámbitos de menor prioridad pueden agregar entradas sin anular las establecidas por ámbitos de mayor prioridad, y viceversa. Por ejemplo, si las configuraciones administradas establecen `allowWrite` en `["/opt/company-tools"]` y un usuario agrega `["~/.kube"]`, ambas rutas se incluyen en la configuración final.670 **Las configuraciones de matriz se fusionan entre ámbitos.** Cuando la misma configuración con valor de matriz (como `sandbox.filesystem.allowWrite` o `permissions.allow`) aparece en múltiples ámbitos, las matrices se **concatenan y se deduplicán**, no se reemplazan. Esto significa que los ámbitos de menor prioridad pueden agregar entradas sin anular las establecidas por ámbitos de mayor prioridad, y viceversa. Por ejemplo, si las configuraciones administradas establecen `allowWrite` en `["/opt/company-tools"]` y un usuario agrega `["~/.kube"]`, ambas rutas se incluyen en la configuración final. Dos excepciones: [`fallbackModel`](#available-settings) es una cadena ordenada donde la posición tiene significado, por lo que el archivo de mayor precedencia que la define suministra el valor completo, y {/* min-version: 2.1.175 */}a partir de v2.1.175, [`availableModels`](#available-settings), donde un valor administrado o de política reemplaza entradas de menor precedencia completamente. Consulte [Comportamiento de fusión](/es/model-config#merge-behavior).

587</Note>671</Note>

588 672 

589<h3 id="verify-active-settings">673<h3 id="verify-active-settings">

590 Verificar configuraciones activas674 Verificar configuraciones activas

591</h3>675</h3>

592 676 

593Ejecute `/status` dentro de Claude Code para ver qué fuentes de configuración están activas. La pestaña Status incluye una línea `Setting sources` que enumera cada capa que Claude Code cargó para la sesión actual, como `User settings` o `Project local settings`. Cuando [configuraciones administradas](/es/managed-settings) están en efecto, la entrada muestra el canal de entrega entre paréntesis, por ejemplo `Enterprise managed settings (remote)`, `(plist)`, `(HKLM)`, `(HKCU)`, o `(file)`. Una capa aparece en la lista solo cuando esa fuente se carga con al menos una clave, por lo que una lista vacía significa que no se encontraron fuentes de configuración.677Ejecute `/status` dentro de Claude Code para ver qué fuentes de configuración están activas. Dentro del menú, la pestaña **Status** incluye una línea `Setting sources` que enumera cada capa que Claude Code cargó para la sesión actual, como `User settings` o `Project local settings`. Cuando [configuraciones administradas](/es/admin-setup#decide-how-settings-reach-devices) están en efecto, la entrada muestra el canal de entrega entre paréntesis, por ejemplo `Enterprise managed settings (remote)`, `(plist)`, `(HKLM)`, `(HKCU)`, o `(file)`. Una capa aparece en la lista solo cuando esa fuente se carga con al menos una clave, por lo que una lista vacía significa que no se encontraron fuentes de configuración.

594 678 

595La línea `Setting sources` confirma qué fuentes se están leyendo. No muestra qué capa suministró cada clave individual. La pestaña Config en el mismo diálogo es un editor para un conjunto fijo de toggles como tema y salida detallada, no una vista de los contenidos de su `settings.json`. Si un archivo de configuración contiene errores, como JSON inválido o un valor que falla la validación, `/status` reporta el problema para que pueda corregirlo.679La línea `Setting sources` confirma qué fuentes se están leyendo. No muestra qué capa suministró cada clave individual. La pestaña **Config** en el mismo diálogo es un editor para un conjunto fijo de toggles como tema y salida detallada, no una vista de sus contenidos de `settings.json`.

680 

681Si un archivo de configuración contiene errores, como JSON inválido o un valor que falla la validación, Claude Code muestra un aviso de problemas de configuración al inicio y `/status` enumera los archivos afectados. Ejecute `/doctor` para ver los detalles de cada error.

596 682 

597<h3 id="key-points-about-the-configuration-system">683<h3 id="key-points-about-the-configuration-system">

598 Puntos clave sobre el sistema de configuración684 Puntos clave sobre el sistema de configuración


603* **Skills**: Indicaciones personalizadas que se pueden invocar con `/skill-name` o cargar automáticamente por Claude689* **Skills**: Indicaciones personalizadas que se pueden invocar con `/skill-name` o cargar automáticamente por Claude

604* **MCP servers**: Extender Claude Code con herramientas e integraciones adicionales690* **MCP servers**: Extender Claude Code con herramientas e integraciones adicionales

605* **Precedencia**: Las configuraciones de nivel superior (Managed) anulan las de nivel inferior (User/Project)691* **Precedencia**: Las configuraciones de nivel superior (Managed) anulan las de nivel inferior (User/Project)

606* **Herencia**: Las configuraciones se fusionan entre ámbitos; los valores escalares de ámbitos de mayor prioridad anulan, y las matrices se concatenan692* **Herencia**: Las configuraciones se fusionan entre ámbitos; los valores escalares de ámbitos de mayor prioridad anulan, y las matrices se concatenan. Excepciones: `fallbackModel`, donde el ámbito de mayor precedencia suministra toda la cadena, y `availableModels`, donde un valor administrado o de política reemplaza entradas de menor precedencia

607 693 

608<h3 id="system-prompt">694<h3 id="system-prompt">

609 Indicador del sistema695 Indicador del sistema


651Claude Code admite un sistema de plugins que le permite extender la funcionalidad con skills, agentes, hooks y servidores MCP. Los plugins se distribuyen a través de marketplaces y se pueden configurar en niveles de usuario y repositorio.737Claude Code admite un sistema de plugins que le permite extender la funcionalidad con skills, agentes, hooks y servidores MCP. Los plugins se distribuyen a través de marketplaces y se pueden configurar en niveles de usuario y repositorio.

652 738 

653<h3 id="plugin-settings">739<h3 id="plugin-settings">

654 Configuración de plugins740 Ajustes de plugins

655</h3>741</h3>

656 742 

657Configuraciones relacionadas con plugins en `settings.json`:743Configuraciones relacionadas con plugins en `settings.json`:


684 770 

685* **Configuraciones de usuario** (`~/.claude/settings.json`): Preferencias personales de plugins771* **Configuraciones de usuario** (`~/.claude/settings.json`): Preferencias personales de plugins

686* **Configuraciones de proyecto** (`.claude/settings.json`): Plugins específicos del proyecto compartidos con el equipo772* **Configuraciones de proyecto** (`.claude/settings.json`): Plugins específicos del proyecto compartidos con el equipo

687* **Configuraciones locales** (`.claude/settings.local.json`): Anulaciones por máquina (no confirmadas)773* **Configuraciones locales** (`.claude/settings.local.json`): Anulaciones por máquina, ignoradas por git cuando Claude Code las crea

688* **Configuraciones administradas** (`managed-settings.json`): Anulaciones de política a nivel de organización que bloquean la instalación en todos los ámbitos y ocultan el plugin del marketplace774* **Configuraciones administradas** (`managed-settings.json`): Anulaciones de política a nivel de organización que bloquean la instalación en todos los ámbitos y ocultan el plugin del marketplace

689 775 

690<Note>776<Note>

setup.md +26 −4

Details

258 258 

259En [configuración administrada](/es/permissions#managed-settings), esto aplica un mínimo en toda la organización que la configuración de usuario y proyecto no puede anular.259En [configuración administrada](/es/permissions#managed-settings), esto aplica un mínimo en toda la organización que la configuración de usuario y proyecto no puede anular.

260 260 

261El pin `minimumVersion` solo restringe las actualizaciones. Para hacer que Claude Code se niegue a iniciar fuera de un rango de versión, use la configuración administrada `requiredMinimumVersion` y `requiredMaximumVersion` en su lugar. Las actualizaciones también respetan el techo `requiredMaximumVersion`. Consulte [configuración disponible](/es/settings#available-settings).

262 

261<h3 id="disable-auto-updates">263<h3 id="disable-auto-updates">

262 Deshabilitar actualizaciones automáticas264 Deshabilitar actualizaciones automáticas

263</h3>265</h3>


366 Instalar con gestores de paquetes de Linux368 Instalar con gestores de paquetes de Linux

367</h3>369</h3>

368 370 

369Claude Code publica repositorios apt, dnf y apk firmados. Reemplace `stable` con `latest` para el canal de actualización continua. Las instalaciones del gestor de paquetes no se actualizan automáticamente a través de Claude Code; las actualizaciones llegan a través de su flujo de trabajo de actualización del sistema normal.371Claude Code publica repositorios apt, dnf y apk firmados. Cada repositorio ofrece dos canales: `stable` sirve una versión que típicamente tiene aproximadamente una semana de antigüedad, omitiendo lanzamientos con regresiones mayores, y `latest` sirve cada lanzamiento tan pronto como se envía. Los comandos a continuación configuran el canal `stable`, que se ajusta a la mayoría de usuarios; cada pestaña también muestra la URL del repositorio `latest`. Las instalaciones del gestor de paquetes no se actualizan automáticamente a través de Claude Code; las actualizaciones llegan a través de su flujo de trabajo de actualización del sistema normal.

370 372 

371Todos los repositorios están firmados con la [clave de firma de lanzamiento de Claude Code](#binary-integrity-and-code-signing). Antes de confiar en la clave, verifíquela como se describe en cada pestaña.373Todos los repositorios están firmados con la [clave de firma de lanzamiento de Claude Code](#binary-integrity-and-code-signing). Antes de confiar en la clave, verifíquela como se describe en cada pestaña.

372 374 

373<Tabs>375<Tabs>

374 <Tab title="apt">376 <Tab title="apt">

375 Para Debian y Ubuntu. Para usar el canal de actualización continua, cambie ambas ocurrencias de `stable` en la línea `deb`: la ruta de URL y el nombre de la suite.377 Para Debian y Ubuntu. Los siguientes comandos configuran el canal `stable`:

376 378 

377 ```bash theme={null}379 ```bash theme={null}

378 sudo install -d -m 0755 /etc/apt/keyrings380 sudo install -d -m 0755 /etc/apt/keyrings


384 sudo apt install claude-code386 sudo apt install claude-code

385 ```387 ```

386 388 

389 Para usar el canal `latest` en su lugar, tanto la ruta de URL como el nombre de la suite cambian. Use esta línea `deb`:

390 

391 ```bash theme={null}

392 echo "deb [signed-by=/etc/apt/keyrings/claude-code.asc] https://downloads.claude.ai/claude-code/apt/latest latest main" \

393 | sudo tee /etc/apt/sources.list.d/claude-code.list

394 ```

395 

387 Verifique la huella digital de la clave GPG antes de confiar en ella: `gpg --show-keys /etc/apt/keyrings/claude-code.asc` debe reportar `31DD DE24 DDFA B679 F42D 7BD2 BAA9 29FF 1A7E CACE`.396 Verifique la huella digital de la clave GPG antes de confiar en ella: `gpg --show-keys /etc/apt/keyrings/claude-code.asc` debe reportar `31DD DE24 DDFA B679 F42D 7BD2 BAA9 29FF 1A7E CACE`.

388 397 

389 Para actualizar más tarde, ejecute `sudo apt update && sudo apt upgrade claude-code`.398 Para actualizar más tarde, ejecute `sudo apt update && sudo apt upgrade claude-code`.

390 </Tab>399 </Tab>

391 400 

392 <Tab title="dnf">401 <Tab title="dnf">

393 Para Fedora y RHEL:402 Para Fedora y RHEL. Los siguientes comandos configuran el canal `stable`:

394 403 

395 ```bash theme={null}404 ```bash theme={null}

396 sudo tee /etc/yum.repos.d/claude-code.repo <<'EOF'405 sudo tee /etc/yum.repos.d/claude-code.repo <<'EOF'


404 sudo dnf install claude-code413 sudo dnf install claude-code

405 ```414 ```

406 415 

416 Para usar el canal `latest` en su lugar, establezca `baseurl` en el repositorio `latest`:

417 

418 ```ini theme={null}

419 baseurl=https://downloads.claude.ai/claude-code/rpm/latest

420 ```

421 

407 dnf descarga la clave en la primera instalación y le solicita que confirme la huella digital. Verifique que coincida con `31DD DE24 DDFA B679 F42D 7BD2 BAA9 29FF 1A7E CACE` antes de aceptar.422 dnf descarga la clave en la primera instalación y le solicita que confirme la huella digital. Verifique que coincida con `31DD DE24 DDFA B679 F42D 7BD2 BAA9 29FF 1A7E CACE` antes de aceptar.

408 423 

409 Para actualizar más tarde, ejecute `sudo dnf upgrade claude-code`.424 Para actualizar más tarde, ejecute `sudo dnf upgrade claude-code`.

410 </Tab>425 </Tab>

411 426 

412 <Tab title="apk">427 <Tab title="apk">

413 Para Alpine Linux:428 Para Alpine Linux. Los siguientes comandos configuran el canal `stable`:

414 429 

415 ```sh theme={null}430 ```sh theme={null}

416 wget -O /etc/apk/keys/claude-code.rsa.pub \431 wget -O /etc/apk/keys/claude-code.rsa.pub \


419 apk add claude-code434 apk add claude-code

420 ```435 ```

421 436 

437 Para cambiar al canal `latest`, elimine la línea del repositorio `stable` y agregue el repositorio `latest`:

438 

439 ```sh theme={null}

440 sed -i '\|downloads.claude.ai/claude-code/apk/stable|d' /etc/apk/repositories

441 echo "https://downloads.claude.ai/claude-code/apk/latest" >> /etc/apk/repositories

442 ```

443 

422 Verifique la clave descargada con `sha256sum /etc/apk/keys/claude-code.rsa.pub`, que debe reportar `395759c1f7449ef4cdef305a42e820f3c766d6090d142634ebdb049f113168b6`.444 Verifique la clave descargada con `sha256sum /etc/apk/keys/claude-code.rsa.pub`, que debe reportar `395759c1f7449ef4cdef305a42e820f3c766d6090d142634ebdb049f113168b6`.

423 445 

424 Para actualizar más tarde, ejecute `apk update && apk upgrade claude-code`.446 Para actualizar más tarde, ejecute `apk update && apk upgrade claude-code`.

skills.md +19 −6

Details

22 Skills agrupados22 Skills agrupados

23</h2>23</h2>

24 24 

25Claude Code incluye un conjunto de skills agrupados que están disponibles en cada sesión, incluyendo `/code-review`, `/batch`, `/debug`, `/loop` y `/claude-api`. A diferencia de la mayoría de comandos integrados, que ejecutan lógica fija directamente, los skills agrupados se basan en prompts: dan a Claude instrucciones detalladas y le permiten orquestar el trabajo utilizando sus herramientas. Los invoca de la misma manera que cualquier otro skill, escribiendo `/` seguido del nombre del skill.25Claude Code incluye un conjunto de skills agrupados que están disponibles en cada sesión a menos que se desactiven con la configuración [`disableBundledSkills`](/es/settings#available-settings), incluyendo `/code-review`, `/batch`, `/debug`, `/loop` y `/claude-api`. A diferencia de la mayoría de comandos integrados, que ejecutan lógica fija directamente, los skills agrupados se basan en prompts: dan a Claude instrucciones detalladas y le permiten orquestar el trabajo utilizando sus herramientas. Los invoca de la misma manera que cualquier otro skill, escribiendo `/` seguido del nombre del skill.

26 26 

27Los skills agrupados se enumeran junto con los comandos integrados en la [referencia de comandos](/es/commands), marcados como **Skill** en la columna Propósito.27Los skills agrupados se enumeran junto con los comandos integrados en la [referencia de comandos](/es/commands), marcados como **Skill** en la columna Propósito.

28 28 


117| Proyecto | `.claude/skills/<skill-name>/SKILL.md` | Solo este proyecto |117| Proyecto | `.claude/skills/<skill-name>/SKILL.md` | Solo este proyecto |

118| Plugin | `<plugin>/skills/<skill-name>/SKILL.md` | Donde el plugin está habilitado |118| Plugin | `<plugin>/skills/<skill-name>/SKILL.md` | Donde el plugin está habilitado |

119 119 

120Cuando los skills comparten el mismo nombre en diferentes niveles, enterprise anula personal, y personal anula proyecto. Los skills de plugin utilizan un espacio de nombres `plugin-name:skill-name`, por lo que no pueden entrar en conflicto con otros niveles. Si tiene archivos en `.claude/commands/`, funcionan de la misma manera, pero si un skill y un comando comparten el mismo nombre, el skill tiene prioridad.120Cuando los skills comparten el mismo nombre en diferentes niveles, enterprise anula personal, y personal anula proyecto. Un skill en cualquiera de estos niveles también anula un skill incluido con el mismo nombre. Por ejemplo, un skill `code-review` en el `.claude/skills/` de su proyecto reemplaza el `/code-review` incluido. Los skills de plugin utilizan un espacio de nombres `plugin-name:skill-name`, por lo que no pueden entrar en conflicto con otros niveles. Si tiene archivos en `.claude/commands/`, funcionan de la misma manera, pero si un skill y un comando comparten el mismo nombre, el skill tiene prioridad.

121 

122Los skills también se cargan desde directorios `.claude/skills/` anidados por debajo de su directorio de trabajo. Cuando Claude lee o edita un archivo en un subdirectorio, los skills del `.claude/skills/` de ese subdirectorio se vuelven disponibles. Esto permite que un paquete de monorepo proporcione sus propios skills que se apliquen cuando se trabaja en ese paquete, incluso si la sesión comenzó en la raíz del repositorio.

123 

124Si un skill anidado comparte un nombre con otro skill, ambos permanecen disponibles. Por ejemplo, con un skill `deploy` en la raíz del proyecto y otro en `apps/web/.claude/skills/`:

125 

126* El anidado aparece bajo un nombre calificado por directorio, `apps/web:deploy`.

127* Su descripción dice a qué directorio se aplica.

128* Claude elige la variante que coincide con los archivos en los que está trabajando.

129 

130Escribir `/deploy` ejecuta el skill de la raíz del proyecto. Escriba el nombre calificado `/apps/web:deploy` para ejecutar explícitamente la variante anidada.

121 131 

122<Note>132<Note>

123 Agregue un `.claude-plugin/plugin.json` a una carpeta de skill y se carga como un [plugin](/es/plugins-reference#skills-directory-plugins) llamado `<name>@skills-dir`, por lo que puede agrupar agentes, hooks y servidores MCP. En un `.claude/skills/` de proyecto, esto requiere aceptar primero el diálogo de confianza del espacio de trabajo.133 Agregue un `.claude-plugin/plugin.json` a una carpeta de skill y se carga como un [plugin](/es/plugins-reference#skills-directory-plugins) llamado `<name>@skills-dir`, por lo que puede agrupar agentes, hooks y servidores MCP. En un `.claude/skills/` de proyecto, esto requiere aceptar primero el diálogo de confianza del espacio de trabajo.


262La tabla a continuación muestra de dónde proviene el nombre del comando para cada diseño:272La tabla a continuación muestra de dónde proviene el nombre del comando para cada diseño:

263 273 

264| Ubicación del skill | Fuente del nombre del comando | Ejemplo |274| Ubicación del skill | Fuente del nombre del comando | Ejemplo |

265| :--------------------------------------------------------------- | :--------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------- |275| :--------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------- |

266| Directorio de skill bajo `~/.claude/skills/` o `.claude/skills/` | Nombre del directorio | `.claude/skills/deploy-staging/SKILL.md` → `/deploy-staging` |276| Directorio de skill bajo `~/.claude/skills/` o `.claude/skills/` | Nombre del directorio | `.claude/skills/deploy-staging/SKILL.md` → `/deploy-staging` |

277| Directorio `.claude/skills/` anidado, cuando el nombre entra en conflicto con otro skill | Ruta del subdirectorio relativa al directorio de trabajo, luego el nombre del directorio de skill | `apps/web/.claude/skills/deploy/SKILL.md` → `/apps/web:deploy` |

267| Archivo bajo `.claude/commands/` | Nombre del archivo sin extensión | `.claude/commands/deploy.md` → `/deploy` |278| Archivo bajo `.claude/commands/` | Nombre del archivo sin extensión | `.claude/commands/deploy.md` → `/deploy` |

268| Subdirectorio `skills/` del plugin | Nombre del directorio, con espacio de nombres por plugin | `my-plugin/skills/review/SKILL.md` → `/my-plugin:review` |279| Subdirectorio `skills/` del plugin | Nombre del directorio, con espacio de nombres por plugin | `my-plugin/skills/review/SKILL.md` → `/my-plugin:review` |

269| `SKILL.md` de raíz del plugin | Frontmatter `name`, con el nombre del directorio del plugin como alternativa | `my-plugin/SKILL.md` con `name: review` → `/my-plugin:review`. Consulte [Reglas de comportamiento de ruta](/es/plugins-reference#path-behavior-rules) |280| `SKILL.md` de raíz del plugin | Frontmatter `name`, con el nombre del directorio del plugin como alternativa | `my-plugin/SKILL.md` con `name: review` → `/my-plugin:review`. Consulte [Reglas de comportamiento de ruta](/es/plugins-reference#path-behavior-rules) |


288 299 

289Los argumentos indexados utilizan entrecomillado de estilo shell, por lo que envuelva valores de varias palabras entre comillas para pasarlos como un único argumento. Por ejemplo, `/my-skill "hello world" second` hace que `$0` se expanda a `hello world` y `$1` a `second`. El marcador de posición `$ARGUMENTS` siempre se expande a la cadena de argumento completa tal como se escribió.300Los argumentos indexados utilizan entrecomillado de estilo shell, por lo que envuelva valores de varias palabras entre comillas para pasarlos como un único argumento. Por ejemplo, `/my-skill "hello world" second` hace que `$0` se expanda a `hello world` y `$1` a `second`. El marcador de posición `$ARGUMENTS` siempre se expande a la cadena de argumento completa tal como se escribió.

290 301 

302Para incluir un `$` literal antes de un dígito, `ARGUMENTS`, o un nombre de argumento declarado, como `$1.00` en prosa, escápelo con una barra invertida: `\$1.00`. Una barra invertida antes de cualquier otro `$` se deja sin cambios. Solo una barra invertida directamente antes del token lo escapa. Una barra invertida duplicada como `\\$1` deja ambas barras invertidas en su lugar, y `$1` sigue expandiéndose al valor del argumento.

303 

291**Ejemplo usando sustituciones:**304**Ejemplo usando sustituciones:**

292 305 

293```yaml theme={null}306```yaml theme={null}


395---408---

396```409```

397 410 

398Para bloquear un skill de usar ciertas herramientas, añada reglas de denegación en su [configuración de permisos](/es/permissions) en su lugar.411Para eliminar herramientas del grupo disponible de Claude mientras un skill está activo, enumérelas en `disallowed-tools` en el frontmatter del skill. La restricción se borra cuando envía su siguiente mensaje. Para bloquear herramientas en todos los skills y prompts, añada reglas de denegación en su [configuración de permisos](/es/permissions).

399 412 

400<h3 id="pass-arguments-to-skills">413<h3 id="pass-arguments-to-skills">

401 Pasar argumentos a skills414 Pasar argumentos a skills


557 570 

558El campo `agent` especifica qué configuración de subagent usar. Las opciones incluyen agents integrados (`Explore`, `Plan`, `general-purpose`) o cualquier subagent personalizado de `.claude/agents/`. Si se omite, utiliza `general-purpose`.571El campo `agent` especifica qué configuración de subagent usar. Las opciones incluyen agents integrados (`Explore`, `Plan`, `general-purpose`) o cualquier subagent personalizado de `.claude/agents/`. Si se omite, utiliza `general-purpose`.

559 572 

560<h3 id="restrict-claude-s-skill-access">573<h3 id="restrict-claudes-skill-access">

561 Restringir el acceso de Claude a skills574 Restringir el acceso de Claude a skills

562</h3>575</h3>

563 576 


850 Las descripciones de skills se cortan863 Las descripciones de skills se cortan

851</h3>864</h3>

852 865 

853Las descripciones de skills se cargan en contexto para que Claude sepa qué está disponible. Todos los nombres de skills siempre se incluyen, pero si tiene muchos skills, las descripciones se acortan para ajustarse al presupuesto de caracteres, lo que puede eliminar las palabras clave que Claude necesita para coincidir con su solicitud. El presupuesto se escala al 1% de la ventana de contexto del modelo. Cuando se desborda, las descripciones de los skills que invoca menos se eliminan primero, por lo que los skills que realmente usa mantienen su texto completo. Ejecute `/doctor` para ver si el presupuesto se está desbordando y qué skills se ven afectados.866Las descripciones de skills se cargan en contexto para que Claude sepa qué está disponible. Todos los nombres de skills siempre se incluyen, pero si tiene muchos skills, las descripciones se acortan para ajustarse al presupuesto de caracteres, lo que puede eliminar las palabras clave que Claude necesita para coincidir con su solicitud. El presupuesto se escala al 1% de la ventana de contexto del modelo. Cuando se desborda, las descripciones de los skills que invoca menos se eliminan primero, por lo que los skills que realmente usa mantienen su texto completo. Ejecute `/doctor` para ver cuántas descripciones de skills se están acortando o eliminando y qué skills se ven afectados.

854 867 

855Para aumentar el presupuesto, establezca la configuración [`skillListingBudgetFraction`](/es/settings#available-settings) (por ejemplo, `0.02` = 2%) o la variable de entorno `SLASH_COMMAND_TOOL_CHAR_BUDGET` a un recuento de caracteres fijo. Para liberar presupuesto para otros skills, establezca las entradas de baja prioridad en `"name-only"` en [`skillOverrides`](#override-skill-visibility-from-settings) para que se enumeren sin descripción. También puede recortar el texto de `description` y `when_to_use` en la fuente: coloque el caso de uso clave primero, ya que el texto combinado de cada entrada está limitado a 1.536 caracteres independientemente del presupuesto. El límite es configurable con [`maxSkillDescriptionChars`](/es/settings#available-settings).868Para aumentar el presupuesto, establezca la configuración [`skillListingBudgetFraction`](/es/settings#available-settings) (por ejemplo, `0.02` = 2%) o la variable de entorno `SLASH_COMMAND_TOOL_CHAR_BUDGET` a un recuento de caracteres fijo. Para liberar presupuesto para otros skills, establezca las entradas de baja prioridad en `"name-only"` en [`skillOverrides`](#override-skill-visibility-from-settings) para que se enumeren sin descripción. También puede recortar el texto de `description` y `when_to_use` en la fuente: coloque el caso de uso clave primero, ya que el texto combinado de cada entrada está limitado a 1.536 caracteres independientemente del presupuesto. El límite es configurable con [`maxSkillDescriptionChars`](/es/settings#available-settings).

856 869 

slack.md +3 −3

Details

23 Requisitos previos23 Requisitos previos

24</h2>24</h2>

25 25 

26Antes de usar Claude Code en Slack, asegúrate de tener lo siguiente:26Antes de usar Claude Code en Slack, asegúrese de tener lo siguiente:

27 27 

28| Requisito | Detalles |28| Requisito | Detalles |

29| :--------------------- | :---------------------------------------------------------------------------------------------------- |29| :--------------------- | :---------------------------------------------------------------------------------------------------- |

30| Plan de Claude | Pro, Max, Team o Enterprise con acceso a Claude Code (asientos premium o asientos Chat + Claude Code) |30| Plan de Claude | Pro, Max, Team o Enterprise con acceso a Claude Code (asientos premium o asientos Chat + Claude Code) |

31| Claude Code en la web | El acceso a [Claude Code en la web](/es/claude-code-on-the-web) debe estar habilitado |31| Claude Code en la web | El acceso a [Claude Code en la web](/es/claude-code-on-the-web) debe estar habilitado |

32| Cuenta de GitHub | Conectada a Claude Code en la web con al menos un repositorio autenticado |32| Cuenta de GitHub | Conectada a Claude Code en la web con al menos un repositorio autenticado |

33| Autenticación de Slack | Tu cuenta de Slack vinculada a tu cuenta de Claude a través de la aplicación Claude |33| Autenticación de Slack | Su cuenta de Slack vinculada a su cuenta de Claude a través de la aplicación Claude |

34 34 

35<h2 id="setting-up-claude-code-in-slack">35<h2 id="setting-up-claude-code-in-slack">

36 Configuración de Claude Code en Slack36 Configuración de Claude Code en Slack


182 182 

183Este modelo basado en canales permite a los equipos restringir el uso de Claude Code a canales específicos, proporcionando una capa adicional de control de acceso más allá de los permisos a nivel del espacio de trabajo.183Este modelo basado en canales permite a los equipos restringir el uso de Claude Code a canales específicos, proporcionando una capa adicional de control de acceso más allá de los permisos a nivel del espacio de trabajo.

184 184 

185<h2 id="what-s-accessible-where">185<h2 id="whats-accessible-where">

186 Qué es accesible dónde186 Qué es accesible dónde

187</h2>187</h2>

188 188 

statusline.md +8 −6

Details

6 6 

7> Configura una barra de estado personalizada para monitorear el uso de la ventana de contexto, costos y estado de git en Claude Code7> Configura una barra de estado personalizada para monitorear el uso de la ventana de contexto, costos y estado de git en Claude Code

8 8 

9La línea de estado es una barra personalizable en la parte inferior de Claude Code que ejecuta cualquier script de shell que configures. Recibe datos de sesión JSON en stdin y muestra lo que tu script imprime, dándote una vista persistente y de un vistazo del uso de contexto, costos, estado de git, o cualquier otra cosa que desees rastrear.9La línea de estado es una barra personalizable en la parte inferior de Claude Code que ejecuta cualquier script de shell que configure. Recibe datos de sesión JSON en stdin y muestra lo que su script imprime, dándole una vista persistente y de un vistazo del uso de contexto, costos, estado de git, o cualquier otra cosa que desee rastrear.

10 10 

11Las líneas de estado son útiles cuando:11Las líneas de estado son útiles cuando:

12 12 

13* Deseas monitorear el uso de la ventana de contexto mientras trabajas13* Desea monitorear el uso de la ventana de contexto mientras trabaja

14* Necesitas rastrear los costos de la sesión14* Necesita rastrear los costos de la sesión

15* Trabajas en múltiples sesiones y necesitas distinguirlas15* Trabaja en múltiples sesiones y necesita distinguirlas

16* Deseas que la rama de git y el estado siempre sean visibles16* Desea que la rama de git y el estado siempre sean visibles

17 

18Claude Code también puede renderizar [insignias de enlaces de pie de página](/es/settings#footer-link-badges): chips interactivos que aparecen en el pie de página cuando una expresión regular configurada coincide con texto en la conversación. Estos son independientes de la línea de estado y no interactúan con su script; configúrelos con la configuración [`footerLinksRegexes`](/es/settings#footer-link-badges) en su lugar.

17 19 

18Aquí hay un ejemplo de una [línea de estado de múltiples líneas](#display-multiple-lines) que muestra información de git en la primera línea y una barra de contexto codificada por colores en la segunda.20Aquí hay un ejemplo de una [línea de estado de múltiples líneas](#display-multiple-lines) que muestra información de git en la primera línea y una barra de contexto codificada por colores en la segunda.

19 21 


21 <img src="https://mintcdn.com/claude-code/nibzesLaJVh4ydOq/images/statusline-multiline.png?fit=max&auto=format&n=nibzesLaJVh4ydOq&q=85&s=60f11387658acc9ff75158ae85f2ac87" alt="Una línea de estado de múltiples líneas que muestra el nombre del modelo, directorio, rama de git en la primera línea, y una barra de progreso de uso de contexto con costo y duración en la segunda línea" width="776" height="212" data-path="images/statusline-multiline.png" />23 <img src="https://mintcdn.com/claude-code/nibzesLaJVh4ydOq/images/statusline-multiline.png?fit=max&auto=format&n=nibzesLaJVh4ydOq&q=85&s=60f11387658acc9ff75158ae85f2ac87" alt="Una línea de estado de múltiples líneas que muestra el nombre del modelo, directorio, rama de git en la primera línea, y una barra de progreso de uso de contexto con costo y duración en la segunda línea" width="776" height="212" data-path="images/statusline-multiline.png" />

22</Frame>24</Frame>

23 25 

24Esta página te guía a través de [configurar una línea de estado básica](#set-up-a-status-line), explica [cómo fluyen los datos](#how-status-lines-work) desde Claude Code a tu script, enumera [todos los campos que puedes mostrar](#available-data), y proporciona [ejemplos listos para usar](#examples) para patrones comunes como estado de git, seguimiento de costos y barras de progreso.26Esta página le guía a través de [configurar una línea de estado básica](#set-up-a-status-line), explica [cómo fluyen los datos](#how-status-lines-work) desde Claude Code a su script, enumera [todos los campos que puede mostrar](#available-data), y proporciona [ejemplos listos para usar](#examples) para patrones comunes como estado de git, seguimiento de costos y barras de progreso.

25 27 

26<h2 id="set-up-a-status-line">28<h2 id="set-up-a-status-line">

27 Configurar una línea de estado29 Configurar una línea de estado

sub-agents.md +48 −18

Details

61 * **Herramientas**: Herramientas de solo lectura (acceso denegado a herramientas Write y Edit)61 * **Herramientas**: Herramientas de solo lectura (acceso denegado a herramientas Write y Edit)

62 * **Propósito**: Investigación de base de código para planificación62 * **Propósito**: Investigación de base de código para planificación

63 63 

64 Cuando está en plan mode y Claude necesita entender su base de código, delega la investigación al subagente Plan. Esto evita el anidamiento infinito (los subagentes no pueden generar otros subagentes) mientras sigue recopilando el contexto necesario.64 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.

65 </Tab>65 </Tab>

66 66 

67 <Tab title="General-purpose">67 <Tab title="General-purpose">


84 </Tab>84 </Tab>

85</Tabs>85</Tabs>

86 86 

87Los subagentes integrados siempre se registran en sesiones interactivas. Para bloquear un tipo integrado específico, agréguelo a `permissions.deny` como se muestra en [Deshabilitar subagentes específicos](#disable-specific-subagents). Para evitar que Claude delegue a cualquier subagente, deniegue la herramienta `Agent` en sí con [`permissions.deny`](/es/permissions#tool-specific-permission-rules). En [modo no interactivo](/es/headless) y el [Agent SDK](/es/agent-sdk/overview), establezca [`CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS=1`](/es/env-vars) para eliminar todos los tipos integrados y proporcionar solo los suyos.

88 

87Má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.89Má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.

88 90 

89<h2 id="quickstart-create-your-first-subagent">91<h2 id="quickstart-create-your-first-subagent">


158 Usar el comando /agents160 Usar el comando /agents

159</h3>161</h3>

160 162 

161El comando `/agents` abre una interfaz con pestañas para administrar subagentes. La pestaña **Running** muestra subagentes activos y le permite abrirlos o detenerlos. La pestaña **Library** le permite:163El comando `/agents` abre una interfaz con pestañas para administrar subagentes. La pestaña **Running** muestra subagentes activos y recientemente finalizados y le permite abrirlos o detenerlos. La pestaña **Library** le permite:

162 164 

163* Ver todos los subagentes disponibles (integrados, usuario, proyecto y plugin)165* Ver todos los subagentes disponibles (integrados, usuario, proyecto y plugin)

164* Crear nuevos subagentes con configuración guiada o generación de Claude166* Crear nuevos subagentes con configuración guiada o generación de Claude


184 186 

185**Los subagentes de proyecto** (`.claude/agents/`) son ideales para subagentes específicos de una base de código. Verifíquelos en control de versiones para que su equipo pueda usarlos y mejorarlos colaborativamente.187**Los subagentes de proyecto** (`.claude/agents/`) son ideales para subagentes específicos de una base de código. Verifíquelos en control de versiones para que su equipo pueda usarlos y mejorarlos colaborativamente.

186 188 

187Los subagentes de proyecto se descubren caminando hacia arriba desde el directorio de trabajo actual. Los directorios agregados con `--add-dir` [otorgan acceso a archivos solamente](/es/permissions#additional-directories-grant-file-access-not-configuration) y no se escanean para subagentes. Para compartir subagentes entre proyectos, use `~/.claude/agents/` o un [plugin](/es/plugins).189Los subagentes de proyecto se descubren caminando hacia arriba desde el directorio de trabajo actual, por lo que cada `.claude/agents/` entre allí y la raíz del repositorio se escanea. {/* min-version: 2.1.178 */}A partir de v2.1.178, cuando más de uno de estos directorios anidados define el mismo `name`, Claude Code usa la definición más cercana al directorio de trabajo.

190 

191Los directorios agregados con `--add-dir` también se escanean: una carpeta `.claude/agents/` dentro de un directorio agregado se carga junto con subagentes de proyecto. Consulte [Directorios adicionales](/es/permissions#additional-directories-grant-file-access-not-configuration) para ver qué otros tipos de configuración se cargan desde `--add-dir`. Para compartir subagentes entre proyectos sin `--add-dir`, use `~/.claude/agents/` o un [plugin](/es/plugins).

188 192 

189**Los subagentes de usuario** (`~/.claude/agents/`) son subagentes personales disponibles en todos sus proyectos.193**Los subagentes de usuario** (`~/.claude/agents/`) son subagentes personales disponibles en todos sus proyectos.

190 194 


282| `description` | Sí | Cuándo Claude debe delegar en este subagente |286| `description` | Sí | Cuándo Claude debe delegar en este subagente |

283| `tools` | No | [Herramientas](#available-tools) que el subagente puede usar. Hereda todas las herramientas si se omite. Para precargar Skills en el contexto, use el campo `skills` en lugar de listar `Skill` aquí |287| `tools` | No | [Herramientas](#available-tools) que el subagente puede usar. Hereda todas las herramientas si se omite. Para precargar Skills en el contexto, use el campo `skills` en lugar de listar `Skill` aquí |

284| `disallowedTools` | No | Herramientas a denegar, eliminadas de la lista heredada o especificada |288| `disallowedTools` | No | Herramientas a denegar, eliminadas de la lista heredada o especificada |

285| `model` | No | [Modelo](#choose-a-model) a usar: `sonnet`, `opus`, `haiku`, un ID de modelo completo (por ejemplo, `claude-opus-4-8`), o `inherit`. Por defecto es `inherit` |289| `model` | No | [Modelo](#choose-a-model) a usar: `sonnet`, `opus`, `haiku`, `fable`, un ID de modelo completo (por ejemplo, `claude-opus-4-8`), o `inherit`. Por defecto es `inherit` |

286| `permissionMode` | No | [Modo de permiso](#permission-modes): `default`, `acceptEdits`, `auto`, `dontAsk`, `bypassPermissions`, o `plan`. Se ignora para [subagentes de plugin](#choose-the-subagent-scope) |290| `permissionMode` | No | [Modo de permiso](#permission-modes): `default`, `acceptEdits`, `auto`, `dontAsk`, `bypassPermissions`, o `plan`. Se ignora para [subagentes de plugin](#choose-the-subagent-scope) |

287| `maxTurns` | No | Número máximo de turnos de agente antes de que el subagente se detenga |291| `maxTurns` | No | Número máximo de turnos de agente antes de que el subagente se detenga |

288| `skills` | No | [Skills](/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 |292| `skills` | No | [Skills](/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 |


301 305 

302El campo `model` controla qué [modelo de IA](/es/model-config) usa el subagente:306El campo `model` controla qué [modelo de IA](/es/model-config) usa el subagente:

303 307 

304* **Alias de modelo**: Use uno de los alias disponibles: `sonnet`, `opus`, o `haiku`308* **Alias de modelo**: Use uno de los alias disponibles: `sonnet`, `opus`, `haiku`, o `fable`

305* **ID de modelo completo**: Use un ID de modelo completo como `claude-opus-4-8` o `claude-sonnet-4-6`. Acepta los mismos valores que la bandera `--model`309* **ID de modelo completo**: Use un ID de modelo completo como `claude-opus-4-8` o `claude-sonnet-4-6`. Acepta los mismos valores que la bandera `--model`

306* **inherit**: Use el mismo modelo que la conversación principal310* **inherit**: Use el mismo modelo que la conversación principal

307* **Omitido**: Si no se especifica, por defecto es `inherit` (usa el mismo modelo que la conversación principal)311* **Omitido**: Si no se especifica, por defecto es `inherit` (usa el mismo modelo que la conversación principal)


325 329 

326Los subagentes heredan las [herramientas internas](/es/tools-reference) y herramientas MCP disponibles en la conversación principal por defecto. Las siguientes herramientas dependen de la interfaz de usuario o estado de sesión de la conversación principal y no están disponibles para subagentes, incluso cuando se enumeran en el campo `tools`:330Los subagentes heredan las [herramientas internas](/es/tools-reference) y herramientas MCP disponibles en la conversación principal por defecto. Las siguientes herramientas dependen de la interfaz de usuario o estado de sesión de la conversación principal y no están disponibles para subagentes, incluso cuando se enumeran en el campo `tools`:

327 331 

328* `Agent`

329* `AskUserQuestion`332* `AskUserQuestion`

330* `EnterPlanMode`333* `EnterPlanMode`

331* `ExitPlanMode`, a menos que el [`permissionMode`](#permission-modes) del subagente sea `plan`334* `ExitPlanMode`, a menos que el [`permissionMode`](#permission-modes) del subagente sea `plan`


354 357 

355Si ambos se establecen, `disallowedTools` se aplica primero, luego `tools` se resuelve contra el grupo restante. Una herramienta listada en ambos se elimina.358Si ambos se establecen, `disallowedTools` se aplica primero, luego `tools` se resuelve contra el grupo restante. Una herramienta listada en ambos se elimina.

356 359 

360Ambos campos aceptan patrones a nivel de servidor MCP además de nombres de herramientas exactos: `mcp__<server>` o `mcp__<server>__*` otorga o elimina todas las herramientas del servidor nombrado. En `disallowedTools`, `mcp__*` también elimina todas las herramientas MCP de cualquier servidor. Este ejemplo elimina todas las herramientas del servidor MCP `github` mientras mantiene herramientas de otros servidores y todas las herramientas integradas:

361 

362```yaml theme={null}

363---

364name: local-only

365description: Inherits every tool except those from the github MCP server

366disallowedTools: mcp__github

367---

368```

369 

357<h4 id="restrict-which-subagents-can-be-spawned">370<h4 id="restrict-which-subagents-can-be-spawned">

358 Restringir qué subagentes pueden ser generados371 Restringir qué subagentes pueden ser generados

359</h4>372</h4>


378tools: Agent, Read, Bash391tools: Agent, Read, Bash

379```392```

380 393 

381Si `Agent` se omite completamente de la lista `tools`, el agente no puede generar ningún subagente. Esta restricción solo se aplica a agentes que se ejecutan como el hilo principal con `claude --agent`. Los subagentes no pueden generar otros subagentes, por lo que `Agent(agent_type)` no tiene efecto en definiciones de subagentes.394Si `Agent` se omite completamente de la lista `tools`, el agente no puede generar ningún subagente.

395 

396La sintaxis de lista blanca `Agent(agent_type)` se aplica solo a un agente que se ejecuta como el hilo principal con `claude --agent`. En una definición de subagente, listar `Agent` en `tools` permite que ese subagente [genere subagentes anidados](#spawn-nested-subagents), pero cualquier lista de tipos dentro de los paréntesis se ignora.

382 397 

383<h4 id="scope-mcp-servers-to-a-subagent">398<h4 id="scope-mcp-servers-to-a-subagent">

384 Alcance de servidores MCP a un subagente399 Alcance de servidores MCP a un subagente


444| `plan` | Modo plan (exploración de solo lectura) |459| `plan` | Modo plan (exploración de solo lectura) |

445 460 

446<Warning>461<Warning>

447 Use `bypassPermissions` con cuidado. Omite solicitudes de permiso, permitiendo que el subagente ejecute operaciones sin aprobación, incluidas escrituras en `.git`, `.config/git`, `.claude`, `.vscode`, `.idea`, `.husky`, `.cargo`, `.devcontainer`, `.yarn` y `.mvn`. Las eliminaciones de directorio raíz y directorio de inicio como `rm -rf /` aún solicitan confirmación como un cortacircuitos. Consulte [modos de permiso](/es/permission-modes#skip-all-checks-with-bypasspermissions-mode) para detalles.462 Use `bypassPermissions` con cuidado. Omite solicitudes de permiso, permitiendo que el subagente ejecute operaciones sin aprobación, incluidas escrituras en `.git`, `.config/git`, `.claude`, `.vscode`, `.idea`, `.husky`, `.cargo`, `.devcontainer`, `.yarn` y `.mvn`. Las reglas explícitas de [`ask`](/es/permissions#manage-permissions) y las eliminaciones de directorio raíz y directorio de inicio como `rm -rf /` aún solicitan confirmación. Consulte [modos de permiso](/es/permission-modes#skip-all-checks-with-bypasspermissions-mode) para detalles.

448</Warning>463</Warning>

449 464 

450Si el principal usa `bypassPermissions` o `acceptEdits`, esto tiene precedencia y no puede ser anulado. Si el principal usa [modo auto](/es/permission-modes#eliminate-prompts-with-auto-mode), el subagente hereda modo auto y cualquier `permissionMode` en su frontmatter se ignora: el clasificador evalúa las llamadas de herramientas del subagente con las mismas reglas de bloqueo y permiso que la sesión principal.465Si el principal usa `bypassPermissions` o `acceptEdits`, esto tiene precedencia y no puede ser anulado. Si el principal usa [modo auto](/es/permission-modes#eliminate-prompts-with-auto-mode), el subagente hereda modo auto y cualquier `permissionMode` en su frontmatter se ignora: el clasificador evalúa las llamadas de herramientas del subagente con las mismas reglas de bloqueo y permiso que la sesión principal.


761 776 

762Para deshabilitar toda la funcionalidad de tareas en fondo, establezca la variable de entorno `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` en `1`. Consulte [Variables de entorno](/es/env-vars).777Para deshabilitar toda la funcionalidad de tareas en fondo, establezca la variable de entorno `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` en `1`. Consulte [Variables de entorno](/es/env-vars).

763 778 

764Cuando [`CLAUDE_CODE_FORK_SUBAGENT`](#fork-the-current-conversation) está establecido, cada generación de subagente se ejecuta en el fondo independientemente del campo `background`. Los forks aún muestran solicitudes de permiso en su terminal a medida que ocurren; los subagentes nombrados deniegan automáticamente cualquier cosa que solicitaría, como se describe arriba.779Cuando [`CLAUDE_CODE_FORK_SUBAGENT`](#fork-the-current-conversation) está establecido en `1`, cada generación de subagente se ejecuta en el fondo independientemente del campo `background`. Los forks aún muestran solicitudes de permiso en su terminal a medida que ocurren; los subagentes nombrados deniegan automáticamente cualquier cosa que solicitaría, como se describe arriba.

765 780 

766<h3 id="common-patterns">781<h3 id="common-patterns">

767 Patrones comunes782 Patrones comunes


826 841 

827Para una pregunta rápida sobre algo ya en su conversación, use [`/btw`](/es/interactive-mode#side-questions-with-%2Fbtw) en lugar de un subagente. Ve su contexto completo pero no tiene acceso a herramientas, y la respuesta se descarta en lugar de agregarse al historial.842Para una pregunta rápida sobre algo ya en su conversación, use [`/btw`](/es/interactive-mode#side-questions-with-%2Fbtw) en lugar de un subagente. Ve su contexto completo pero no tiene acceso a herramientas, y la respuesta se descarta en lugar de agregarse al historial.

828 843 

829<Note>844<h3 id="spawn-nested-subagents">

830 Los subagentes no pueden generar otros subagentes. Si su flujo de trabajo requiere delegación anidada, use [Skills](/es/skills) o [encadene subagentes](#chain-subagents) desde la conversación principal.845 Generar subagentes anidados

831</Note>846</h3>

847 

848{/* min-version: 2.1.172 */}A partir de Claude Code v2.1.172, un subagente puede generar sus propios subagentes. Use esto cuando una tarea delegada se divide en subtareas paralelas, como un subagente revisor que distribuye un verificador por hallazgo, de modo que la salida intermedia nunca llegue a su conversación principal. Solo el resumen del subagente de nivel superior regresa a usted.

849 

850Un subagente anidado se configura de la misma manera que uno de nivel superior y se resuelve desde los mismos [alcances](#choose-the-subagent-scope). El panel de subagentes debajo de la entrada de solicitud muestra el árbol completo: cada fila muestra un recuento `(+N)` de descendientes, y abrir una fila muestra los hijos directos de ese subagente con una ruta de regreso a `main`. La pestaña Running en [`/agents`](#use-the-%2Fagents-command) lista los subagentes en ejecución como una lista plana.

851 

852La profundidad se cuenta como el número de niveles de subagentes debajo de la conversación principal, independientemente de si cada nivel se ejecuta en [primer plano o fondo](#run-subagents-in-foreground-or-background):

853 

854* **Subagentes en primer plano**: pueden generar a cualquier profundidad. Cada nivel bloquea su padre hasta que regresa, por lo que la cadena es autolimitante: la conversación principal espera en toda la cadena.

855* **Subagentes en fondo**: un subagente en fondo a profundidad cinco no recibe la herramienta Agent y no puede generar más. El límite es fijo y no configurable, y existe para prevenir árboles concurrentes descontrolados.

856 

857Para prevenir que un subagente específico genere otros, omita `Agent` de su lista [`tools`](#available-tools) o añádalo a `disallowedTools`.

858 

859Un [fork](#fork-the-current-conversation) aún no puede generar otro fork. Puede generar otros tipos de subagentes, y esos cuentan hacia el límite de profundidad.

832 860 

833<h3 id="manage-subagent-context">861<h3 id="manage-subagent-context">

834 Administrar contexto de subagentes862 Administrar contexto de subagentes


860 888 

861Los subagentes reanudados retienen su historial de conversación completo, incluyendo todas las llamadas de herramientas anteriores, resultados y razonamiento. El subagente continúa exactamente donde se detuvo en lugar de comenzar de nuevo.889Los subagentes reanudados retienen su historial de conversación completo, incluyendo todas las llamadas de herramientas anteriores, resultados y razonamiento. El subagente continúa exactamente donde se detuvo en lugar de comenzar de nuevo.

862 890 

863Cuando un subagente se completa, Claude recibe su ID de agente. Claude usa la herramienta `SendMessage` con el ID del agente como campo `to` para reanudarlo. La herramienta `SendMessage` solo está disponible cuando [equipos de agentes](/es/agent-teams) están habilitados a través de `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1`.891Cuando un subagente se completa, Claude recibe su ID de agente. Los agentes integrados Explore y Plan son de una sola ejecución y no devuelven ID de agente, por lo que no pueden reanudarse; use `general-purpose` o un subagente personalizado cuando necesite continuar el trabajo. Claude usa la herramienta `SendMessage` con el ID del agente como campo `to` para reanudarlo. La herramienta `SendMessage` solo está disponible cuando [equipos de agentes](/es/agent-teams) están habilitados a través de `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1`.

864 892 

865Para reanudar un subagente, pida a Claude que continúe el trabajo anterior:893Para reanudar un subagente, pida a Claude que continúe el trabajo anterior:

866 894 


886 Auto-compactación914 Auto-compactación

887</h4>915</h4>

888 916 

889Los subagentes soportan compactación automática usando la misma lógica que la conversación principal. Por defecto, la auto-compactación se dispara aproximadamente al 95% de capacidad. Para disparar compactación más temprano, establezca `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` en un porcentaje más bajo (por ejemplo, `50`). Consulte [variables de entorno](/es/env-vars) para detalles.917Los subagentes soportan compactación automática usando la misma lógica que la conversación principal. La compactación se dispara bajo las mismas condiciones, y `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` se aplica a subagentes también. Consulte [variables de entorno](/es/env-vars) para cuándo entra en vigor el override.

890 918 

891Los eventos de compactación se registran en archivos de transcripción de subagentes:919Los eventos de compactación se registran en archivos de transcripción de subagentes:

892 920 


908</h2>936</h2>

909 937 

910<Note>938<Note>

911 Los subagentes bifurcados requieren Claude Code v2.1.117 o posterior. {/* min-version: 2.1.161 */}A partir de v2.1.161, el comando `/fork` está habilitado de forma predeterminada; en versiones anteriores requiere establecer la variable de entorno [`CLAUDE_CODE_FORK_SUBAGENT`](/es/env-vars) en `1`. Hacer que los forks sean el comportamiento de generación *predeterminado* del modelo es experimental y puede cambiar en futuras versiones; habilítelo estableciendo la misma variable. La variable se respeta en modo interactivo y a través del SDK o `claude -p`.939 Los subagentes bifurcados requieren Claude Code v2.1.117 o posterior. {/* min-version: 2.1.161 */}A partir de v2.1.161, el comando `/fork` está habilitado de forma predeterminada; en versiones anteriores requiere establecer la variable de entorno [`CLAUDE_CODE_FORK_SUBAGENT`](/es/env-vars) en `1`. Permitir que Claude mismo genere bifurcaciones es experimental y puede cambiar en futuras versiones. Esta capacidad también puede habilitarse en sesiones interactivas como parte de un lanzamiento por fases.

912</Note>940</Note>

913 941 

914Un fork es un subagente que hereda toda la conversación hasta ahora en lugar de comenzar de nuevo. Esto elimina el aislamiento de entrada que los subagentes de otra manera proporcionan: un fork ve el mismo mensaje del sistema, herramientas, modelo e historial de mensajes que la sesión principal, para que pueda entregarle una tarea secundaria sin re-explicar la situación. Las propias llamadas de herramientas del fork aún permanecen fuera de su conversación y solo su resultado final regresa, por lo que su ventana de contexto principal permanece limpia. Use un fork cuando un subagente nombrado necesitaría demasiado contexto para ser útil, o cuando desee probar varios enfoques en paralelo desde el mismo punto de partida.942Un fork es un subagente que hereda toda la conversación hasta ahora en lugar de comenzar de nuevo. Esto elimina el aislamiento de entrada que los subagentes de otra manera proporcionan: un fork ve el mismo mensaje del sistema, herramientas, modelo e historial de mensajes que la sesión principal, para que pueda entregarle una tarea secundaria sin re-explicar la situación. Las propias llamadas de herramientas del fork aún permanecen fuera de su conversación y solo su resultado final regresa, por lo que su ventana de contexto principal permanece limpia. Use un fork cuando un subagente nombrado necesitaría demasiado contexto para ser útil, o cuando desee probar varios enfoques en paralelo desde el mismo punto de partida.

915 943 

916Establecer `CLAUDE_CODE_FORK_SUBAGENT` cambia Claude Code de dos maneras:944Para controlar el modo fork independientemente del lanzamiento por fases, establezca [`CLAUDE_CODE_FORK_SUBAGENT`](/es/env-vars) en `1` para habilitarlo explícitamente o en `0` para deshabilitarlo. La variable se respeta en modo interactivo y a través del SDK o `claude -p`.

945 

946Habilitar el modo fork cambia Claude Code de dos maneras:

917 947 

918* Claude genera un fork siempre que de otra manera usaría el subagente [general-purpose](#built-in-subagents). Los subagentes nombrados como Explore aún se generan como antes.948* Claude puede generar un fork solicitando explícitamente el tipo de subagente `fork`. Los spawns sin un tipo de subagente aún utilizan el subagente [general-purpose](#built-in-subagents), y los subagentes nombrados como Explore aún se generan como antes.

919* Cada generación de subagente se ejecuta en el [fondo](#run-subagents-in-foreground-or-background), ya sea un fork o un subagente nombrado. Establezca `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` en `1` para mantener los spawns síncronos.949* Cada generación de subagente se ejecuta en el [fondo](#run-subagents-in-foreground-or-background), ya sea un fork o un subagente nombrado. Establezca `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` en `1` para mantener los spawns síncronos.

920 950 

921Puede iniciar un fork usted mismo con `/fork` seguido de una directiva, con o sin la variable establecida. Claude Code nombra el fork a partir de las primeras palabras de la directiva. El siguiente ejemplo bifurca la conversación para redactar casos de prueba mientras continúa con la implementación en la sesión principal:951Puede iniciar un fork usted mismo con `/fork` seguido de una directiva, con o sin la variable establecida. Claude Code nombra el fork a partir de las primeras palabras de la directiva. El siguiente ejemplo bifurca la conversación para redactar casos de prueba mientras continúa con la implementación en la sesión principal:


961 Limitaciones991 Limitaciones

962</h3>992</h3>

963 993 

964Establecer `CLAUDE_CODE_FORK_SUBAGENT=1` habilita fork mode en sesiones interactivas, [modo no interactivo](/es/headless), y el Agent SDK. Un fork no puede generar más forks.994Establecer `CLAUDE_CODE_FORK_SUBAGENT=1` habilita el modo fork en sesiones interactivas, [modo no interactivo](/es/headless), y el Agent SDK; establecerlo en `0` deshabilita el modo fork en todas partes, incluido cualquier lanzamiento del lado del servidor. Un fork no puede generar más forks.

965 995 

966<h2 id="example-subagents">996<h2 id="example-subagents">

967 Subagentes de ejemplo997 Subagentes de ejemplo

Details

6 6 

7> Aprenda cómo Claude Code puede integrarse con varios servicios de terceros e infraestructura para cumplir con los requisitos de implementación empresarial.7> Aprenda cómo Claude Code puede integrarse con varios servicios de terceros e infraestructura para cumplir con los requisitos de implementación empresarial.

8 8 

9export const ContactSalesCard = ({surface}) => {

10 const utm = content => `utm_source=claude_code&utm_medium=docs&utm_content=${surface}_${content}`;

11 const iconArrowRight = (size = 13) => <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2.5" strokeLinecap="round" strokeLinejoin="round" aria-hidden="true">

12 <line x1="5" y1="12" x2="19" y2="12" />

13 <polyline points="12 5 19 12 12 19" />

14 </svg>;

15 const STYLES = `

16.cc-cs {

17 --cs-slate: #141413;

18 --cs-clay: #d97757;

19 --cs-clay-deep: #c6613f;

20 --cs-gray-000: #ffffff;

21 --cs-gray-700: #3d3d3a;

22 --cs-border-default: rgba(31, 30, 29, 0.15);

23 font-family: inherit;

24}

25.dark .cc-cs {

26 --cs-slate: #f0eee6;

27 --cs-gray-000: #262624;

28 --cs-gray-700: #bfbdb4;

29 --cs-border-default: rgba(240, 238, 230, 0.14);

30}

31.cc-cs-card {

32 display: flex; align-items: center; justify-content: space-between;

33 gap: 16px; padding: 14px 16px; margin: 0;

34 background: var(--cs-gray-000); border: 0.5px solid var(--cs-border-default);

35 border-radius: 8px; flex-wrap: wrap;

36}

37.cc-cs-text { font-size: 13px; color: var(--cs-gray-700); line-height: 1.5; flex: 1; min-width: 240px; }

38.cc-cs-text strong { font-weight: 550; color: var(--cs-slate); }

39.cc-cs-actions { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }

40.cc-cs-btn-clay {

41 display: inline-flex; align-items: center; gap: 8px;

42 background: var(--cs-clay-deep); color: #fff; border: none;

43 border-radius: 8px; padding: 8px 14px;

44 font-size: 13px; font-weight: 500;

45 transition: background-color 0.15s; white-space: nowrap;

46}

47.cc-cs-btn-clay:hover { background: var(--cs-clay); }

48.cc-cs-btn-ghost {

49 display: inline-flex; align-items: center; gap: 8px;

50 background: transparent; color: var(--cs-gray-700);

51 border: 0.5px solid var(--cs-border-default);

52 border-radius: 8px; padding: 8px 14px;

53 font-size: 13px; font-weight: 500;

54}

55.cc-cs-btn-ghost:hover { background: rgba(0, 0, 0, 0.04); }

56.dark .cc-cs-btn-ghost:hover { background: rgba(255, 255, 255, 0.04); }

57@media (max-width: 720px) {

58 .cc-cs-actions { width: 100%; }

59}

60`;

61 return <div className="cc-cs not-prose">

62 <style>{STYLES}</style>

63 <div className="cc-cs-card">

64 <div className="cc-cs-text">

65 <strong>Deploying Claude Code across your organization?</strong> Talk to sales about enterprise plans, SSO, and centralized billing.

66 </div>

67 <div className="cc-cs-actions">

68 <a href={`https://claude.com/pricing?${utm('view_plans')}#plans-business`} className="cc-cs-btn-ghost">

69 View plans

70 </a>

71 <a href={`https://claude.com/contact-sales?${utm('contact_sales')}`} className="cc-cs-btn-clay">

72 Contact sales {iconArrowRight()}

73 </a>

74 </div>

75 </div>

76 </div>;

77};

78 

9Las organizaciones pueden implementar Claude Code directamente a través de Anthropic o a través de un proveedor de nube. Esta página le ayuda a elegir la configuración correcta.79Las organizaciones pueden implementar Claude Code directamente a través de Anthropic o a través de un proveedor de nube. Esta página le ayuda a elegir la configuración correcta.

10 80 

81<ContactSalesCard surface="third_party_overview" />

82 

11<h2 id="compare-deployment-options">83<h2 id="compare-deployment-options">

12 Comparar opciones de implementación84 Comparar opciones de implementación

13</h2>85</h2>


271 Fijar versiones de modelo para proveedores de nube343 Fijar versiones de modelo para proveedores de nube

272</h3>344</h3>

273 345 

274Si implementa a través de [Bedrock](/es/amazon-bedrock), [Vertex AI](/es/google-vertex-ai), [Foundry](/es/microsoft-foundry), o [Claude Platform on AWS](/es/claude-platform-on-aws), fije versiones de modelo específicas usando `ANTHROPIC_DEFAULT_OPUS_MODEL`, `ANTHROPIC_DEFAULT_SONNET_MODEL`, y `ANTHROPIC_DEFAULT_HAIKU_MODEL`. Sin fijar, los alias de modelo se resuelven a la versión más reciente, lo que puede no estar habilitado en su cuenta cuando Anthropic lanza una actualización. Fijar le permite controlar cuándo sus usuarios se mueven a un nuevo modelo. Consulte [Configuración de modelo](/es/model-config#pin-models-for-third-party-deployments) para ver qué hace cada proveedor cuando la versión más reciente no está disponible.346Si implementa a través de [Bedrock](/es/amazon-bedrock), [Vertex AI](/es/google-vertex-ai), [Foundry](/es/microsoft-foundry), o [Claude Platform on AWS](/es/claude-platform-on-aws), fije versiones de modelo específicas usando `ANTHROPIC_DEFAULT_FABLE_MODEL`, `ANTHROPIC_DEFAULT_OPUS_MODEL`, `ANTHROPIC_DEFAULT_SONNET_MODEL`, y `ANTHROPIC_DEFAULT_HAIKU_MODEL`. Sin fijar, los alias de modelo se resuelven al valor predeterminado integrado de Claude Code para ese proveedor, que puede rezagarse con respecto a la versión más reciente y es posible que aún no esté habilitado en su cuenta. Fijar le permite controlar cuándo sus usuarios se mueven a un nuevo modelo. Consulte [Configuración de modelo](/es/model-config#pin-models-for-third-party-deployments) para ver qué hace cada proveedor cuando el valor predeterminado no está disponible.

275 347 

276<h3 id="configure-security-policies">348<h3 id="configure-security-policies">

277 Configurar políticas de seguridad349 Configurar políticas de seguridad

Details

44| `TaskOutput` | (Obsoleto) Recupera la salida de una tarea de fondo. Prefiera `Read` en la ruta del archivo de salida de la tarea | No |44| `TaskOutput` | (Obsoleto) Recupera la salida de una tarea de fondo. Prefiera `Read` en la ruta del archivo de salida de la tarea | No |

45| `TaskStop` | Mata una tarea de fondo en ejecución por ID | No |45| `TaskStop` | Mata una tarea de fondo en ejecución por ID | No |

46| `TaskUpdate` | Actualiza el estado de la tarea, dependencias, detalles, o elimina tareas | No |46| `TaskUpdate` | Actualiza el estado de la tarea, dependencias, detalles, o elimina tareas | No |

47| `TeamCreate` | Crea un [equipo de agentes](/es/agent-teams) con múltiples compañeros de equipo. Solo disponible cuando `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` está establecido | No |

48| `TeamDelete` | Disuelve un equipo de agentes y limpia los procesos de compañeros de equipo. Solo disponible cuando `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` está establecido | No |

49| `TodoWrite` | {/* min-version: 2.1.142 */}Gestiona la lista de verificación de tareas de la sesión. Deshabilitado por defecto a partir de v2.1.142 en favor de `TaskCreate`, `TaskGet`, `TaskList` y `TaskUpdate`. Establezca `CLAUDE_CODE_ENABLE_TASKS=0` para volver a habilitar | No |47| `TodoWrite` | {/* min-version: 2.1.142 */}Gestiona la lista de verificación de tareas de la sesión. Deshabilitado por defecto a partir de v2.1.142 en favor de `TaskCreate`, `TaskGet`, `TaskList` y `TaskUpdate`. Establezca `CLAUDE_CODE_ENABLE_TASKS=0` para volver a habilitar | No |

50| `ToolSearch` | Busca y carga herramientas diferidas cuando [búsqueda de herramientas](/es/mcp#scale-with-mcp-tool-search) está habilitada | No |48| `ToolSearch` | Busca y carga herramientas diferidas cuando [búsqueda de herramientas](/es/mcp#scale-with-mcp-tool-search) está habilitada | No |

51| `WaitForMcpServers` | {/* min-version: 2.1.142 */}Espera a uno o más [servidores MCP](/es/mcp) que aún se están conectando en segundo plano, para que una solicitud pueda usar sus herramientas sin reiniciar la sesión. Claude lo llama cuando un servidor necesario aún no está conectado. Solo aparece cuando [búsqueda de herramientas](/es/mcp#scale-with-mcp-tool-search) está deshabilitada, ya que `ToolSearch` maneja la espera cuando está habilitada | No |49| `WaitForMcpServers` | {/* min-version: 2.1.142 */}Espera a uno o más [servidores MCP](/es/mcp) que aún se están conectando en segundo plano, para que una solicitud pueda usar sus herramientas sin reiniciar la sesión. Claude lo llama cuando un servidor necesario aún no está conectado. Solo aparece cuando [búsqueda de herramientas](/es/mcp#scale-with-mcp-tool-search) está deshabilitada, ya que `ToolSearch` maneja la espera cuando está habilitada | No |


70Todos estos aceptan el mismo formato de regla, `ToolName(specifier)`. El especificador depende de la herramienta, y varias herramientas comparten un formato:68Todos estos aceptan el mismo formato de regla, `ToolName(specifier)`. El especificador depende de la herramienta, y varias herramientas comparten un formato:

71 69 

72| Formato de regla | Se aplica a | Detalles |70| Formato de regla | Se aplica a | Detalles |

73| :----------------------------- | :------------------------ | :--------------------------------------------------------------------------- |71| :----------------------------- | :------------------------ | :----------------------------------------------------------------------------------- |

74| `Bash(npm run *)` | Bash, Monitor | [Coincidencia de patrón de comando](/es/permissions#bash) |72| `Bash(npm run *)` | Bash, Monitor | [Coincidencia de patrón de comando](/es/permissions#bash) |

75| `PowerShell(Get-ChildItem *)` | PowerShell | [Coincidencia de patrón de comando](/es/permissions#powershell) |73| `PowerShell(Get-ChildItem *)` | PowerShell | [Coincidencia de patrón de comando](/es/permissions#powershell) |

76| `Read(~/secrets/**)` | Read, Grep, Glob, LSP | [Coincidencia de patrón de ruta](/es/permissions#read-and-edit) |74| `Read(~/secrets/**)` | Read, Grep, Glob, LSP | [Coincidencia de patrón de ruta](/es/permissions#read-and-edit) |

77| `Edit(/src/**)` | Edit, Write, NotebookEdit | [Coincidencia de patrón de ruta](/es/permissions#read-and-edit) |75| `Edit(/src/**)` | Edit, Write, NotebookEdit | [Coincidencia de patrón de ruta](/es/permissions#read-and-edit) |

78| `Skill(deploy *)` | Skill | [Coincidencia de nombre de skill](/es/skills#restrict-claude's-skill-access) |76| `Skill(deploy *)` | Skill | [Coincidencia de nombre de skill](/es/skills#restrict-claude%E2%80%99s-skill-access) |

79| `Agent(Explore)` | Agent | [Coincidencia de tipo de subagent](/es/permissions#agent-subagents) |77| `Agent(Explore)` | Agent | [Coincidencia de tipo de subagent](/es/permissions#agent-subagents) |

80| `WebFetch(domain:example.com)` | WebFetch | [Coincidencia de dominio](/es/permissions#webfetch) |78| `WebFetch(domain:example.com)` | WebFetch | [Coincidencia de dominio](/es/permissions#webfetch) |

81| `WebSearch` | WebSearch | Sin especificador; permitir o denegar la herramienta en su totalidad |79| `WebSearch` | WebSearch | Sin especificador; permitir o denegar la herramienta en su totalidad |


186* Saltar a la definición de un símbolo184* Saltar a la definición de un símbolo

187* Encontrar todas las referencias a un símbolo185* Encontrar todas las referencias a un símbolo

188* Obtener información de tipo en una posición186* Obtener información de tipo en una posición

189* Listar símbolos en un archivo o espacio de trabajo187* Listar símbolos en un archivo

188* Buscar un símbolo por nombre en todo el espacio de trabajo

190* Encontrar implementaciones de una interfaz189* Encontrar implementaciones de una interfaz

191* Rastrear jerarquías de llamadas190* Rastrear jerarquías de llamadas

192 191 


305* Las respuestas se almacenan en caché durante 15 minutos, por lo que las obtenciones repetidas de la misma URL regresan rápidamente.304* Las respuestas se almacenan en caché durante 15 minutos, por lo que las obtenciones repetidas de la misma URL regresan rápidamente.

306* Cuando una URL se redirige a un host diferente, WebFetch devuelve un resultado de texto que nombra la URL original y el destino de redirección en lugar de seguirlo. Claude luego obtiene la nueva URL con una segunda llamada de WebFetch.305* Cuando una URL se redirige a un host diferente, WebFetch devuelve un resultado de texto que nombra la URL original y el destino de redirección en lugar de seguirlo. Claude luego obtiene la nueva URL con una segunda llamada de WebFetch.

307 306 

308En los modos de permiso predeterminado y `acceptEdits`, WebFetch solicita la primera vez que alcanza un nuevo dominio. Para permitir un dominio por adelantado sin una solicitud, agregue una regla de permiso como `WebFetch(domain:example.com)`. Los modos de permiso `auto` y `bypassPermissions` [permission modes](/es/permissions#permission-modes) omiten la solicitud completamente.307En los modos de permiso predeterminado y `acceptEdits`, WebFetch solicita la primera vez que alcanza un nuevo dominio, excepto por un conjunto integrado de dominios de documentación preaprobados que se obtienen sin una solicitud. Para permitir otro dominio por adelantado sin una solicitud, agregue una regla de permiso como `WebFetch(domain:example.com)`. Los modos de permiso `auto` y `bypassPermissions` [permission modes](/es/permissions#permission-modes) omiten la solicitud completamente.

308 

309Una regla explícita `WebFetch(domain:...)` en `deny`, `ask` o `allow` tiene precedencia sobre el conjunto preaprobado, por lo que puede bloquear un dominio preaprobado o requerir una solicitud para él.

309 310 

310WebFetch establece un encabezado `User-Agent` que comienza con `Claude-User`, y un encabezado `Accept` que prefiere Markdown sobre HTML para que los servidores que admiten negociación de contenido puedan devolver Markdown directamente. Las [reglas de red de Sandbox](/es/sandboxing) se configuran por separado, por lo que un dominio que desea que un proceso en sandbox alcance aún necesita una regla de permiso de sandbox explícita.311WebFetch establece un encabezado `User-Agent` que comienza con `Claude-User`, y un encabezado `Accept` que prefiere Markdown sobre HTML para que los servidores que admiten negociación de contenido puedan devolver Markdown directamente. Las [reglas de red de Sandbox](/es/sandboxing) se configuran por separado, por lo que un dominio que desea que un proceso en sandbox alcance aún necesita una regla de permiso de sandbox explícita.

311 312 


349 350 

350Claude proporciona un resumen conversacional. Para nombres exactos de herramientas MCP, ejecute `/mcp`.351Claude proporciona un resumen conversacional. Para nombres exactos de herramientas MCP, ejecute `/mcp`.

351 352 

353<Note>

354 La [herramienta advisor](/es/advisor) es una [herramienta de servidor](https://platform.claude.com/docs/en/agents-and-tools/tool-use/advisor-tool) que ejecuta la API, en lugar de una herramienta que implementa Claude Code. No tiene un nombre que pueda referenciar en reglas de permisos o coincidencias de hooks.

355</Note>

356 

352<h2 id="see-also">357<h2 id="see-also">

353 Véase también358 Véase también

354</h2>359</h2>

Details

24| `TLS connect error` o `SSL/TLS secure channel` | [Actualice los certificados CA](#tls-or-ssl-connection-errors) |24| `TLS connect error` o `SSL/TLS secure channel` | [Actualice los certificados CA](#tls-or-ssl-connection-errors) |

25| `Failed to fetch version` o no puede alcanzar el servidor de descarga | [Verifique la configuración de red y proxy](#check-network-connectivity) |25| `Failed to fetch version` o no puede alcanzar el servidor de descarga | [Verifique la configuración de red y proxy](#check-network-connectivity) |

26| `irm is not recognized` o `&& is not valid` | [Use el comando correcto para su shell](#wrong-install-command-on-windows) |26| `irm is not recognized` o `&& is not valid` | [Use el comando correcto para su shell](#wrong-install-command-on-windows) |

27| `Cask 'claude-code' is unavailable: No Cask with this name exists` | [Actualice Homebrew](#homebrew-cask-unavailable-or-outdated) |

27| `'bash' is not recognized as the name of a cmdlet` | [Use el comando del instalador de Windows](#wrong-install-command-on-windows) |28| `'bash' is not recognized as the name of a cmdlet` | [Use el comando del instalador de Windows](#wrong-install-command-on-windows) |

28| `Claude Code on Windows requires either Git for Windows (for bash) or PowerShell` | [Instale un shell](#claude-code-on-windows-requires-either-git-for-windows-for-bash-or-powershell) |29| `Claude Code on Windows requires either Git for Windows (for bash) or PowerShell` | [Instale un shell](#claude-code-on-windows-requires-either-git-for-windows-for-bash-or-powershell) |

29| `Claude Code does not support 32-bit Windows` | [Abra Windows PowerShell, no la entrada x86](#claude-code-does-not-support-32-bit-windows) |30| `Claude Code does not support 32-bit Windows` | [Abra Windows PowerShell, no la entrada x86](#claude-code-does-not-support-32-bit-windows) |


61curl -sI https://downloads.claude.ai/claude-code-releases/latest62curl -sI https://downloads.claude.ai/claude-code-releases/latest

62```63```

63 64 

65En PowerShell, ejecute `curl.exe -sI` en su lugar. PowerShell crea un alias de `curl` a `Invoke-WebRequest`, que rechaza los indicadores `-sI`.

66 

64Una línea `HTTP/2 200` significa que alcanzó el servidor. Si no ve salida, `Could not resolve host`, o un tiempo de espera de conexión, su red está bloqueando la conexión. Las causas comunes incluyen:67Una línea `HTTP/2 200` significa que alcanzó el servidor. Si no ve salida, `Could not resolve host`, o un tiempo de espera de conexión, su red está bloqueando la conexión. Las causas comunes incluyen:

65 68 

66* Firewalls corporativos o proxies bloqueando `downloads.claude.ai`69* Firewalls corporativos o proxies bloqueando `downloads.claude.ai`


95 98 

96Si la instalación fue exitosa pero obtiene un error `command not found` o `not recognized` al ejecutar `claude`, el directorio de instalación no está en su PATH. Su shell busca programas en directorios listados en PATH, y el instalador coloca `claude` en `~/.local/bin/claude` en macOS/Linux o `%USERPROFILE%\.local\bin\claude.exe` en Windows.99Si la instalación fue exitosa pero obtiene un error `command not found` o `not recognized` al ejecutar `claude`, el directorio de instalación no está en su PATH. Su shell busca programas en directorios listados en PATH, y el instalador coloca `claude` en `~/.local/bin/claude` en macOS/Linux o `%USERPROFILE%\.local\bin\claude.exe` en Windows.

97 100 

101<Note>

102 La [extensión de VS Code](/es/vs-code) no coloca `claude` en esta ubicación. Agrupa una copia privada de la CLI dentro del directorio de la extensión para su propio panel de chat y no la agrega a PATH. Si solo ha instalado la extensión, `~/.local/bin/claude` no existirá. Ejecute la [instalación independiente](/es/setup) para usar `claude` desde una terminal, luego continúe a continuación.

103</Note>

104 

98Verifique si el directorio de instalación está en su PATH listando sus entradas de PATH y filtrando por `local/bin`:105Verifique si el directorio de instalación está en su PATH listando sus entradas de PATH y filtrando por `local/bin`:

99 106 

100<Tabs>107<Tabs>


188 ls -la ~/.local/bin/claude195 ls -la ~/.local/bin/claude

189 ```196 ```

190 197 

198 Si algún comando `ls` imprime `No such file or directory`, eso no es un error. Significa que nada está instalado en esa ubicación, así que continúe con la siguiente verificación.

199 

191 ```bash theme={null}200 ```bash theme={null}

192 ls -la ~/.claude/local/201 ls -la ~/.claude/local/

193 ```202 ```


390 winget install Anthropic.ClaudeCode399 winget install Anthropic.ClaudeCode

391 ```400 ```

392 401 

402<h3 id="homebrew-cask-unavailable-or-outdated">

403 Cask de Homebrew no disponible u obsoleto

404</h3>

405 

406Homebrew reporta `Error: Cask 'claude-code' is unavailable: No Cask with this name exists` cuando su copia local del índice de cask de Homebrew es anterior a la publicación del cask. Actualice el índice e intente nuevamente:

407 

408```bash theme={null}

409brew update

410brew install --cask claude-code

411```

412 

413Si Homebrew instala una versión anterior de Claude Code de la que espera, el mismo índice obsoleto suele ser la causa. El cask `claude-code` rastrea el canal estable y típicamente está aproximadamente una semana detrás de la última versión; para la versión más reciente ejecute `brew install --cask claude-code@latest` en su lugar. Consulte [Configurar canal de versión](/es/setup#configure-release-channel) para la diferencia entre los dos casks.

414 

393<h3 id="tls-or-ssl-connection-errors">415<h3 id="tls-or-ssl-connection-errors">

394 Errores de conexión TLS o SSL416 Errores de conexión TLS o SSL

395</h3>417</h3>


592 614 

593Si su Git está instalado en otro lugar, encuentre la ruta ejecutando `where.exe git` en PowerShell y use la ruta `bin\bash.exe` de ese directorio.615Si su Git está instalado en otro lugar, encuentre la ruta ejecutando `where.exe git` en PowerShell y use la ruta `bin\bash.exe` de ese directorio.

594 616 

617**Si la ruta es correcta y el archivo existe** pero Claude Code aún lo reporta como no encontrado, el software de seguridad de punto final como AppLocker, políticas de restricción de software de Directiva de grupo, o agentes EDR pueden estar interfiriendo. En versiones anteriores a v2.1.116, Claude Code generaba un proceso hijo (`cmd.exe`) para verificar la ruta, que estas políticas pueden bloquear — una señal común es que `cmd.exe /c dir "C:\Program Files\Git\bin\bash.exe"` funciona cuando lo ejecuta directamente en PowerShell pero falla silenciosamente cuando lo inicia `claude.exe`.

618 

619Claude Code v2.1.116 y posterior verifican el sistema de archivos directamente, así que actualice primero. Si el error persiste en una versión actual, pida a su equipo de TI que agregue a la lista blanca `claude.exe` y los procesos que genera, incluidos `cmd.exe` y `bash.exe`, en su política de protección de punto final.

620 

595<h3 id="claude-code-does-not-support-32-bit-windows">621<h3 id="claude-code-does-not-support-32-bit-windows">

596 Claude Code no admite Windows de 32 bits622 Claude Code no admite Windows de 32 bits

597</h3>623</h3>

Details

361. Utilice `/compact` regularmente para reducir el tamaño del contexto361. Utilice `/compact` regularmente para reducir el tamaño del contexto

372. Cierre y reinicie Claude Code entre tareas principales372. Cierre y reinicie Claude Code entre tareas principales

383. Considere añadir directorios de compilación grandes a su archivo `.gitignore`383. Considere añadir directorios de compilación grandes a su archivo `.gitignore`

394. Reinicie con [`claude --safe-mode`](/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](/es/debug-your-config#test-against-a-clean-configuration) para encontrar cuál es

39 40 

40Si el uso de memoria se mantiene alto después de estos pasos, ejecute `/heapdump` para escribir una instantánea de montón de JavaScript y un desglose de memoria a `~/Desktop`. En Linux sin una carpeta Desktop, los archivos se escriben en su directorio de inicio.41Si el uso de memoria se mantiene alto después de estos pasos, ejecute `/heapdump` para escribir una instantánea de montón de JavaScript y un desglose de memoria a `~/Desktop`. En Linux sin una carpeta Desktop, los archivos se escriben en su directorio de inicio.

41 42 


65 66 

66Reiniciar no pierde su conversación. Ejecute `claude --resume` en el mismo directorio para retomar la sesión.67Reiniciar no pierde su conversación. Ejecute `claude --resume` en el mismo directorio para retomar la sesión.

67 68 

68<h3 id="garbled-or-corrupted-text-in-an-editor-s-integrated-terminal">69<h3 id="garbled-or-corrupted-text-in-an-editors-integrated-terminal">

69 Texto garbled o corrupto en la terminal integrada de un editor70 Texto garbled o corrupto en la terminal integrada de un editor

70</h3>71</h3>

71 72 

ultrareview.md +2 −2

Details

66 Rastrear una revisión en ejecución66 Rastrear una revisión en ejecución

67</h2>67</h2>

68 68 

69Una revisión típicamente toma de 5 a 10 minutos. La revisión se ejecuta como una tarea de fondo, por lo que puedes seguir trabajando en tu sesión, iniciar otros comandos o cerrar la terminal completamente.69Una revisión típicamente toma de 5 a 10 minutos. La revisión se ejecuta como una tarea de fondo, por lo que puede seguir trabajando en su sesión, iniciar otros comandos o cerrar la terminal completamente.

70 70 

71Usa `/tasks` para ver revisiones en ejecución y completadas, abre la vista de detalle para una revisión o detén una revisión que está en progreso. Detener una revisión archiva la sesión en la nube, y los hallazgos parciales no se devuelven. Cuando la revisión finaliza, los hallazgos verificados aparecen como una notificación en tu sesión. Cada hallazgo incluye la ubicación del archivo y una explicación del problema para que puedas pedirle a Claude que lo corrija directamente.71Utilice `/tasks` para ver revisiones en ejecución y completadas, abra la vista de detalle para una revisión o detenga una revisión que está en progreso. Detener una revisión archiva la sesión en la nube, y los hallazgos parciales no se devuelven. Cuando la revisión finaliza, los hallazgos verificados aparecen como una notificación en su sesión. Cada hallazgo incluye la ubicación del archivo y una explicación del problema para que pueda pedirle a Claude que lo corrija directamente.

72 72 

73<h2 id="run-ultrareview-non-interactively">73<h2 id="run-ultrareview-non-interactively">

74 Ejecuta ultrareview de forma no interactiva74 Ejecuta ultrareview de forma no interactiva

vs-code.md +159 −55

Details

12 12 

13Con la extensión, puede revisar y editar los planes de Claude antes de aceptarlos, aceptar automáticamente ediciones a medida que se realizan, mencionar archivos con rangos de líneas específicas de su selección, acceder al historial de conversaciones y abrir múltiples conversaciones en pestañas o ventanas separadas.13Con la extensión, puede revisar y editar los planes de Claude antes de aceptarlos, aceptar automáticamente ediciones a medida que se realizan, mencionar archivos con rangos de líneas específicas de su selección, acceder al historial de conversaciones y abrir múltiples conversaciones en pestañas o ventanas separadas.

14 14 

15## Requisitos previos15<h2 id="prerequisites">

16 Requisitos previos

17</h2>

16 18 

17Antes de instalar, asegúrate de tener:19Antes de instalar, asegúrate de tener:

18 20 

19* VS Code 1.98.0 o superior21* VS Code 1.98.0 o superior

20* Una cuenta de Anthropic (iniciarás sesión cuando abras la extensión por primera vez). Si estás utilizando un proveedor de terceros como Amazon Bedrock o Google Vertex AI, consulta [Usar proveedores de terceros](#usar-proveedores-de-terceros) en su lugar.22* Una cuenta de Anthropic: cualquier suscripción pagada de Claude (Pro, Max, Team o Enterprise) o una cuenta de Claude Console funciona, y no se requiere clave API. Iniciarás sesión [con esta cuenta](/es/authentication#log-in-to-claude-code) cuando abras la extensión por primera vez. Si accedes a Claude a través de un proveedor de terceros como Amazon Bedrock o Google Vertex AI, consulta [Usar proveedores de terceros](#use-third-party-providers) para obtener instrucciones de configuración.

21 23 

22<Tip>24<Tip>

23 La extensión incluye la CLI (interfaz de línea de comandos), a la que puedes acceder desde la terminal integrada de VS Code para funciones avanzadas. Consulta [Extensión de VS Code frente a CLI de Claude Code](#extensión-de-vs-code-frente-a-cli-de-claude-code) para obtener más detalles.25 La extensión incluye su propia copia de la CLI (interfaz de línea de comandos) para el panel de chat. Para ejecutar `claude` en la terminal integrada de VS Code, también necesitas la [instalación de CLI independiente](/es/setup). Consulta [Extensión de VS Code frente a Claude Code CLI](#vs-code-extension-vs-claude-code-cli) para obtener detalles.

24</Tip>26</Tip>

25 27 

26## Instalar la extensión28<h2 id="install-the-extension">

29 Instalar la extensión

30</h2>

27 31 

28Haz clic en el enlace de tu IDE para instalar directamente:32Haz clic en el enlace de tu IDE para instalar directamente:

29 33 


32 36 

33O en VS Code, presiona `Cmd+Shift+X` (Mac) o `Ctrl+Shift+X` (Windows/Linux) para abrir la vista Extensiones, busca "Claude Code" y haz clic en **Instalar**.37O en VS Code, presiona `Cmd+Shift+X` (Mac) o `Ctrl+Shift+X` (Windows/Linux) para abrir la vista Extensiones, busca "Claude Code" y haz clic en **Instalar**.

34 38 

35La extensión también se instala en otros forks de VS Code como Devin Desktop o Kiro. Busca "Claude Code" en la vista Extensiones del editor, o instala desde el [registro Open VSX](https://open-vsx.org/extension/Anthropic/claude-code). Si tu editor no puede instalar la extensión, ejecuta `claude` en su terminal integrada en su lugar. La [CLI](/es/quickstart) funciona en cualquier terminal.39La extensión también se instala en otros forks de VS Code como Devin Desktop o Kiro. Busca "Claude Code" en la vista Extensiones del editor, o instala desde el [registro Open VSX](https://open-vsx.org/extension/Anthropic/claude-code). Si tu editor no puede instalar la extensión, [instala la CLI](/es/quickstart) y ejecuta `claude` en su terminal integrada en su lugar. La CLI funciona en cualquier terminal.

36 40 

37<Note>Si la extensión no aparece después de la instalación, reinicia VS Code o ejecuta "Developer: Reload Window" desde la Paleta de comandos.</Note>41<Note>Si la extensión no aparece después de la instalación, reinicia VS Code o ejecuta "Developer: Reload Window" desde la Paleta de comandos.</Note>

38 42 

39## Comenzar43<h2 id="get-started">

44 Comenzar

45</h2>

40 46 

41Una vez instalada, puedes comenzar a usar Claude Code a través de la interfaz de VS Code:47Una vez instalada, puedes comenzar a usar Claude Code a través de la interfaz de VS Code:

42 48 


54 * **Paleta de comandos**: `Cmd+Shift+P` (Mac) o `Ctrl+Shift+P` (Windows/Linux), escribe "Claude Code" y selecciona una opción como "Abrir en Nueva Pestaña"60 * **Paleta de comandos**: `Cmd+Shift+P` (Mac) o `Ctrl+Shift+P` (Windows/Linux), escribe "Claude Code" y selecciona una opción como "Abrir en Nueva Pestaña"

55 * **Barra de estado**: haz clic en **✱ Claude Code** en la esquina inferior derecha de la ventana. Esto funciona incluso cuando no hay ningún archivo abierto.61 * **Barra de estado**: haz clic en **✱ Claude Code** en la esquina inferior derecha de la ventana. Esto funciona incluso cuando no hay ningún archivo abierto.

56 62 

57 Puedes arrastrar el panel de Claude para reposicionarlo en cualquier lugar de VS Code. Consulta [Personalizar tu flujo de trabajo](#personalizar-tu-flujo-de-trabajo) para obtener más detalles.63 Puedes arrastrar el panel de Claude para reposicionarlo en cualquier lugar de VS Code. Consulta [Personalizar tu flujo de trabajo](#customize-your-workflow) para obtener más detalles.

58 </Step>64 </Step>

59 65 

60 <Step title="Iniciar sesión">66 <Step title="Iniciar sesión">


90 Ejecuta "Claude Code: Open Walkthrough" desde la Paleta de comandos para un tour guiado de los conceptos básicos.96 Ejecuta "Claude Code: Open Walkthrough" desde la Paleta de comandos para un tour guiado de los conceptos básicos.

91</Tip>97</Tip>

92 98 

93## Usar el cuadro de mensaje99<h2 id="use-the-prompt-box">

100 Usar el cuadro de mensaje

101</h2>

94 102 

95El cuadro de mensaje admite varias características:103El cuadro de mensaje admite varias características:

96 104 


100* **Pensamiento extendido**: permite que Claude dedique más tiempo a razonar sobre problemas complejos. Actívalo a través del menú de comandos (`/`). El razonamiento de Claude aparece en la conversación como bloques contraídos: haz clic en un bloque para leerlo, o presiona `Ctrl+O` para expandir o contraer cada bloque de pensamiento en la sesión. Consulta [Pensamiento extendido](/es/model-config#extended-thinking) para obtener más detalles.108* **Pensamiento extendido**: permite que Claude dedique más tiempo a razonar sobre problemas complejos. Actívalo a través del menú de comandos (`/`). El razonamiento de Claude aparece en la conversación como bloques contraídos: haz clic en un bloque para leerlo, o presiona `Ctrl+O` para expandir o contraer cada bloque de pensamiento en la sesión. Consulta [Pensamiento extendido](/es/model-config#extended-thinking) para obtener más detalles.

101* **Entrada multilínea**: presiona `Shift+Enter` para agregar una nueva línea sin enviar. Esto también funciona en la entrada de texto libre "Otro" de los diálogos de preguntas.109* **Entrada multilínea**: presiona `Shift+Enter` para agregar una nueva línea sin enviar. Esto también funciona en la entrada de texto libre "Otro" de los diálogos de preguntas.

102 110 

103### Referenciar archivos y carpetas111<h3 id="reference-files-and-folders">

112 Referenciar archivos y carpetas

113</h3>

104 114 

105Usa menciones @ para dar a Claude contexto sobre archivos o carpetas específicas. Cuando escribes `@` seguido de un nombre de archivo o carpeta, Claude lee ese contenido y puede responder preguntas sobre él o realizar cambios en él. Claude Code admite coincidencia difusa, por lo que puedes escribir nombres parciales para encontrar lo que necesitas:115Usa menciones @ para dar a Claude contexto sobre archivos o carpetas específicas. Cuando escribes `@` seguido de un nombre de archivo o carpeta, Claude lee ese contenido y puede responder preguntas sobre él o realizar cambios en él. Claude Code admite coincidencia difusa, por lo que puedes escribir nombres parciales para encontrar lo que necesitas:

106 116 


115 125 

116También puedes mantener presionado `Shift` mientras arrastras archivos al cuadro de mensaje para agregarlos como adjuntos. Haz clic en la X en cualquier adjunto para eliminarlo del contexto.126También puedes mantener presionado `Shift` mientras arrastras archivos al cuadro de mensaje para agregarlos como adjuntos. Haz clic en la X en cualquier adjunto para eliminarlo del contexto.

117 127 

118### Reanudar conversaciones pasadas128<h3 id="resume-past-conversations">

129 Reanudar conversaciones pasadas

130</h3>

119 131 

120Haz clic en el botón **Historial de sesiones** en la parte superior del panel de Claude Code para acceder a tu historial de conversaciones. Puedes buscar por palabra clave o examinar por tiempo (Hoy, Ayer, Últimos 7 días, etc.). Haz clic en cualquier conversación para reanudarla con el historial de mensajes completo. Las nuevas sesiones reciben títulos generados por IA basados en tu primer mensaje. Pasa el cursor sobre una sesión para revelar acciones de cambio de nombre y eliminación: cambia el nombre para darle un título descriptivo, o elimina para borrarlo de la lista. Para más información sobre cómo reanudar sesiones, consulta [Administrar sesiones](/es/sessions).132Haz clic en el botón **Historial de sesiones** en la parte superior del panel de Claude Code para acceder a tu historial de conversaciones. Puedes buscar por palabra clave o examinar por tiempo (Hoy, Ayer, Últimos 7 días, etc.). Haz clic en cualquier conversación para reanudarla con el historial de mensajes completo. Las nuevas sesiones reciben títulos generados por IA basados en tu primer mensaje. Pasa el cursor sobre una sesión para revelar acciones de cambio de nombre y eliminación: cambia el nombre para darle un título descriptivo, o elimina para borrarlo de la lista. Para más información sobre cómo reanudar sesiones, consulta [Administrar sesiones](/es/sessions).

121 133 

122### Reanudar sesiones remotas desde Claude.ai134<h3 id="resume-cloud-sessions-from-claude-ai">

135 Reanudar sesiones remotas desde Claude.ai

136</h3>

123 137 

124Si utilizas [Claude Code en la web](/es/claude-code-on-the-web), puedes reanudar esas sesiones remotas directamente en VS Code. Esto requiere iniciar sesión con **Claude.ai Subscription**, no Anthropic Console.138Si utilizas [Claude Code en la web](/es/claude-code-on-the-web), puedes reanudar esas sesiones remotas directamente en VS Code. Esto requiere iniciar sesión con **Claude.ai Subscription**, no Anthropic Console.

125 139 


141 Solo las sesiones web iniciadas con un repositorio de GitHub aparecen en la pestaña Remoto. Reanudar carga el historial de conversaciones localmente; los cambios no se sincronizan de vuelta a claude.ai.155 Solo las sesiones web iniciadas con un repositorio de GitHub aparecen en la pestaña Remoto. Reanudar carga el historial de conversaciones localmente; los cambios no se sincronizan de vuelta a claude.ai.

142</Note>156</Note>

143 157 

144## Personalizar tu flujo de trabajo158<h3 id="check-account-and-usage">

159 Verificar cuenta y uso

160</h3>

161 

162Ejecuta `/usage` desde el menú de comandos para abrir el diálogo Cuenta y uso. Muestra tu cuenta con la que iniciaste sesión, plan y barras de uso para la sesión actual y la semana con cuánto tiempo falta hasta que se restablezca cada límite.

163 

164El diálogo también desglosa qué está contribuyendo a tus límites de plan. Marca comportamientos que representan el 10% o más del uso reciente, como fallos de caché, contexto largo y sesiones con muchos 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. Requiere Claude Code v2.1.174 o posterior.

165 

166Usa el botón de alternancia Día y Semana 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 más información sobre el seguimiento y la reducción del uso, consulta [Rastrear tus costos](/es/costs#track-your-costs).

167 

168<h2 id="customize-your-workflow">

169 Personalizar tu flujo de trabajo

170</h2>

145 171 

146Una vez que estés en funcionamiento, puedes reposicionar el panel de Claude, ejecutar múltiples sesiones o cambiar al modo terminal.172Una vez que estés en funcionamiento, puedes reposicionar el panel de Claude, ejecutar múltiples sesiones o cambiar al modo terminal.

147 173 

148### Elegir dónde vive Claude174<h3 id="choose-where-claude-lives">

175 Elegir dónde vive Claude

176</h3>

149 177 

150Puedes arrastrar el panel de Claude para reposicionarlo en cualquier lugar de VS Code. Agarra la pestaña o barra de título del panel y arrástralo a:178Puedes arrastrar el panel de Claude para reposicionarlo en cualquier lugar de VS Code. Agarra la pestaña o barra de título del panel y arrástralo a:

151 179 


157 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 lista de sesiones de la Barra de actividades es separado del panel de Claude: la lista de sesiones siempre es visible en la Barra de actividades, mientras que el icono del panel de Claude solo aparece allí cuando el panel está acoplado a la barra lateral izquierda.185 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 lista de sesiones de la Barra de actividades es separado del panel de Claude: la lista de sesiones siempre es visible en la Barra de actividades, mientras que el icono del panel de Claude solo aparece allí cuando el panel está acoplado a la barra lateral izquierda.

158</Tip>186</Tip>

159 187 

160### Ejecutar múltiples conversaciones188<h3 id="run-multiple-conversations">

189 Ejecutar múltiples conversaciones

190</h3>

161 191 

162Usa **Abrir en Nueva Pestaña** u **Abrir en Nueva Ventana** desde la Paleta de comandos para iniciar conversaciones adicionales. Cada conversación mantiene su propio historial y contexto, permitiéndote trabajar en diferentes tareas en paralelo.192Usa **Abrir en Nueva Pestaña** u **Abrir en Nueva Ventana** desde la Paleta de comandos para iniciar conversaciones adicionales. Cada conversación mantiene su propio historial y contexto, permitiéndote trabajar en diferentes tareas en paralelo.

163 193 

164Cuando usas pestañas, un pequeño punto de color en el icono spark indica el estado: azul significa que hay una solicitud de permiso pendiente, naranja significa que Claude terminó mientras la pestaña estaba oculta.194Cuando usas pestañas, un pequeño punto de color en el icono spark indica el estado: azul significa que hay una solicitud de permiso pendiente, naranja significa que Claude terminó mientras la pestaña estaba oculta.

165 195 

166### Cambiar al modo terminal196<h3 id="switch-to-terminal-mode">

197 Cambiar al modo terminal

198</h3>

167 199 

168De forma predeterminada, la extensión abre un panel de chat gráfico. Si prefieres la interfaz de estilo CLI, abre la [configuración Usar terminal](vscode://settings/claudeCode.useTerminal) y marca la casilla.200De forma predeterminada, la extensión abre un panel de chat gráfico. Si prefieres la interfaz de estilo CLI, abre la [configuración Usar terminal](vscode://settings/claudeCode.useTerminal) y marca la casilla.

169 201 

170También puedes abrir la configuración de VS Code (`Cmd+,` en Mac o `Ctrl+,` en Windows/Linux), ir a Extensiones → Claude Code y marcar **Usar terminal**.202También puedes abrir la configuración de VS Code (`Cmd+,` en Mac o `Ctrl+,` en Windows/Linux), ir a Extensiones → Claude Code y marcar **Usar terminal**.

171 203 

172## Administrar plugins204<h2 id="manage-plugins">

205 Administrar plugins

206</h2>

173 207 

174La extensión de VS Code incluye una interfaz gráfica para instalar y administrar [plugins](/es/plugins). Escribe `/plugins` en el cuadro de mensaje para abrir la interfaz **Administrar plugins**.208La extensión de VS Code incluye una interfaz gráfica para instalar y administrar [plugins](/es/plugins). Escribe `/plugins` en el cuadro de mensaje para abrir la interfaz **Administrar plugins**.

175 209 

176### Instalar plugins210<h3 id="install-plugins">

211 Instalar plugins

212</h3>

177 213 

178El diálogo de plugins muestra dos pestañas: **Plugins** y **Marketplaces**.214El diálogo de plugins muestra dos pestañas: **Plugins** y **Marketplaces**.

179 215 


190* **Instalar para este proyecto**: compartido con colaboradores del proyecto (alcance del proyecto)226* **Instalar para este proyecto**: compartido con colaboradores del proyecto (alcance del proyecto)

191* **Instalar localmente**: solo para ti, solo en este repositorio (alcance local)227* **Instalar localmente**: solo para ti, solo en este repositorio (alcance local)

192 228 

193### Administrar marketplaces229<h3 id="manage-marketplaces">

230 Administrar marketplaces

231</h3>

194 232 

195Cambia a la pestaña **Marketplaces** para agregar o eliminar fuentes de plugins:233Cambia a la pestaña **Marketplaces** para agregar o eliminar fuentes de plugins:

196 234 


206 244 

207Para más información sobre el sistema de plugins, consulta [Plugins](/es/plugins) y [Marketplaces de plugins](/es/plugin-marketplaces).245Para más información sobre el sistema de plugins, consulta [Plugins](/es/plugins) y [Marketplaces de plugins](/es/plugin-marketplaces).

208 246 

209## Automatizar tareas del navegador con Chrome247<h2 id="automate-browser-tasks-with-chrome">

248 Automatizar tareas del navegador con Chrome

249</h2>

210 250 

211Conecta Claude a tu navegador Chrome para probar aplicaciones web, depurar con registros de consola y automatizar flujos de trabajo del navegador sin salir de VS Code. Esto requiere la [extensión Claude in Chrome](https://chromewebstore.google.com/detail/claude/fcoeoabgfenejglbffodgkkbkcdhcgfn) versión 1.0.36 o superior.251Conecta Claude a tu navegador Chrome para probar aplicaciones web, depurar con registros de consola y automatizar flujos de trabajo del navegador sin salir de VS Code. Esto requiere la [extensión Claude in Chrome](https://chromewebstore.google.com/detail/claude/fcoeoabgfenejglbffodgkkbkcdhcgfn) versión 1.0.36 o superior.

212 252 


222 262 

223Para instrucciones de configuración, la lista completa de capacidades y solución de problemas, consulta [Usar Claude Code con Chrome](/es/chrome).263Para instrucciones de configuración, la lista completa de capacidades y solución de problemas, consulta [Usar Claude Code con Chrome](/es/chrome).

224 264 

225## Comandos y atajos de teclado de VS Code265<h2 id="vs-code-commands-and-shortcuts">

266 Comandos y atajos de teclado de VS Code

267</h2>

226 268 

227Abre la Paleta de comandos (`Cmd+Shift+P` en Mac o `Ctrl+Shift+P` en Windows/Linux) y escribe "Claude Code" para ver todos los comandos de VS Code disponibles para la extensión Claude Code.269Abre la Paleta de comandos (`Cmd+Shift+P` en Mac o `Ctrl+Shift+P` en Windows/Linux) y escribe "Claude Code" para ver todos los comandos de VS Code disponibles para la extensión Claude Code.

228 270 

229Algunos atajos de teclado dependen de qué panel esté "enfocado" (recibiendo entrada de teclado). Cuando tu cursor está en un archivo de código, el editor está enfocado. Cuando tu cursor está en el cuadro de mensaje de Claude, Claude está enfocado. Usa `Cmd+Esc` / `Ctrl+Esc` para alternar entre ellos.271Algunos atajos de teclado dependen de qué panel esté "enfocado" (recibiendo entrada de teclado). Cuando tu cursor está en un archivo de código, el editor está enfocado. Cuando tu cursor está en el cuadro de mensaje de Claude, Claude está enfocado. Usa `Cmd+Esc` / `Ctrl+Esc` para alternar entre ellos.

230 272 

231<Note>273<Note>

232 Estos son comandos de VS Code para controlar la extensión. No todos los comandos integrados de Claude Code están disponibles en la extensión. Consulta [Extensión de VS Code frente a CLI de Claude Code](#extensión-de-vs-code-frente-a-cli-de-claude-code) para obtener más detalles.274 Estos son comandos de VS Code para controlar la extensión. No todos los comandos integrados de Claude Code están disponibles en la extensión. Consulta [Extensión de VS Code frente a CLI de Claude Code](#vs-code-extension-vs-claude-code-cli) para obtener más detalles.

233</Note>275</Note>

234 276 

235| Comando | Atajo de teclado | Descripción |277| Comando | Atajo de teclado | Descripción |

236| -------------------------- | -------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |278| -------------------------- | -------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

237| Focus Input | `Cmd+Esc` (Mac) / `Ctrl+Esc` (Windows/Linux) | Alternar el enfoque entre el editor y Claude |279| Focus Input | `Cmd+Esc` (Mac) / `Ctrl+Esc` (Windows/Linux) | Alternar el enfoque entre el editor y Claude |

238| Open in Side Bar | - | Abrir Claude en la barra lateral izquierda |280| Open in Side Bar | - | Abrir Claude en la barra lateral izquierda |

239| Open in Terminal | - | Abrir Claude en modo terminal |281| Open in Terminal | - | Abrir Claude en modo terminal |

240| Open in New Tab | `Cmd+Shift+Esc` (Mac) / `Ctrl+Shift+Esc` (Windows/Linux) | Abrir una nueva conversación como una pestaña del editor |282| Open in New Tab | `Cmd+Shift+Esc` (Mac) / `Ctrl+Shift+Esc` (Windows/Linux) | Abrir una nueva conversación como una pestaña del editor |

241| Open in New Window | - | Abrir una nueva conversación en una ventana separada |283| Open in New Window | - | Abrir una nueva conversación en una ventana separada |

242| New Conversation | `Cmd+N` (Mac) / `Ctrl+N` (Windows/Linux) | Iniciar una nueva conversación. Requiere que Claude esté enfocado y `enableNewConversationShortcut` establecido en `true` |284| New Conversation | `Cmd+N` (Mac) / `Ctrl+N` (Windows/Linux) | Iniciar una nueva conversación. Requiere que Claude esté enfocado y `enableNewConversationShortcut` establecido en `true` |

243| Reopen Closed Session | `Cmd+Shift+T` (Mac) / `Ctrl+Shift+T` (Windows/Linux) | Reabre la pestaña de sesión de Claude cerrada más recientemente. Se remite al reapertura normal de editor cerrado de VS Code cuando la última pestaña cerrada no era una sesión de Claude. Desactiva con `enableReopenClosedSessionShortcut` |285| Reopen Closed Session | `Cmd+Shift+T` (Mac) / `Ctrl+Shift+T` (Windows/Linux) | Reabre 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. Desactiva con `enableReopenClosedSessionShortcut` |

244| Insert @-Mention Reference | `Option+K` (Mac) / `Alt+K` (Windows/Linux) | Insertar una referencia al archivo actual y selección (requiere que el editor esté enfocado) |286| Insert @-Mention Reference | `Option+K` (Mac) / `Alt+K` (Windows/Linux) | Insertar una referencia al archivo actual y selección (requiere que el editor esté enfocado) |

245| Show Logs | - | Ver registros de depuración de la extensión |287| Show Logs | - | Ver registros de depuración de la extensión |

246| Logout | - | Cerrar sesión de tu cuenta de Anthropic |288| Logout | - | Cerrar sesión de tu cuenta de Anthropic |

247 289 

248### Lanzar una pestaña de VS Code desde otras herramientas290<h3 id="launch-a-vs-code-tab-from-other-tools">

291 Lanzar una pestaña de VS Code desde otras herramientas

292</h3>

249 293 

250La extensión registra un controlador URI en `vscode://anthropic.claude-code/open`. Úsalo para abrir una nueva pestaña de Claude Code desde tu propia herramienta: un alias de shell, un marcador de navegador, o cualquier script que pueda abrir una URL. Si VS Code no está ejecutándose, abrir la URL lo lanza primero. Si VS Code ya está ejecutándose, la URL se abre en la ventana que está actualmente enfocada.294La extensión registra un controlador URI en `vscode://anthropic.claude-code/open`. Úsalo para abrir una nueva pestaña de Claude Code desde tu propia herramienta: un alias de shell, un marcador de navegador, o cualquier script que pueda abrir una URL. Si VS Code no está ejecutándose, abrir la URL lo lanza primero. Si VS Code ya está ejecutándose, la URL se abre en la ventana que está actualmente enfocada.

251 295 


294 338 

295Para lanzar una sesión de terminal en lugar de una pestaña de VS Code, usa el controlador `claude-cli://` de la CLI. Consulta [Lanzar sesiones desde enlaces](/es/deep-links).339Para lanzar una sesión de terminal en lugar de una pestaña de VS Code, usa el controlador `claude-cli://` de la CLI. Consulta [Lanzar sesiones desde enlaces](/es/deep-links).

296 340 

297## Configurar ajustes341<h2 id="configure-settings">

342 Configurar ajustes

343</h2>

298 344 

299La extensión tiene dos tipos de configuración:345La extensión tiene dos tipos de configuración:

300 346 


305 Agrega `"$schema": "https://json.schemastore.org/claude-code-settings.json"` a tu `settings.json` para obtener autocompletado y validación en línea para todos los ajustes disponibles directamente en VS Code.351 Agrega `"$schema": "https://json.schemastore.org/claude-code-settings.json"` a tu `settings.json` para obtener autocompletado y validación en línea para todos los ajustes disponibles directamente en VS Code.

306</Tip>352</Tip>

307 353 

308### Configuración de extensión354<h3 id="extension-settings">

355 Configuración de extensión

356</h3>

309 357 

310| Configuración | Predeterminado | Descripción |358| Configuración | Predeterminado | Descripción |

311| ----------------------------------- | -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |359| ----------------------------------- | -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |


324| `allowDangerouslySkipPermissions` | `false` | Agrega Bypass permissions al selector de modo. Usa solo en sandboxes sin acceso a Internet. |372| `allowDangerouslySkipPermissions` | `false` | Agrega Bypass permissions al selector de modo. Usa solo en sandboxes sin acceso a Internet. |

325| `claudeProcessWrapper` | - | Ejecutable utilizado para lanzar el proceso de Claude. La ruta del binario incluido se pasa como argumento cuando está presente. Establece esto en un binario `claude` instalado por separado si la compilación de la extensión no incluye uno para tu plataforma. |373| `claudeProcessWrapper` | - | Ejecutable utilizado para lanzar el proceso de Claude. La ruta del binario incluido se pasa como argumento cuando está presente. Establece esto en un binario `claude` instalado por separado si la compilación de la extensión no incluye uno para tu plataforma. |

326 374 

327## Extensión de VS Code frente a CLI de Claude Code375<h2 id="vs-code-extension-vs-claude-code-cli">

376 Extensión de VS Code frente a CLI de Claude Code

377</h2>

328 378 

329Claude Code está disponible tanto como una extensión de VS Code (panel gráfico) como una CLI (interfaz de línea de comandos en la terminal). Algunas características solo están disponibles en la CLI. Si necesitas una característica solo de CLI, ejecuta `claude` en la terminal integrada de VS Code.379Claude Code está disponible tanto como una extensión de VS Code (panel gráfico) como una CLI (interfaz de línea de comandos en la terminal). Algunas características solo están disponibles en la CLI. Si necesitas una característica solo de CLI, ejecuta `claude` en la terminal integrada de VS Code. Esto requiere la [instalación de CLI independiente](/es/setup): la extensión no agrega `claude` a tu PATH. Consulta [Ejecutar CLI en VS Code](#run-cli-in-vs-code).

330 380 

331| Característica | CLI | Extensión de VS Code |381| Característica | CLI | Extensión de VS Code |

332| --------------------------- | --------------------- | ------------------------------------------------------------------------------------------------------------ |382| --------------------------- | --------------------- | ------------------------------------------------------------------------------------------------------------ |


336| Atajo bash `!` | Sí | No |386| Atajo bash `!` | Sí | No |

337| Autocompletado de pestañas | Sí | No |387| Autocompletado de pestañas | Sí | No |

338 388 

339### Retroceder con checkpoints389<h3 id="rewind-with-checkpoints">

390 Retroceder con checkpoints

391</h3>

340 392 

341La extensión de VS Code admite checkpoints, que rastrean las ediciones de archivos de Claude y te permiten retroceder a un estado anterior. Pasa el cursor sobre cualquier mensaje para revelar el botón de retroceso, luego elige entre tres opciones:393La extensión de VS Code admite checkpoints, que rastrean las ediciones de archivos de Claude y te permiten retroceder a un estado anterior. Pasa el cursor sobre cualquier mensaje para revelar el botón de retroceso, luego elige entre tres opciones:

342 394 


346 398 

347Para obtener detalles completos sobre cómo funcionan los checkpoints y sus limitaciones, consulta [Checkpointing](/es/checkpointing).399Para obtener detalles completos sobre cómo funcionan los checkpoints y sus limitaciones, consulta [Checkpointing](/es/checkpointing).

348 400 

349### Ejecutar CLI en VS Code401<h3 id="run-cli-in-vs-code">

402 Ejecutar CLI en VS Code

403</h3>

350 404 

351Para usar la CLI mientras permaneces en VS Code, abre la terminal integrada (`` Ctrl+` `` en Windows/Linux o `` Cmd+` `` en Mac) y ejecuta `claude`. La CLI se integra automáticamente con tu IDE para características como visualización de diffs y uso compartido de diagnósticos.405Para usar la CLI mientras permaneces en VS Code, abre la terminal integrada (`` Ctrl+` `` en Windows/Linux o `` Cmd+` `` en Mac) y ejecuta `claude`. La CLI se integra automáticamente con tu IDE para características como visualización de diffs y uso compartido de diagnósticos.

352 406 

407Instalar la extensión no coloca `claude` en tu PATH de shell. La extensión incluye una copia privada de la CLI para su panel de chat, pero escribir `claude` en una terminal requiere la [instalación de CLI independiente](/es/setup). Ejecuta la instalación una vez y los comandos en esta página, incluyendo `claude mcp add` y `claude --resume`, funcionan en cualquier terminal. Si `claude` aún no se encuentra después de instalar, [verifica tu PATH](/es/troubleshoot-install#verify-your-path).

408 

353Si usas una terminal externa, ejecuta `/ide` dentro de Claude Code para conectarlo a VS Code.409Si usas una terminal externa, ejecuta `/ide` dentro de Claude Code para conectarlo a VS Code.

354 410 

355### Cambiar entre extensión y CLI411<h3 id="switch-between-extension-and-cli">

412 Cambiar entre extensión y CLI

413</h3>

356 414 

357La extensión y la CLI comparten el mismo historial de conversaciones. Para continuar una conversación de extensión en la CLI, ejecuta `claude --resume` en la terminal. Esto abre un selector interactivo donde puedes buscar y seleccionar tu conversación.415La extensión y la CLI comparten el mismo historial de conversaciones. Para continuar una conversación de extensión en la CLI, ejecuta `claude --resume` en la terminal. Esto abre un selector interactivo donde puedes buscar y seleccionar tu conversación.

358 416 

359### Incluir salida de terminal en mensajes417<h3 id="include-terminal-output-in-prompts">

418 Incluir salida de terminal en mensajes

419</h3>

360 420 

361Haz referencia a la salida de terminal en tus mensajes usando `@terminal:name` donde `name` es el título de la terminal. Esto permite que Claude vea la salida del comando, mensajes de error o registros sin copiar y pegar.421Haz referencia a la salida de terminal en tus mensajes usando `@terminal:name` donde `name` es el título de la terminal. Esto permite que Claude vea la salida del comando, mensajes de error o registros sin copiar y pegar.

362 422 

363### Monitorear procesos en segundo plano423<h3 id="monitor-background-processes">

424 Monitorear procesos en segundo plano

425</h3>

364 426 

365Cuando Claude ejecuta comandos de larga duración, la extensión muestra el progreso en la barra de estado. Sin embargo, la visibilidad de tareas en segundo plano es limitada en comparación con la CLI. Para mejor visibilidad, haz que Claude genere el comando para que puedas ejecutarlo en la terminal integrada de VS Code.427Cuando Claude ejecuta comandos de larga duración, la extensión muestra el progreso en la barra de estado. Sin embargo, la visibilidad de tareas en segundo plano es limitada en comparación con la CLI. Para mejor visibilidad, haz que Claude genere el comando para que puedas ejecutarlo en la terminal integrada de VS Code.

366 428 

367### Conectar a herramientas externas con MCP429<h3 id="connect-to-external-tools-with-mcp">

430 Conectar a herramientas externas con MCP

431</h3>

368 432 

369Los servidores MCP (Model Context Protocol) dan a Claude acceso a herramientas externas, bases de datos y APIs.433Los servidores MCP (Model Context Protocol) dan a Claude acceso a herramientas externas, bases de datos y APIs.

370 434 


379 443 

380Para administrar servidores MCP sin salir de VS Code, escribe `/mcp` en el panel de chat. El diálogo de administración de MCP te permite habilitar o deshabilitar servidores, reconectarse a un servidor y administrar la autenticación OAuth. Consulta la [documentación de MCP](/es/mcp) para servidores disponibles.444Para administrar servidores MCP sin salir de VS Code, escribe `/mcp` en el panel de chat. El diálogo de administración de MCP te permite habilitar o deshabilitar servidores, reconectarse a un servidor y administrar la autenticación OAuth. Consulta la [documentación de MCP](/es/mcp) para servidores disponibles.

381 445 

382## Trabajar con git446<h2 id="work-with-git">

447 Trabajar con git

448</h2>

383 449 

384Claude Code se integra con git para ayudarte con flujos de trabajo de control de versiones directamente en VS Code. Pide a Claude que confirme cambios, cree solicitudes de extracción o trabaje en diferentes ramas.450Claude Code se integra con git para ayudarte con flujos de trabajo de control de versiones directamente en VS Code. Pide a Claude que confirme cambios, cree solicitudes de extracción o trabaje en diferentes ramas.

385 451 

386### Crear confirmaciones y solicitudes de extracción452<h3 id="create-commits-and-pull-requests">

453 Crear confirmaciones y solicitudes de extracción

454</h3>

387 455 

388Claude puede preparar cambios, escribir mensajes de confirmación y crear solicitudes de extracción basadas en tu trabajo:456Claude puede preparar cambios, escribir mensajes de confirmación y crear solicitudes de extracción basadas en tu trabajo:

389 457 


395 463 

396Al crear solicitudes de extracción, Claude genera descripciones basadas en los cambios de código reales y puede agregar contexto sobre pruebas o decisiones de implementación.464Al crear solicitudes de extracción, Claude genera descripciones basadas en los cambios de código reales y puede agregar contexto sobre pruebas o decisiones de implementación.

397 465 

398### Usar git worktrees para tareas paralelas466<h3 id="use-git-worktrees-for-parallel-tasks">

467 Usar git worktrees para tareas paralelas

468</h3>

399 469 

400Usa la bandera `--worktree` (`-w`) para iniciar Claude en un worktree aislado con sus propios archivos y rama:470Usa la bandera `--worktree` (`-w`) para iniciar Claude en un worktree aislado con sus propios archivos y rama:

401 471 


405 475 

406Cada worktree mantiene un estado de archivo independiente mientras comparte el historial de git. Esto evita que las instancias de Claude interfieran entre sí cuando trabajan en diferentes tareas. Para más detalles, consulta [Ejecutar sesiones paralelas con Git worktrees](/es/worktrees).476Cada worktree mantiene un estado de archivo independiente mientras comparte el historial de git. Esto evita que las instancias de Claude interfieran entre sí cuando trabajan en diferentes tareas. Para más detalles, consulta [Ejecutar sesiones paralelas con Git worktrees](/es/worktrees).

407 477 

408## Usar proveedores de terceros478<h2 id="use-third-party-providers">

479 Usar proveedores de terceros

480</h2>

409 481 

410De forma predeterminada, Claude Code se conecta directamente a la API de Anthropic. Si tu organización utiliza Amazon Bedrock, Google Vertex AI o Microsoft Foundry para acceder a Claude, configura la extensión para usar tu proveedor en su lugar:482De forma predeterminada, Claude Code se conecta directamente a la API de Anthropic. Si su organización utiliza Amazon Bedrock, Google Vertex AI o Microsoft Foundry para acceder a Claude, configure la extensión para usar su proveedor en su lugar:

411 483 

412<Steps>484<Steps>

413 <Step title="Deshabilitar mensaje de inicio de sesión">485 <Step title="Deshabilitar mensaje de inicio de sesión">

414 Abre la [configuración Deshabilitar mensaje de inicio de sesión](vscode://settings/claudeCode.disableLoginPrompt) y marca la casilla.486 Abra la [configuración Deshabilitar mensaje de inicio de sesión](vscode://settings/claudeCode.disableLoginPrompt) y marque la casilla.

415 487 

416 También puedes abrir la configuración de VS Code (`Cmd+,` en Mac o `Ctrl+,` en Windows/Linux), buscar "Claude Code login" y marcar **Deshabilitar mensaje de inicio de sesión**.488 También puede abrir la configuración de VS Code (`Cmd+,` en Mac o `Ctrl+,` en Windows/Linux), buscar "Claude Code login" y marcar **Deshabilitar mensaje de inicio de sesión**.

417 </Step>489 </Step>

418 490 

419 <Step title="Configurar tu proveedor">491 <Step title="Configurar su proveedor">

420 Sigue la guía de configuración para tu proveedor:492 Siga la guía de configuración para su proveedor:

421 493 

422 * [Claude Code en Amazon Bedrock](/es/amazon-bedrock)494 * [Claude Code en Amazon Bedrock](/es/amazon-bedrock)

423 * [Claude Code en Google Vertex AI](/es/google-vertex-ai)495 * [Claude Code en Google Vertex AI](/es/google-vertex-ai)

424 * [Claude Code en Microsoft Foundry](/es/microsoft-foundry)496 * [Claude Code en Microsoft Foundry](/es/microsoft-foundry)

425 497 

426 Estas guías cubren la configuración de tu proveedor en `~/.claude/settings.json`, lo que garantiza que tu configuración se comparta entre la extensión de VS Code y la CLI.498 Estas guías cubren la configuración de su proveedor en `~/.claude/settings.json`, lo que garantiza que su configuración se comparta entre la extensión de VS Code y la CLI.

427 </Step>499 </Step>

428</Steps>500</Steps>

429 501 

430## Seguridad y privacidad502<h2 id="security-and-privacy">

503 Seguridad y privacidad

504</h2>

431 505 

432Tu código permanece privado. Claude Code procesa tu código para proporcionar asistencia pero no lo utiliza para entrenar modelos. Para obtener detalles sobre el manejo de datos y cómo optar por no participar en el registro, consulta [Datos y privacidad](/es/data-usage).506Tu código permanece privado. Claude Code procesa tu código para proporcionar asistencia pero no lo utiliza para entrenar modelos. Para obtener detalles sobre el manejo de datos y cómo optar por no participar en el registro, consulta [Datos y privacidad](/es/data-usage).

433 507 


437* Usa el modo de aprobación manual en lugar de aceptación automática para ediciones511* Usa el modo de aprobación manual en lugar de aceptación automática para ediciones

438* Revisa cuidadosamente los cambios antes de aceptarlos512* Revisa cuidadosamente los cambios antes de aceptarlos

439 513 

440### El servidor MCP IDE integrado514<h3 id="the-built-in-ide-mcp-server">

515 El servidor MCP IDE integrado

516</h3>

441 517 

442Cuando la extensión está activa, ejecuta un servidor MCP local al que la CLI se conecta automáticamente. Así es como la CLI abre diffs en el visor de diffs nativo de VS Code, lee tu selección actual para menciones `@` y, cuando estás trabajando en un notebook de Jupyter, le pide a VS Code que ejecute celdas.518Cuando la extensión está activa, ejecuta un servidor MCP local al que la CLI se conecta automáticamente. Así es como la CLI abre diffs en el visor de diffs nativo de VS Code, lee tu selección actual para menciones `@` y, cuando estás trabajando en un notebook de Jupyter, le pide a VS Code que ejecute celdas.

443 519 


462 538 

463<a id="troubleshooting" />539<a id="troubleshooting" />

464 540 

465## Solucionar problemas comunes541<h2 id="fix-common-issues">

542 Solucionar problemas comunes

543</h2>

466 544 

467### La extensión no se instala545<h3 id="extension-won’t-install">

546 La extensión no se instala

547</h3>

468 548 

469* Asegúrate de tener una versión compatible de VS Code (1.98.0 o posterior)549* Asegúrate de tener una versión compatible de VS Code (1.98.0 o posterior)

470* Verifica que VS Code tenga permiso para instalar extensiones550* Verifica que VS Code tenga permiso para instalar extensiones

471* Intenta instalar directamente desde [VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=anthropic.claude-code)551* Intenta instalar directamente desde [VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=anthropic.claude-code)

472 552 

473### El icono Spark no es visible553<h3 id="spark-icon-not-visible">

554 El icono Spark no es visible

555</h3>

474 556 

475El icono Spark aparece en la **Barra de herramientas del editor** (esquina superior derecha del editor) cuando tienes un archivo abierto. Si no lo ves:557El icono Spark aparece en la **Barra de herramientas del editor** (esquina superior derecha del editor) cuando tienes un archivo abierto. Si no lo ves:

476 558 


482 564 

483Alternativamente, haz clic en "✱ Claude Code" en la **Barra de estado** (esquina inferior derecha). Esto funciona incluso sin un archivo abierto. También puedes usar la **Paleta de comandos** (`Cmd+Shift+P` / `Ctrl+Shift+P`) y escribir "Claude Code".565Alternativamente, haz clic en "✱ Claude Code" en la **Barra de estado** (esquina inferior derecha). Esto funciona incluso sin un archivo abierto. También puedes usar la **Paleta de comandos** (`Cmd+Shift+P` / `Ctrl+Shift+P`) y escribir "Claude Code".

484 566 

485### Cmd+Esc no hace nada en macOS567<h3 id="cmd-esc-does-nothing-on-macos">

568 Cmd+Esc no hace nada en macOS

569</h3>

486 570 

487En macOS Tahoe y posterior, el atajo del sistema Game Overlay está vinculado a `Cmd+Esc` de forma predeterminada e intercepta la pulsación de tecla antes de que llegue a VS Code. Para liberar el atajo:571En macOS Tahoe y posterior, el atajo del sistema Game Overlay está vinculado a `Cmd+Esc` de forma predeterminada e intercepta la pulsación de tecla antes de que llegue a VS Code. Para liberar el atajo:

488 572 


492 576 

493Alternativamente, vuelve a vincular la extensión a una tecla diferente: abre el editor de [Atajos de teclado](https://code.visualstudio.com/docs/configure/keybindings) de VS Code (`Cmd+K Cmd+S`), busca `Claude Code: Focus input`, y asigna un nuevo atajo.577Alternativamente, vuelve a vincular la extensión a una tecla diferente: abre el editor de [Atajos de teclado](https://code.visualstudio.com/docs/configure/keybindings) de VS Code (`Cmd+K Cmd+S`), busca `Claude Code: Focus input`, y asigna un nuevo atajo.

494 578 

495### Claude Code nunca responde579<h3 id="claude-code-never-responds">

580 Claude Code nunca responde

581</h3>

496 582 

497Si Claude Code no responde a tus mensajes:583Si Claude Code no responde a tus mensajes:

498 584 


502 588 

503Si los problemas persisten, [presenta un problema en GitHub](https://github.com/anthropics/claude-code/issues) con detalles sobre el error.589Si los problemas persisten, [presenta un problema en GitHub](https://github.com/anthropics/claude-code/issues) con detalles sobre el error.

504 590 

505## Desinstalar la extensión591<h2 id="uninstall-the-extension">

592 Desinstalar la extensión

593</h2>

506 594 

507Para desinstalar la extensión Claude Code:595Para desinstalar la extensión Claude Code:

508 596 


5102. Busca "Claude Code"5982. Busca "Claude Code"

5113. Haz clic en **Desinstalar**5993. Haz clic en **Desinstalar**

512 600 

513Para también eliminar datos de extensión y restablecer toda la configuración:601Para también eliminar datos de extensión y restablecer toda la configuración, elimina el directorio de almacenamiento de la extensión para tu plataforma.

602 

603En macOS:

514 604 

515```bash theme={null}605```bash theme={null}

516rm -rf ~/.vscode/globalStorage/anthropic.claude-code606rm -rf ~/Library/"Application Support"/Code/User/globalStorage/anthropic.claude-code

607```

608 

609En Linux:

610 

611```bash theme={null}

612rm -rf ~/.config/Code/User/globalStorage/anthropic.claude-code

613```

614 

615En Windows, en PowerShell:

616 

617```powershell theme={null}

618Remove-Item -Recurse -Force "$env:APPDATA\Code\User\globalStorage\anthropic.claude-code"

517```619```

518 620 

519Para obtener ayuda adicional, consulta la [guía de solución de problemas](/es/troubleshooting).621Para obtener ayuda adicional, consulta la [guía de solución de problemas](/es/troubleshooting).

520 622 

521## Próximos pasos623<h2 id="next-steps">

624 Próximos pasos

625</h2>

522 626 

523Ahora que tienes Claude Code configurado en VS Code:627Ahora que tienes Claude Code configurado en VS Code:

524 628 

Details

49| **Usa tu configuración local** | No, solo repositorio | Sí | Sí | Sí para local, no para nube |49| **Usa tu configuración local** | No, solo repositorio | Sí | Sí | Sí para local, no para nube |

50| **Requiere GitHub** | Sí, o [agrupa un repositorio local](/es/claude-code-on-the-web#send-local-repositories-without-github) mediante `--remote` | No | No | Solo para sesiones en la nube |50| **Requiere GitHub** | Sí, o [agrupa un repositorio local](/es/claude-code-on-the-web#send-local-repositories-without-github) mediante `--remote` | No | No | Solo para sesiones en la nube |

51| **Sigue ejecutándose si te desconectas** | Sí | Mientras la terminal permanezca abierta | No | Depende del tipo de sesión |51| **Sigue ejecutándose si te desconectas** | Sí | Mientras la terminal permanezca abierta | No | Depende del tipo de sesión |

52| **[Modos de permiso](/es/permission-modes)** | Aceptar ediciones automáticamente, Plan | Preguntar, Aceptar ediciones automáticamente, Plan | Todos los modos | Depende del tipo de sesión |52| **[Modos de permiso](/es/permission-modes)** | Aceptar ediciones, Plan, Auto | Preguntar, Aceptar ediciones automáticamente, Plan | Todos los modos | Depende del tipo de sesión |

53| **Acceso a la red** | Configurable por entorno | Red de tu máquina | Red de tu máquina | Depende del tipo de sesión |53| **Acceso a la red** | Configurable por entorno | Red de tu máquina | Red de tu máquina | Depende del tipo de sesión |

54 54 

55Consulta los documentos de [inicio rápido de terminal](/es/quickstart), [aplicación Desktop](/es/desktop) o [Remote Control](/es/remote-control) para configurarlos.55Consulta los documentos de [inicio rápido de terminal](/es/quickstart), [aplicación Desktop](/es/desktop) o [Remote Control](/es/remote-control) para configurarlos.

whats-new.md +16 −0

Details

8 8 

9El resumen semanal para desarrolladores destaca las características más propensas a cambiar la forma en que trabaja. Cada entrada incluye código ejecutable, una breve demostración y un enlace a la documentación completa. Para cada corrección de errores y mejora menor, consulte el [registro de cambios](/es/changelog).9El resumen semanal para desarrolladores destaca las características más propensas a cambiar la forma en que trabaja. Cada entrada incluye código ejecutable, una breve demostración y un enlace a la documentación completa. Para cada corrección de errores y mejora menor, consulte el [registro de cambios](/es/changelog).

10 10 

11<Update label="Week 24" description="June 8–12, 2026" tags={["v2.1.166–v2.1.176"]}>

12 **`/cd`**: mueva la sesión actual a un nuevo directorio de trabajo a mitad de la conversación sin reconstruir la caché de solicitud.

13 

14 También esta semana: **los sub-agentes pueden generar sus propios sub-agentes** (las cadenas de fondo están limitadas a cinco niveles de profundidad); **`--safe-mode`** inicia Claude Code con todas las personalizaciones deshabilitadas para solucionar problemas; y **`fallbackModel`** configura hasta tres modelos de respaldo que se intentan en orden.

15 

16 [Lea el resumen de la Week 24 →](/es/whats-new/2026-w24)

17</Update>

18 

19<Update label="Week 23" description="June 1–5, 2026" tags={["v2.1.158–v2.1.165"]}>

20 **Modo automático en Bedrock, Vertex y Foundry**: el modo automático ahora está disponible en proveedores de terceros para Opus 4.7 y Opus 4.8, reemplazando solicitudes de permiso con comprobaciones de seguridad en segundo plano.

21 

22 También esta semana: **ediciones automáticas más seguras** solicitan confirmación antes de escribir archivos que pueden ejecutar código en modo `acceptEdits`; **`/plugin list`** imprime sus plugins instalados en línea; y **requisitos de versión** permiten que las implementaciones administradas requieran un rango de versión de Claude Code aprobado.

23 

24 [Lea el resumen de la Week 23 →](/es/whats-new/2026-w23)

25</Update>

26 

11<Update label="Week 22" description="May 25–29, 2026" tags={["v2.1.150–v2.1.157"]}>27<Update label="Week 22" description="May 25–29, 2026" tags={["v2.1.150–v2.1.157"]}>

12 **Claude Opus 4.8**: el nuevo modelo predeterminado para Max, Team Premium, Enterprise de pago por uso, y cuentas de API de Anthropic, con alto esfuerzo de forma predeterminada y `/effort xhigh` para las tareas más difíciles.28 **Claude Opus 4.8**: el nuevo modelo predeterminado para Max, Team Premium, Enterprise de pago por uso, y cuentas de API de Anthropic, con alto esfuerzo de forma predeterminada y `/effort xhigh` para las tareas más difíciles.

13 29 

whats-new/2026-w23.md +100 −0 created

Details

1> ## Documentation Index

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

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

4 

5# Semana 23 · 1–5 de junio de 2026

6 

7> Ejecutar modo automático en Bedrock, Vertex y Foundry, solicitar confirmación antes de escribir archivos que pueden ejecutar código en modo acceptEdits, listar plugins instalados con /plugin list, y requerir un rango de versión aprobado para implementaciones administradas.

8 

9<div className="digest-meta">

10 <span>Releases <a href="/docs/es/changelog#2-1-158">v2.1.158 → v2.1.165</a></span>

11 <span>4 características · 1–5 de junio</span>

12</div>

13 

14<div className="digest-feature">

15 <div className="digest-feature-header">

16 <span className="digest-feature-title">Modo automático en Bedrock, Vertex y Foundry</span>

17 <span className="digest-feature-pill">v2.1.158</span>

18 </div>

19 

20 <p className="digest-feature-lede">El modo automático ahora está disponible en Bedrock, Vertex y Foundry para Opus 4.7 y Opus 4.8, reemplazando los mensajes de permiso con verificaciones de seguridad en segundo plano en proveedores de terceros. Opte por participar configurando <code>CLAUDE\_CODE\_ENABLE\_AUTO\_MODE=1</code>.</p>

21 

22 <p className="digest-feature-try">Opte por participar en un proveedor de terceros, luego cambie al modo automático con Shift+Tab:</p>

23 

24 ```bash terminal theme={null}

25 export CLAUDE_CODE_ENABLE_AUTO_MODE=1

26 ```

27 

28 <a className="digest-feature-link" href="/docs/es/permission-modes#enable-auto-mode-on-bedrock-vertex-ai-or-foundry">Habilitar modo automático en proveedores de terceros</a>

29</div>

30 

31<div className="digest-feature">

32 <div className="digest-feature-header">

33 <span className="digest-feature-title">Ediciones automáticas más seguras</span>

34 <span className="digest-feature-pill">v2.1.160</span>

35 </div>

36 

37 <p className="digest-feature-lede">Claude Code ahora solicita confirmación antes de escribir archivos que pueden ejecutar código, incluso en modo <code>acceptEdits</code>. El conjunto protegido cubre archivos de inicio de shell como <code>.zshenv</code> y <code>.bash\_login</code>, configuración de git bajo <code>\~/.config/git/</code>, y configuraciones de herramientas de compilación como <code>.npmrc</code>, <code>.bazelrc</code> y <code>.pre-commit-config.yaml</code>. Estas escrituras nunca se aprueban automáticamente en ningún modo excepto <code>bypassPermissions</code>.</p>

38 

39 <p className="digest-feature-try">Trabaje en modo acceptEdits; Claude ahora se detiene antes de escribir estos archivos:</p>

40 

41 ```bash terminal theme={null}

42 claude --permission-mode acceptEdits

43 ```

44 

45 <a className="digest-feature-link" href="/docs/es/permission-modes#protected-paths">Rutas protegidas</a>

46</div>

47 

48<div className="digest-feature">

49 <div className="digest-feature-header">

50 <span className="digest-feature-title">Listar plugins instalados con /plugin list</span>

51 <span className="digest-feature-pill">v2.1.163</span>

52 </div>

53 

54 <p className="digest-feature-lede">El nuevo comando <code>/plugin list</code> imprime sus plugins instalados en línea, sin abrir el menú <code>/plugin</code>, y también está disponible como <code>claude plugin list</code> desde el shell. En la forma interactiva, agregue `--enabled` o `--disabled` para mostrar solo los plugins en ese estado.</p>

55 

56 <p className="digest-feature-try">Liste los plugins que están actualmente activados:</p>

57 

58 ```text Claude Code theme={null}

59 > /plugin list --enabled

60 ```

61 

62 <a className="digest-feature-link" href="/docs/es/plugins-reference#plugin-list">Comandos de plugins</a>

63</div>

64 

65<div className="digest-feature">

66 <div className="digest-feature-header">

67 <span className="digest-feature-title">Requisitos de versión para implementaciones administradas</span>

68 <span className="digest-feature-pill">v2.1.163</span>

69 </div>

70 

71 <p className="digest-feature-lede">Dos configuraciones administradas, <code>requiredMinimumVersion</code> y <code>requiredMaximumVersion</code>, permiten que su organización requiera un rango de versión de Claude Code aprobado. Un cliente fuera del rango se cierra al inicio e indica al usuario que actualice a través del método de su organización. <code>claude update</code>, <code>claude install</code> y <code>claude doctor</code> continúan funcionando para que los usuarios puedan recuperarse.</p>

72 

73 <p className="digest-feature-try">Agregue un piso a su configuración administrada para que los clientes antiguos se nieguen a iniciarse:</p>

74 

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

76 "requiredMinimumVersion": "2.1.163"

77 ```

78 

79 <a className="digest-feature-link" href="/docs/es/admin-setup#decide-what-to-enforce">Decidir qué aplicar</a>

80</div>

81 

82<div className="digest-wins">

83 <p className="digest-wins-title">Otros logros</p>

84 

85 <div className="digest-wins-grid">

86 <div>La palabra clave de activación para <a href="/docs/es/workflows">flujos de trabajo dinámicos</a> cambió de <code>workflow</code> a <code>ultracode</code>; pedir un flujo de trabajo con sus propias palabras sigue funcionando, y la palabra clave se resalta en violeta en el mensaje</div>

87 <div>Los hooks <a href="/docs/es/hooks">Stop y SubagentStop</a> pueden devolver <code>hookSpecificOutput.additionalContext</code> para dar retroalimentación a Claude y mantener el turno en lugar de ser tratado como un error</div>

88 <div><code>claude mcp</code> list, get y add ya no imprimen secretos: las referencias de variables de entorno no se expanden, y los encabezados de credenciales y los secretos de URL se redactan</div>

89 <div>Un comando Bash fallido en un lote de herramientas paralelas ya no cancela los otros; cada herramienta devuelve su propio resultado de forma independiente</div>

90 <div>Editar un archivo ya no necesita un Read separado cuando lo vio con un <code>grep</code>, <code>egrep</code> o <code>fgrep</code> de un solo archivo</div>

91 <div>Hacer clic en un comando en el menú de autocompletado ahora lo rellena en su mensaje en lugar de ejecutarlo inmediatamente; presione Enter para ejecutar</div>

92 <div>Listar <code>Grep</code> o <code>Glob</code> en `--tools` ahora proporciona las herramientas de búsqueda dedicadas en compilaciones nativas con búsqueda integrada, en lugar de ignorar silenciosamente esos nombres</div>

93 <div><code>/effort</code> ahora confirma cuando su nivel elegido se mantendrá como predeterminado para nuevas sesiones</div>

94 <div>Los valores de <code>OTEL\_RESOURCE\_ATTRIBUTES</code> ahora se adjuntan como etiquetas en puntos de datos de métricas, para que pueda dividir las métricas de uso por dimensiones personalizadas como equipo o repositorio</div>

95 <div>Windsurf se renombra a Devin Desktop en <code>/ide</code>, <code>/terminal-setup</code> y <code>/scroll-speed</code>, siguiendo la redenominación del editor</div>

96 <div><code>/btw</code> gana un atajo <code>c to copy</code> que copia la respuesta de markdown sin procesar al portapapeles</div>

97 </div>

98</div>

99 

100[Registro de cambios completo para v2.1.158–v2.1.165 →](/es/changelog#2-1-158)

whats-new/2026-w24.md +84 −0 created

Details

1> ## Documentation Index

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

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

4 

5# Semana 24 · 8–12 de junio de 2026

6 

7> Mueva una sesión a un nuevo directorio con /cd, permita que los sub-agentes generen sus propios sub-agentes, y solucione problemas de una configuración rota con modo seguro.

8 

9<div className="digest-meta">

10 <span>Versiones <a href="/docs/es/changelog#2-1-166">v2.1.166 → v2.1.176</a></span>

11 <span>3 características · 8–12 de junio</span>

12</div>

13 

14<div className="digest-feature">

15 <div className="digest-feature-header">

16 <span className="digest-feature-title">Mueva una sesión con /cd</span>

17 <span className="digest-feature-pill">v2.1.169</span>

18 </div>

19 

20 <p className="digest-feature-lede">El nuevo comando <code>/cd</code> mueve la sesión actual a un directorio de trabajo diferente sin reconstruir la caché de solicitud: el <code>CLAUDE.md</code> del nuevo directorio se añade como un mensaje en lugar de reemplazar el mensaje del sistema. La sesión se traslada al almacenamiento del proyecto del nuevo directorio, por lo que `--resume` y `--continue` lo encuentran allí. Claude le pide que confíe en el directorio si no ha trabajado en él antes.</p>

21 

22 <p className="digest-feature-try">Mueva la sesión a otro proyecto sin reiniciar:</p>

23 

24 ```text Claude Code theme={null}

25 > /cd ../other-project

26 ```

27 

28 <a className="digest-feature-link" href="/docs/es/commands#all-commands">Referencia de comandos</a>

29</div>

30 

31<div className="digest-feature">

32 <div className="digest-feature-header">

33 <span className="digest-feature-title">Los sub-agentes pueden generar sub-agentes</span>

34 <span className="digest-feature-pill">v2.1.172</span>

35 </div>

36 

37 <p className="digest-feature-lede">Los sub-agentes ahora pueden generar sus propios sub-agentes. El panel de sub-agentes debajo del mensaje muestra el árbol completo: cada fila lleva un recuento de sus descendientes y una ruta de regreso a <code>main</code>. Los sub-agentes en segundo plano están limitados a cinco niveles de profundidad para evitar árboles concurrentes descontrolados; las cadenas en primer plano pueden generar a cualquier profundidad y se autolimitan.</p>

38 

39 <p className="digest-feature-try">Abra la vista de agentes para ver el árbol anidado mientras el trabajo se expande:</p>

40 

41 ```text Claude Code theme={null}

42 > /agents

43 ```

44 

45 <a className="digest-feature-link" href="/docs/es/sub-agents#spawn-nested-subagents">Generar sub-agentes anidados</a>

46</div>

47 

48<div className="digest-feature">

49 <div className="digest-feature-header">

50 <span className="digest-feature-title">Solucione problemas con modo seguro</span>

51 <span className="digest-feature-pill">v2.1.169</span>

52 </div>

53 

54 <p className="digest-feature-lede">Inicie Claude Code con `--safe-mode`, o establezca <code>CLAUDE\_CODE\_SAFE\_MODE</code>, para lanzar con todas las personalizaciones deshabilitadas: <code>CLAUDE.md</code>, skills, plugins, hooks, servidores MCP, y comandos y agentes personalizados no se cargan. La autenticación, la selección de modelo, las herramientas integradas y los permisos siguen funcionando. Si un problema desaparece en modo seguro, una de esas superficies es la causa.</p>

55 

56 <p className="digest-feature-try">Inicie una sesión limpia para aislar una configuración rota:</p>

57 

58 ```bash terminal theme={null}

59 claude --safe-mode

60 ```

61 

62 <a className="digest-feature-link" href="/docs/es/debug-your-config#test-against-a-clean-configuration">Pruebe contra una configuración limpia</a>

63</div>

64 

65<div className="digest-wins">

66 <p className="digest-wins-title">Otros logros</p>

67 

68 <div className="digest-wins-grid">

69 <div><a href="/docs/es/model-config#fallback-model-chains"><code>fallbackModel</code></a> configura hasta tres modelos de respaldo probados en orden cuando el principal está sobrecargado o no disponible, y `--fallback-model` ahora también se aplica a sesiones interactivas</div>

70 <div>Los títulos de sesión ahora se generan en el idioma de su conversación; fije uno específico con la configuración <code>language</code></div>

71 <div>`claude agents --json` añade `--all` para incluir sesiones completadas más nuevos campos <code>id</code> y <code>state</code>, y ya no omite sesiones bloqueadas o recién despachadas</div>

72 <div>Navegar por los plugins de un marketplace en <code>/plugin</code> ahora tiene una barra de búsqueda</div>

73 <div>Nueva configuración <code>disableBundledSkills</code> y <code>CLAUDE\_CODE\_DISABLE\_BUNDLED\_SKILLS</code> ocultan skills incluidos, flujos de trabajo y comandos integrados del modelo</div>

74 <div>Las reglas de denegación aceptan un glob en la posición del nombre de herramienta, por lo que <code>"\*"</code> deniega todas las herramientas, y los nombres de herramientas desconocidos en reglas de denegación ahora advierten al inicio</div>

75 <div>La mensajería entre sesiones se refuerza: los mensajes retransmitidos a través de <code>SendMessage</code> desde otras sesiones ya no llevan autoridad del usuario, y el modo automático los bloquea</div>

76 <div>Amazon Bedrock lee la región de AWS desde archivos de configuración `~/.aws` cuando <code>AWS\_REGION</code> no está establecido, y `/status` muestra de dónde proviene la región</div>

77 <div>Nueva configuración gestionada <code>enforceAvailableModels</code> hace que la lista de permitidos <code>availableModels</code> también restrinja el modelo predeterminado</div>

78 <div>Claude en las herramientas del navegador Chrome ahora se cargan en una única llamada por lotes en lugar de una por herramienta</div>

79 <div><code>claude update</code> anuncia la versión de destino antes de descargar en lugar de quedarse en silencio</div>

80 <div>Nueva configuración <code>footerLinksRegexes</code> añade insignias de enlace coincidentes con expresiones regulares a la fila de pie de página</div>

81 </div>

82</div>

83 

84[Registro de cambios completo para v2.1.166–v2.1.176 →](/es/changelog#2-1-166)

workflows.md +4 −2

Details

9{/* plan-availability: feature=workflows plans=pro,max,team,enterprise providers=all */}9{/* plan-availability: feature=workflows plans=pro,max,team,enterprise providers=all */}

10 10 

11<Note>11<Note>

12 Los dynamic workflows están en vista previa de investigación. Requieren Claude Code v2.1.154 o posterior y están disponibles en todos los planes pagos, con acceso a la API de Anthropic, y en Amazon Bedrock, Google Cloud Vertex AI y Microsoft Foundry. En Pro, actívelos desde la fila Dynamic workflows en `/config`.12 Los dynamic workflows requieren Claude Code v2.1.154 o posterior y están disponibles en todos los planes pagos, con acceso a la API de Anthropic, y en Amazon Bedrock, Google Cloud Vertex AI y Microsoft Foundry. En Pro, actívelos desde la fila Dynamic workflows en `/config`.

13</Note>13</Note>

14 14 

15Un dynamic workflow es un script de JavaScript que orquesta [subagentes](/es/sub-agents) a escala. Claude escribe el script para la tarea que describe, y un runtime lo ejecuta en segundo plano mientras su sesión permanece receptiva.15Un dynamic workflow es un script de JavaScript que orquesta [subagentes](/es/sub-agents) a escala. Claude escribe el script para la tarea que describe, y un runtime lo ejecuta en segundo plano mientras su sesión permanece receptiva.


40 40 

41Un workflow mueve el plan al código. Con subagentes, skills y equipos de agentes, Claude es el orquestador: decide turno a turno qué generar o asignar a continuación, y cada resultado llega a una ventana de contexto. Un script de workflow mantiene el bucle, la ramificación y los resultados intermedios en sí mismo, por lo que el contexto de Claude solo contiene la respuesta final.41Un workflow mueve el plan al código. Con subagentes, skills y equipos de agentes, Claude es el orquestador: decide turno a turno qué generar o asignar a continuación, y cada resultado llega a una ventana de contexto. Un script de workflow mantiene el bucle, la ramificación y los resultados intermedios en sí mismo, por lo que el contexto de Claude solo contiene la respuesta final.

42 42 

43Mover el plan al código también permite que un workflow aplique un patrón de calidad repetible, no solo ejecutar más agentes: puede tener agentes independientes que revisen adversarialmente los hallazgos de los demás antes de que se informen, o redactar un plan desde varios ángulos y sopesarlos entre sí, para obtener un resultado más confiable que una sola pasada.43Mover el plan al código también permite que un workflow aplique un patrón de calidad repetible, no solo ejecutar más agentes: puede tener agentes independientes que revisen adversarialmente los hallazgos de los demás antes de que se informen, o redacten un plan desde varios ángulos y los sopesen entre sí, para obtener un resultado más confiable que una sola pasada.

44 44 

45<h2 id="run-a-bundled-workflow">45<h2 id="run-a-bundled-workflow">

46 Ejecutar un workflow incluido46 Ejecutar un workflow incluido


198 198 

199Presione Enter para guardar. El workflow se ejecuta como `/<name>` en futuras sesiones desde cualquier ubicación.199Presione Enter para guardar. El workflow se ejecuta como `/<name>` en futuras sesiones desde cualquier ubicación.

200 200 

201{/* min-version: 2.1.178 */}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.

202 

201Si un workflow de proyecto y un workflow personal comparten un nombre, se ejecuta el del proyecto.203Si un workflow de proyecto y un workflow personal comparten un nombre, se ejecuta el del proyecto.

202 204 

203<h3 id="pass-input-to-a-saved-workflow">205<h3 id="pass-input-to-a-saved-workflow">

worktrees.md +3 −1

Details

36 36 

37También puede pedirle a Claude que "trabaje en un worktree" durante una sesión, y creará uno con la herramienta [`EnterWorktree`](/es/tools-reference). Una vez en un worktree, Claude puede cambiar directamente a otro bajo `.claude/worktrees/` llamando a `EnterWorktree` con la ruta de destino. El worktree anterior permanece en el disco sin cambios.37También puede pedirle a Claude que "trabaje en un worktree" durante una sesión, y creará uno con la herramienta [`EnterWorktree`](/es/tools-reference). Una vez en un worktree, Claude puede cambiar directamente a otro bajo `.claude/worktrees/` llamando a `EnterWorktree` con la ruta de destino. El worktree anterior permanece en el disco sin cambios.

38 38 

39Antes de usar `--worktree` en un directorio por primera vez, acepte el diálogo de confianza del espacio de trabajo ejecutando `claude` una vez en ese directorio. Si la confianza aún no ha sido aceptada, `--worktree` sale con un error y le solicita que ejecute `claude` en el directorio primero, incluso cuando se combina con `-p`.39Antes de usar `--worktree` interactivamente en un directorio por primera vez, acepte el diálogo de confianza del espacio de trabajo ejecutando `claude` una vez en ese directorio. Si la confianza aún no ha sido aceptada, `--worktree` sale con un error y le solicita que ejecute `claude` en el directorio primero. Las ejecuciones no interactivas con `-p` omiten la [verificación de confianza](/es/security), por lo que `claude -p --worktree` procede sin ella.

40 40 

41<Tip>41<Tip>

42 Agregue `.claude/worktrees/` a su `.gitignore` para que el contenido del worktree no aparezca como archivos sin seguimiento en su checkout principal.42 Agregue `.claude/worktrees/` a su `.gitignore` para que el contenido del worktree no aparezca como archivos sin seguimiento en su checkout principal.


102 102 

103Los worktrees que Claude creó para subagentes y [sesiones en segundo plano](/es/agent-view#how-file-edits-are-isolated) se eliminan automáticamente una vez que son más antiguos que su configuración [`cleanupPeriodDays`](/es/settings#available-settings), siempre que no tengan cambios no confirmados, archivos sin seguimiento ni commits no enviados. Los worktrees que crea con `--worktree` nunca se eliminan por este barrido.103Los worktrees que Claude creó para subagentes y [sesiones en segundo plano](/es/agent-view#how-file-edits-are-isolated) se eliminan automáticamente una vez que son más antiguos que su configuración [`cleanupPeriodDays`](/es/settings#available-settings), siempre que no tengan cambios no confirmados, archivos sin seguimiento ni commits no enviados. Los worktrees que crea con `--worktree` nunca se eliminan por este barrido.

104 104 

105Mientras un agente se está ejecutando, Claude ejecuta `git worktree lock` en su worktree para que la limpieza concurrente no pueda eliminarlo. El bloqueo se libera cuando el agente termina. Para limpiar un worktree que el barrido mantiene, ejecute `git worktree remove`, agregando `--force` si el worktree tiene cambios no confirmados o archivos sin seguimiento.

106 

105<h2 id="manage-worktrees-manually">107<h2 id="manage-worktrees-manually">

106 Administre worktrees manualmente108 Administre worktrees manualmente

107</h2>109</h2>

Details

4 4 

5# Retención cero de datos5# Retención cero de datos

6 6 

7> Obtenga información sobre la Retención Cero de Datos (ZDR) para Claude Code en Claude for Enterprise, incluido el alcance, las características deshabilitadas y cómo solicitar la habilitación.7> Obtenga información sobre la Retención Cero de Datos (ZDR) para Claude Code, disponible para cuentas calificadas en Claude for Enterprise, incluido el alcance, las características deshabilitadas y cómo solicitar la habilitación.

8 8 

9La Retención Cero de Datos (ZDR) está disponible para Claude Code cuando se utiliza a través de Claude for Enterprise. Cuando ZDR está habilitado, los prompts y las respuestas del modelo generadas durante las sesiones de Claude Code se procesan en tiempo real y no se almacenan por Anthropic después de que se devuelve la respuesta, excepto cuando es necesario para cumplir con la ley o combatir el uso indebido.9La Retención Cero de Datos (ZDR) para Claude Code está disponible para cuentas calificadas en Claude for Enterprise. Cuando ZDR está habilitado, los prompts y las respuestas del modelo generadas durante las sesiones de Claude Code se procesan en tiempo real y no se almacenan por Anthropic después de que se devuelve la respuesta, excepto cuando es necesario para cumplir con la ley o combatir el uso indebido.

10 

11<Note>

12 ZDR no está incluido en el plan estándar de Claude for Enterprise y no se puede habilitar desde la configuración de administrador. Está disponible para cuentas calificadas y requiere habilitación separada por Anthropic. Si su organización requiere ZDR, [póngase en contacto con ventas](https://www.anthropic.com/contact-sales?utm_source=claude_code\&utm_medium=docs\&utm_content=zero_data_retention_request) o con su equipo de cuenta de Anthropic para confirmar la elegibilidad.

13</Note>

10 14 

11ZDR en Claude for Enterprise proporciona a los clientes empresariales la capacidad de usar Claude Code con retención cero de datos y acceso a capacidades administrativas:15ZDR en Claude for Enterprise proporciona a los clientes empresariales la capacidad de usar Claude Code con retención cero de datos y acceso a capacidades administrativas:

12 16 


31 Qué cubre ZDR35 Qué cubre ZDR

32</h3>36</h3>

33 37 

34ZDR cubre las llamadas de inferencia del modelo realizadas a través de Claude Code en Claude for Enterprise. Cuando utiliza Claude Code en su terminal, los prompts que envía y las respuestas que genera Claude no se retienen por Anthropic. Esto se aplica independientemente de qué modelo de Claude se utilice.38ZDR cubre las llamadas de inferencia del modelo realizadas a través de Claude Code en Claude for Enterprise. Cuando utiliza Claude Code en su terminal, los prompts que envía y las respuestas que genera Claude no se retienen por Anthropic. Esto se aplica a todos los modelos disponibles para organizaciones ZDR. Algunos modelos requieren retención de datos y no están disponibles bajo ZDR; consulte [Disponibilidad de modelos bajo ZDR](#model-availability-under-zdr).

35 39 

36<h3 id="what-zdr-does-not-cover">40<h3 id="what-zdr-does-not-cover">

37 Qué no cubre ZDR41 Qué no cubre ZDR


54Cuando ZDR está habilitado para una organización de Claude Code en Claude for Enterprise, ciertas características que requieren almacenar prompts o completaciones se deshabilitan automáticamente a nivel de backend:58Cuando ZDR está habilitado para una organización de Claude Code en Claude for Enterprise, ciertas características que requieren almacenar prompts o completaciones se deshabilitan automáticamente a nivel de backend:

55 59 

56| Característica | Razón |60| Característica | Razón |

57| --------------------------------------------------------------------------- | ------------------------------------------------------------------------------ |61| -------------------------------------------------------------------------- | ------------------------------------------------------------------------------ |

58| [Claude Code en la Web](/es/claude-code-on-the-web) | Requiere almacenamiento del lado del servidor del historial de conversaciones. |62| [Claude Code en la Web](/es/claude-code-on-the-web) | Requiere almacenamiento del lado del servidor del historial de conversaciones. |

59| [Sesiones remotas](/es/desktop#remote-sessions) desde la aplicación Desktop | Requiere datos de sesión persistentes que incluyen prompts y completaciones. |63| [Sesiones remotas](/es/desktop#cloud-sessions) desde la aplicación Desktop | Requiere datos de sesión persistentes que incluyen prompts y completaciones. |

60| Envío de comentarios (`/feedback`) | Enviar comentarios envía datos de conversación a Anthropic. |64| Envío de comentarios (`/feedback`) | Enviar comentarios envía datos de conversación a Anthropic. |

61 65 

62Estas características se bloquean en el backend independientemente de la visualización del lado del cliente. Si ve una característica deshabilitada en la terminal de Claude Code durante el inicio, intentar usarla devuelve un error indicando que las políticas de la organización no permiten esa acción.66Estas características se bloquean en el backend independientemente de la visualización del lado del cliente. Si ve una característica deshabilitada en la terminal de Claude Code durante el inicio, intentar usarla devuelve un error indicando que las políticas de la organización no permiten esa acción.

63 67 

64Las características futuras también pueden deshabilitarse si requieren almacenar prompts o completaciones.68Las características futuras también pueden deshabilitarse si requieren almacenar prompts o completaciones.

65 69 

70<h3 id="model-availability-under-zdr">

71 Disponibilidad de modelos bajo ZDR

72</h3>

73 

74Claude Fable 5 no está disponible para organizaciones con retención de datos cero habilitada. Esta clase de modelo [requiere retención de datos](https://platform.claude.com/docs/en/manage-claude/api-and-data-retention#model-specific-data-retention-requirements), por lo que las solicitudes de organizaciones ZDR no pueden ser servidas por ella. El modelo está ausente del selector `/model` para organizaciones ZDR o se muestra como deshabilitado con un aviso de que se requiere deshabilitar ZDR, y el servidor rechaza las solicitudes para él independientemente de la configuración del cliente.

75 

76Otros modelos permanecen disponibles bajo ZDR. Fable 5 no es el modelo predeterminado, y el alias `best`, que se resuelve a Fable 5 donde está disponible, se resuelve a Opus para organizaciones donde no lo está, incluidas las organizaciones ZDR.

77 

66<h2 id="data-retention-for-policy-violations">78<h2 id="data-retention-for-policy-violations">

67 Retención de datos para violaciones de políticas79 Retención de datos para violaciones de políticas

68</h2>80</h2>