SpyBara
Go Premium

Documentation 2026-05-11 23:00 UTC to 2026-05-12 22:57 UTC

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

agent-sdk/hooks.md +10 −10

Details

24 </Step>24 </Step>

25 25 

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

27 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#setting-source) o [`setting_sources`](/es/agent-sdk/python#setting-source) correspondiente está habilitada, lo cual lo está para las opciones predeterminadas de `query()`.27 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()`.

28 </Step>28 </Step>

29 29 

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


225 225 

226Cada devolución de llamada de hook recibe tres argumentos:226Cada devolución de llamada de hook recibe tres argumentos:

227 227 

228* **Datos de entrada:** un objeto tipado que contiene detalles del evento. Cada tipo de hook tiene su propia forma de entrada (por ejemplo, `PreToolUseHookInput` incluye `tool_name` y `tool_input`, mientras que `NotificationHookInput` incluye `message`). Vea las definiciones de tipo completas en las referencias del SDK de [TypeScript](/es/agent-sdk/typescript#hook-input) y [Python](/es/agent-sdk/python#hook-input).228* **Datos de entrada:** un objeto tipado que contiene detalles del evento. Cada tipo de hook tiene su propia forma de entrada (por ejemplo, `PreToolUseHookInput` incluye `tool_name` y `tool_input`, mientras que `NotificationHookInput` incluye `message`). Vea las definiciones de tipo completas en las referencias del SDK de [TypeScript](/es/agent-sdk/typescript#hookinput) y [Python](/es/agent-sdk/python#hookinput).

229 * Todas las entradas de hook comparten `session_id`, `cwd` y `hook_event_name`.229 * Todas las entradas de hook comparten `session_id`, `cwd` y `hook_event_name`.

230 * `agent_id` y `agent_type` se rellenan cuando el hook se dispara dentro de un subagente. En TypeScript, estos están en la entrada de hook base y disponibles para todos los tipos de hook. En Python, están solo en `PreToolUse`, `PostToolUse` y `PostToolUseFailure`.230 * `agent_id` y `agent_type` se rellenan cuando el hook se dispara dentro de un subagente. En TypeScript, estos están en la entrada de hook base y disponibles para todos los tipos de hook. En Python, están solo en `PreToolUse`, `PostToolUse` y `PostToolUseFailure`.

231* **ID de uso de herramienta** (`str | None` / `string | undefined`): correlaciona eventos `PreToolUse` y `PostToolUse` para la misma llamada de herramienta.231* **ID de uso de herramienta** (`str | None` / `string | undefined`): correlaciona eventos `PreToolUse` y `PostToolUse` para la misma llamada de herramienta.


236Su devolución de llamada devuelve un objeto con dos categorías de campos:236Su devolución de llamada devuelve un objeto con dos categorías de campos:

237 237 

238* **Campos de nivel superior** controlan la conversación: `systemMessage` inyecta un mensaje en la conversación visible para el modelo, y `continue` (`continue_` en Python) determina si el agente sigue ejecutándose después de este hook.238* **Campos de nivel superior** controlan la conversación: `systemMessage` inyecta un mensaje en la conversación visible para el modelo, y `continue` (`continue_` en Python) determina si el agente sigue ejecutándose después de este hook.

239* **`hookSpecificOutput`** controla la operación actual. Los campos dentro dependen del tipo de evento de hook. Para hooks `PreToolUse`, aquí es donde establece `permissionDecision` (`"allow"`, `"deny"` o `"ask"`), `permissionDecisionReason` e `updatedInput`. En el SDK de TypeScript, `permissionDecision` también acepta `"defer"` para finalizar la consulta y [reanudar más tarde](/es/hooks#defer-a-tool-call-for-later); este valor no está disponible en el SDK de Python. Para hooks `PostToolUse`, puede establecer `additionalContext` para agregar información al resultado de la herramienta, o `updatedToolOutput` para reemplazar completamente la salida de la herramienta antes de que Claude la vea.239* **`hookSpecificOutput`** controla la operación actual. Los campos dentro dependen del tipo de evento de hook. Para hooks `PreToolUse`, aquí es donde establece `permissionDecision` (`"allow"`, `"deny"`, `"ask"` o `"defer"`), `permissionDecisionReason` e `updatedInput`. Devolver `"defer"` finaliza la consulta para que pueda [reanudarla más tarde](/es/hooks#defer-a-tool-call-for-later). Para hooks `PostToolUse`, puede establecer `additionalContext` para agregar información al resultado de la herramienta, o `updatedToolOutput` para reemplazar completamente la salida de la herramienta antes de que Claude la vea.

240 240 

241Devuelva `{}` para permitir la operación sin cambios. Los hooks de devolución de llamada del SDK usan el mismo formato de salida JSON que [hooks de comandos de shell de Claude Code](/es/hooks#json-output), que documenta cada campo y opción específica del evento. Para las definiciones de tipo del SDK, vea las referencias del SDK de [TypeScript](/es/agent-sdk/typescript#sync-hook-json-output) y [Python](/es/agent-sdk/python#sync-hook-json-output).241Devuelva `{}` para permitir la operación sin cambios. Los hooks de devolución de llamada del SDK usan el mismo formato de salida JSON que [hooks de comandos de shell de Claude Code](/es/hooks#json-output), que documenta cada campo y opción específica del evento. Para las definiciones de tipo del SDK, vea las referencias del SDK de [TypeScript](/es/agent-sdk/typescript#synchookjsonoutput) y [Python](/es/agent-sdk/python#synchookjsonoutput).

242 242 

243<Note>243<Note>

244 Cuando se aplican múltiples hooks o reglas de permiso, **deny** tiene prioridad sobre **defer**, que tiene prioridad sobre **ask**, que tiene prioridad sobre **allow**. Si algún hook devuelve `deny`, la operación se bloquea independientemente de otros hooks.244 Cuando se aplican múltiples hooks o reglas de permiso, **deny** tiene prioridad sobre **defer**, que tiene prioridad sobre **ask**, que tiene prioridad sobre **allow**. Si algún hook devuelve `deny`, la operación se bloquea independientemente de otros hooks.


326</CodeGroup>326</CodeGroup>

327 327 

328<Note>328<Note>

329 Cuando use `updatedInput`, también debe incluir `permissionDecision: 'allow'`. Siempre devuelva un nuevo objeto en lugar de mutar el `tool_input` original.329 Cuando use `updatedInput`, también debe incluir `permissionDecision: 'allow'` para aprobar automáticamente la entrada modificada o `permissionDecision: 'ask'` para mostrársela al usuario. Con `'defer'`, `updatedInput` se ignora. Siempre devuelva un nuevo objeto en lugar de mutar el `tool_input` original.

330</Note>330</Note>

331 331 

332### Agregar contexto y bloquear una herramienta332### Agregar contexto y bloquear una herramienta


489 489 

490### Rastrear actividad de subagente490### Rastrear actividad de subagente

491 491 

492Use hooks `SubagentStop` para monitorear cuándo los subagentes terminan su trabajo. Vea el tipo de entrada completo en las referencias del SDK de [TypeScript](/es/agent-sdk/typescript#hook-input) y [Python](/es/agent-sdk/python#hook-input). Este ejemplo registra un resumen cada vez que un subagente se completa:492Use hooks `SubagentStop` para monitorear cuándo los subagentes terminan su trabajo. Vea el tipo de entrada completo en las referencias del SDK de [TypeScript](/es/agent-sdk/typescript#hookinput) y [Python](/es/agent-sdk/python#hookinput). Este ejemplo registra un resumen cada vez que un subagente se completa:

493 493 

494<CodeGroup>494<CodeGroup>

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


621 621 

622### Reenviar notificaciones a Slack622### Reenviar notificaciones a Slack

623 623 

624Use hooks `Notification` para recibir notificaciones del sistema del agente y reenviarlas a servicios externos. Las notificaciones se disparan para tipos de evento específicos: `permission_prompt` (Claude necesita permiso), `idle_prompt` (Claude está esperando entrada), `auth_success` (autenticación completada) y `elicitation_dialog` (Claude está solicitando al usuario). Cada notificación incluye un campo `message` con una descripción legible por humanos y opcionalmente un `title`.624Use hooks `Notification` para recibir notificaciones del sistema del agente y reenviarlas a servicios externos. Las notificaciones se disparan para tipos de evento específicos: `permission_prompt` (Claude necesita permiso), `idle_prompt` (Claude está esperando entrada), `auth_success` (autenticación completada), `elicitation_dialog` (Claude está solicitando al usuario), `elicitation_response` (el usuario respondió a una elicitación), y `elicitation_complete` (una elicitación se cerró). Cada notificación incluye un campo `message` con una descripción legible por humanos y opcionalmente un `title`.

625 625 

626Este ejemplo reenvía cada notificación a un canal de Slack. Requiere una [URL de webhook entrante de Slack](https://api.slack.com/messaging/webhooks), que crea agregando una aplicación a su espacio de trabajo de Slack y habilitando webhooks entrantes:626Este ejemplo reenvía cada notificación a un canal de Slack. Requiere una [URL de webhook entrante de Slack](https://api.slack.com/messaging/webhooks), que crea agregando una aplicación a su espacio de trabajo de Slack y habilitando webhooks entrantes:

627 627 


727* Verifique que su patrón de matcher coincida exactamente con el nombre de la herramienta727* Verifique que su patrón de matcher coincida exactamente con el nombre de la herramienta

728* Asegúrese de que el hook esté bajo el tipo de evento correcto en `options.hooks`728* Asegúrese de que el hook esté bajo el tipo de evento correcto en `options.hooks`

729* Para hooks que no son de herramientas como `Stop` y `SubagentStop`, los matchers coinciden contra campos diferentes (vea [patrones de matcher](/es/hooks#matcher-patterns))729* Para hooks que no son de herramientas como `Stop` y `SubagentStop`, los matchers coinciden contra campos diferentes (vea [patrones de matcher](/es/hooks#matcher-patterns))

730* Los hooks pueden no dispararse cuando el agente alcanza el límite [`max_turns`](/es/agent-sdk/python#claude-agent-options) porque la sesión termina antes de que los hooks puedan ejecutarse730* Los hooks pueden no dispararse cuando el agente alcanza el límite [`max_turns`](/es/agent-sdk/python#claudeagentoptions) porque la sesión termina antes de que los hooks puedan ejecutarse

731 731 

732### Matcher no filtra como se esperaba732### Matcher no filtra como se esperaba

733 733 


769 };769 };

770 ```770 ```

771 771 

772* También debe devolver `permissionDecision: 'allow'` para que la modificación de entrada surta efecto772* También debe devolver `permissionDecision: 'allow'` u `'ask'` para que la modificación de entrada surta efecto

773 773 

774* Incluya `hookEventName` en `hookSpecificOutput` para identificar para qué tipo de hook es la salida774* Incluya `hookEventName` en `hookSpecificOutput` para identificar para qué tipo de hook es la salida

775 775 

776### Hooks de sesión no disponibles en Python776### Hooks de sesión no disponibles en Python

777 777 

778`SessionStart` y `SessionEnd` pueden registrarse como hooks de devolución de llamada del SDK en TypeScript, pero no están disponibles en el SDK de Python (`HookEvent` los omite). En Python, solo están disponibles como [hooks de comandos de shell](/es/hooks#hook-events) definidos en archivos de configuración (por ejemplo, `.claude/settings.json`). Para cargar hooks de comandos de shell desde su aplicación SDK, incluya la fuente de configuración apropiada con [`setting_sources`](/es/agent-sdk/python#setting-source) o [`settingSources`](/es/agent-sdk/typescript#setting-source):778`SessionStart` y `SessionEnd` pueden registrarse como hooks de devolución de llamada del SDK en TypeScript, pero no están disponibles en el SDK de Python (`HookEvent` los omite). En Python, solo están disponibles como [hooks de comandos de shell](/es/hooks#hook-events) definidos en archivos de configuración (por ejemplo, `.claude/settings.json`). Para cargar hooks de comandos de shell desde su aplicación SDK, incluya la fuente de configuración apropiada con [`setting_sources`](/es/agent-sdk/python#settingsource) o [`settingSources`](/es/agent-sdk/typescript#settingsource):

779 779 

780<CodeGroup>780<CodeGroup>

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

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# Modificación de indicaciones del sistema

6 

7> Elija entre el preset `claude_code` y una indicación del sistema personalizada, y personalice el comportamiento con CLAUDE.md, estilos de salida, append, o una indicación completamente personalizada.

8 

9Las indicaciones del sistema definen el comportamiento, las capacidades y el estilo de respuesta de Claude. Comience con el preset `claude_code` para herramientas de codificación tipo CLI o IDE donde un humano observa y dirige el trabajo. Escriba su propia indicación para agentes con una superficie, identidad o modelo de permisos diferente.

10 

11Esta página cubre:

12 

13* [Cómo funcionan las indicaciones del sistema](#how-system-prompts-work), con una tabla de decisión para elegir entre el preset, el preset con `append`, y una indicación personalizada

14* [Personalizar el comportamiento del agente](#customize-agent-behavior) con archivos CLAUDE.md, estilos de salida, `append`, o una cadena personalizada

15* [Comparar los cuatro enfoques](#compare-the-four-approaches) por persistencia, alcance, y qué preservan

16* [Combinar enfoques](#combine-approaches) para superponer métodos de personalización juntos

17 

18## Cómo funcionan las indicaciones del sistema

19 

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

21 

22* **Predeterminado mínimo**: cuando no establece `systemPrompt` en TypeScript o `system_prompt` en Python, el SDK utiliza una indicación mínima que cubre la invocación de herramientas pero omite las directrices de codificación de Claude Code, el estilo de respuesta y el contexto del proyecto. Esto difiere de `claude -p`, que utiliza la indicación completa de Claude Code de forma predeterminada. Si está migrando desde la CLI y desea un comportamiento coincidente, establezca el preset `claude_code`.

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

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

25 

26### Decida sobre un punto de partida

27 

28El factor decisivo es cuán estrechamente su agente se asemeja a Claude Code: un agente de codificación que opera en un repositorio, con un humano observando la salida en streaming y dirigiendo el trabajo. Cuanto más se aleje su producto de eso, más querrá escribir su propia indicación.

29 

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

31| :--------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

32| Una herramienta de codificación tipo CLI o IDE donde un humano observa y dirige, y los valores predeterminados de Claude Code son lo que desea | Preset `claude_code` | La indicación completa de Claude Code: orientación de herramientas, reglas de seguridad, respuestas amigables con la terminal, conciencia de convenciones de repositorio |

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

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

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

36 

37"Diferente de Claude Code" generalmente significa uno de los siguientes:

38 

39* **Superficie diferente**: la salida no se lee en una terminal por la persona que la activó. Las interfaces de chat, los consumidores de salida estructurada y la automatización no codificadora cada una necesita una indicación que coincida con cómo se representa y revisa su salida. La automatización de codificación desatendida, como un trabajo de CI que corrige errores de lint o revisa diffs, aún se ajusta al preset porque el trabajo en sí es para lo que se escribió el preset.

40* **Identidad diferente**: el agente no debe presentarse a sí mismo como Claude Code. Un bot de soporte, un asistente de análisis de datos, o cualquier agente específico del dominio necesita su propio nombre, alcance y persona.

41* **Modelo de permisos diferente**: el agente se ejecuta de forma autónoma sin que un humano apruebe cada paso, u opera en un conjunto estrecho de recursos. La indicación de Claude Code asume que un humano está en el bucle con acceso a un conjunto completo de herramientas.

42* **Tareas no codificadoras**: la mayoría de la indicación de Claude Code es orientación de codificación. Para agentes de investigación, contenido u operaciones, esa orientación compite con las instrucciones que realmente necesita.

43 

44La [tabla de comparación](#compare-the-four-approaches) muestra qué preserva cada método de personalización.

45 

46## Personalizar el comportamiento del agente

47 

48Los estilos de salida, `append`, y una cadena de indicación personalizada cada uno cambian la indicación del sistema directamente. CLAUDE.md toma un camino diferente: el SDK lo lee e inyecta su contenido en la conversación como contexto del proyecto, no en la indicación del sistema, por lo que forma el comportamiento junto con cualquier indicación del sistema que elija. [Skills](/es/agent-sdk/skills), [hooks](/es/agent-sdk/hooks), y [permissions](/es/agent-sdk/permissions) también forman el comportamiento fuera de la indicación del sistema y se cubren en sus propias páginas.

49 

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

51 

52Los archivos CLAUDE.md proporcionan a Claude contexto e instrucciones persistentes del proyecto. El SDK inyecta su contenido en la conversación, no en la indicación del sistema, por lo que funcionan con cualquier configuración de indicación del sistema. Para saber qué poner en CLAUDE.md, dónde colocarlo y cómo escribir instrucciones efectivas, consulte [Cómo Claude recuerda su proyecto](/es/memory). Esta sección cubre lo específico del SDK: cómo se carga CLAUDE.md.

53 

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

55 

56#### Cargar CLAUDE.md con el SDK

57 

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

59 

60<CodeGroup>

61 ```typescript TypeScript theme={null}

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

63 

64 const messages = [];

65 

66 for await (const message of query({

67 prompt: "Add a new React component for user profiles",

68 options: {

69 systemPrompt: {

70 type: "preset",

71 preset: "claude_code" // Use Claude Code's system prompt

72 },

73 settingSources: ["project"] // Loads CLAUDE.md from project

74 }

75 })) {

76 messages.push(message);

77 }

78 

79 // Now Claude has access to your project guidelines from CLAUDE.md

80 ```

81 

82 ```python Python theme={null}

83 from claude_agent_sdk import query, ClaudeAgentOptions

84 

85 messages = []

86 

87 async for message in query(

88 prompt="Add a new React component for user profiles",

89 options=ClaudeAgentOptions(

90 system_prompt={

91 "type": "preset",

92 "preset": "claude_code", # Use Claude Code's system prompt

93 },

94 setting_sources=["project"], # Loads CLAUDE.md from project

95 ),

96 ):

97 messages.append(message)

98 

99 # Now Claude has access to your project guidelines from CLAUDE.md

100 ```

101</CodeGroup>

102 

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

104 

105### Estilos de salida para configuraciones persistentes

106 

107Los estilos de salida son configuraciones guardadas que modifican la indicación del sistema de Claude. Se almacenan como archivos markdown y se pueden reutilizar en sesiones y proyectos.

108 

109#### Crear un estilo de salida

110 

111Un estilo de salida es un archivo markdown con un `name` y `description` en su frontmatter, seguido del contenido de la indicación. Guárdelo en `~/.claude/output-styles/` para un estilo a nivel de usuario disponible en cada proyecto, o `.claude/output-styles/` en su repositorio para un estilo a nivel de proyecto que pueda confirmar y compartir con su equipo.

112 

113El ejemplo a continuación define una persona de revisión de código. Guárdelo como `~/.claude/output-styles/code-reviewer.md` para hacerlo disponible en todos los proyectos:

114 

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

116---

117name: Code Reviewer

118description: Thorough code review assistant

119---

120 

121You are an expert code reviewer.

122 

123For every code submission:

1241. Check for bugs and security issues

1252. Evaluate performance

1263. Suggest improvements

1274. Rate code quality (1-10)

128```

129 

130#### Activar un estilo de salida

131 

132Una vez creado, active los estilos de salida a través de:

133 

134* **CLI**: ejecute `/config` y seleccione un estilo de salida

135* **Configuración**: establezca `outputStyle` en `.claude/settings.local.json`

136* **TypeScript SDK**: establezca `options.outputStyle` al nombre del estilo

137 

138El SDK de Python no tiene una opción para seleccionar un estilo de salida mediante programación. Para implementaciones solo de código donde no puede escribir en `.claude/settings.local.json`, use `append` o una cadena de indicación personalizada en su lugar.

139 

140**Nota para usuarios del SDK:** Los estilos de salida se cargan cuando incluye `settingSources: ['user']` o `settingSources: ['project']` (TypeScript) / `setting_sources=["user"]` o `setting_sources=["project"]` (Python) en sus opciones.

141 

142### Agregar al preset `claude_code`

143 

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

145 

146<CodeGroup>

147 ```typescript TypeScript theme={null}

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

149 

150 const messages = [];

151 

152 for await (const message of query({

153 prompt: "Help me write a Python function to calculate fibonacci numbers",

154 options: {

155 systemPrompt: {

156 type: "preset",

157 preset: "claude_code",

158 append: "Always include detailed docstrings and type hints in Python code."

159 }

160 }

161 })) {

162 messages.push(message);

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

164 console.log(message.message.content);

165 }

166 }

167 ```

168 

169 ```python Python theme={null}

170 from claude_agent_sdk import query, ClaudeAgentOptions, AssistantMessage

171 

172 messages = []

173 

174 async for message in query(

175 prompt="Help me write a Python function to calculate fibonacci numbers",

176 options=ClaudeAgentOptions(

177 system_prompt={

178 "type": "preset",

179 "preset": "claude_code",

180 "append": "Always include detailed docstrings and type hints in Python code.",

181 }

182 ),

183 ):

184 messages.append(message)

185 if isinstance(message, AssistantMessage):

186 print(message.content)

187 ```

188</CodeGroup>

189 

190#### Mejorar el almacenamiento en caché de indicaciones entre usuarios y máquinas

191 

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

193 

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

195 

196<Note>

197 `excludeDynamicSections` requiere `@anthropic-ai/claude-agent-sdk` v0.2.98 o posterior, o `claude-agent-sdk` v0.1.58 o posterior para Python. Se aplica solo a la forma de objeto preset y no tiene efecto cuando `systemPrompt` es una cadena.

198</Note>

199 

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

201 

202<CodeGroup>

203 ```typescript TypeScript theme={null}

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

205 

206 for await (const message of query({

207 prompt: "Triage the open issues in this repo",

208 options: {

209 systemPrompt: {

210 type: "preset",

211 preset: "claude_code",

212 append: "You operate Acme's internal triage workflow. Label issues by component and severity.",

213 excludeDynamicSections: true

214 }

215 }

216 })) {

217 // ...

218 }

219 ```

220 

221 ```python Python theme={null}

222 from claude_agent_sdk import query, ClaudeAgentOptions

223 

224 async for message in query(

225 prompt="Triage the open issues in this repo",

226 options=ClaudeAgentOptions(

227 system_prompt={

228 "type": "preset",

229 "preset": "claude_code",

230 "append": "You operate Acme's internal triage workflow. Label issues by component and severity.",

231 "exclude_dynamic_sections": True,

232 },

233 ),

234 ):

235 ...

236 ```

237</CodeGroup>

238 

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

240 

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

242 

243### Indicaciones del sistema personalizadas

244 

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

246 

247<CodeGroup>

248 ```typescript TypeScript theme={null}

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

250 

251 const customPrompt = `You are a Python coding specialist.

252 Follow these guidelines:

253 - Write clean, well-documented code

254 - Use type hints for all functions

255 - Include comprehensive docstrings

256 - Prefer functional programming patterns when appropriate

257 - Always explain your code choices`;

258 

259 const messages = [];

260 

261 for await (const message of query({

262 prompt: "Create a data processing pipeline",

263 options: {

264 systemPrompt: customPrompt

265 }

266 })) {

267 messages.push(message);

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

269 console.log(message.message.content);

270 }

271 }

272 ```

273 

274 ```python Python theme={null}

275 from claude_agent_sdk import query, ClaudeAgentOptions, AssistantMessage

276 

277 custom_prompt = """You are a Python coding specialist.

278 Follow these guidelines:

279 - Write clean, well-documented code

280 - Use type hints for all functions

281 - Include comprehensive docstrings

282 - Prefer functional programming patterns when appropriate

283 - Always explain your code choices"""

284 

285 messages = []

286 

287 async for message in query(

288 prompt="Create a data processing pipeline",

289 options=ClaudeAgentOptions(system_prompt=custom_prompt),

290 ):

291 messages.append(message)

292 if isinstance(message, AssistantMessage):

293 print(message.content)

294 ```

295</CodeGroup>

296 

297## Comparación de los cuatro enfoques

298 

299Los cuatro métodos de personalización difieren en dónde residen, cómo se comparten y qué preservan del preset `claude_code`.

300 

301| Característica | CLAUDE.md | Estilos de salida | `systemPrompt` con append | `systemPrompt` personalizado |

302| -------------------------------- | ------------------------- | ------------------------- | ------------------------- | ---------------------------------- |

303| **Persistencia** | Archivo por proyecto | Guardado como archivos | Solo sesión | Solo sesión |

304| **Reutilización** | Por proyecto | Entre proyectos | Duplicación de código | Duplicación de código |

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

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

307| **Seguridad integrada** | Mantenida | Mantenida | Mantenida | Debe agregarse |

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

309| **Nivel de personalización** | Solo adiciones | Reemplazar predeterminado | Solo adiciones | Control completo |

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

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

312 

313"Con append" significa usar `systemPrompt: { type: "preset", preset: "claude_code", append: "..." }` en TypeScript o `system_prompt={"type": "preset", "preset": "claude_code", "append": "..."}` en Python. CLAUDE.md no cambia el prompt del sistema en sí: el SDK inyecta su contenido en la conversación como contexto del proyecto.

314 

315## Casos de uso y mejores prácticas

316 

317### Cuándo usar CLAUDE.md

318 

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

320 

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

322 

323### Cuándo usar estilos de salida

324 

325Los estilos de salida son para personas que desea reutilizar en la CLI y SDK sin cambiar el código de la aplicación. Debido a que viven como archivos en `.claude/output-styles`, la misma persona está disponible desde `/config` en la CLI y desde cualquier sesión de SDK que cargue la fuente de configuración coincidente.

326 

327**Mejor para:**

328 

329* Cambios de comportamiento persistentes en sesiones

330* Configuraciones compartidas por el equipo

331* Asistentes especializados como revisor de código, científico de datos o asistente de DevOps

332* Modificaciones de indicaciones complejas que necesitan control de versiones

333 

334**Ejemplos:**

335 

336* Crear un asistente dedicado de optimización SQL

337* Construir un revisor de código enfocado en seguridad

338* Desarrollar un asistente de enseñanza con pedagogía específica

339 

340### Cuándo usar `systemPrompt` con append

341 

342Use `append` cuando el preset `claude_code` ya se ajusta a su producto y solo necesita agregar instrucciones adicionales. Mantiene la orientación de herramientas del preset, las reglas de seguridad y las convenciones de codificación sin reimplementarlas.

343 

344**Mejor para:**

345 

346* Agregar estándares de codificación o preferencias específicas

347* Personalizar el formato de salida

348* Agregar conocimiento específico del dominio

349* Modificar la verbosidad de la respuesta

350* Mejorar el comportamiento predeterminado de Claude Code sin perder instrucciones de herramientas

351 

352### Cuándo usar `systemPrompt` personalizado

353 

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

355 

356**Mejor para:**

357 

358* Control completo sobre el comportamiento de Claude

359* Tareas especializadas de una sola sesión

360* Prueba de nuevas estrategias de indicaciones

361* Situaciones donde las herramientas predeterminadas no son necesarias

362* Construcción de agentes especializados con comportamiento único

363 

364## Combinación de enfoques

365 

366Estos métodos se componen. Un estilo de salida persistente o CLAUDE.md establece el comportamiento de larga duración, y `append` superpone instrucciones específicas de sesión sin tocar la configuración guardada.

367 

368### Combinación de un estilo de salida con adiciones específicas de sesión

369 

370El ejemplo a continuación asume que un estilo de salida Code Reviewer ya está activo. El bloque `append` superpone áreas de enfoque específicas de sesión sobre la persona, de modo que una única sesión de revisión puede priorizar OAuth y almacenamiento de tokens sin cambiar el estilo de salida guardado:

371 

372<CodeGroup>

373 ```typescript TypeScript theme={null}

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

375 

376 // Assuming "Code Reviewer" output style is active (via /config or settings)

377 // Add session-specific focus areas

378 const messages = [];

379 

380 for await (const message of query({

381 prompt: "Review this authentication module",

382 options: {

383 systemPrompt: {

384 type: "preset",

385 preset: "claude_code",

386 append: `

387 For this review, prioritize:

388 - OAuth 2.0 compliance

389 - Token storage security

390 - Session management

391 `

392 }

393 }

394 })) {

395 messages.push(message);

396 }

397 ```

398 

399 ```python Python theme={null}

400 from claude_agent_sdk import query, ClaudeAgentOptions

401 

402 # Assuming "Code Reviewer" output style is active (via /config or settings)

403 # Add session-specific focus areas

404 messages = []

405 

406 async for message in query(

407 prompt="Review this authentication module",

408 options=ClaudeAgentOptions(

409 system_prompt={

410 "type": "preset",

411 "preset": "claude_code",

412 "append": """

413 For this review, prioritize:

414 - OAuth 2.0 compliance

415 - Token storage security

416 - Session management

417 """,

418 }

419 ),

420 ):

421 messages.append(message)

422 ```

423</CodeGroup>

424 

425## Ver también

426 

427* [Estilos de salida](/es/output-styles): crear, gestionar y compartir estilos de salida para la CLI, incluido el formato de archivo y las ubicaciones de almacenamiento

428* [Cómo Claude recuerda su proyecto](/es/memory): qué poner en CLAUDE.md, dónde colocarlo y cómo escribir instrucciones de proyecto efectivas

429* [Referencia del SDK de TypeScript](/es/agent-sdk/typescript): el tipo `Options` completo, incluidos `systemPrompt`, `settingSources` y `outputStyle`

430* [Referencia del SDK de Python](/es/agent-sdk/python): el tipo `ClaudeAgentOptions` completo, incluidos `system_prompt` y `setting_sources`

431* [Configuración](/es/settings): la referencia de `settings.json`, incluido dónde se almacenan los estilos de salida y otras configuraciones

Details

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

397| `model` | `string` | Predeterminado de CLI | Modelo Claude a usar |397| `model` | `string` | Predeterminado de CLI | Modelo Claude a usar |

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

399| `outputStyle` | `string` | `undefined` | Nombre de un [estilo de salida](/es/output-styles) para activar para la sesión. El estilo debe existir en una ubicación `settingSources` cargada, como `.claude/output-styles/`. Vea [Activar un estilo de salida](/es/agent-sdk/modifying-system-prompts#activate-an-output-style) |

399| `pathToClaudeCodeExecutable` | `string` | Auto-resuelto desde el binario nativo incluido | Ruta al ejecutable de Claude Code. Solo se necesita si las dependencias opcionales se omitieron durante la instalación o su plataforma no está en el conjunto compatible |400| `pathToClaudeCodeExecutable` | `string` | Auto-resuelto desde el binario nativo incluido | Ruta al ejecutable de Claude Code. Solo se necesita si las dependencias opcionales se omitieron durante la instalación o su plataforma no está en el conjunto compatible |

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

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

Details

12 12 

13Para preguntas aclaratorias, Claude genera las preguntas y opciones. Su función es presentarlas a los usuarios y devolver sus selecciones. No puede agregar sus propias preguntas a este flujo; si necesita preguntarle algo a los usuarios usted mismo, hágalo por separado en la lógica de su aplicación.13Para preguntas aclaratorias, Claude genera las preguntas y opciones. Su función es presentarlas a los usuarios y devolver sus selecciones. No puede agregar sus propias preguntas a este flujo; si necesita preguntarle algo a los usuarios usted mismo, hágalo por separado en la lógica de su aplicación.

14 14 

15El callback puede permanecer pendiente indefinidamente. La ejecución permanece pausada hasta que su callback regrese, y el SDK solo cancela la espera cuando la consulta misma se cancela. Si un usuario podría tardar más en responder de lo que su proceso puede razonablemente mantenerse ejecutando, el SDK de TypeScript admite el [`defer` hook decision](/es/hooks#defer-a-tool-call-for-later), que permite que el proceso salga y se reanude más tarde desde la sesión persistida; esta opción no está disponible en el SDK de Python.15El callback puede permanecer pendiente indefinidamente. La ejecución permanece pausada hasta que su callback regrese, y el SDK solo cancela la espera cuando la consulta misma se cancela. Si un usuario podría tardar más en responder de lo que su proceso puede razonablemente mantenerse ejecutando, devuelva la [decisión del hook `defer`](/es/hooks#defer-a-tool-call-for-later), que permite que el proceso salga y se reanude más tarde desde la sesión persistida.

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 


232 232 

233* **Aprobar**: permitir que la herramienta se ejecute como Claude solicitó233* **Aprobar**: permitir que la herramienta se ejecute como Claude solicitó

234* **Aprobar con cambios**: modificar la entrada antes de la ejecución (por ejemplo, desinfectar rutas, agregar restricciones)234* **Aprobar con cambios**: modificar la entrada antes de la ejecución (por ejemplo, desinfectar rutas, agregar restricciones)

235* **Aprobar y recordar**: devolver una regla de permiso sugerida para que las llamadas coincidentes omitan el aviso la próxima vez

235* **Rechazar**: bloquear la herramienta y decirle a Claude por qué236* **Rechazar**: bloquear la herramienta y decirle a Claude por qué

236* **Sugerir alternativa**: bloquear pero guiar a Claude hacia lo que el usuario quiere en su lugar237* **Sugerir alternativa**: bloquear pero guiar a Claude hacia lo que el usuario quiere en su lugar

237* **Redirigir completamente**: usar [entrada de flujo](/es/agent-sdk/streaming-vs-single-mode) para enviar a Claude una instrucción completamente nueva238* **Redirigir completamente**: usar [entrada de flujo](/es/agent-sdk/streaming-vs-single-mode) para enviar a Claude una instrucción completamente nueva


297 </CodeGroup>298 </CodeGroup>

298 </Tab>299 </Tab>

299 300 

301 <Tab title="Aprobar y recordar">

302 El usuario aprueba y no quiere ser preguntado de nuevo para este tipo de llamada. El tercer argumento de callback lleva `suggestions`, una matriz de entradas [`PermissionUpdate`](/es/agent-sdk/typescript#permissionupdate) listas para usar. Devuelva una en `updatedPermissions` para aplicarla. Una sugerencia con el destino `localSettings` escribe la regla en `.claude/settings.local.json` para que futuras sesiones omitan el aviso para llamadas coincidentes.

303 

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

305 

306 <CodeGroup>

307 ```python Python theme={null}

308 async def can_use_tool(tool_name, input_data, context):

309 choice = await ask_user(f"Allow {tool_name}?", ["once", "always", "no"])

310 

311 if choice == "always":

312 persist = [

313 s for s in context.suggestions if s.destination == "localSettings"

314 ]

315 return PermissionResultAllow(

316 updated_input=input_data, updated_permissions=persist

317 )

318 if choice == "once":

319 return PermissionResultAllow(updated_input=input_data)

320 return PermissionResultDeny(message="User declined")

321 ```

322 

323 ```typescript TypeScript theme={null}

324 canUseTool: async (toolName, input, { suggestions = [] }) => {

325 const choice = await askUser(`Allow ${toolName}?`, ["once", "always", "no"]);

326 

327 if (choice === "always") {

328 const persist = suggestions.filter(

329 (s) => s.destination === "localSettings"

330 );

331 return {

332 behavior: "allow",

333 updatedInput: input,

334 updatedPermissions: persist

335 };

336 }

337 if (choice === "once") {

338 return { behavior: "allow", updatedInput: input };

339 }

340 return { behavior: "deny", message: "User declined" };

341 };

342 ```

343 </CodeGroup>

344 </Tab>

345 

300 <Tab title="Rechazar">346 <Tab title="Rechazar">

301 El usuario no quiere que esta acción suceda. Bloquee la herramienta y proporcione un mensaje explicando por qué. Claude ve este mensaje y puede intentar un enfoque diferente.347 El usuario no quiere que esta acción suceda. Bloquee la herramienta y proporcione un mensaje explicando por qué. Claude ve este mensaje y puede intentar un enfoque diferente.

302 348 

agent-teams.md +2 −0

Details

130Usa Sonnet para cada compañero de equipo.130Usa Sonnet para cada compañero de equipo.

131```131```

132 132 

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

134 

133### Requerir aprobación de plan para compañeros de equipo135### Requerir aprobación de plan para compañeros de equipo

134 136 

135Para 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:137Para 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:

agent-view.md +35 −16

Details

40 </Step>40 </Step>

41 41 

42 <Step title="Distribuir una sesión">42 <Step title="Distribuir una sesión">

43 Escriba un mensaje en la entrada y presione `Enter`. Una nueva sesión comienza y aparece como una fila que muestra si está funcionando, esperando su entrada o está hecha. Repita para ejecutar tantas sesiones en paralelo como desee.43 Escriba un mensaje en la entrada y presione `Enter`. Una nueva sesión comienza y aparece como una fila que muestra si está funcionando, esperando su entrada o está hecha. Repita para ejecutar varias sesiones en paralelo. Cada una utiliza su cuota de suscripción de forma independiente, así que consulte [Limitaciones](#limitations) antes de distribuir muchas a la vez.

44 </Step>44 </Step>

45 45 

46 <Step title="Echar un vistazo y responder">46 <Step title="Echar un vistazo y responder">


60 60 

61Ejecute `claude agents` para abrir la vista de agentes. Toma el control de la terminal completa y enumera cada sesión agrupada por estado, con sesiones fijadas y las que lo necesitan en la parte superior. Cada fila muestra el nombre de la sesión, la actividad actual y cuánto tiempo hace que cambió por última vez.61Ejecute `claude agents` para abrir la vista de agentes. Toma el control de la terminal completa y enumera cada sesión agrupada por estado, con sesiones fijadas y las que lo necesitan en la parte superior. Cada fila muestra el nombre de la sesión, la actividad actual y cuánto tiempo hace que cambió por última vez.

62 62 

63La lista es global para su máquina e incluye cada sesión en segundo plano independientemente de qué proyecto o worktree esté trabajando. Las sesiones interactivas que tiene abiertas en otras terminales no aparecen hasta que las [envíe al segundo plano](#from-inside-a-session), y los [subagentes](/es/sub-agents) que se ejecutan dentro de una sesión no se enumeran como filas separadas.63La lista cubre cada sesión en segundo plano bajo su [directorio de configuración](#how-background-sessions-are-hosted), independientemente de qué proyecto o worktree esté trabajando, por lo que una sesión iniciada en un repositorio y otra iniciada en un worktree diferente aparecen juntas. Las sesiones interactivas que tiene abiertas en otras terminales no aparecen hasta que las [envíe al segundo plano](#from-inside-a-session), y los [subagentes](/es/sub-agents) que se ejecutan dentro de una sesión no se enumeran como filas separadas.

64 64 

65```text theme={null}65```text theme={null}

66Pinned66Pinned

67 ✽ clawd walk cycle Write assets/sprites/clawd-walk.png 3m67 ✽ clawd walk cycle Write assets/sprites/clawd-walk.png 3m

68 68 

69Ready for review69Ready for review

70 ∙ jump physics github.com/anthropics/example/pull/2048 2h70 ∙ jump physics github.com/anthropics/example/pull/20482h

71 71 

72Needs input72Needs input

73 ✻ power-up design needs input: double jump or wall climb? 1m73 ✻ power-up design needs input: double jump or wall climb? 1m


82 … 6 more82 … 6 more

83```83```

84 84 

85El icono le indica el estado de la sesión:85El icono de cada fila lleva dos señales. El indicador le indica el estado de la sesión, y la forma del icono le indica si el proceso subyacente sigue ejecutándose. Los estados son:

86 86 

87| Icono | Estado | Qué significa |87| Indicador | Estado | Qué significa |

88| :------- | :--------------- | :------------------------------------------------------------------------------------- |88| :-------- | :--------------- | :------------------------------------------------------------------------------------- |

89| Animado | Funcionando | Claude está ejecutando activamente herramientas o generando una respuesta |89| Animado | Funcionando | Claude está ejecutando activamente herramientas o generando una respuesta |

90| Amarillo | Necesita entrada | Claude está esperando su entrada, generalmente una decisión de permiso o una respuesta |90| Amarillo | Necesita entrada | Claude está esperando su entrada, generalmente una decisión de permiso o una respuesta |

91| Atenuado | Inactivo | La sesión está esperando entrada pero no está bloqueada en una pregunta específica |91| Atenuado | Inactivo | La sesión está esperando entrada pero no está bloqueada en una pregunta específica |


99 99 

100Las sesiones persisten en el disco: cerrar su terminal o una actualización automática no las pierde, y reabriendo `claude agents` las muestra todas. Si su máquina se duerme o se apaga, las sesiones en ejecución se detienen; reinícielas con `claude respawn --all`.100Las sesiones persisten en el disco: cerrar su terminal o una actualización automática no las pierde, y reabriendo `claude agents` las muestra todas. Si su máquina se duerme o se apaga, las sesiones en ejecución se detienen; reinícielas con `claude respawn --all`.

101 101 

102El resumen de una línea en cada fila es generado por su [modelo de clase Haiku](/es/model-config) configurado, por lo que la fila puede decirle qué está haciendo la sesión, qué necesita o qué produjo sin abrir la transcripción. Cada resumen 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.102El resumen de una línea en cada fila es generado por su [modelo de clase Haiku](/es/model-config) configurado, por lo que la fila puede 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. Cada 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.

103 103 

104Cuando una sesión abre una solicitud de extracción, la fila muestra el enlace de PR y un indicador de estado para sus verificaciones de CI. Para la mayoría de las tareas, esta fila es cómo recopila el trabajo: revise y fusione la solicitud de extracción cuando sus verificaciones pasen.104Cuando una sesión abre una solicitud de extracción, aparece un punto de estado en el borde derecho de la fila, vinculado a la solicitud de extracción en terminales que admiten hipervínculos. Cuando la sesión ha abierto más de una solicitud de extracción, el recuento aparece antes del punto y el color refleja cuál necesita más atención.

105 

106| Color del punto | Estado de la solicitud de extracción |

107| :-------------- | :----------------------------------------------------------------- |

108| Amarillo | Esperando verificaciones o revisión, o las verificaciones fallaron |

109| Verde | Las verificaciones pasaron y ninguna revisión está bloqueando |

110| Púrpura | Fusionado |

111| Gris | Borrador o cerrado |

112 

113Para la mayoría de las tareas, esta fila es donde recopila el resultado: revise y fusione la solicitud de extracción cuando el punto se vuelva verde.

105 114 

106### Echar un vistazo y responder115### Echar un vistazo y responder

107 116 


121 130 

122Desconectarse nunca detiene una sesión en segundo plano: `←`, `Ctrl+C`, `Ctrl+D`, `Ctrl+Z` y `/exit` la dejan ejecutándose. Para terminar una sesión desde dentro de ella, ejecute `/stop`.131Desconectarse nunca detiene una sesión en segundo plano: `←`, `Ctrl+C`, `Ctrl+D`, `Ctrl+Z` y `/exit` la dejan ejecutándose. Para terminar una sesión desde dentro de ella, ejecute `/stop`.

123 132 

124Una vez que haya usado la vista de agentes, presionar `←` en un mensaje vacío funciona desde cualquier sesión de Claude Code, no solo desde las que se conectó. Abre la vista de agentes con su sesión actual preseleccionada, por lo que puede cambiar de sesión sin salir de la terminal.133Después de haber distribuido o enviado una sesión al segundo plano, presionar `←` en un mensaje vacío funciona desde cualquier sesión de Claude Code, no solo desde las que se conectó desde la vista de agentes. Envía la sesión actual al segundo plano y abre la vista de agentes con esa sesión preseleccionada, por lo que puede cambiar de sesión sin salir de la terminal. Puede desactivar este atajo en `/config`.

125 134 

126### Organizar la lista135### Organizar la lista

127 136 


183 192 

184Escriba `/` para distribuir un [skill](/es/skills). Empaquetar una tarea recurrente como un skill le permite iniciar el mismo flujo de trabajo muchas veces desde la vista de agentes sin reescribir el mensaje. Presione `Tab` en una entrada vacía para examinar cada subagente distribuible, o para aplicar la sugerencia resaltada cuando se muestren sugerencias.193Escriba `/` para distribuir un [skill](/es/skills). Empaquetar una tarea recurrente como un skill le permite iniciar el mismo flujo de trabajo muchas veces desde la vista de agentes sin reescribir el mensaje. Presione `Tab` en una entrada vacía para examinar cada subagente distribuible, o para aplicar la sugerencia resaltada cuando se muestren sugerencias.

185 194 

195Cuando el mismo `@name` coincide tanto con un subagente como con un repositorio hermano, el subagente tiene prioridad. La forma de primera palabra sin `@` también se aplica a cualquier nombre de subagente, por lo que un mensaje que comienza con una palabra que coincide con uno de sus nombres de subagente distribuye ese subagente. Use la forma `@` cuando desee ser explícito.

196 

186#### Distribuir a un directorio específico197#### Distribuir a un directorio específico

187 198 

188Una nueva sesión se ejecuta en el directorio desde el que abrió la vista de agentes. Para dirigirse a un directorio diferente:199Una nueva sesión se ejecuta en el directorio desde el que abrió la vista de agentes. Para dirigirse a un directorio diferente:


193 204 

194Cuando la vista de agentes se agrupa por directorio, el directorio de la fila resaltada se convierte en el objetivo de distribución, por lo que puede desplazarse a un grupo y distribuir en él sin reescribir la ruta.205Cuando la vista de agentes se agrupa por directorio, el directorio de la fila resaltada se convierte en el objetivo de distribución, por lo que puede desplazarse a un grupo y distribuir en él sin reescribir la ruta.

195 206 

196#### Aislar ediciones de archivos en un worktree

197 

198Las sesiones distribuidas desde la vista de agentes comparten su directorio de trabajo de forma predeterminada, por lo que dos agentes que editan los mismos archivos pueden entrar en conflicto. Para evitar esto, Claude Code bloquea una sesión distribuida desde la vista de agentes para que no escriba archivos hasta que se mueva a un [git worktree](/es/worktrees) aislado. Claude maneja esto automáticamente cuando necesita editar archivos. El worktree se crea bajo `.claude/worktrees/` dentro del directorio del proyecto y se elimina cuando elimina la sesión. Eliminar una sesión también elimina su worktree, por lo que fusione o envíe los cambios que desee mantener antes de eliminar.

199 

200Para hacer que un subagente siempre se ejecute en su propio worktree independientemente de cómo se inició, establezca [`isolation: worktree`](/es/sub-agents#supported-frontmatter-fields) en su frontmatter.

201 

202### Desde dentro de una sesión207### Desde dentro de una sesión

203 208 

204Ejecute `/background` o su alias `/bg` para desconectar la conversación actual y mantenerla ejecutándose. Pase un mensaje como `/bg run the test suite and fix any failures` para enviar una instrucción más antes de desconectarse.209Ejecute `/background` o su alias `/bg` para desconectar la conversación actual y mantenerla ejecutándose. Pase un mensaje como `/bg run the test suite and fix any failures` para enviar una instrucción más antes de desconectarse.


227 claude stop 7c5dcf5d stop this session232 claude stop 7c5dcf5d stop this session

228```233```

229 234 

235### Cómo se aíslan las ediciones de archivos

236 

237Cada sesión en segundo plano, ya sea iniciada desde la vista de agentes, `/bg` o `claude --bg`, comienza en su directorio de trabajo pero se bloquea para no escribir archivos allí. Cuando la sesión necesita editar archivos, Claude la mueve automáticamente a un [git worktree](/es/worktrees) aislado bajo `.claude/worktrees/`, de modo que las sesiones paralelas pueden leer el mismo checkout pero cada una escribe en la suya propia. El bloqueo no se aplica cuando la sesión ya está dentro de un worktree, cuando el directorio de trabajo no es un repositorio git, o a escrituras fuera del directorio de trabajo.

238 

239El worktree se elimina cuando elimina la sesión, por lo que fusione o envíe los cambios que desee mantener antes de eliminar. Para encontrar la ruta del worktree de una sesión, eche un vistazo a la sesión o conéctese y verifique su directorio de trabajo.

240 

241Para hacer que un subagente siempre se ejecute en su propio worktree independientemente de cómo se inició, establezca [`isolation: worktree`](/es/sub-agents#supported-frontmatter-fields) en su frontmatter.

242 

243### Modo de permiso y configuración

244 

245Una sesión distribuida lee su [configuración](/es/settings) y [modo de permiso](/es/permissions) desde el directorio en el que se ejecuta, igual que si hubiera iniciado `claude` allí. Distribuir desde la entrada de la vista de agentes no pasa un modo de permiso, por lo que la sesión utiliza el `defaultMode` de la configuración de ese directorio o el `permissionMode` del [frontmatter del subagente](/es/sub-agents#supported-frontmatter-fields) distribuido.

246 

247Para establecer el modo desde el shell, pase `--permission-mode` con `claude --bg`. El uso de `bypassPermissions` o `auto` de esta manera se rechaza hasta que haya aceptado ese modo ejecutando `claude` con él una vez de forma interactiva, ya que esos modos permiten que una sesión que no está viendo actúe sin aprobación.

248 

230## Gestionar sesiones desde el shell249## Gestionar sesiones desde el shell

231 250 

232Cada sesión en segundo plano tiene un ID corto que puede usar desde el shell. Estos comandos son útiles para scripting o cuando no desea abrir la vista de agentes.251Cada sesión en segundo plano tiene un ID corto que puede usar desde el shell. Estos comandos son útiles para scripting o cuando no desea abrir la vista de agentes.


281 300 

282La vista de agentes es una vista previa de investigación. Las limitaciones actuales a tener en cuenta:301La vista de agentes es una vista previa de investigación. Las limitaciones actuales a tener en cuenta:

283 302 

284* **Se aplican límites de velocidad**: las sesiones en segundo plano reducen su uso de suscripción igual que las sesiones interactivas, por lo que ejecutar diez agentes en paralelo usa cuota diez veces más rápido.303* **Se aplican límites de velocidad**: las sesiones en segundo plano reducen su uso de suscripción igual que las sesiones interactivas, por lo que ejecutar diez agentes en paralelo usa cuota diez veces más rápido que ejecutar uno.

285* **Las sesiones son locales**: las sesiones en segundo plano se ejecutan en su máquina y se detienen si se duerme o se apaga.304* **Las sesiones son locales**: las sesiones en segundo plano se ejecutan en su máquina y se detienen si se duerme o se apaga.

286* **Los worktrees se eliminan con la sesión**: fusione o envíe cambios antes de eliminar una sesión que editó archivos en su propio worktree.305* **Los worktrees se eliminan con la sesión**: fusione o envíe cambios antes de eliminar una sesión que editó archivos en su propio worktree.

287 306 

Details

1465Haga clic en un nombre de archivo para abrir ese nodo en el explorador anterior.1465Haga clic en un nombre de archivo para abrir ese nodo en el explorador anterior.

1466 1466 

1467| Archivo | Alcance | Confirmar | Qué hace | Referencia |1467| Archivo | Alcance | Confirmar | Qué hace | Referencia |

1468| --------------------------------------------------- | ----------------- | --------- | ----------------------------------------------------------------------------- | -------------------------------------------------------------------- |1468| --------------------------------------------------- | ----------------- | --------- | ----------------------------------------------------------------------------- | --------------------------------------------------------------- |

1469| [`CLAUDE.md`](#ce-claude-md) | Proyecto y global | ✓ | Instrucciones cargadas cada sesión | [Memory](/es/memory) |1469| [`CLAUDE.md`](#ce-claude-md) | Proyecto y global | ✓ | Instrucciones cargadas cada sesión | [Memory](/es/memory) |

1470| [`rules/*.md`](#ce-rules) | Proyecto y global | ✓ | Instrucciones con alcance de tema, opcionalmente con puerta de ruta | [Rules](/es/memory#organize-rules-with-claude/rules/) |1470| [`rules/*.md`](#ce-rules) | Proyecto y global | ✓ | Instrucciones con alcance de tema, opcionalmente con puerta de ruta | [Rules](/es/memory#organize-rules-with-claude/rules/) |

1471| [`settings.json`](#ce-settings-json) | Proyecto y global | ✓ | Permisos, hooks, variables de entorno, valores predeterminados de modelo | [Settings](/es/settings) |1471| [`settings.json`](#ce-settings-json) | Proyecto y global | ✓ | Permisos, hooks, variables de entorno, valores predeterminados de modelo | [Settings](/es/settings) |

1472| [`settings.local.json`](#ce-settings-local-json) | Solo proyecto | | Sus anulaciones personales, auto-gitignored | [Settings scopes](/es/settings#settings-files) |1472| [`settings.local.json`](#ce-settings-local-json) | Solo proyecto | | Sus anulaciones personales, auto-gitignored | [Settings scopes](/es/settings#settings-files) |

1473| [`.mcp.json`](#ce-mcp-json) | Solo proyecto | ✓ | Servidores MCP compartidos por el equipo | [MCP scopes](/es/mcp#mcp-installation-scopes) |1473| [`.mcp.json`](#ce-mcp-json) | Solo proyecto | ✓ | Servidores MCP compartidos por el equipo | [MCP scopes](/es/mcp#mcp-installation-scopes) |

1474| [`.worktreeinclude`](#ce-worktreeinclude) | Solo proyecto | ✓ | Archivos ignorados por Git para copiar en nuevos worktrees | [Worktrees](/es/common-workflows#copy-gitignored-files-to-worktrees) |1474| [`.worktreeinclude`](#ce-worktreeinclude) | Solo proyecto | ✓ | Archivos ignorados por Git para copiar en nuevos worktrees | [Worktrees](/es/worktrees#copy-gitignored-files-into-worktrees) |

1475| [`skills/<name>/SKILL.md`](#ce-skills) | Proyecto y global | ✓ | Prompts reutilizables invocados con `/name` o auto-invocados | [Skills](/es/skills) |1475| [`skills/<name>/SKILL.md`](#ce-skills) | Proyecto y global | ✓ | Prompts reutilizables invocados con `/name` o auto-invocados | [Skills](/es/skills) |

1476| [`commands/*.md`](#ce-commands) | Proyecto y global | ✓ | Prompts de archivo único; mismo mecanismo que skills | [Skills](/es/skills) |1476| [`commands/*.md`](#ce-commands) | Proyecto y global | ✓ | Prompts de archivo único; mismo mecanismo que skills | [Skills](/es/skills) |

1477| [`output-styles/*.md`](#ce-output-styles) | Proyecto y global | ✓ | Secciones de prompt del sistema personalizadas | [Output styles](/es/output-styles) |1477| [`output-styles/*.md`](#ce-output-styles) | Proyecto y global | ✓ | Secciones de prompt del sistema personalizadas | [Output styles](/es/output-styles) |


1497| Ruta bajo `~/.claude/` | Contenidos |1497| Ruta bajo `~/.claude/` | Contenidos |

1498| -------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |1498| -------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |

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

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

1500| `projects/<project>/<session>/tool-results/` | Salidas de herramientas grandes derramadas en archivos separados |1501| `projects/<project>/<session>/tool-results/` | Salidas de herramientas grandes derramadas en archivos separados |

1501| `file-history/<session>/` | Instantáneas previas a la edición de archivos que Claude cambió, utilizadas para [restauración de checkpoint](/es/checkpointing) |1502| `file-history/<session>/` | Instantáneas previas a la edición de archivos que Claude cambió, utilizadas para [restauración de checkpoint](/es/checkpointing) |

1502| `plans/` | Archivos de plan escritos durante [plan mode](/es/permission-modes#analyze-before-you-edit-with-plan-mode) |1503| `plans/` | Archivos de plan escritos durante [plan mode](/es/permission-modes#analyze-before-you-edit-with-plan-mode) |


1512Las siguientes rutas no están cubiertas por la limpieza automática y persisten indefinidamente.1513Las siguientes rutas no están cubiertas por la limpieza automática y persisten indefinidamente.

1513 1514 

1514| Ruta bajo `~/.claude/` | Contenidos |1515| Ruta bajo `~/.claude/` | Contenidos |

1515| ---------------------- | ------------------------------------------------------------------------------------------------------------------------ |1516| ---------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

1516| `history.jsonl` | Cada prompt que ha escrito, con marca de tiempo y ruta del proyecto. Utilizado para recuperación de flecha hacia arriba. |1517| `history.jsonl` | Cada prompt que ha escrito, con marca de tiempo y ruta del proyecto. Utilizado para recuperación de flecha hacia arriba. |

1517| `stats-cache.json` | Conteos de tokens y costos agregados mostrados por `/usage` |1518| `stats-cache.json` | Conteos de tokens y costos agregados mostrados por `/usage` |

1519| `remote-settings.json` | Copia en caché de [configuración administrada por servidor](/es/server-managed-settings) para su organización. Solo presente cuando su organización las ha configurado. Se actualiza en cada inicio. |

1518| `todos/` | Listas de tareas heredadas por sesión. Ya no se escriben en versiones actuales; seguro de eliminar. |1520| `todos/` | Listas de tareas heredadas por sesión. Ya no se escriben en versiones actuales; seguro de eliminar. |

1519 1521 

1520Otros archivos de caché pequeños y archivos de bloqueo aparecen dependiendo de qué características use y son seguros de eliminar.1522Otros archivos de caché pequeños y archivos de bloqueo aparecen dependiendo de qué características use y son seguros de eliminar.


1570| `~/.claude/history.jsonl` | Recuperación de prompt de flecha hacia arriba |1572| `~/.claude/history.jsonl` | Recuperación de prompt de flecha hacia arriba |

1571| `~/.claude/file-history/` | Restauración de checkpoint para sesiones pasadas |1573| `~/.claude/file-history/` | Restauración de checkpoint para sesiones pasadas |

1572| `~/.claude/stats-cache.json` | Totales históricos mostrados por `/usage` |1574| `~/.claude/stats-cache.json` | Totales históricos mostrados por `/usage` |

1575| `~/.claude/remote-settings.json` | Nada. Se vuelve a obtener en el próximo inicio. |

1573| `~/.claude/debug/`, `~/.claude/plans/`, `~/.claude/paste-cache/`, `~/.claude/image-cache/`, `~/.claude/session-env/`, `~/.claude/tasks/`, `~/.claude/shell-snapshots/`, `~/.claude/backups/` | Nada orientado al usuario |1576| `~/.claude/debug/`, `~/.claude/plans/`, `~/.claude/paste-cache/`, `~/.claude/image-cache/`, `~/.claude/session-env/`, `~/.claude/tasks/`, `~/.claude/shell-snapshots/`, `~/.claude/backups/` | Nada orientado al usuario |

1574| `~/.claude/todos/` | Nada. Directorio heredado no escrito por versiones actuales. |1577| `~/.claude/todos/` | Nada. Directorio heredado no escrito por versiones actuales. |

1575 1578 

Details

124 124 

125`--system-prompt` y `--system-prompt-file` son mutuamente excluyentes. Las banderas de adición se pueden combinar con cualquiera de las banderas de reemplazo.125`--system-prompt` y `--system-prompt-file` son mutuamente excluyentes. Las banderas de adición se pueden combinar con cualquiera de las banderas de reemplazo.

126 126 

127Para la mayoría de los casos de uso, use una bandera de adición. Agregar preserva las capacidades integradas de Claude Code mientras agrega sus requisitos. Use una bandera de reemplazo solo cuando necesite control completo sobre el indicador del sistema.127Elija según si la identidad predeterminada de Claude Code aún se ajusta a su tarea. Use una bandera de adición cuando Claude deba seguir siendo un asistente de codificación que también sigue sus reglas adicionales: instrucciones por invocación, formato de salida o contexto de dominio para un script `-p`. Agregar preserva la orientación de herramientas predeterminada, instrucciones de seguridad y convenciones de codificación, por lo que solo proporciona lo que difiere. Use una bandera de reemplazo cuando la superficie, identidad o modelo de permiso difiera del de Claude Code, como un agente no codificador en una canalización que ningún humano observa. Reemplazar elimina todo el indicador predeterminado, incluida la orientación de herramientas e instrucciones de seguridad, por lo que usted es responsable de lo que su tarea aún necesita.

128 

129Estas banderas se aplican solo a la invocación actual. Para personas persistentes que puede cambiar y compartir en un proyecto, use [estilos de salida](/es/output-styles). Para convenciones de proyecto que Claude siempre debe seguir, use [CLAUDE.md](/es/memory). La [guía de Agent SDK sobre indicaciones del sistema](/es/agent-sdk/modifying-system-prompts#decide-on-a-starting-point) cubre la misma decisión con más profundidad.

128 130 

129## Ver también131## Ver también

130 132 

data-usage.md +2 −2

Details

33* **No**: rechaza sin enviar nada33* **No**: rechaza sin enviar nada

34* **No preguntar de nuevo**: rechaza y evita que este seguimiento aparezca en futuras sesiones34* **No preguntar de nuevo**: rechaza y evita que este seguimiento aparezca en futuras sesiones

35 35 

36Nada se carga a menos que seleccione explícitamente **Sí**. Las organizaciones con [zero data retention](/es/zero-data-retention), o donde los comentarios del producto están deshabilitados por política de la organización, nunca ven este seguimiento. Sus respuestas a esta encuesta, incluyendo transcripciones de sesión enviadas después de la solicitud de calificación, no afectan sus preferencias de entrenamiento de datos y no se pueden utilizar para entrenar nuestros modelos de IA.36Nada se carga a menos que seleccione explícitamente **Sí**. Las organizaciones con [zero data retention](/es/zero-data-retention), o donde los comentarios del producto están deshabilitados por política de la organización, o donde `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` está configurado, nunca ven este seguimiento. Sus respuestas a esta encuesta, incluyendo transcripciones de sesión enviadas después de la solicitud de calificación, no afectan sus preferencias de entrenamiento de datos y no se pueden utilizar para entrenar nuestros modelos de IA.

37 37 

38Para desactivar estas encuestas, establezca `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY=1`. La encuesta también se desactiva cuando se establece `DISABLE_TELEMETRY` o `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`. Para controlar la frecuencia en lugar de desactivar, establezca [`feedbackSurveyRate`](/es/settings#available-settings) en su archivo de configuración a una probabilidad entre `0` y `1`.38Para desactivar estas encuestas, establezca `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY=1`. La encuesta también se desactiva cuando se establece `DISABLE_TELEMETRY`, `DO_NOT_TRACK`, o `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`. Las organizaciones que bloquean tráfico no esencial pero capturan respuestas de encuestas a través de su propio [OpenTelemetry collector](/es/monitoring-usage) pueden optar por volver a activar la encuesta estableciendo `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL=1`. La encuesta luego registra calificaciones solo en el recopilador configurado. El seguimiento de compartir transcripción y todo el otro tráfico de comentarios vinculado a Anthropic permanecen deshabilitados. Para controlar la frecuencia en lugar de desactivar, establezca [`feedbackSurveyRate`](/es/settings#available-settings) en su archivo de configuración a una probabilidad entre `0` y `1`.

39 39 

40### Retención de datos40### Retención de datos

41 41 

env-vars.md +5 −2

Details

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

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

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

84| `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY` | Establezca en `1` para deshabilitar las encuestas de calidad de sesión "¿Cómo está funcionando Claude?". Las encuestas también se deshabilitan cuando se establece `DISABLE_TELEMETRY` o `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`. Para establecer una tasa de muestreo en lugar de deshabilitar completamente, utilice la configuración [`feedbackSurveyRate`](/es/settings#available-settings). Consulte [Encuestas de calidad de sesión](/es/data-usage#session-quality-surveys) |84| `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY` | Establezca en `1` para deshabilitar las encuestas de calidad de sesión "¿Cómo está funcionando Claude?". Las encuestas también se deshabilitan cuando se establece `DISABLE_TELEMETRY`, `DO_NOT_TRACK` o `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`, a menos que `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL` opte por participar nuevamente. Para establecer una tasa de muestreo en lugar de deshabilitar completamente, utilice la configuración [`feedbackSurveyRate`](/es/settings#available-settings). Consulte [Encuestas de calidad de sesión](/es/data-usage#session-quality-surveys) |

85| `CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING` | Establezca en `1` para deshabilitar el [checkpointing](/es/checkpointing) de archivos. El comando `/rewind` no podrá restaurar cambios de código |85| `CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING` | Establezca en `1` para deshabilitar el [checkpointing](/es/checkpointing) de archivos. El comando `/rewind` no podrá restaurar cambios de código |

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

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


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

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

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

99| `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL` | Establezca en `1` para enrutar la encuesta de calidad de sesión "¿Cómo está funcionando Claude?" a su propio [recopilador de OpenTelemetry](/es/monitoring-usage) cuando el tráfico no esencial vinculado a Anthropic está bloqueado. Las calificaciones de encuesta se emiten solo como eventos OTEL a su recopilador configurado. No se envían datos de encuesta a Anthropic en este modo. Se aplica cuando se establece `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`, `DISABLE_TELEMETRY` o `DO_NOT_TRACK`, y no tiene efecto de otra manera. `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY` y la política de comentarios del producto de la organización tienen precedencia |

99| `CLAUDE_CODE_ENABLE_FINE_GRAINED_TOOL_STREAMING` | Controla si las entradas de llamadas de herramientas se transmiten desde la API mientras Claude las genera. Con esto desactivado, una entrada de herramienta grande como una escritura de archivo larga llega solo después de que Claude termina de generarla, lo que puede parecer que se está colgando. Habilitado de forma predeterminada en la API de Anthropic. En Bedrock y Vertex, habilitado por modelo donde el contenedor implementado lo admite. Establezca en `0` para optar por no participar. Establezca en `1` para forzar la habilitación cuando se enruta a través de un proxy a través de `ANTHROPIC_BASE_URL`, `ANTHROPIC_VERTEX_BASE_URL` o `ANTHROPIC_BEDROCK_BASE_URL`. Desactivado de forma predeterminada en Foundry y conexiones de [puerta de enlace](/es/llm-gateway) |100| `CLAUDE_CODE_ENABLE_FINE_GRAINED_TOOL_STREAMING` | Controla si las entradas de llamadas de herramientas se transmiten desde la API mientras Claude las genera. Con esto desactivado, una entrada de herramienta grande como una escritura de archivo larga llega solo después de que Claude termina de generarla, lo que puede parecer que se está colgando. Habilitado de forma predeterminada en la API de Anthropic. En Bedrock y Vertex, habilitado por modelo donde el contenedor implementado lo admite. Establezca en `0` para optar por no participar. Establezca en `1` para forzar la habilitación cuando se enruta a través de un proxy a través de `ANTHROPIC_BASE_URL`, `ANTHROPIC_VERTEX_BASE_URL` o `ANTHROPIC_BEDROCK_BASE_URL`. Desactivado de forma predeterminada en Foundry y conexiones de [puerta de enlace](/es/llm-gateway) |

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

102| `CLAUDE_CODE_ENABLE_OPUS_4_7_FAST_MODE` | Establezca en `1` para ejecutar [modo rápido](/es/fast-mode) en Claude Opus 4.7 en lugar de Opus 4.6. Con la variable establecida, `/fast` cambia a Opus 4.7; sin ella, `/fast` continúa usando Opus 4.6 |

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

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

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


119| `CLAUDE_CODE_MAX_OUTPUT_TOKENS` | Establezca el número máximo de tokens de salida para la mayoría de solicitudes. Los valores predeterminados y máximos varían según el modelo; consulte [tokens de salida máximos](https://platform.claude.com/docs/en/about-claude/models/overview#latest-models-comparison). Aumentar este valor reduce la ventana de contexto efectiva disponible antes de que se active la [compactación automática](/es/costs#reduce-token-usage). |121| `CLAUDE_CODE_MAX_OUTPUT_TOKENS` | Establezca el número máximo de tokens de salida para la mayoría de solicitudes. Los valores predeterminados y máximos varían según el modelo; consulte [tokens de salida máximos](https://platform.claude.com/docs/en/about-claude/models/overview#latest-models-comparison). Aumentar este valor reduce la ventana de contexto efectiva disponible antes de que se active la [compactación automática](/es/costs#reduce-token-usage). |

120| `CLAUDE_CODE_MAX_RETRIES` | Anule el número de veces para reintentar solicitudes de API fallidas (predeterminado: 10) |122| `CLAUDE_CODE_MAX_RETRIES` | Anule el número de veces para reintentar solicitudes de API fallidas (predeterminado: 10) |

121| `CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY` | Número máximo de herramientas de solo lectura y subagentes que pueden ejecutarse en paralelo (predeterminado: 10). Los valores más altos aumentan el paralelismo pero consumen más recursos |123| `CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY` | Número máximo de herramientas de solo lectura y subagentes que pueden ejecutarse en paralelo (predeterminado: 10). Los valores más altos aumentan el paralelismo pero consumen más recursos |

124| `CLAUDE_CODE_MAX_TURNS` | Limite el número de turnos agentivos cuando no se pasa un límite explícito. Equivalente a pasar [`--max-turns`](/es/cli-reference#cli-flags), que tiene precedencia cuando ambos se establecen. Un valor que no es un entero positivo se rechaza al inicio con un error en lugar de tratarse como sin límite |

122| `CLAUDE_CODE_MCP_ALLOWLIST_ENV` | Establezca en `1` para generar servidores MCP stdio con solo un entorno de línea base segura más el `env` configurado del servidor, en lugar de heredar su entorno de shell |125| `CLAUDE_CODE_MCP_ALLOWLIST_ENV` | Establezca en `1` para generar servidores MCP stdio con solo un entorno de línea base segura más el `env` configurado del servidor, en lugar de heredar su entorno de shell |

123| `CLAUDE_CODE_NATIVE_CURSOR` | Establezca en `1` para mostrar el cursor propio del terminal en el símbolo de inserción en lugar de un bloque dibujado. El cursor respeta la configuración de parpadeo, forma y enfoque del terminal |126| `CLAUDE_CODE_NATIVE_CURSOR` | Establezca en `1` para mostrar el cursor propio del terminal en el símbolo de inserción en lugar de un bloque dibujado. El cursor respeta la configuración de parpadeo, forma y enfoque del terminal |

124| `CLAUDE_CODE_NEW_INIT` | Establezca en `1` para hacer que `/init` ejecute un flujo de configuración interactivo. El flujo pregunta qué archivos generar, incluidos CLAUDE.md, skills y hooks, antes de explorar la base de código y escribirlos. Sin esta variable, `/init` genera un CLAUDE.md automáticamente sin solicitar. |127| `CLAUDE_CODE_NEW_INIT` | Establezca en `1` para hacer que `/init` ejecute un flujo de configuración interactivo. El flujo pregunta qué archivos generar, incluidos CLAUDE.md, skills y hooks, antes de explorar la base de código y escribirlos. Sin esta variable, `/init` genera un CLAUDE.md automáticamente sin solicitar. |


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

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

204| `ENABLE_PROMPT_CACHING_1H_BEDROCK` | Deprecated. Use `ENABLE_PROMPT_CACHING_1H` instead |207| `ENABLE_PROMPT_CACHING_1H_BEDROCK` | Deprecated. Use `ENABLE_PROMPT_CACHING_1H` instead |

205| `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 incluyendo proxies y Vertex AI), `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) |208| `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 Vertex AI o 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) |

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

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

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

fast-mode.md +47 −14

Details

4 4 

5# Acelera las respuestas con el modo rápido5# Acelera las respuestas con el modo rápido

6 6 

7> Obtén respuestas más rápidas de Opus 4.6 en Claude Code al activar el modo rápido.7> Obtén respuestas más rápidas de Opus en Claude Code al activar el modo rápido.

8 8 

9<Note>9<Note>

10 El modo rápido está en [vista previa de investigación](#research-preview). La función, los precios y la disponibilidad pueden cambiar según los comentarios.10 El modo rápido está en [vista previa de investigación](#research-preview). La función, los precios y la disponibilidad pueden cambiar según los comentarios.

11</Note>11</Note>

12 12 

13El modo rápido es una configuración de alta velocidad para Claude Opus 4.6, haciendo que el modelo sea 2.5x más rápido a un costo más alto por token. Actívalo con `/fast` cuando necesites velocidad para trabajo interactivo como iteración rápida o depuración en vivo, y desactívalo cuando el costo sea más importante que la latencia.13El modo rápido es una configuración de alta velocidad para Claude Opus, haciendo que el modelo sea 2.5x más rápido a un costo más alto por token. Actívalo con `/fast` cuando necesites velocidad para trabajo interactivo como iteración rápida o depuración en vivo, y desactívalo cuando el costo sea más importante que la latencia.

14 14 

15El modo rápido no es un modelo diferente. Utiliza el mismo Opus 4.6 con una configuración de API diferente que prioriza la velocidad sobre la eficiencia de costos. Obtienes la misma calidad y capacidades, solo respuestas más rápidas.15El modo rápido no es un modelo diferente. Utiliza Claude Opus con una configuración de API diferente que prioriza la velocidad sobre la eficiencia de costos. Obtienes la misma calidad y capacidades, solo respuestas más rápidas. El modo rápido es compatible con Opus 4.6 y Opus 4.7. No está disponible en Sonnet, Haiku u otros modelos.

16 16 

17<Note>17<Note>

18 El modo rápido requiere Claude Code v2.1.36 o posterior. Verifica tu versión con `claude --version`.18 El modo rápido requiere Claude Code v2.1.36 o posterior. Verifica tu versión con `claude --version`.


21Lo que debes saber:21Lo que debes saber:

22 22 

23* Usa `/fast` para activar o desactivar el modo rápido en Claude Code CLI. También disponible a través de `/fast` en la Extensión Claude Code VS Code.23* Usa `/fast` para activar o desactivar el modo rápido en Claude Code CLI. También disponible a través de `/fast` en la Extensión Claude Code VS Code.

24* Los precios del modo rápido para Opus 4.6 comienzan en \$30/150 MTok. El modo rápido está disponible con un descuento del 50% para todos los planes hasta las 11:59 p.m. PT del 16 de febrero.24* De forma predeterminada, `/fast` se ejecuta en Opus 4.6. Para ejecutar el modo rápido en Opus 4.7 en su lugar, establece la variable de entorno [`CLAUDE_CODE_ENABLE_OPUS_4_7_FAST_MODE`](#use-fast-mode-on-opus-4-7).

25* Los precios del modo rápido son \$30/150 MTok tanto en Opus 4.6 como en Opus 4.7.

25* Disponible para todos los usuarios de Claude Code en planes de suscripción (Pro/Max/Team/Enterprise) y Claude Console.26* Disponible para todos los usuarios de Claude Code en planes de suscripción (Pro/Max/Team/Enterprise) y Claude Console.

26* 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 uso adicional y no está incluido en los límites de velocidad de la suscripción.27* 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 uso adicional y no está incluido en los límites de velocidad de la suscripción.

27 28 

28Esta página cubre cómo [activar el modo rápido](#toggle-fast-mode), su [compensación de costos](#understand-the-cost-tradeoff), [cuándo usarlo](#decide-when-to-use-fast-mode), [requisitos](#requirements), [opción de participación por sesión](#require-per-session-opt-in), y [comportamiento de límite de velocidad](#handle-rate-limits).29Esta página cubre cómo [activar el modo rápido](#toggle-fast-mode), [usar el modo rápido en Opus 4.7](#use-fast-mode-on-opus-4-7), la [compensación de costos](#understand-the-cost-tradeoff), [cuándo usarlo](#decide-when-to-use-fast-mode), [requisitos](#requirements), [opción de participación por sesión](#require-per-session-opt-in), y [comportamiento de límite de velocidad](#handle-rate-limits).

29 30 

30## Activar el modo rápido31## Activar el modo rápido

31 32 


40 41 

41Cuando habilitas el modo rápido:42Cuando habilitas el modo rápido:

42 43 

43* Si estás en un modelo diferente, Claude Code cambia automáticamente a Opus 4.644* Si estás en un modelo diferente, Claude Code cambia automáticamente al modelo de modo rápido: Opus 4.6 de forma predeterminada, u Opus 4.7 cuando [`CLAUDE_CODE_ENABLE_OPUS_4_7_FAST_MODE`](#use-fast-mode-on-opus-4-7) está establecido.

44* Verás un mensaje de confirmación: "Fast mode ON"45* Verás un mensaje de confirmación: "Fast mode ON"

45* Un pequeño icono `↯` aparece junto al prompt mientras el modo rápido está activo46* Un pequeño icono `↯` aparece junto al prompt mientras el modo rápido está activo

46* Ejecuta `/fast` nuevamente en cualquier momento para verificar si el modo rápido está activado o desactivado47* Ejecuta `/fast` nuevamente en cualquier momento para verificar si el modo rápido está activado o desactivado

47 48 

48Cuando desactivas el modo rápido con `/fast` nuevamente, permaneces en Opus 4.6. El modelo no revierte a tu modelo anterior. Para cambiar a un modelo diferente, usa `/model`.49Cuando desactivas el modo rápido con `/fast` nuevamente, permaneces en la misma versión de Opus en la que se estaba ejecutando el modo rápido. El modelo no revierte a tu modelo anterior. Para cambiar a un modelo diferente, usa `/model`.

50 

51## Usar el modo rápido en Opus 4.7

52 

53<Note>

54 El modo rápido en Opus 4.7 requiere Claude Code v2.1.139 o posterior.

55</Note>

56 

57El modo rápido para Claude Opus 4.7 está en vista previa de investigación. Se ejecuta a la misma velocidad 2.5x y al mismo precio que el modo rápido para Opus 4.6, sin otros cambios de comportamiento.

58 

59<Note>

60 El 14 de mayo de 2026, Opus 4.7 se convierte en el modelo de modo rápido predeterminado. Hasta entonces, participa estableciendo `CLAUDE_CODE_ENABLE_OPUS_4_7_FAST_MODE=1`.

61</Note>

62 

63Para participar, establece `CLAUDE_CODE_ENABLE_OPUS_4_7_FAST_MODE=1` antes de lanzar Claude Code. Con la variable establecida, `/fast` se ejecuta en Opus 4.7. Sin ella, `/fast` continúa ejecutándose en Opus 4.6.

64 

65Puedes establecer la variable como una exportación de shell:

66 

67```bash theme={null}

68export CLAUDE_CODE_ENABLE_OPUS_4_7_FAST_MODE=1

69```

70 

71O en cualquier [archivo de configuración](/es/settings#settings-files) de Claude Code, incluyendo configuración de usuario, proyecto y administrada, para limitar el alcance de la participación:

72 

73```json theme={null}

74{

75 "env": {

76 "CLAUDE_CODE_ENABLE_OPUS_4_7_FAST_MODE": "1"

77 }

78}

79```

80 

81El modo rápido para Opus 4.6 sigue estando disponible junto a Opus 4.7. Los dos comparten el mismo grupo de límite de velocidad del modo rápido: el uso en cualquiera de los modelos se extrae de los mismos límites.

49 82 

50## Comprender la compensación de costos83## Comprender la compensación de costos

51 84 

52El modo rápido tiene precios por token más altos que el Opus 4.6 estándar:85El modo rápido tiene precios por token más altos que el Opus estándar:

53 86 

54| Modo | Entrada (MTok) | Salida (MTok) |87| Modo | Entrada (MTok) | Salida (MTok) |

55| -------------------------------- | -------------- | ------------- |88| ----------------------- | -------------- | ------------- |

56| Modo rápido en Opus 4.6 (\<200K) | \$30 | \$150 |89| Modo rápido en Opus 4.6 | \$30 | \$150 |

57| Modo rápido en Opus 4.6 (>200K) | \$60 | \$225 |90| Modo rápido en Opus 4.7 | \$30 | \$150 |

58 91 

59El modo rápido es compatible con la ventana de contexto extendida de 1M tokens.92Los precios del modo rápido son fijos en toda la ventana de contexto de 1M tokens.

60 93 

61Cuando cambias al modo rápido a mitad de la conversación, pagas el precio completo del token de entrada sin caché del modo rápido para todo el contexto de la conversación. Esto cuesta más que si hubieras habilitado el modo rápido desde el inicio.94Cuando cambias al modo rápido a mitad de la conversación, pagas el precio completo del token de entrada sin caché del modo rápido para todo el contexto de la conversación. Esto cuesta más que si hubieras habilitado el modo rápido desde el inicio.

62 95 


125 158 

126## Manejar límites de velocidad159## Manejar límites de velocidad

127 160 

128El modo rápido tiene límites de velocidad separados del Opus 4.6 estándar. Cuando alcanzas el límite de velocidad del modo rápido o se agotan tus créditos de uso adicional:161El modo rápido tiene límites de velocidad separados del Opus estándar. El modo rápido para Opus 4.6 y Opus 4.7 comparten el mismo grupo de límite de velocidad: el uso en cualquiera de los modelos se extrae de los mismos límites. Cuando alcanzas el límite de velocidad del modo rápido o se agotan tus créditos de uso adicional:

129 162 

1301. El modo rápido automáticamente vuelve a Opus 4.6 estándar1631. El modo rápido automáticamente vuelve a velocidad estándar en la misma versión de Opus

1312. El icono `↯` se vuelve gris para indicar enfriamiento1642. El icono `↯` se vuelve gris para indicar enfriamiento

1323. Continúas trabajando a velocidad y precios estándar1653. Continúas trabajando a velocidad y precios estándar

1334. Cuando expira el enfriamiento, el modo rápido se vuelve a habilitar automáticamente1664. Cuando expira el enfriamiento, el modo rápido se vuelve a habilitar automáticamente

fullscreen.md +3 −1

Details

77 77 

78El desplazamiento hacia arriba pausa el seguimiento automático para que la nueva salida no lo devuelva al final. Presione `Ctrl+End` o desplácese hacia abajo para reanudar el seguimiento.78El desplazamiento hacia arriba pausa el seguimiento automático para que la nueva salida no lo devuelva al final. Presione `Ctrl+End` o desplácese hacia abajo para reanudar el seguimiento.

79 79 

80Para desactivar completamente el seguimiento automático para que la vista permanezca donde la deje, abra `/config` y establezca Desplazamiento automático en desactivado. Con el desplazamiento automático desactivado, la vista nunca salta al final por sí sola. Los avisos de permiso y otros diálogos que necesitan una respuesta aún se desplazan a la vista independientemente de esta configuración.80Para desactivar completamente el seguimiento automático para que la vista permanezca donde la deje, abra `/config` y establezca Auto-scroll en desactivado. Con el desplazamiento automático desactivado, la vista nunca salta al final por sí sola. Los avisos de permiso y otros diálogos que necesitan una respuesta aún se desplazan a la vista independientemente de esta configuración.

81 81 

82### Desplazamiento de la rueda del ratón82### Desplazamiento de la rueda del ratón

83 83 


93 93 

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

95 95 

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

97 

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

97 99 

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

glossary.md +1 −1

Details

174 174 

175### Output style175### Output style

176 176 

177Una configuración que modifica el prompt del sistema de Claude para cambiar el comportamiento de respuesta, tono o formato. Los estilos de salida desactivan las partes específicas de ingeniería de software del prompt del sistema predeterminado, a diferencia de [CLAUDE.md](#claude-md) que se entrega como un mensaje de usuario después del prompt del sistema. Los estilos integrados incluyen Default, Explanatory y Learning.177Una configuración que modifica el prompt del sistema de Claude para cambiar el comportamiento de respuesta, tono o formato. Los estilos de salida desactivan las partes específicas de ingeniería de software del prompt del sistema predeterminado, a diferencia de [CLAUDE.md](#claude-md) que se entrega como un mensaje de usuario después del prompt del sistema. Los estilos integrados incluyen Default, Proactive, Explanatory y Learning.

178 178 

179Más información: [Output styles](/es/output-styles)179Más información: [Output styles](/es/output-styles)

180 180 

hooks.md +86 −23

Details

18 18 

19<div style={{maxWidth: "500px", margin: "0 auto"}}>19<div style={{maxWidth: "500px", margin: "0 auto"}}>

20 <Frame>20 <Frame>

21 <img src="https://mintcdn.com/claude-code/ZIW26Z9pnpsXLhbS/images/hooks-lifecycle.svg?fit=max&auto=format&n=ZIW26Z9pnpsXLhbS&q=85&s=ee23691324deb6501df09bfdae560b64" alt="Diagrama del ciclo de vida de hooks que muestra Setup opcional alimentando a SessionStart, luego un bucle por turno que contiene UserPromptSubmit, UserPromptExpansion para slash commands, el bucle agentico anidado (PreToolUse, PermissionRequest, PostToolUse, PostToolUseFailure, PostToolBatch, SubagentStart/Stop, TaskCreated, TaskCompleted) y Stop o StopFailure, seguido de TeammateIdle, PreCompact, PostCompact y SessionEnd, con Elicitation y ElicitationResult anidados dentro de la ejecución de herramientas MCP, PermissionDenied como una rama lateral de PermissionRequest para denegaciones en modo automático, y WorktreeCreate, WorktreeRemove, Notification, ConfigChange, InstructionsLoaded, CwdChanged y FileChanged como eventos asincronos independientes" width="520" height="1228" data-path="images/hooks-lifecycle.svg" />21 <img src="https://mintcdn.com/claude-code/ZIW26Z9pnpsXLhbS/images/hooks-lifecycle.svg?fit=max&auto=format&n=ZIW26Z9pnpsXLhbS&q=85&s=ee23691324deb6501df09bfdae560b64" alt="Diagrama del ciclo de vida de hooks que muestra Setup opcional alimentando a SessionStart, luego un bucle por turno que contiene UserPromptSubmit, UserPromptExpansion para slash commands, el bucle agentico anidado (PreToolUse, PermissionRequest, PostToolUse, PostToolUseFailure, PostToolBatch, SubagentStart/Stop, TaskCreated, TaskCompleted), y Stop o StopFailure, seguido de TeammateIdle, PreCompact, PostCompact y SessionEnd, con Elicitation y ElicitationResult anidados dentro de la ejecución de herramientas MCP, PermissionDenied como una rama lateral de PermissionRequest para denegaciones en modo automático, y WorktreeCreate, WorktreeRemove, Notification, ConfigChange, InstructionsLoaded, CwdChanged y FileChanged como eventos asincronos independientes" width="520" height="1228" data-path="images/hooks-lifecycle.svg" />

22 </Frame>22 </Frame>

23</div>23</div>

24 24 


70 {70 {

71 "type": "command",71 "type": "command",

72 "if": "Bash(rm *)",72 "if": "Bash(rm *)",

73 "command": "\"$CLAUDE_PROJECT_DIR\"/.claude/hooks/block-rm.sh"73 "command": "${CLAUDE_PROJECT_DIR}/.claude/hooks/block-rm.sh",

74 "args": []

74 }75 }

75 ]76 ]

76 }77 }


307Además de los [campos comunes](#common-fields), los hooks de comando aceptan estos campos:308Además de los [campos comunes](#common-fields), los hooks de comando aceptan estos campos:

308 309 

309| Campo | Requerido | Descripción |310| Campo | Requerido | Descripción |

310| :------------ | :-------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |311| :------------ | :-------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

311| `command` | sí | Comando de shell a ejecutar |312| `command` | sí | Comando de shell a ejecutar. Con `args`, el ejecutable a generar directamente. Consulte [Exec form and shell form](#exec-form-and-shell-form) |

313| `args` | no | Lista de argumentos. Cuando está presente, `command` se resuelve como un ejecutable y se genera directamente con `args` como el vector de argumentos, sin shell involucrado. Consulte [Exec form and shell form](#exec-form-and-shell-form) |

312| `async` | no | Si es `true`, se ejecuta en segundo plano sin bloquear. Consulte [Run hooks in the background](#run-hooks-in-the-background) |314| `async` | no | Si es `true`, se ejecuta en segundo plano sin bloquear. Consulte [Run hooks in the background](#run-hooks-in-the-background) |

313| `asyncRewake` | no | Si es `true`, se ejecuta en segundo plano y despierta a Claude en código de salida 2. Implica `async`. El stderr del hook, o stdout si stderr está vacío, se muestra a Claude como un recordatorio del sistema para que pueda reaccionar a un fallo de fondo de larga duración |315| `asyncRewake` | no | Si es `true`, se ejecuta en segundo plano y despierta a Claude en código de salida 2. Implica `async`. El stderr del hook, o stdout si stderr está vacío, se muestra a Claude como un recordatorio del sistema para que pueda reaccionar a un fallo de fondo de larga duración |

314| `shell` | no | Shell a usar para este hook. Acepta `"bash"` (predeterminado) o `"powershell"`. Establecer `"powershell"` ejecuta el comando a través de PowerShell en Windows. No requiere `CLAUDE_CODE_USE_POWERSHELL_TOOL` ya que los hooks generan PowerShell directamente |316| `shell` | no | Shell a usar para este hook. Acepta `"bash"` (predeterminado) o `"powershell"`. Establecer `"powershell"` ejecuta el comando a través de PowerShell en Windows. No requiere `CLAUDE_CODE_USE_POWERSHELL_TOOL` ya que los hooks generan PowerShell directamente. Se ignora cuando `args` está establecido |

317 

318<a id="exec-form-and-shell-form" />

319 

320##### Exec form y shell form

321 

322Un hook de comando se ejecuta como exec form cuando `args` está establecido, y shell form cuando `args` se omite. Establezca `args` siempre que el hook haga referencia a un [marcador de posición de ruta](#reference-scripts-by-path), ya que cada elemento se pasa como un argumento sin comillas. Omita `args` cuando necesite características de shell como pipes o `&&`, o cuando ninguna preocupación se aplique.

323 

324**Exec form** se ejecuta cuando `args` está presente. Claude Code resuelve `command` como un ejecutable en `PATH` y lo genera directamente con `args` como el vector de argumentos. No hay shell, por lo que cada elemento `args` es exactamente un argumento tal como está escrito, y los marcadores de posición de ruta como `${CLAUDE_PLUGIN_ROOT}` se sustituyen en `command` y en cada elemento `args` como cadenas simples. Los caracteres especiales como apóstrofes, `$` y backticks pasan literalmente porque no hay shell para interpretarlos. No ocurre tokenización de shell en ninguna plataforma.

325 

326**Shell form** se ejecuta cuando `args` se omite. La cadena `command` se pasa a un shell: `sh -c` en macOS y Linux, Git Bash en Windows, o PowerShell cuando Git Bash no está instalado. Establezca el campo `shell` para elegir explícitamente. El shell tokeniza la cadena, expande variables e interpreta pipes, `&&`, redirecciones y globs.

327 

328<Note>

329 En Windows, exec form requiere que `command` se resuelva a un ejecutable real como `.exe`. Los shims `.cmd` y `.bat` que npm, npx, eslint y otras herramientas instalan en `node_modules/.bin` no son ejecutables y no pueden generarse sin un shell. Para ejecutarlos en exec form, invoque el script subyacente con `node` directamente, por ejemplo `"command": "node", "args": ["${CLAUDE_PLUGIN_ROOT}/node_modules/eslint/bin/eslint.js"]`. El patrón `node` más ruta de script funciona en cada plataforma porque `node.exe` es un binario real. Para ejecutar un shim `.cmd` o `.bat` por nombre, use shell form.

330</Note>

331 

332Este ejemplo ejecuta un script de Node incluido con un plugin. Exec form pasa la ruta de script resuelta como un argumento sin comillas:

333 

334```json theme={null}

335{

336 "type": "command",

337 "command": "node",

338 "args": ["${CLAUDE_PLUGIN_ROOT}/scripts/format.js", "--fix"]

339}

340```

341 

342La forma de shell equivalente necesita comillas para manejar rutas con espacios o caracteres especiales:

343 

344```json theme={null}

345{

346 "type": "command",

347 "command": "node \"${CLAUDE_PLUGIN_ROOT}\"/scripts/format.js --fix"

348}

349```

350 

351Ambas formas admiten los mismos [marcadores de posición de ruta](#reference-scripts-by-path), y ambas los exportan como las variables de entorno `CLAUDE_PROJECT_DIR`, `CLAUDE_PLUGIN_ROOT` y `CLAUDE_PLUGIN_DATA` en el proceso generado, por lo que un script puede leer `process.env.CLAUDE_PLUGIN_ROOT` independientemente de cómo se haya lanzado. Los hooks de plugin además sustituyen valores `${user_config.*}`; consulte [User configuration](/es/plugins-reference#user-configuration).

352 

353<Note>

354 En exec form, `command` es solo el nombre o ruta del ejecutable. Si `command` es un nombre simple sin separador de ruta y contiene espacios junto con `args`, Claude Code registra una advertencia porque la generación fallará: no hay ejecutable llamado `node script.js`. Mueva los tokens adicionales a `args`. Las rutas absolutas con espacios, como `C:\Program Files\nodejs\node.exe`, son un ejecutable válido único y no desencadenan la advertencia.

355</Note>

315 356 

316#### Campos de hook HTTP357#### Campos de hook HTTP

317 358 


397| `prompt` | sí | Texto del prompt a enviar al modelo. Use `$ARGUMENTS` como marcador de posición para la entrada JSON del hook |438| `prompt` | sí | Texto del prompt a enviar al modelo. Use `$ARGUMENTS` como marcador de posición para la entrada JSON del hook |

398| `model` | no | Modelo a usar para evaluación. Por defecto es un modelo rápido |439| `model` | no | Modelo a usar para evaluación. Por defecto es un modelo rápido |

399 440 

400Todos 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 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.441Todos 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.

401 442 

402### Referenciar scripts por ruta443### Referenciar scripts por ruta

403 444 

404Use variables de entorno para referenciar scripts de hooks relativos a la raíz del proyecto o plugin, independientemente del directorio de trabajo cuando se ejecuta el hook:445Use estos marcadores de posición para referenciar scripts de hooks relativos a la raíz del proyecto o plugin, independientemente del directorio de trabajo cuando se ejecuta el hook:

405 446 

406* `$CLAUDE_PROJECT_DIR`: la raíz del proyecto. Envuelva entre comillas para manejar rutas con espacios.447* `${CLAUDE_PROJECT_DIR}`: la raíz del proyecto.

407* `${CLAUDE_PLUGIN_ROOT}`: el directorio raíz del plugin, para scripts incluidos con un [plugin](/es/plugins). Cambia en cada actualización de plugin.448* `${CLAUDE_PLUGIN_ROOT}`: el directorio de instalación del plugin, para scripts incluidos con un [plugin](/es/plugins). Cambia en cada actualización de plugin.

408* `${CLAUDE_PLUGIN_DATA}`: el [directorio de datos persistentes](/es/plugins-reference#persistent-data-directory) del plugin, para dependencias y estado que deben sobrevivir a las actualizaciones de plugin.449* `${CLAUDE_PLUGIN_DATA}`: el [directorio de datos persistentes](/es/plugins-reference#persistent-data-directory) del plugin, para dependencias y estado que deben sobrevivir a las actualizaciones de plugin.

409 450 

451Prefiera [exec form](#exec-form-and-shell-form) para cualquier hook que haga referencia a un marcador de posición de ruta. Exec form pasa cada elemento `args` como un argumento sin tokenización de shell, por lo que las rutas con espacios o caracteres especiales no necesitan comillas. En shell form, envuelva cada marcador de posición entre comillas dobles.

452 

410<Tabs>453<Tabs>

411 <Tab title="Scripts de proyecto">454 <Tab title="Scripts de proyecto">

412 Este ejemplo usa `$CLAUDE_PROJECT_DIR` para ejecutar un verificador de estilo desde el directorio `.claude/hooks/` del proyecto después de cualquier llamada a herramienta `Write` o `Edit`:455 Este ejemplo usa `${CLAUDE_PROJECT_DIR}` para ejecutar un verificador de estilo desde el directorio `.claude/hooks/` del proyecto después de cualquier llamada a herramienta `Write` o `Edit`:

413 456 

414 ```json theme={null}457 ```json theme={null}

415 {458 {


420 "hooks": [463 "hooks": [

421 {464 {

422 "type": "command",465 "type": "command",

423 "command": "\"$CLAUDE_PROJECT_DIR\"/.claude/hooks/check-style.sh"466 "command": "${CLAUDE_PROJECT_DIR}/.claude/hooks/check-style.sh",

467 "args": []

424 }468 }

425 ]469 ]

426 }470 }


446 {490 {

447 "type": "command",491 "type": "command",

448 "command": "${CLAUDE_PLUGIN_ROOT}/scripts/format.sh",492 "command": "${CLAUDE_PLUGIN_ROOT}/scripts/format.sh",

493 "args": [],

449 "timeout": 30494 "timeout": 30

450 }495 }

451 ]496 ]


529Cuando se ejecuta con `--agent` o dentro de un subagente, se incluyen dos campos adicionales:574Cuando se ejecuta con `--agent` o dentro de un subagente, se incluyen dos campos adicionales:

530 575 

531| Campo | Descripción |576| Campo | Descripción |

532| :----------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |577| :----------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

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

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

580 

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

535 582 

536Por ejemplo, un hook `PreToolUse` para un comando Bash recibe esto en stdin:583Por ejemplo, un hook `PreToolUse` para un comando Bash recibe esto en stdin:

537 584 


1153| `questions` | array | `[{"question": "Which framework?", "header": "Framework", "options": [{"label": "React"}], "multiSelect": false}]` | Preguntas a presentar, cada una con una cadena `question`, `header` corto, array `options` y bandera `multiSelect` opcional |1200| `questions` | array | `[{"question": "Which framework?", "header": "Framework", "options": [{"label": "React"}], "multiSelect": false}]` | Preguntas a presentar, cada una con una cadena `question`, `header` corto, array `options` y bandera `multiSelect` opcional |

1154| `answers` | object | `{"Which framework?": "React"}` | Opcional. Asigna texto de pregunta a la etiqueta de opción seleccionada. Las respuestas de selección múltiple unen etiquetas con comas. Claude no establece este campo; suministrarlo a través de `updatedInput` para responder programáticamente |1201| `answers` | object | `{"Which framework?": "React"}` | Opcional. Asigna texto de pregunta a la etiqueta de opción seleccionada. Las respuestas de selección múltiple unen etiquetas con comas. Claude no establece este campo; suministrarlo a través de `updatedInput` para responder programáticamente |

1155 1202 

1203##### ExitPlanMode

1204 

1205Presenta un plan y pide al usuario que lo apruebe antes de que Claude salga del [modo plan](/es/permission-modes#analyze-before-you-edit-with-plan-mode). Claude escribe el plan en un archivo en el disco antes de llamar a la herramienta, por lo que el `tool_input` literal del modelo solo lleva `allowedPrompts`. Claude Code inyecta el contenido del plan y la ruta del archivo antes de pasar la entrada a los hooks.

1206 

1207| Campo | Tipo | Ejemplo | Descripción |

1208| :--------------- | :----- | :------------------------------------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

1209| `plan` | string | `"## Refactor auth\n1. Extract..."` | Contenido del plan en Markdown. Inyectado desde el archivo del plan en el disco |

1210| `planFilePath` | string | `"/Users/.../plans/refactor-auth.md"` | Ruta al archivo del plan. Inyectado |

1211| `allowedPrompts` | array | `[{"tool": "Bash", "prompt": "run tests"}]` | Opcional. Permisos basados en prompts que Claude está solicitando para implementar el plan, cada uno con un nombre de `tool` y un `prompt` que describe la categoría de acción |

1212 

1213En `PostToolUse`, `tool_response` es un objeto con campos `plan` y `filePath` que contienen el plan aprobado, más banderas de estado internas. Lea `tool_response.plan` para el contenido del plan en lugar de releer el archivo desde el disco.

1214 

1156#### Control de decisión de PreToolUse1215#### Control de decisión de PreToolUse

1157 1216 

1158Los hooks `PreToolUse` pueden controlar si procede una llamada a herramienta. A diferencia de otros hooks que usan un campo `decision` de nivel superior, PreToolUse devuelve su decisión dentro de un objeto `hookSpecificOutput`. Esto le da control más rico: cuatro resultados (permitir, denegar, preguntar o diferir) más la capacidad de modificar la entrada de la herramienta antes de la ejecución.1217Los hooks `PreToolUse` pueden controlar si procede una llamada a herramienta. A diferencia de otros hooks que usan un campo `decision` de nivel superior, PreToolUse devuelve su decisión dentro de un objeto `hookSpecificOutput`. Esto le da control más rico: cuatro resultados (permitir, denegar, preguntar o diferir) más la capacidad de modificar la entrada de la herramienta antes de la ejecución.


1596 1655 

1597### SubagentStart1656### SubagentStart

1598 1657 

1599Se ejecuta cuando se genera un subagente de Claude Code a través de la herramienta Agent. Admite matchers para filtrar por nombre de tipo de agente (agentes integrados como `general-purpose`, `Explore`, `Plan` o nombres de agentes personalizados de `.claude/agents/`).1658Se ejecuta cuando se genera un subagente de Claude Code a través de la herramienta Agent. Admite matchers para filtrar por nombre de tipo de agente. Para agentes integrados, este es el nombre del agente como `general-purpose`, `Explore` o `Plan`. Para [subagentes personalizados](/es/sub-agents), este es el campo `name` del frontmatter del agente, no el nombre del archivo.

1600 1659 

1601#### Entrada de SubagentStart1660#### Entrada de SubagentStart

1602 1661 


1651}1710}

1652```1711```

1653 1712 

1654Los hooks SubagentStop usan el mismo formato de control de decisión que los [hooks Stop](#stop-decision-control).1713Los 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.

1655 1714 

1656### TaskCreated1715### TaskCreated

1657 1716 


1905 "hooks": [1964 "hooks": [

1906 {1965 {

1907 "type": "command",1966 "type": "command",

1908 "command": "\"$CLAUDE_PROJECT_DIR\"/.claude/hooks/audit-config-change.sh"1967 "command": "${CLAUDE_PROJECT_DIR}/.claude/hooks/audit-config-change.sh",

1968 "args": []

1909 }1969 }

1910 ]1970 ]

1911 }1971 }


2394```2454```

2395 2455 

2396| Campo | Requerido | Descripción |2456| Campo | Requerido | Descripción |

2397| :-------- | :-------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |2457| :---------------- | :-------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

2398| `type` | sí | Debe ser `"prompt"` |2458| `type` | sí | Debe ser `"prompt"` |

2399| `prompt` | sí | El texto del prompt a enviar al LLM. Use `$ARGUMENTS` como marcador de posición para la entrada JSON del hook. Si `$ARGUMENTS` no está presente, la entrada JSON se agrega al prompt |2459| `prompt` | sí | El texto del prompt a enviar al LLM. Use `$ARGUMENTS` como marcador de posición para la entrada JSON del hook. Si `$ARGUMENTS` no está presente, la entrada JSON se agrega al prompt |

2400| `model` | no | Modelo a usar para evaluación. Por defecto es un modelo rápido |2460| `model` | no | Modelo a usar para evaluación. Por defecto es un modelo rápido |

2401| `timeout` | no | Tiempo de espera en segundos. Predeterminado: 30 |2461| `timeout` | no | Tiempo de espera en segundos. Predeterminado: 30 |

2462| `continueOnBlock` | no | Cuando el prompt devuelve `ok: false`, retroalimente la razón a Claude y continúe el turno en lugar de detener. Predeterminado: `false`. Implementado como `continue: true` en la `decision: "block"` resultante. Consulte [Esquema de respuesta](#response-schema) para el comportamiento por evento |

2402 2463 

2403### Esquema de respuesta2464### Esquema de respuesta

2404 2465 


2412```2473```

2413 2474 

2414| Campo | Descripción |2475| Campo | Descripción |

2415| :------- | :------------------------------------------------------------------------------------------------- |2476| :------- | :------------------------------------------------------------------------------------------------------------------ |

2416| `ok` | `true` permite la acción, `false` la bloquea. Consulte el comportamiento por evento a continuación |2477| `ok` | `true` para permitir. `false` produce una `decision: "block"`. Consulte el comportamiento por evento a continuación |

2417| `reason` | Requerido cuando `ok` es `false`. Explicación para la decisión |2478| `reason` | Requerido cuando `ok` es `false`. Se usa como la razón del bloqueo |

2418 2479 

2419Lo que sucede en `ok: false` depende del evento:2480Lo que sucede en `ok: false` depende del evento:

2420 2481 

2421* `Stop` y `SubagentStop`: la razón se retroalimenta a Claude como su siguiente instrucción y el turno continúa2482* `Stop` y `SubagentStop`: la razón se retroalimenta a Claude como su siguiente instrucción y el turno continúa

2422* `PreToolUse`: la llamada de herramienta se deniega y la razón se devuelve a Claude como el error de la herramienta, equivalente a un hook de comando con `permissionDecision: "deny"`2483* `PreToolUse`: la llamada de herramienta se deniega y la razón se devuelve a Claude como el error de la herramienta, equivalente a un hook de comando con `permissionDecision: "deny"`

2423* `PostToolUse`, `PostToolBatch`, `UserPromptSubmit` y `UserPromptExpansion`: el turno termina y la razón aparece en el chat como una línea de advertencia, equivalente a devolver `"continue": false` desde un hook de comando2484* `PostToolUse`: por defecto el turno termina y la razón aparece en el chat como una línea de advertencia. Establezca `continueOnBlock: true` para retroalimentar la razón a Claude y continuar el turno en lugar de detener

2485* `PostToolBatch`, `UserPromptSubmit` y `UserPromptExpansion`: el turno termina y la razón aparece como una línea de advertencia. Estos eventos terminan el turno en `decision: "block"` independientemente de `continue`

2424* `PostToolUseFailure`, `TaskCreated` y `TaskCompleted`: la razón se devuelve a Claude como un error de herramienta, similar a `PreToolUse`2486* `PostToolUseFailure`, `TaskCreated` y `TaskCompleted`: la razón se devuelve a Claude como un error de herramienta, similar a `PreToolUse`

2425* `PermissionRequest`: `ok: false` no tiene efecto. Para denegar una aprobación desde un hook, use un [hook de comando](#command-hook-fields) que devuelva `hookSpecificOutput.decision.behavior: "deny"`2487* `PermissionRequest`: `ok: false` no tiene efecto. Para denegar una aprobación desde un hook, use un [hook de comando](#command-hook-fields) que devuelva `hookSpecificOutput.decision.behavior: "deny"`

2426 2488 


2579 "hooks": [2641 "hooks": [

2580 {2642 {

2581 "type": "command",2643 "type": "command",

2582 "command": "\"$CLAUDE_PROJECT_DIR\"/.claude/hooks/run-tests-async.sh",2644 "command": "${CLAUDE_PROJECT_DIR}/.claude/hooks/run-tests-async.sh",

2645 "args": [],

2583 "async": true,2646 "async": true,

2584 "timeout": 3002647 "timeout": 300

2585 }2648 }


2616* **Validar y desinfectar entradas**: nunca confíe en datos de entrada ciegamente2679* **Validar y desinfectar entradas**: nunca confíe en datos de entrada ciegamente

2617* **Siempre entrecomillar variables de shell**: use `"$VAR"` no `$VAR`2680* **Siempre entrecomillar variables de shell**: use `"$VAR"` no `$VAR`

2618* **Bloquear traversal de ruta**: verifique `..` en rutas de archivo2681* **Bloquear traversal de ruta**: verifique `..` en rutas de archivo

2619* **Usar rutas absolutas**: especifique rutas completas para scripts, usando `"$CLAUDE_PROJECT_DIR"` para la raíz del proyecto2682* **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

2620* **Omitir archivos sensibles**: evite `.env`, `.git/`, claves, etc.2683* **Omitir archivos sensibles**: evite `.env`, `.git/`, claves, etc.

2621 2684 

2622## Herramienta PowerShell en Windows2685## Herramienta PowerShell en Windows

hooks-guide.md +2 −2

Details

895 echo '{"tool_name":"Bash","tool_input":{"command":"ls"}}' | ./my-hook.sh895 echo '{"tool_name":"Bash","tool_input":{"command":"ls"}}' | ./my-hook.sh

896 echo $? # Verifica el código de salida896 echo $? # Verifica el código de salida

897 ```897 ```

898* Si ves "command not found", usa rutas absolutas o `$CLAUDE_PROJECT_DIR` para referenciar scripts898* Si ves "command not found", usa rutas absolutas o `${CLAUDE_PROJECT_DIR}` para referenciar scripts. Para evitar entrecomillado de shell por completo, añade `"args": []` para cambiar a [forma exec](/es/hooks#exec-form-and-shell-form), que genera el script directamente sin un shell

899* Si ves "jq: command not found", instala `jq` o usa Python/Node.js para análisis JSON899* Si ves "jq: command not found", instala `jq` o usa Python/Node.js para análisis JSON

900* Si el script no se ejecuta en absoluto, hazlo ejecutable: `chmod +x ./my-hook.sh`900* Si el script no se ejecuta en absoluto, hazlo ejecutable: `chmod +x ./my-hook.sh`

901 901 


926 926 

927Claude Code muestra un error de análisis JSON aunque tu script de hook produzca JSON válido.927Claude Code muestra un error de análisis JSON aunque tu script de hook produzca JSON válido.

928 928 

929Cuando Claude Code ejecuta un hook, genera un shell que obtiene tu perfil (`~/.zshrc` o `~/.bashrc`). Si tu perfil contiene declaraciones `echo` incondicionales, esa salida se antepone a tu JSON del hook:929Cuando Claude Code ejecuta un hook de comando en forma de shell (uno sin `args`), genera `sh -c` en macOS y Linux o Git Bash en Windows por defecto. Este shell es no interactivo, pero Git Bash y algunas configuraciones (como `BASH_ENV` apuntando a `~/.bashrc`) aún obtienen tu perfil. Si ese perfil contiene declaraciones `echo` incondicionales, la salida se antepone a tu JSON del hook:

930 930 

931```text theme={null}931```text theme={null}

932Shell ready on arm64932Shell ready on arm64

Details

9## Atajos de teclado9## Atajos de teclado

10 10 

11<Note>11<Note>

12 Los atajos de teclado pueden variar según la plataforma y la terminal. Presione `?` para ver los atajos disponibles en su entorno.12 Los atajos de teclado pueden variar según la plataforma y la terminal. En [renderizado a pantalla completa](/es/fullscreen), presione `?` en el visor de transcripción para ver los atajos disponibles allí.

13 13 

14 **Usuarios de macOS**: Los atajos de la tecla Option/Alt (`Alt+B`, `Alt+F`, `Alt+Y`, `Alt+M`, `Alt+P`) requieren configurar Option como Meta en su terminal:14 **Usuarios de macOS**: Los atajos de la tecla Option/Alt (`Alt+B`, `Alt+F`, `Alt+Y`, `Alt+M`, `Alt+P`) requieren configurar Option como Meta en su terminal:

15 15 


36| `Ctrl+T` | Alternar lista de tareas | Mostrar u ocultar la [lista de tareas](#task-list) en el área de estado de la terminal |36| `Ctrl+T` | Alternar lista de tareas | Mostrar u ocultar la [lista de tareas](#task-list) en el área de estado de la terminal |

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

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

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

39| `Esc` + `Esc` | Rebobinar o resumir | Restaurar código y/o conversación a un punto anterior, o resumir desde un mensaje seleccionado |40| `Esc` + `Esc` | Rebobinar o resumir | Restaurar código y/o conversación a un punto anterior, o resumir desde un mensaje seleccionado |

40| `Shift+Tab` o `Alt+M` (algunas configuraciones) | Ciclar modos de permiso | Ciclar a través de `default`, `acceptEdits`, `plan` y cualquier modo que haya habilitado, como `auto` o `bypassPermissions`. Consulte [modos de permiso](/es/permission-modes). |41| `Shift+Tab` o `Alt+M` (algunas configuraciones) | Ciclar modos de permiso | Ciclar a través de `default`, `acceptEdits`, `plan` y cualquier modo que haya habilitado, como `auto` o `bypassPermissions`. Consulte [modos de permiso](/es/permission-modes). |

41| `Option+P` (macOS) o `Alt+P` (Windows/Linux) | Cambiar modelo | Cambiar modelos sin borrar su indicación |42| `Option+P` (macOS) o `Alt+P` (Windows/Linux) | Cambiar modelo | Cambiar modelos sin borrar su indicación |


86 87 

87### Visor de transcripción88### Visor de transcripción

88 89 

89Cuando el visor de transcripción está abierto (alternado con `Ctrl+O`), estos atajos están disponibles. `Ctrl+E` se puede reasignar a través de [`transcript:toggleShowAll`](/es/keybindings).90Cuando el visor de transcripción está abierto (alternado con `Ctrl+O`), estos atajos están disponibles. En [renderizado a pantalla completa](/es/fullscreen), presione `?` para mostrar el panel de referencia de atajos de teclado completo dentro del visor. `Ctrl+E` se puede reasignar a través de [`transcript:toggleShowAll`](/es/keybindings).

90 91 

91| Atajo | Descripción |92| Atajo | Descripción |

92| :------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |93| :------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

94| `?` | Alternar el panel de ayuda de atajos de teclado. Requiere [renderizado a pantalla completa](/es/fullscreen) |

95| `{` / `}` | Saltar al indicador de usuario anterior o siguiente, como el movimiento de párrafo de vim. Requiere [renderizado a pantalla completa](/es/fullscreen) |

93| `Ctrl+E` | Alternar mostrar todo el contenido |96| `Ctrl+E` | Alternar mostrar todo el contenido |

94| `[` | Escribir la conversación completa en el scrollback nativo de su terminal para que `Cmd+F`, el modo de copia de tmux y otras herramientas nativas puedan buscarla. Requiere [renderizado a pantalla completa](/es/fullscreen#search-and-review-the-conversation) |97| `[` | Escribir la conversación completa en el scrollback nativo de su terminal para que `Cmd+F`, el modo de copia de tmux y otras herramientas nativas puedan buscarla. Requiere [renderizado a pantalla completa](/es/fullscreen#search-and-review-the-conversation) |

95| `v` | Escribir la conversación en un archivo temporal y abrirlo en `$VISUAL` o `$EDITOR`. Requiere [renderizado a pantalla completa](/es/fullscreen) |98| `v` | Escribir la conversación en un archivo temporal y abrirlo en `$VISUAL` o `$EDITOR`. Requiere [renderizado a pantalla completa](/es/fullscreen) |

llm-gateway.md +8 −4

Details

34El incumplimiento de reenvío de encabezados o la preservación de campos del cuerpo puede resultar en funcionalidad reducida o incapacidad de usar características de Claude Code.34El incumplimiento de reenvío de encabezados o la preservación de campos del cuerpo puede resultar en funcionalidad reducida o incapacidad de usar características de Claude Code.

35 35 

36<Note>36<Note>

37 Claude Code determina qué características habilitar en función del formato de API. Al usar el formato Anthropic Messages con Bedrock o Vertex, es posible que necesites establecer la variable de entorno `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`.37 Claude Code determina qué características habilitar en función del formato de API. Al usar el formato Anthropic Messages con Bedrock o Vertex, es posible que necesite establecer la variable de entorno `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`.

38</Note>38</Note>

39 39 

40**Encabezados de solicitud**40**Encabezados de solicitud**

41 41 

42Claude Code incluye los siguientes encabezados en cada solicitud de API:42Claude Code incluye los siguientes encabezados en solicitudes de API:

43 43 

44| Encabezado | Descripción |44| Encabezado | Descripción |

45| :------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |45| :------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

46| `X-Claude-Code-Session-Id` | Un identificador único para la sesión actual de Claude Code. Los proxies pueden usar esto para agregar todas las solicitudes de API de una sola sesión sin analizar el cuerpo de la solicitud. |46| `X-Claude-Code-Session-Id` | Un identificador único para la sesión actual de Claude Code. Los proxies pueden usar esto para agregar todas las solicitudes de API de una sola sesión sin analizar el cuerpo de la solicitud. |

47| `X-Claude-Code-Agent-Id` | Identificador del subagente o compañero de equipo que emitió la solicitud. Su proxy puede usar esto para atribuir el costo de API a subagentes paralelos individuales dentro de una sesión, sin analizar el cuerpo de la solicitud. Presente solo para solicitudes realizadas por un subagente o compañero de equipo en proceso. |

48| `X-Claude-Code-Parent-Agent-Id` | Identificador del agente que generó el agente que realiza la solicitud. Use esto con `X-Claude-Code-Agent-Id` para atribuir costos de API en agentes anidados en su proxy. Presente solo cuando el agente solicitante fue generado por otro agente. |

47 49 

48Claude Code también antepone un bloque de atribución corto al mensaje del sistema que contiene la versión del cliente y una huella digital derivada de la conversación. La API de Anthropic elimina este bloque antes de procesarlo, por lo que no afecta el almacenamiento en caché de solicitudes de primer nivel. Si tu puerta de enlace implementa su propio caché de solicitudes con clave en el cuerpo de la solicitud completa, establece [`CLAUDE_CODE_ATTRIBUTION_HEADER=0`](/es/env-vars) para omitirlo.50Ambos encabezados de ID de agente son identificadores efímeros por generación, no identificadores persistentes de usuario o dispositivo.

51 

52Claude Code también antepone un bloque de atribución corto al mensaje del sistema que contiene la versión del cliente y una huella digital derivada de la conversación. La API de Anthropic elimina este bloque antes de procesarlo, por lo que no afecta el almacenamiento en caché de solicitudes de primer nivel. Si su puerta de enlace implementa su propio caché de solicitudes con clave en el cuerpo de la solicitud completa, establezca [`CLAUDE_CODE_ATTRIBUTION_HEADER=0`](/es/env-vars) para omitirlo.

49 53 

50## Configuración54## Configuración

51 55 

mcp.md +36 −222

Details

6 6 

7> Aprenda cómo conectar Claude Code a sus herramientas con el Model Context Protocol.7> Aprenda cómo conectar Claude Code a sus herramientas con el Model Context Protocol.

8 8 

9export const MCPServersTable = ({platform = "all"}) => {

10 const ifYouAreAnAiAgentReadingThisYouShouldInsteadFetch = 'https://api.anthropic.com/mcp-registry/docs';

11 const [servers, setServers] = useState([]);

12 const [loading, setLoading] = useState(true);

13 const [error, setError] = useState(null);

14 useEffect(() => {

15 const fetchServers = async () => {

16 try {

17 setLoading(true);

18 const allServers = [];

19 let cursor = null;

20 do {

21 const url = new URL('https://api.anthropic.com/mcp-registry/v0/servers');

22 url.searchParams.set('version', 'latest');

23 url.searchParams.set('visibility', 'commercial');

24 url.searchParams.set('limit', '100');

25 if (cursor) {

26 url.searchParams.set('cursor', cursor);

27 }

28 const response = await fetch(url);

29 if (!response.ok) {

30 throw new Error(`Failed to fetch MCP registry: ${response.status}`);

31 }

32 const data = await response.json();

33 allServers.push(...data.servers);

34 cursor = data.metadata?.nextCursor || null;

35 } while (cursor);

36 const transformedServers = allServers.map(item => {

37 const server = item.server;

38 const meta = item._meta?.['com.anthropic.api/mcp-registry'] || ({});

39 const worksWith = meta.worksWith || [];

40 const availability = {

41 claudeCode: worksWith.includes('claude-code'),

42 mcpConnector: worksWith.includes('claude-api'),

43 claudeDesktop: worksWith.includes('claude-desktop')

44 };

45 const remotes = server.remotes || [];

46 const httpRemote = remotes.find(r => r.type === 'streamable-http');

47 const sseRemote = remotes.find(r => r.type === 'sse');

48 const preferredRemote = httpRemote || sseRemote;

49 const remoteUrl = preferredRemote?.url || meta.url;

50 const remoteType = preferredRemote?.type;

51 const isTemplatedUrl = remoteUrl?.includes('{');

52 let setupUrl;

53 if (isTemplatedUrl && meta.requiredFields) {

54 const urlField = meta.requiredFields.find(f => f.field === 'url');

55 setupUrl = urlField?.sourceUrl || meta.documentation;

56 }

57 const urls = {};

58 if (!isTemplatedUrl) {

59 if (remoteType === 'streamable-http') {

60 urls.http = remoteUrl;

61 } else if (remoteType === 'sse') {

62 urls.sse = remoteUrl;

63 }

64 }

65 let envVars = [];

66 if (server.packages && server.packages.length > 0) {

67 const npmPackage = server.packages.find(p => p.registryType === 'npm');

68 if (npmPackage) {

69 urls.stdio = `npx -y ${npmPackage.identifier}`;

70 if (npmPackage.environmentVariables) {

71 envVars = npmPackage.environmentVariables;

72 }

73 }

74 }

75 return {

76 name: meta.displayName || server.title || server.name,

77 description: meta.oneLiner || server.description,

78 documentation: meta.documentation,

79 urls: urls,

80 envVars: envVars,

81 availability: availability,

82 customCommands: meta.claudeCodeCopyText ? {

83 claudeCode: meta.claudeCodeCopyText

84 } : undefined,

85 setupUrl: setupUrl

86 };

87 });

88 setServers(transformedServers);

89 setError(null);

90 } catch (err) {

91 setError(err.message);

92 console.error('Error fetching MCP registry:', err);

93 } finally {

94 setLoading(false);

95 }

96 };

97 fetchServers();

98 }, []);

99 const generateClaudeCodeCommand = server => {

100 if (server.customCommands && server.customCommands.claudeCode) {

101 return server.customCommands.claudeCode.replace('--transport streamable-http', '--transport http');

102 }

103 const serverSlug = server.name.toLowerCase().replace(/[^a-z0-9]/g, '-');

104 if (server.urls.http) {

105 return `claude mcp add ${serverSlug} --transport http ${server.urls.http}`;

106 }

107 if (server.urls.sse) {

108 return `claude mcp add ${serverSlug} --transport sse ${server.urls.sse}`;

109 }

110 if (server.urls.stdio) {

111 const envFlags = server.envVars && server.envVars.length > 0 ? server.envVars.map(v => `--env ${v.name}=YOUR_${v.name}`).join(' ') : '';

112 const baseCommand = `claude mcp add ${serverSlug} --transport stdio`;

113 return envFlags ? `${baseCommand} ${envFlags} -- ${server.urls.stdio}` : `${baseCommand} -- ${server.urls.stdio}`;

114 }

115 return null;

116 };

117 if (loading) {

118 return <div>Loading MCP servers...</div>;

119 }

120 if (error) {

121 return <div>Error loading MCP servers: {error}</div>;

122 }

123 const filteredServers = servers.filter(server => {

124 if (platform === "claudeCode") {

125 return server.availability.claudeCode;

126 } else if (platform === "mcpConnector") {

127 return server.availability.mcpConnector;

128 } else if (platform === "claudeDesktop") {

129 return server.availability.claudeDesktop;

130 } else if (platform === "all") {

131 return true;

132 } else {

133 throw new Error(`Unknown platform: ${platform}`);

134 }

135 });

136 return <>

137 <style jsx>{`

138 .cards-container {

139 display: grid;

140 gap: 1rem;

141 margin-bottom: 2rem;

142 }

143 .server-card {

144 border: 1px solid var(--border-color, #e5e7eb);

145 border-radius: 6px;

146 padding: 1rem;

147 }

148 .command-row {

149 display: flex;

150 align-items: center;

151 gap: 0.25rem;

152 }

153 .command-row code {

154 font-size: 0.75rem;

155 overflow-x: auto;

156 }

157 `}</style>

158 

159 <div className="cards-container">

160 {filteredServers.map(server => {

161 const claudeCodeCommand = generateClaudeCodeCommand(server);

162 const mcpUrl = server.urls.http || server.urls.sse;

163 const commandToShow = platform === "claudeCode" ? claudeCodeCommand : mcpUrl;

164 return <div key={server.name} className="server-card">

165 <div>

166 {server.documentation ? <a href={server.documentation}>

167 <strong>{server.name}</strong>

168 </a> : <strong>{server.name}</strong>}

169 </div>

170 

171 <p style={{

172 margin: '0.5rem 0',

173 fontSize: '0.9rem'

174 }}>

175 {server.description}

176 </p>

177 

178 {server.setupUrl && <p style={{

179 margin: '0.25rem 0',

180 fontSize: '0.8rem',

181 fontStyle: 'italic',

182 opacity: 0.7

183 }}>

184 Requires user-specific URL.{' '}

185 <a href={server.setupUrl} style={{

186 textDecoration: 'underline'

187 }}>

188 Get your URL here

189 </a>.

190 </p>}

191 

192 {commandToShow && !server.setupUrl && <>

193 <p style={{

194 display: 'block',

195 fontSize: '0.75rem',

196 fontWeight: 500,

197 minWidth: 'fit-content',

198 marginTop: '0.5rem',

199 marginBottom: 0

200 }}>

201 {platform === "claudeCode" ? "Command" : "URL"}

202 </p>

203 <div className="command-row">

204 <code>

205 {commandToShow}

206 </code>

207 </div>

208 </>}

209 </div>;

210 })}

211 </div>

212 </>;

213};

214 

215Claude Code puede conectarse a cientos de herramientas externas y fuentes de datos a través del [Model Context Protocol (MCP)](https://modelcontextprotocol.io/introduction), un estándar de código abierto para integraciones de IA con herramientas. Los servidores MCP dan a Claude Code acceso a sus herramientas, bases de datos y APIs.9Claude Code puede conectarse a cientos de herramientas externas y fuentes de datos a través del [Model Context Protocol (MCP)](https://modelcontextprotocol.io/introduction), un estándar de código abierto para integraciones de IA con herramientas. Los servidores MCP dan a Claude Code acceso a sus herramientas, bases de datos y APIs.

216 10 

217Conecte un servidor cuando se encuentre copiando datos en el chat desde otra herramienta, como un rastreador de problemas o un panel de monitoreo. Una vez conectado, Claude puede leer y actuar en ese sistema directamente en lugar de trabajar con lo que pegue.11Conecte un servidor cuando se encuentre copiando datos en el chat desde otra herramienta, como un rastreador de problemas o un panel de monitoreo. Una vez conectado, Claude puede leer y actuar en ese sistema directamente en lugar de trabajar con lo que pegue.


227* **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."21* **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."

228* **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.22* **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.

229 23 

230## Servidores MCP populares24## Buscar y crear servidores MCP

231 25 

232Aquí hay algunos servidores MCP comúnmente utilizados que puede conectar a Claude Code:26Explore 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`.

233 27 

234<Warning>28<Warning>

235 Use servidores MCP de terceros bajo su propio riesgo - Anthropic no ha verificado29 Verifique que confía en cada servidor antes de conectarlo. Los servidores que obtienen contenido externo pueden exponerlo al [riesgo de inyección de indicaciones](/es/security#protect-against-prompt-injection).

236 la corrección o seguridad de todos estos servidores.

237 Asegúrese de confiar en los servidores MCP que está instalando.

238 Tenga especial cuidado al usar servidores MCP que podrían obtener contenido no confiable,

239 ya que estos pueden exponerlo al riesgo de inyección de indicaciones.

240</Warning>30</Warning>

241 31 

242<MCPServersTable platform="claudeCode" />32Para crear su propio servidor, consulte la [guía del servidor MCP](https://modelcontextprotocol.io/docs/develop/build-server) para los fundamentos del protocolo y la [documentación de construcción de conectores de Claude](https://claude.com/docs/connectors/building) para autenticación, pruebas y envío al Directorio.

243 33 

244<Note>34También puede hacer que Claude cree un servidor para usted con el plugin oficial [`mcp-server-dev`](https://github.com/anthropics/claude-plugins-official/tree/main/plugins/mcp-server-dev).

245 **¿Necesita una integración específica?** [Encuentre cientos más servidores MCP en GitHub](https://github.com/modelcontextprotocol/servers), o cree el suyo propio usando el [MCP SDK](https://modelcontextprotocol.io/quickstart/server).35 

246</Note>36<Steps>

37 <Step title="Instalar el plugin">

38 En una sesión de Claude Code, ejecute:

39 

40 ```

41 /plugin install mcp-server-dev@claude-plugins-official

42 ```

43 

44 Luego ejecute `/reload-plugins` para activarlo en la sesión actual.

45 </Step>

46 

47 <Step title="Ejecutar la skill de construcción">

48 ```

49 /mcp-server-dev:build-mcp-server

50 ```

51 

52 Claude le pregunta sobre su caso de uso y crea un servidor HTTP remoto o un servidor stdio local.

53 </Step>

54</Steps>

247 55 

248## Instalación de servidores MCP56## Instalación de servidores MCP

249 57 


289 97 

290Los servidores stdio se ejecutan como procesos locales en su máquina. Son ideales para herramientas que necesitan acceso directo al sistema o scripts personalizados.98Los servidores stdio se ejecutan como procesos locales en su máquina. Son ideales para herramientas que necesitan acceso directo al sistema o scripts personalizados.

291 99 

100Claude Code establece `CLAUDE_PROJECT_DIR` en el entorno del servidor generado a la raíz del proyecto, por lo que su servidor puede resolver rutas relativas al proyecto sin depender del directorio de trabajo. Este es el mismo directorio que los hooks reciben en su variable `CLAUDE_PROJECT_DIR`. Léalo desde dentro de su proceso de servidor, por ejemplo `process.env.CLAUDE_PROJECT_DIR` en Node o `os.environ["CLAUDE_PROJECT_DIR"]` en Python. Su servidor también puede llamar a la solicitud MCP `roots/list`, que devuelve el directorio desde el cual se lanzó Claude Code.

101 

102Esta variable se establece en el entorno del servidor, no en el entorno propio de Claude Code, por lo que hacer referencia a ella mediante la expansión `${VAR}` en un archivo `.mcp.json` con alcance de proyecto o usuario en `command` o `args` requiere un valor predeterminado como `${CLAUDE_PROJECT_DIR:-.}`. Las configuraciones MCP proporcionadas por plugins sustituyen `${CLAUDE_PROJECT_DIR}` directamente y no necesitan el valor predeterminado.

103 

292```bash theme={null}104```bash theme={null}

293# Sintaxis básica105# Sintaxis básica

294claude mcp add [options] <name> -- <command> [args...]106claude mcp add [options] <name> -- <command> [args...]


406**Características de MCP de plugins**:218**Características de MCP de plugins**:

407 219 

408* **Ciclo de vida automático**: Al iniciar la sesión, los servidores de los plugins habilitados se conectan automáticamente. Si habilita o deshabilita un plugin durante una sesión, ejecute `/reload-plugins` para conectar o desconectar sus servidores MCP220* **Ciclo de vida automático**: Al iniciar la sesión, los servidores de los plugins habilitados se conectan automáticamente. Si habilita o deshabilita un plugin durante una sesión, ejecute `/reload-plugins` para conectar o desconectar sus servidores MCP

409* **Variables de entorno**: Use `${CLAUDE_PLUGIN_ROOT}` para archivos agrupados en el plugin y `${CLAUDE_PLUGIN_DATA}` para [estado persistente](/es/plugins-reference#persistent-data-directory) que sobrevive a las actualizaciones de plugins221* **Variables de entorno**: Use `${CLAUDE_PLUGIN_ROOT}` para archivos agrupados en el plugin, `${CLAUDE_PLUGIN_DATA}` para [estado persistente](/es/plugins-reference#persistent-data-directory) que sobrevive a las actualizaciones de plugins, y `${CLAUDE_PROJECT_DIR}` para la raíz del proyecto estable

410* **Acceso a variables de entorno del usuario**: Acceso a las mismas variables de entorno que los servidores configurados manualmente222* **Acceso a variables de entorno del usuario**: Acceso a las mismas variables de entorno que los servidores configurados manualmente

411* **Múltiples tipos de transporte**: Soporte para transportes stdio, SSE e HTTP (el soporte de transporte puede variar según el servidor)223* **Múltiples tipos de transporte**: Soporte para transportes stdio, SSE e HTTP (el soporte de transporte puede variar según el servidor)

412 224 


646 458 

647Muchos servidores MCP basados en la nube requieren autenticación. Claude Code admite OAuth 2.0 para conexiones seguras.459Muchos servidores MCP basados en la nube requieren autenticación. Claude Code admite OAuth 2.0 para conexiones seguras.

648 460 

461Claude Code marca un servidor remoto como que requiere autenticación cuando el servidor responde con `401 Unauthorized` y un encabezado `WWW-Authenticate` que apunta a su servidor de autorización. Cualquier servidor personalizado que devuelva esa respuesta obtiene el mismo flujo de autenticación `/mcp` que cualquier otro servidor remoto.

462 

649<Steps>463<Steps>

650 <Step title="Agregar el servidor que requiere autenticación">464 <Step title="Agregar el servidor que requiere autenticación">

651 Por ejemplo:465 Por ejemplo:


762 576 

763### Anular el descubrimiento de metadatos de OAuth577### Anular el descubrimiento de metadatos de OAuth

764 578 

765Apunte Claude Code a una URL de metadatos de servidor de autorización OAuth específica para omitir la cadena de descubrimiento predeterminada. 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`.579Apunte 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`.

766 580 

767Establezca `authServerMetadataUrl` en el objeto `oauth` de la configuración de su servidor en `.mcp.json`:581Establezca `authServerMetadataUrl` en el objeto `oauth` de la configuración de su servidor en `.mcp.json`:

768 582 


1139 953 

1140### Configurar búsqueda de herramientas954### Configurar búsqueda de herramientas

1141 955 

1142Tool Search está habilitado de forma predeterminada: las herramientas MCP se difieren y se descubren bajo demanda. Está deshabilitado de forma predeterminada en Vertex AI, que no acepta el encabezado beta de búsqueda de herramientas, y 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 optar por participar. Esta característica requiere modelos que admitan bloques `tool_reference`: Sonnet 4 y posterior, u Opus 4 y posterior. Los modelos Haiku no admiten búsqueda de herramientas.956Tool Search está habilitado de forma predeterminada: las herramientas MCP se difieren y se descubren bajo demanda. Está deshabilitado de forma predeterminada en Vertex AI, que no acepta el encabezado beta de búsqueda de herramientas, y 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`. Si su proxy reenvía bloques `tool_reference`, establezca `ENABLE_TOOL_SEARCH` explícitamente para optar por participar. Esta característica requiere modelos que admitan bloques `tool_reference`: Sonnet 4 y posterior, u Opus 4 y posterior. Los modelos Haiku no admiten búsqueda de herramientas.

1143 957 

1144Controle el comportamiento de búsqueda de herramientas con la variable de entorno `ENABLE_TOOL_SEARCH`:958Controle el comportamiento de búsqueda de herramientas con la variable de entorno `ENABLE_TOOL_SEARCH`:

1145 959 

1146| Valor | Comportamiento |960| Valor | Comportamiento |

1147| :--------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |961| :--------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

1148| (sin establecer) | Todas las herramientas MCP diferidas y cargadas bajo demanda. Recurre a carga de antemano en Vertex AI o cuando `ANTHROPIC_BASE_URL` es un host que no es de primera parte |962| (sin establecer) | Todas las herramientas MCP diferidas y cargadas bajo demanda. Recurre a carga de antemano en Vertex AI o cuando `ANTHROPIC_BASE_URL` es un host que no es de primera parte |

1149| `true` | Todas las herramientas MCP diferidas, incluyendo en Vertex AI y para `ANTHROPIC_BASE_URL` que no es de primera parte |963| `true` | Todas las herramientas MCP diferidas. Claude Code envía el encabezado beta incluso en Vertex AI y a través de proxies. Las solicitudes fallan si el backend no admite bloques `tool_reference` |

1150| `auto` | Modo de umbral: las herramientas se cargan de antemano si se ajustan dentro del 10% de la ventana de contexto, diferidas de lo contrario |964| `auto` | Modo de umbral: las herramientas se cargan de antemano si se ajustan dentro del 10% de la ventana de contexto, diferidas de lo contrario |

1151| `auto:<N>` | Modo de umbral con un porcentaje personalizado, donde `<N>` es 0-100 (p. ej., `auto:5` para 5%) |965| `auto:<N>` | Modo de umbral con un porcentaje personalizado, donde `<N>` es 0-100 (p. ej., `auto:5` para 5%) |

1152| `false` | Todas las herramientas MCP cargadas de antemano, sin diferimiento |966| `false` | Todas las herramientas MCP cargadas de antemano, sin diferimiento |

memory.md +17 −1

Details

26| :------------------- | :----------------------------------------------------------------------- | :----------------------------------------------------------------------------------- |26| :------------------- | :----------------------------------------------------------------------- | :----------------------------------------------------------------------------------- |

27| **Quién lo escribe** | Usted | Claude |27| **Quién lo escribe** | Usted | Claude |

28| **Qué contiene** | Instrucciones y reglas | Aprendizajes y patrones |28| **Qué contiene** | Instrucciones y reglas | Aprendizajes y patrones |

29| **Alcance** | Proyecto, usuario u organización | Por worktree |29| **Alcance** | Proyecto, usuario u organización | Por repositorio, compartido entre worktrees |

30| **Se carga en** | Cada sesión | Cada sesión (primeras 200 líneas o 25KB) |30| **Se carga en** | Cada sesión | Cada sesión (primeras 200 líneas o 25KB) |

31| **Usar para** | Estándares de codificación, flujos de trabajo, arquitectura del proyecto | Comandos de compilación, información de depuración, preferencias que Claude descubre |31| **Usar para** | Estándares de codificación, flujos de trabajo, arquitectura del proyecto | Comandos de compilación, información de depuración, preferencias que Claude descubre |

32 32 


272 </Step>272 </Step>

273</Steps>273</Steps>

274 274 

275La clave `claudeMd` le permite poner contenido CLAUDE.md gestionado directamente dentro de `managed-settings.json` en lugar de implementar un archivo separado.

276 

277**Alcance**: cada sesión de Claude Code en la máquina, en cada repositorio. Para orientación específica del repositorio, confirme un CLAUDE.md de proyecto en su lugar.

278 

279**Precedencia**: igual que un archivo CLAUDE.md gestionado. Se carga antes que CLAUDE.md de usuario y proyecto.

280 

281**Dónde se respeta**: solo configuración gestionada y de política. Establecer `claudeMd` en configuración de usuario, proyecto o local no tiene efecto.

282 

283El ejemplo a continuación agrega instrucciones conductuales directamente en un archivo de configuración gestionada:

284 

285```json theme={null}

286{

287 "claudeMd": "Always run `make lint` before committing.\nNever push directly to main."

288}

289```

290 

275Un CLAUDE.md gestionado y [configuración gestionada](/es/settings#settings-files) sirven para propósitos diferentes. Use configuración para aplicación técnica y CLAUDE.md para orientación conductual:291Un CLAUDE.md gestionado y [configuración gestionada](/es/settings#settings-files) sirven para propósitos diferentes. Use configuración para aplicación técnica y CLAUDE.md para orientación conductual:

276 292 

277| Preocupación | Configurar en |293| Preocupación | Configurar en |

Details

166**`claude_code.llm_request`**166**`claude_code.llm_request`**

167 167 

168| Atributo | Descripción | Controlado Por |168| Atributo | Descripción | Controlado Por |

169| -------------------------------- | --------------------------------------------------------------------------------------------------------------------- | -------------- |169| -------------------------------- | --------------------------------------------------------------------------------------------------------------------------- | -------------- |

170| `model` | Identificador de modelo | |170| `model` | Identificador de modelo | |

171| `gen_ai.system` | Siempre `anthropic`. Convención semántica de GenAI de OpenTelemetry | |171| `gen_ai.system` | Siempre `anthropic`. Convención semántica de GenAI de OpenTelemetry | |

172| `gen_ai.request.model` | Mismo valor que `model`. Convención semántica de GenAI de OpenTelemetry | |172| `gen_ai.request.model` | Mismo valor que `model`. Convención semántica de GenAI de OpenTelemetry | |

173| `query_source` | Subsistema que emitió la solicitud, como `repl_main_thread` o un nombre de subagente | |173| `query_source` | Subsistema que emitió la solicitud, como `repl_main_thread` o un nombre de subagente | |

174| `agent_id` | Identificador del subagente o compañero que emitió la solicitud. Ausente en la sesión principal | |

175| `parent_agent_id` | Identificador del agente que generó este. Ausente para la sesión principal y para agentes generados directamente desde ella | |

174| `speed` | `fast` o `normal` | |176| `speed` | `fast` o `normal` | |

175| `llm_request.context` | `interaction`, `tool`, o `standalone` dependiendo del span padre | |177| `llm_request.context` | `interaction`, `tool`, o `standalone` dependiendo del span padre | |

176| `duration_ms` | Duración de pared incluyendo reintentos | |178| `duration_ms` | Duración de pared incluyendo reintentos | |


446* `query_source`: Categoría del subsistema que emitió la solicitud. Uno de `"main"`, `"subagent"`, o `"auxiliary"`448* `query_source`: Categoría del subsistema que emitió la solicitud. Uno de `"main"`, `"subagent"`, o `"auxiliary"`

447* `speed`: `"fast"` cuando la solicitud utilizó modo rápido. Ausente de otra manera449* `speed`: `"fast"` cuando la solicitud utilizó modo rápido. Ausente de otra manera

448* `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.450* `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.

451* `agent.name`: Tipo de subagente que emitió la solicitud. Los nombres de agentes integrados y de plugins del mercado oficial aparecen tal cual. Otros nombres de agentes definidos por el usuario se reemplazan con `"custom"`. Ausente cuando la solicitud no fue emitida por un tipo de subagente nombrado.

452* `skill.name`: Habilidad activa para la solicitud, establecida por la herramienta Skill, un comando `/`, o heredada por un subagente generado. Los nombres de habilidades integradas, agrupadas, definidas por el usuario y de plugins del mercado oficial aparecen tal cual. Los nombres de habilidades de plugins de terceros se reemplazan con `"third-party"`. Ausente cuando no hay habilidad activa.

453* `plugin.name`: Plugin propietario cuando la habilidad activa o subagente es proporcionado por un plugin. Los nombres de plugins del mercado oficial aparecen tal cual. Los nombres de plugins de terceros se reemplazan con `"third-party"`. Ausente cuando ni la habilidad ni el subagente tienen un plugin propietario.

454* `marketplace.name`: Mercado desde el que se instaló el plugin propietario. Solo se emite para plugins del mercado oficial. Ausente de otra manera.

449 455 

450#### Contador de tokens456#### Contador de tokens

451 457 


459* `query_source`: Categoría del subsistema que emitió la solicitud. Uno de `"main"`, `"subagent"`, o `"auxiliary"`465* `query_source`: Categoría del subsistema que emitió la solicitud. Uno de `"main"`, `"subagent"`, o `"auxiliary"`

460* `speed`: `"fast"` cuando la solicitud utilizó modo rápido. Ausente de otra manera466* `speed`: `"fast"` cuando la solicitud utilizó modo rápido. Ausente de otra manera

461* `effort`: [Nivel de esfuerzo](/es/model-config#adjust-effort-level) aplicado a la solicitud. Consulta [Contador de costo](#cost-counter) para detalles.467* `effort`: [Nivel de esfuerzo](/es/model-config#adjust-effort-level) aplicado a la solicitud. Consulta [Contador de costo](#cost-counter) para detalles.

468* `agent.name`, `skill.name`, `plugin.name`, `marketplace.name`: Atribución de habilidad, plugin y agente para la solicitud. Consulta [Contador de costo](#cost-counter) para definiciones y comportamiento de redacción.

462 469 

463#### Contador de decisión de herramienta de edición de código470#### Contador de decisión de herramienta de edición de código

464 471 


647* `tool_use_id`: Identificador único para esta invocación de herramienta. Coincide con el `tool_use_id` pasado a hooks, permitiendo correlación entre eventos OTel y datos capturados por hooks.654* `tool_use_id`: Identificador único para esta invocación de herramienta. Coincide con el `tool_use_id` pasado a hooks, permitiendo correlación entre eventos OTel y datos capturados por hooks.

648* `decision`: Ya sea `"accept"` o `"reject"`655* `decision`: Ya sea `"accept"` o `"reject"`

649* `source`: Fuente de decisión:656* `source`: Fuente de decisión:

650 * `"config"`: Decidido automáticamente sin solicitar, basado en configuración del proyecto, política administrada empresarial, banderas `--allowedTools` o `--disallowedTools`, el modo de permiso activo, o porque la herramienta es inherentemente segura.657 * `"config"`: Decidido automáticamente sin solicitar, basado en configuración del proyecto, reglas de permiso en la configuración personal del usuario, política administrada empresarial, banderas `--allowedTools` o `--disallowedTools`, el modo de permiso activo, una concesión con alcance de sesión de un mensaje anterior en la misma sesión de CLI interactiva, o porque la herramienta es inherentemente segura. El evento no indica cuál de estas fuentes coincidió.

651 * `"hook"`: Un hook `PreToolUse` o `PermissionRequest` devolvió la decisión.658 * `"hook"`: Un hook `PreToolUse` o `PermissionRequest` devolvió la decisión.

652 * `"user_permanent"`: Se emite cuando el usuario eligió "Siempre permitir" cuando se le solicitó, guardando una regla en su configuración personal. También se emite para llamadas posteriores que coincidan con esa regla guardada. Se trata como una aceptación.659 * `"user_permanent"`: Se emite cuando el usuario eligió "Sí, y no preguntes de nuevo para ..." en un mensaje de permiso, que guarda una regla de permiso en su configuración personal. En la CLI interactiva esto se emite solo para esa opción en sí; las llamadas posteriores que coincidan con la regla guardada emiten `"config"` en su lugar. En sesiones del SDK de Agent o no interactivas `-p`, tanto la opción inicial como las coincidencias de regla posteriores emiten `"user_permanent"`. Se trata como una aceptación.

653 * `"user_temporary"`: Se emite cuando el usuario eligió "Sí" o "Sí, para esta sesión" cuando se le solicitó, sin guardar una regla. También se emite para llamadas posteriores en la misma sesión que coincidan con esa permisión con alcance de sesión. Se trata como una aceptación.660 * `"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.

654 * `"user_abort"`: Se emite cuando el usuario descartó el mensaje de permiso sin responder. Se trata como un rechazo.661 * `"user_abort"`: Se emite cuando el usuario descartó el mensaje de permiso sin responder. Se trata como un rechazo.

655 * `"user_reject"`: Se emite cuando el usuario eligió "No" cuando se le solicitó, o una llamada coincidió con una regla de denegación en su configuración personal. Se trata como un rechazo.662 * `"user_reject"`: Se emite cuando el usuario eligió "No" cuando se le solicitó, o una llamada coincidió con una regla de denegación en su configuración personal. Se trata como un rechazo.

656 663 


741* `plugin.version`: Versión del plugin cuando se declara en la entrada del mercado. Para mercados de terceros esto se incluye solo cuando `OTEL_LOG_TOOL_DETAILS=1`748* `plugin.version`: Versión del plugin cuando se declara en la entrada del mercado. Para mercados de terceros esto se incluye solo cuando `OTEL_LOG_TOOL_DETAILS=1`

742* `marketplace.name`: Mercado desde el que se instaló el plugin. Para mercados de terceros esto se incluye solo cuando `OTEL_LOG_TOOL_DETAILS=1`749* `marketplace.name`: Mercado desde el que se instaló el plugin. Para mercados de terceros esto se incluye solo cuando `OTEL_LOG_TOOL_DETAILS=1`

743 750 

751#### Evento de plugin cargado

752 

753Se 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í.

754 

755**Nombre del Evento**: `claude_code.plugin_loaded`

756 

757**Atributos**:

758 

759* Todos los [atributos estándar](#standard-attributes)

760* `event.name`: `"plugin_loaded"`

761* `event.timestamp`: Marca de tiempo ISO 8601

762* `event.sequence`: Contador monotónicamente creciente para ordenar eventos dentro de una sesión

763* `plugin.name`: nombre del plugin. Para plugins fuera del mercado oficial y paquete integrado el valor es `"third-party"` a menos que `OTEL_LOG_TOOL_DETAILS=1`

764* `marketplace.name`: mercado desde el que se instaló el plugin, cuando se conoce. Redactado a `"third-party"` bajo la misma condición que `plugin.name`

765* `plugin.version`: versión del manifiesto del plugin. Se incluye solo cuando el nombre no está redactado y el manifiesto declara una versión

766* `plugin.scope`: categoría de procedencia para el plugin: `"official"`, `"org"`, `"user-local"`, o `"default-bundle"`

767* `enabled_via`: cómo el plugin llegó a estar habilitado: `"default-enable"`, `"org-policy"`, `"seed-mount"`, o `"user-install"`

768* `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 nombres

769* `has_hooks`: si el plugin contribuye hooks

770* `has_mcp`: si el plugin contribuye servidores MCP

771* `skill_path_count`: número de directorios de habilidades que declara el plugin

772* `command_path_count`: número de directorios de comandos que declara el plugin

773* `agent_path_count`: número de directorios de agentes que declara el plugin

774 

744#### Evento de habilidad activada775#### Evento de habilidad activada

745 776 

746Se 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 `/`.777Se 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 `/`.


793* `total_retry_duration_ms`: Tiempo total de pared en todos los intentos824* `total_retry_duration_ms`: Tiempo total de pared en todos los intentos

794* `speed`: `"fast"` o `"normal"`825* `speed`: `"fast"` o `"normal"`

795 826 

827#### Evento de hook registrado

828 

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

830 

831**Nombre del Evento**: `claude_code.hook_registered`

832 

833**Atributos**:

834 

835* Todos los [atributos estándar](#standard-attributes)

836* `event.name`: `"hook_registered"`

837* `event.timestamp`: Marca de tiempo ISO 8601

838* `event.sequence`: Contador monotónicamente creciente para ordenar eventos dentro de una sesión

839* `hook_event`: tipo de evento de hook, como `"PreToolUse"` o `"PostToolUse"`

840* `hook_type`: tipo de implementación de hook: `"command"`, `"prompt"`, `"mcp_tool"`, `"http"`, o `"agent"`

841* `hook_source`: dónde se define el hook: `"userSettings"`, `"projectSettings"`, `"localSettings"`, `"flagSettings"`, `"policySettings"`, o `"pluginHook"`

842* `hook_matcher` (cuando `OTEL_LOG_TOOL_DETAILS=1`): la cadena de coincidencia de la configuración del hook, cuando se establece una

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

844* `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 nombres

845 

796#### Evento de inicio de ejecución de hook846#### Evento de inicio de ejecución de hook

797 847 

798Se registra cuando uno o más hooks comienzan a ejecutarse para un evento de hook.848Se registra cuando uno o más hooks comienzan a ejecutarse para un evento de hook.


855* `post_tokens`: Recuento aproximado de tokens después de compactación905* `post_tokens`: Recuento aproximado de tokens después de compactación

856* `error`: Mensaje de error cuando la compactación falló906* `error`: Mensaje de error cuando la compactación falló

857 907 

908#### Evento de encuesta de retroalimentación

909 

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

911 

912**Nombre del Evento**: `claude_code.feedback_survey`

913 

914**Atributos**:

915 

916* Todos los [atributos estándar](#standard-attributes)

917* `event.name`: `"feedback_survey"`

918* `event.timestamp`: Marca de tiempo ISO 8601

919* `event.sequence`: Contador monotónicamente creciente para ordenar eventos dentro de una sesión

920* `event_type`: Evento del ciclo de vida de la encuesta, por ejemplo `"appeared"`, `"responded"`, o `"transcript_prompt_appeared"`

921* `appearance_id`: ID único que vincula los eventos emitidos para una instancia de encuesta

922* `survey_type`: Qué encuesta produjo el evento. `"session"` es el mensaje de calificación "¿Cómo está Claude?"

923* `response`: La selección del usuario en eventos `responded`

924* `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 flota

925 

858## Interpretar datos de métricas y eventos926## Interpretar datos de métricas y eventos

859 927 

860Las métricas y eventos exportados admiten una variedad de análisis:928Las métricas y eventos exportados admiten una variedad de análisis:


862### Monitoreo de uso930### Monitoreo de uso

863 931 

864| Métrica | Oportunidad de Análisis |932| Métrica | Oportunidad de Análisis |

865| ------------------------------------------------------------- | ---------------------------------------------------------------- |933| ------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- |

866| `claude_code.token.usage` | Desglosar por `type` (entrada/salida), usuario, equipo o modelo |934| `claude_code.token.usage` | Desglosar por `type` (entrada/salida), usuario, equipo, modelo, `skill.name`, `plugin.name`, o `agent.name` |

867| `claude_code.session.count` | Rastrear adopción y compromiso a lo largo del tiempo |935| `claude_code.session.count` | Rastrear adopción y compromiso a lo largo del tiempo |

868| `claude_code.lines_of_code.count` | Medir productividad rastreando adiciones/eliminaciones de código |936| `claude_code.lines_of_code.count` | Medir productividad rastreando adiciones/eliminaciones de código |

869| `claude_code.commit.count` & `claude_code.pull_request.count` | Entender el impacto en los flujos de trabajo de desarrollo |937| `claude_code.commit.count` & `claude_code.pull_request.count` | Entender el impacto en los flujos de trabajo de desarrollo |


874 942 

875* Rastrear tendencias de uso entre equipos o individuos943* Rastrear tendencias de uso entre equipos o individuos

876* Identificar sesiones de alto uso para optimización944* Identificar sesiones de alto uso para optimización

945* Atribuir gastos a habilidades, plugins, o tipos de subagente específicos a través de los atributos `skill.name`, `plugin.name`, y `agent.name`

877 946 

878<Note>947<Note>

879 Las métricas de costo son aproximaciones. Para datos de facturación oficiales, consulta tu proveedor de API (Claude Console, Amazon Bedrock, o Google Cloud Vertex).948 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).

Details

14 14 

15El estilo de salida **Default** de Claude Code es el mensaje del sistema existente, diseñado para ayudarle a completar tareas de ingeniería de software de manera eficiente.15El estilo de salida **Default** de Claude Code es el mensaje del sistema existente, diseñado para ayudarle a completar tareas de ingeniería de software de manera eficiente.

16 16 

17Hay dos estilos de salida integrados adicionales enfocados en enseñarle la base de código y cómo funciona Claude:17Hay tres estilos de salida integrados adicionales:

18 

19* **Proactive**: Claude se ejecuta inmediatamente, realiza suposiciones razonables en lugar de pausarse para decisiones rutinarias, y prefiere la acción sobre la planificación. Esto aplica la misma orientación que [modo automático](/es/permission-modes#eliminate-prompts-with-auto-mode) sin cambiar su modo de permisos, por lo que aún ve mensajes de permisos antes de que se ejecuten las herramientas.

18 20 

19* **Explanatory**: Proporciona "Insights" educativos entre ayudarle a completar tareas de ingeniería de software. Le ayuda a entender las opciones de implementación y los patrones de la base de código.21* **Explanatory**: Proporciona "Insights" educativos entre ayudarle a completar tareas de ingeniería de software. Le ayuda a entender las opciones de implementación y los patrones de la base de código.

20 22 


88 90 

89### Estilos de salida vs. CLAUDE.md vs. --append-system-prompt91### Estilos de salida vs. CLAUDE.md vs. --append-system-prompt

90 92 

91Los estilos de salida "apagan" completamente las partes del mensaje del sistema predeterminado de Claude Code específicas de la ingeniería de software. Ni CLAUDE.md ni `--append-system-prompt` editan el mensaje del sistema predeterminado de Claude Code. CLAUDE.md agrega el contenido como un mensaje de usuario *después* del mensaje del sistema predeterminado de Claude Code. `--append-system-prompt` agrega el contenido al mensaje del sistema.93Elija según si Claude debe dejar de actuar como asistente de codificación o mantener su rol predeterminado y aprender más. Los estilos de salida reemplazan las partes de ingeniería de software del mensaje del sistema de Claude Code con su propio rol y voz, así que use uno cuando Claude deba adoptar una identidad diferente, como un editor de escritura o un asistente de análisis de datos. CLAUDE.md y `--append-system-prompt` mantienen la identidad predeterminada de Claude Code y se agregan a ella, así que úselos cuando Claude deba seguir siendo un asistente de codificación que también sigue sus convenciones de proyecto o instrucciones adicionales.

94 

95Los mecanismos también difieren. Los estilos de salida editan el mensaje del sistema directamente. CLAUDE.md agrega su contenido como un mensaje de usuario después del mensaje del sistema. `--append-system-prompt` agrega contenido al final del mensaje del sistema sin eliminar nada.

92 96 

93### Estilos de salida vs. [Agents](/es/sub-agents)97### Estilos de salida vs. [Agents](/es/sub-agents)

94 98 

95Los estilos de salida afectan directamente el bucle del agente principal y solo afectan el mensaje del sistema. Los agentes se invocan para manejar tareas específicas y pueden incluir configuraciones adicionales como el modelo a usar, las herramientas disponibles y algo de contexto sobre cuándo usar el agente.99Use un estilo de salida para cambiar cómo responde la conversación principal en cada sesión. Use un [subagent](/es/sub-agents) cuando desee un ayudante con alcance separado al que la conversación principal delegue. Los estilos de salida afectan solo el mensaje del sistema del bucle del agente principal. Los agentes manejan tareas específicas y pueden llevar su propio modelo, herramientas y contexto sobre cuándo invocarlos.

96 100 

97### Estilos de salida vs. [Skills](/es/skills)101### Estilos de salida vs. [Skills](/es/skills)

98 102 

Details

118 118 

119## Analizar antes de editar con modo de planificación119## Analizar antes de editar con modo de planificación

120 120 

121El modo de planificación le dice a Claude que investigue y proponga cambios sin hacerlos. Claude lee archivos, ejecuta comandos de shell para explorar, y escribe un plan, pero no edita tu fuente. Los avisos de permisos aún se aplican igual que en el modo predeterminado.121El modo de planificación le dice a Claude que investigue y proponga cambios sin hacerlos. Claude lee archivos, ejecuta comandos de shell para explorar, y escribe un plan, pero no edita su fuente. Los avisos de permisos aún se aplican igual que en el modo predeterminado.

122 122 

123Entra en modo de planificación presionando `Shift+Tab` o prefijando una solicitud única con `/plan`. También puedes comenzar en modo de planificación desde la CLI:123Entra en modo de planificación presionando `Shift+Tab` o prefijando una solicitud única con `/plan`. También puede comenzar en modo de planificación desde la CLI:

124 124 

125```bash theme={null}125```bash theme={null}

126claude --permission-mode plan126claude --permission-mode plan

127```127```

128 128 

129Presiona `Shift+Tab` de nuevo para salir del modo de planificación sin aprobar un plan.129Presione `Shift+Tab` de nuevo para salir del modo de planificación sin aprobar un plan.

130 130 

131Cuando el plan está listo, Claude lo presenta y pregunta cómo proceder. Desde ese aviso puedes:131### Revisar y aprobar un plan

132 

133Cuando el plan está listo, Claude lo presenta y pregunta cómo proceder. Desde ese aviso puede:

132 134 

133* Aprobar e iniciar en modo automático135* Aprobar e iniciar en modo automático

134* Aprobar y aceptar ediciones136* Aprobar y aceptar ediciones


136* Continuar planificando con retroalimentación138* Continuar planificando con retroalimentación

137* Refinar con [Ultraplan](/es/ultraplan) para revisión basada en navegador139* Refinar con [Ultraplan](/es/ultraplan) para revisión basada en navegador

138 140 

139Cada opción de aprobación también ofrece borrar el contexto de planificación primero.141Aprobando un plan se sale del modo de planificación y se cambia la sesión al modo de permisos que describe cada opción de aprobación, por lo que Claude comienza a editar. Para planificar de nuevo, vuelva al modo de planificación con `Shift+Tab`, o prefije su siguiente solicitud con `/plan`.

142 

143Presione `Ctrl+G` para abrir el plan propuesto en su editor de texto predeterminado y editarlo directamente antes de que Claude continúe. Cuando [`showClearContextOnPlanAccept`](/es/settings#available-settings) está habilitado, cada opción de aprobación también ofrece borrar el contexto de planificación primero.

144 

145Aceptar un plan también nombra la sesión a partir del contenido del plan automáticamente, a menos que ya haya establecido un nombre con `--name` o `/rename`.

146 

147### Establecer el modo de planificación como predeterminado

148 

149Para hacer que el modo de planificación sea el predeterminado para un proyecto, establezca `defaultMode` en `.claude/settings.json`:

150 

151```json theme={null}

152{

153 "permissions": {

154 "defaultMode": "plan"

155 }

156}

157```

140 158 

141## Eliminar avisos con modo automático159## Eliminar avisos con modo automático

142 160 


144 El modo automático requiere Claude Code v2.1.83 o posterior.162 El modo automático requiere Claude Code v2.1.83 o posterior.

145</Note>163</Note>

146 164 

147El 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 tu solicitud, apunte a infraestructura no reconocida, o parezca impulsada por contenido hostil que Claude leyó.165El 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ó.

166 

167El modo automático también instruye a Claude para ejecutar inmediatamente y minimizar preguntas aclaratorias. Para obtener ese comportamiento mientras mantiene avisos de permisos, establezca el [estilo de salida proactivo](/es/output-styles) en su lugar.

148 168 

149<Warning>169<Warning>

150 El modo automático es una vista previa de investigación. Reduce avisos pero no garantiza seguridad. Úsalo para tareas donde confías en la dirección general, no como reemplazo para revisión en operaciones sensibles.170 El modo automático es una vista previa de investigación. Reduce avisos pero no garantiza seguridad. Úselo para tareas donde confía en la dirección general, no como reemplazo para revisión en operaciones sensibles.

151</Warning>171</Warning>

152 172 

153El modo automático está disponible solo cuando tu cuenta cumple todos estos requisitos:173El modo automático está disponible solo cuando su cuenta cumple todos estos requisitos:

154 174 

155* **Plan**: Max, Team, Enterprise, o API. No disponible en Pro.175* **Plan**: Max, Team, Enterprise, o API. No disponible en Pro.

156* **Admin**: en Team y Enterprise, un administrador debe habilitarlo en [configuración de administrador de Claude Code](https://claude.ai/admin-settings/claude-code) antes de que los usuarios puedan activarlo. Los administradores también pueden bloquearlo estableciendo `permissions.disableAutoMode` a `"disable"` en [configuración administrada](/es/permissions#managed-settings).176* **Admin**: en Team y Enterprise, un administrador debe habilitarlo en [configuración de administrador de Claude Code](https://claude.ai/admin-settings/claude-code) antes de que los usuarios puedan activarlo. Los administradores también pueden bloquearlo estableciendo `permissions.disableAutoMode` a `"disable"` en [configuración administrada](/es/permissions#managed-settings).

157* **Modelo**: Claude Sonnet 4.6, Opus 4.6, u Opus 4.7 en planes Team, Enterprise y API; solo Claude Opus 4.7 en planes Max. Otros modelos, incluyendo Haiku y modelos claude-3, no son compatibles.177* **Modelo**: Claude Sonnet 4.6, Opus 4.6, u Opus 4.7 en planes Team, Enterprise y API; solo Claude Opus 4.7 en planes Max. Otros modelos, incluyendo Haiku y modelos claude-3, no son compatibles.

158* **Proveedor**: Solo API de Anthropic. No disponible en Bedrock, Vertex, o Foundry.178* **Proveedor**: Solo API de Anthropic. No disponible en Bedrock, Vertex, o Foundry.

159 179 

160Si 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; consulta la [referencia de errores](/es/errors#auto-mode-cannot-determine-the-safety-of-an-action).180Si 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).

161 181 

162### Qué bloquea el clasificador por defecto182### Qué bloquea el clasificador por defecto

163 183 

164El clasificador confía en tu directorio de trabajo y en los remotos configurados de tu repositorio. Todo lo demás se trata como externo hasta que [configures infraestructura confiable](/es/auto-mode-config).184El clasificador confía en su directorio de trabajo y en los remotos configurados de su repositorio. Todo lo demás se trata como externo hasta que [configure infraestructura confiable](/es/auto-mode-config).

165 185 

166**Bloqueado por defecto**:186**Bloqueado por defecto**:

167 187 


176 196 

177**Permitido por defecto**:197**Permitido por defecto**:

178 198 

179* Operaciones de archivos locales en tu directorio de trabajo199* Operaciones de archivos locales en su directorio de trabajo

180* Instalar dependencias declaradas en tus archivos de bloqueo o manifiestos200* Instalar dependencias declaradas en sus archivos de bloqueo o manifiestos

181* Leer `.env` y enviar credenciales a su API coincidente201* Leer `.env` y enviar credenciales a su API coincidente

182* Solicitudes HTTP de solo lectura202* Solicitudes HTTP de solo lectura

183* Empujar a la rama en la que comenzaste o una que Claude creó203* Empujar a la rama en la que comenzó o una que Claude creó

184 204 

185Las solicitudes de acceso de red de sandbox se enrutan a través del clasificador en lugar de permitirse por defecto. Ejecuta `claude auto-mode defaults` para ver las listas de reglas completas. Si las acciones rutinarias se bloquean, un administrador puede añadir repositorios confiables, depósitos y servicios a través de la configuración `autoMode.environment`: consulta [Configurar modo automático](/es/auto-mode-config).205Las solicitudes de acceso de red de sandbox se enrutan a través del clasificador en lugar de permitirse por defecto. Ejecute `claude auto-mode defaults` para ver las listas de reglas completas. Si las acciones rutinarias se bloquean, un administrador puede añadir repositorios confiables, depósitos y servicios a través de la configuración `autoMode.environment`: consulte [Configurar modo automático](/es/auto-mode-config).

186 206 

187### Límites que estableces en la conversación207### Límites que establece en la conversación

188 208 

189El clasificador trata los límites que estableces en la conversación como una señal de bloqueo. Si le dices a Claude "no empujes" o "espera hasta que revise antes de desplegar", el clasificador bloquea acciones coincidentes incluso cuando las reglas predeterminadas las permitirían. Un límite permanece en vigor hasta que lo levantes en un mensaje posterior. El propio juicio de Claude de que se cumplió una condición no lo levanta.209El clasificador trata los límites que establece en la conversación como una señal de bloqueo. Si le dice a Claude "no empuje" o "espere hasta que revise antes de desplegar", el clasificador bloquea acciones coincidentes incluso cuando las reglas predeterminadas las permitirían. Un límite permanece en vigor hasta que lo levante en un mensaje posterior. El propio juicio de Claude de que se cumplió una condición no lo levanta.

190 210 

191Los límites no se almacenan como reglas. El clasificador los relee de la transcripción en cada verificación, por lo que un límite puede perderse si [la compactación de contexto](/es/costs#reduce-token-usage) elimina el mensaje que lo estableció. Para una garantía dura, añade una [regla de denegación](/es/permissions#permission-rule-syntax) en su lugar.211Los límites no se almacenan como reglas. El clasificador los relee de la transcripción en cada verificación, por lo que un límite puede perderse si [la compactación de contexto](/es/costs#reduce-token-usage) elimina el mensaje que lo estableció. Para una garantía dura, añada una [regla de denegación](/es/permissions#permission-rule-syntax) en su lugar.

192 212 

193### Cuándo el modo automático retrocede213### Cuándo el modo automático retrocede

194 214 

195Cada acción denegada muestra una notificación y aparece en `/permissions` bajo la pestaña Recientemente denegado, donde puedes presionar `r` para reintentar con una aprobación manual.215Cada acción denegada muestra una notificación y aparece en `/permissions` bajo la pestaña Recientemente denegado, donde puede presionar `r` para reintentar con una aprobación manual.

196 216 

197Si el clasificador bloquea una acción 3 veces seguidas o 20 veces en total, el modo automático se pausa y Claude Code reanuda la solicitud. Aprobar la acción solicitada reanuda el modo automático. Estos umbrales no son configurables. Cualquier acción permitida reinicia el contador consecutivo, mientras que el contador total persiste para la sesión y se reinicia solo cuando su propio límite desencadena un retroceso.217Si el clasificador bloquea una acción 3 veces seguidas o 20 veces en total, el modo automático se pausa y Claude Code reanuda la solicitud. Aprobar la acción solicitada reanuda el modo automático. Estos umbrales no son configurables. Cualquier acción permitida reinicia el contador consecutivo, mientras que el contador total persiste para la sesión y se reinicia solo cuando su propio límite desencadena un retroceso.

198 218 

199En [modo no interactivo](/es/headless) con la bandera `-p`, los bloqueos repetidos abortan la sesión ya que no hay usuario para solicitar.219En [modo no interactivo](/es/headless) con la bandera `-p`, los bloqueos repetidos abortan la sesión ya que no hay usuario para solicitar.

200 220 

201Los bloqueos repetidos generalmente significan que el clasificador carece de contexto sobre tu infraestructura. Usa `/feedback` para reportar falsos positivos, o haz que un administrador [configure infraestructura confiable](/es/auto-mode-config).221Los bloqueos repetidos generalmente significan que el clasificador carece de contexto sobre su infraestructura. Use `/feedback` para reportar falsos positivos, o haga que un administrador [configure infraestructura confiable](/es/auto-mode-config).

202 222 

203<AccordionGroup>223<AccordionGroup>

204 <Accordion title="Cómo el clasificador evalúa acciones">224 <Accordion title="Cómo el clasificador evalúa acciones">

205 Cada acción pasa por un orden de decisión fijo. El primer paso coincidente gana:225 Cada acción pasa por un orden de decisión fijo. El primer paso coincidente gana:

206 226 

207 1. Las acciones que coinciden con tus [reglas de permitir o denegar](/es/permissions#manage-permissions) se resuelven inmediatamente227 1. Las acciones que coinciden con sus [reglas de permitir o denegar](/es/permissions#manage-permissions) se resuelven inmediatamente

208 2. Las acciones de solo lectura y ediciones de archivos en tu directorio de trabajo se auto-aprueban, excepto escrituras en [rutas protegidas](#protected-paths)228 2. Las acciones de solo lectura y ediciones de archivos en su directorio de trabajo se auto-aprueban, excepto escrituras en [rutas protegidas](#protected-paths)

209 3. Todo lo demás va al clasificador229 3. Todo lo demás va al clasificador

210 4. Si el clasificador bloquea, Claude recibe la razón e intenta una alternativa230 4. Si el clasificador bloquea, Claude recibe la razón e intenta una alternativa

211 231 


216 * Comandos de ejecución del gestor de paquetes236 * Comandos de ejecución del gestor de paquetes

217 * Reglas `Agent` de permitir237 * Reglas `Agent` de permitir

218 238 

219 Las reglas estrechas como `Bash(npm test)` se mantienen. Las reglas descartadas se restauran cuando sales del modo automático.239 Las reglas estrechas como `Bash(npm test)` se mantienen. Las reglas descartadas se restauran cuando sale del modo automático.

220 240 

221 El clasificador ve mensajes de usuario, llamadas de herramientas, y tu contenido de CLAUDE.md. Los resultados de herramientas se eliminan, por lo que el contenido hostil en un archivo o página web no puede manipularlo directamente. Una sonda separada del lado del servidor escanea los resultados de herramientas entrantes y marca contenido sospechoso antes de que Claude lo lea. Para más sobre cómo funcionan estas capas juntas, consulta el [anuncio del modo automático](https://claude.com/blog/auto-mode) y la [inmersión profunda de ingeniería](https://www.anthropic.com/engineering/claude-code-auto-mode).241 El clasificador ve mensajes de usuario, llamadas de herramientas, y su contenido de CLAUDE.md. Los resultados de herramientas se eliminan, por lo que el contenido hostil en un archivo o página web no puede manipularlo directamente. Una sonda separada del lado del servidor escanea los resultados de herramientas entrantes y marca contenido sospechoso antes de que Claude lo lea. Para más sobre cómo funcionan estas capas juntas, consulte el [anuncio del modo automático](https://claude.com/blog/auto-mode) y la [inmersión profunda de ingeniería](https://www.anthropic.com/engineering/claude-code-auto-mode).

222 </Accordion>242 </Accordion>

223 243 

224 <Accordion title="Cómo el modo automático maneja subagentes">244 <Accordion title="Cómo el modo automático maneja subagentes">


230 </Accordion>250 </Accordion>

231 251 

232 <Accordion title="Costo y latencia">252 <Accordion title="Costo y latencia">

233 El clasificador se ejecuta en un modelo configurado por servidor que es independiente de tu selección de `/model`, por lo que cambiar modelos no cambia la disponibilidad del clasificador. Las llamadas del clasificador cuentan hacia tu uso de tokens. Cada verificación envía una porción de la transcripción más la acción pendiente, añadiendo un viaje de ida y vuelta antes de la ejecución. Las lecturas y ediciones de directorio de trabajo fuera de rutas protegidas omiten el clasificador, por lo que la sobrecarga proviene principalmente de comandos de shell y operaciones de red.253 El clasificador se ejecuta en un modelo configurado por servidor que es independiente de su selección de `/model`, por lo que cambiar modelos no cambia la disponibilidad del clasificador. Las llamadas del clasificador cuentan hacia su uso de tokens. Cada verificación envía una porción de la transcripción más la acción pendiente, añadiendo un viaje de ida y vuelta antes de la ejecución. Las lecturas y ediciones de directorio de trabajo fuera de rutas protegidas omiten el clasificador, por lo que la sobrecarga proviene principalmente de comandos de shell y operaciones de red.

234 </Accordion>254 </Accordion>

235</AccordionGroup>255</AccordionGroup>

236 256 


256 276 

257La bandera `--dangerously-skip-permissions` es equivalente.277La bandera `--dangerously-skip-permissions` es equivalente.

258 278 

279En Linux y macOS, Claude Code se niega a iniciarse en este modo cuando se ejecuta como root o bajo `sudo`:

280 

281```text theme={null}

282--dangerously-skip-permissions cannot be used with root/sudo privileges for security reasons

283```

284 

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

286 

259<Warning>287<Warning>

260 `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).288 `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).

261</Warning>289</Warning>

permissions.md +5 −1

Details

28 28 

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

30 30 

31<Note>

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

33</Note>

34 

31## Modos de permisos35## Modos de permisos

32 36 

33Claude Code admite varios modos de permisos que controlan cómo se aprueban las herramientas. Consulte [Permission modes](/es/permission-modes) para saber cuándo usar cada uno. Establezca `defaultMode` en sus [archivos de configuración](/es/settings#settings-files):37Claude Code admite varios modos de permisos que controlan cómo se aprueban las herramientas. Consulte [Permission modes](/es/permission-modes) para saber cuándo usar cada uno. Establezca `defaultMode` en sus [archivos de configuración](/es/settings#settings-files):


153 157 

154 * **Restringir herramientas de red de Bash**: use reglas de negación para bloquear `curl`, `wget` y comandos similares, luego use la herramienta WebFetch con permiso `WebFetch(domain:github.com)` para dominios permitidos158 * **Restringir herramientas de red de Bash**: use reglas de negación para bloquear `curl`, `wget` y comandos similares, luego use la herramienta WebFetch con permiso `WebFetch(domain:github.com)` para dominios permitidos

155 * **Usar hooks PreToolUse**: implemente un hook que valide URLs en comandos Bash y bloquee dominios no permitidos159 * **Usar hooks PreToolUse**: implemente un hook que valide URLs en comandos Bash y bloquee dominios no permitidos

156 * Instruir a Claude Code sobre sus patrones curl permitidos a través de CLAUDE.md160 * **Agregar orientación CLAUDE.md**: describa sus patrones curl permitidos en `CLAUDE.md`. Esto forma lo que Claude intenta pero no aplica un límite, así que emparéjelo con una de las opciones anteriores

157 161 

158 Tenga en cuenta que usar WebFetch solo no previene el acceso a la red. Si se permite Bash, Claude aún puede usar `curl`, `wget` u otras herramientas para alcanzar cualquier URL.162 Tenga en cuenta que usar WebFetch solo no previene el acceso a la red. Si se permite Bash, Claude aún puede usar `curl`, `wget` u otras herramientas para alcanzar cualquier URL.

159</Warning>163</Warning>

plugins.md +6 −0

Details

299claude --plugin-dir ./my-plugin299claude --plugin-dir ./my-plugin

300```300```

301 301 

302La bandera también acepta un archivo `.zip` del directorio del plugin, que requiere Claude Code v2.1.128 o posterior.

303 

304```bash theme={null}

305claude --plugin-dir ./my-plugin.zip

306```

307 

302Cuando un plugin `--plugin-dir` tiene el mismo nombre que un plugin de marketplace instalado, la copia local tiene prioridad para esa sesión. Esto le permite probar cambios en un plugin que ya tiene instalado sin desinstalarlo primero. Los plugins de marketplace forzados a estar habilitados por configuraciones administradas son la única excepción y no pueden ser anulados.308Cuando un plugin `--plugin-dir` tiene el mismo nombre que un plugin de marketplace instalado, la copia local tiene prioridad para esa sesión. Esto le permite probar cambios en un plugin que ya tiene instalado sin desinstalarlo primero. Los plugins de marketplace forzados a estar habilitados por configuraciones administradas son la única excepción y no pueden ser anulados.

303 309 

304A medida que haga cambios en su plugin, ejecute `/reload-plugins` para recoger las actualizaciones sin reiniciar. Esto recarga plugins, skills, agentes, hooks, servidores MCP de plugin y servidores LSP de plugin. Pruebe los componentes de su plugin:310A medida que haga cambios en su plugin, ejecute `/reload-plugins` para recoger las actualizaciones sin reiniciar. Esto recarga plugins, skills, agentes, hooks, servidores MCP de plugin y servidores LSP de plugin. Pruebe los componentes de su plugin:

Details

97 "hooks": [97 "hooks": [

98 {98 {

99 "type": "command",99 "type": "command",

100 "command": "${CLAUDE_PLUGIN_ROOT}/scripts/format-code.sh"100 "command": "\"${CLAUDE_PLUGIN_ROOT}\"/scripts/format-code.sh"

101 }101 }

102 ]102 ]

103 }103 }


289[289[

290 {290 {

291 "name": "deploy-status",291 "name": "deploy-status",

292 "command": "${CLAUDE_PLUGIN_ROOT}/scripts/poll-deploy.sh ${user_config.api_endpoint}",292 "command": "\"${CLAUDE_PLUGIN_ROOT}\"/scripts/poll-deploy.sh ${user_config.api_endpoint}",

293 "description": "Cambios de estado de implementación"293 "description": "Cambios de estado de implementación"

294 },294 },

295 {295 {


317| :----- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |317| :----- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

318| `when` | Controla cuándo se inicia el monitor. `"always"` lo inicia al inicio de la sesión y en la recarga del plugin, y es el predeterminado. `"on-skill-invoke:<skill-name>"` lo inicia la primera vez que se distribuye la skill nombrada en este plugin |318| `when` | Controla cuándo se inicia el monitor. `"always"` lo inicia al inicio de la sesión y en la recarga del plugin, y es el predeterminado. `"on-skill-invoke:<skill-name>"` lo inicia la primera vez que se distribuye la skill nombrada en este plugin |

319 319 

320El valor `command` soporta las mismas [sustituciones de variables](#environment-variables) que las configuraciones de servidores MCP y LSP: `${CLAUDE_PLUGIN_ROOT}`, `${CLAUDE_PLUGIN_DATA}`, `${user_config.*}` y cualquier `${ENV_VAR}` del entorno. Prefije el comando con `cd "${CLAUDE_PLUGIN_ROOT}" && ` si el script necesita ejecutarse desde el directorio del plugin.320El valor `command` soporta las mismas [sustituciones de variables](#environment-variables) que las configuraciones de servidores MCP y LSP: `${CLAUDE_PLUGIN_ROOT}`, `${CLAUDE_PLUGIN_DATA}`, `${CLAUDE_PROJECT_DIR}`, `${user_config.*}` y cualquier `${ENV_VAR}` del entorno. Prefije el comando con `cd "${CLAUDE_PLUGIN_ROOT}" && ` si el script necesita ejecutarse desde el directorio del plugin.

321 321 

322Deshabilitar un plugin a mitad de sesión no detiene los monitores que ya se están ejecutando. Se detienen cuando termina la sesión.322Deshabilitar un plugin a mitad de sesión no detiene los monitores que ya se están ejecutando. Se detienen cuando termina la sesión.

323 323 


540 540 

541### Variables de entorno541### Variables de entorno

542 542 

543Claude Code proporciona dos variables para hacer referencia a rutas de plugins. Ambas se sustituyen en línea en cualquier lugar donde aparezcan en contenido de skills, contenido de agents, comandos de hooks, comandos de monitores y configuraciones de servidores MCP o LSP. Ambas también se exportan como variables de entorno a procesos de hooks y subprocesos de servidores MCP o LSP.543Claude Code proporciona tres variables para hacer referencia a rutas. Todas se sustituyen en línea en cualquier lugar donde aparezcan en contenido de skills, contenido de agents, comandos de hooks, comandos de monitores y configuraciones de servidores MCP o LSP. Todas también se exportan como variables de entorno a procesos de hooks y subprocesos de servidores MCP o LSP.

544 544 

545**`${CLAUDE_PLUGIN_ROOT}`**: la ruta absoluta al directorio de instalación de tu plugin. Úsala para hacer referencia a scripts, binarios y archivos de configuración incluidos con el plugin. Esta ruta cambia cuando se actualiza el plugin. El directorio de la versión anterior permanece en el disco durante aproximadamente siete días después de una actualización antes de la limpieza, pero trátalo como efímero y no escribas estado aquí.545**`${CLAUDE_PLUGIN_ROOT}`**: la ruta absoluta al directorio de instalación de tu plugin. Úsala para hacer referencia a scripts, binarios y archivos de configuración incluidos con el plugin. En comandos de hooks, usa [forma exec](/es/hooks#exec-form-and-shell-form) con `args` para que la ruta se pase como un argumento sin comillas. En hooks de forma shell y comandos de monitores, envuélvelo en comillas dobles, como en `"${CLAUDE_PLUGIN_ROOT}"`. Esta ruta cambia cuando se actualiza el plugin. El directorio de la versión anterior permanece en el disco durante aproximadamente siete días después de una actualización antes de la limpieza, pero trátalo como efímero y no escribas estado aquí.

546 546 

547Cuando un plugin se actualiza a mitad de sesión, los comandos de hooks, monitores, servidores MCP y servidores LSP siguen usando la ruta de la versión anterior. Ejecuta `/reload-plugins` para cambiar hooks, servidores MCP y servidores LSP a la nueva ruta; los monitores requieren un reinicio de sesión.547Cuando un plugin se actualiza a mitad de sesión, los comandos de hooks, monitores, servidores MCP y servidores LSP siguen usando la ruta de la versión anterior. Ejecuta `/reload-plugins` para cambiar hooks, servidores MCP y servidores LSP a la nueva ruta; los monitores requieren un reinicio de sesión.

548 548 

549**`${CLAUDE_PLUGIN_DATA}`**: un directorio persistente para el estado del plugin que sobrevive a las actualizaciones. Úsalo para dependencias instaladas como `node_modules` o entornos virtuales de Python, código generado, cachés y cualquier otro archivo que deba persistir entre versiones del plugin. El directorio se crea automáticamente la primera vez que se hace referencia a esta variable.549**`${CLAUDE_PLUGIN_DATA}`**: un directorio persistente para el estado del plugin que sobrevive a las actualizaciones. Úsalo para dependencias instaladas como `node_modules` o entornos virtuales de Python, código generado, cachés y cualquier otro archivo que deba persistir entre versiones del plugin. El directorio se crea automáticamente la primera vez que se hace referencia a esta variable.

550 550 

551**`${CLAUDE_PROJECT_DIR}`**: la raíz del proyecto. Este es el mismo directorio que los hooks reciben en su variable `CLAUDE_PROJECT_DIR`. Úsalo para hacer referencia a scripts o archivos de configuración locales del proyecto. Envuélvelo en comillas para manejar rutas con espacios, por ejemplo `"${CLAUDE_PROJECT_DIR}/scripts/server.sh"`. Los servidores MCP también pueden llamar a la solicitud MCP `roots/list`, que devuelve el directorio desde el que se lanzó Claude Code.

552 

551```json theme={null}553```json theme={null}

552{554{

553 "hooks": {555 "hooks": {


556 "hooks": [558 "hooks": [

557 {559 {

558 "type": "command",560 "type": "command",

559 "command": "${CLAUDE_PLUGIN_ROOT}/scripts/process.sh"561 "command": "\"${CLAUDE_PLUGIN_ROOT}\"/scripts/process.sh"

560 }562 }

561 ]563 ]

562 }564 }


629 631 

630Los plugins instalados no pueden hacer referencia a archivos fuera de su directorio. Las rutas que traversan fuera de la raíz del plugin (como `../shared-utils`) no funcionarán después de la instalación porque esos archivos externos no se copian a la caché.632Los plugins instalados no pueden hacer referencia a archivos fuera de su directorio. Las rutas que traversan fuera de la raíz del plugin (como `../shared-utils`) no funcionarán después de la instalación porque esos archivos externos no se copian a la caché.

631 633 

632### Trabajar con dependencias externas634### Compartir archivos dentro de un marketplace con enlaces simbólicos

635 

636Si su plugin necesita compartir archivos con otras partes del mismo marketplace, puede crear enlaces simbólicos dentro de su directorio de plugin. La forma en que se maneja un enlace simbólico cuando el plugin se copia en la caché depende de dónde se resuelva su destino:

637 

638* **Dentro del directorio propio del plugin:** el enlace simbólico se preserva como un enlace simbólico relativo en la caché, por lo que sigue resolviendo al destino copiado en tiempo de ejecución.

639* **En otro lugar dentro del mismo marketplace:** el enlace simbólico se desreferencia. El contenido del destino se copia en la caché en su lugar. Esto permite que el directorio `skills/` de un meta-plugin se vincule a skills definidas por otros plugins en el marketplace.

640* **Fuera del marketplace:** el enlace simbólico se omite por seguridad. Esto evita que los plugins extraigan archivos arbitrarios del host, como rutas del sistema, en la caché.

633 641 

634Si su plugin necesita acceder a archivos fuera de su directorio, puede crear enlaces simbólicos a archivos externos dentro de su directorio de plugin. Los enlaces simbólicos se preservan en la caché en lugar de ser desreferenciados, y se resuelven a su destino en tiempo de ejecución. El siguiente comando crea un enlace desde dentro de su directorio de plugin a una ubicación de utilidades compartidas:642Para plugins instalados con `--plugin-dir` o desde una ruta local, solo se preservan los enlaces simbólicos que se resuelven dentro del directorio propio del plugin. Todos los demás se omiten.

643 

644El siguiente comando crea un enlace desde dentro de un plugin del marketplace a una skill compartida definida por un plugin hermano. En Windows, use `mklink /D` desde un símbolo del sistema elevado o habilite el Modo de desarrollador:

635 645 

636```bash theme={null}646```bash theme={null}

637ln -s /path/to/shared-utils ./shared-utils647ln -s ../../shared-plugin/skills/foo ./skills/foo

638```648```

639 649 

640Esto proporciona flexibilidad mientras se mantienen los beneficios de seguridad del sistema de almacenamiento en caché.650Esto proporciona flexibilidad mientras se mantienen los beneficios de seguridad del sistema de almacenamiento en caché.


875| `--available` | Incluir plugins disponibles desde marketplaces. Requiere `--json` | |885| `--available` | Incluir plugins disponibles desde marketplaces. Requiere `--json` | |

876| `-h, --help` | Mostrar ayuda para el comando | |886| `-h, --help` | Mostrar ayuda para el comando | |

877 887 

888### plugin details

889 

890Muestra el inventario de componentes de un plugin y el costo de tokens proyectado. La salida lista todos los componentes que el plugin contribuye, agrupados como Skills (skills y comandos), Agents, Hooks, y servidores MCP, junto con una estimación de cuántos tokens añade a cada sesión.

891 

892```bash theme={null}

893claude plugin details <name>

894```

895 

896**Argumentos:**

897 

898* `<name>`: Nombre del plugin o `plugin-name@marketplace-name`

899 

900**Opciones:**

901 

902| Opción | Descripción | Predeterminado |

903| :----------- | :---------------------------- | :------------- |

904| `-h, --help` | Mostrar ayuda para el comando | |

905 

906La salida muestra dos cifras de costo para cada componente:

907 

908* **Always-on:** tokens añadidos a cada sesión por el texto de listado del plugin, como descripciones de skills, descripciones de agents, y nombres de comandos, independientemente de si algún componente se activa.

909* **On-invoke:** tokens que cuesta un componente cuando se activa. Se muestra por componente, no como total del plugin, porque una sesión típica invoca solo un subconjunto de componentes.

910 

911Este ejemplo muestra cómo se ve la salida para un plugin con dos skills:

912 

913```

914security-guidance 1.2.0

915 Real-time security analysis for Claude Code sessions

916 Source: security-guidance@claude-code-marketplace

917 

918Component inventory

919 Skills (2) scan-dependencies, review-changes

920 Agents (0)

921 Hooks (1) (harness-only — no model context cost)

922 MCP servers (0)

923 

924Projected token cost

925 Always-on: ~180 tok added to every session

926 

927Per-component (rounded)

928 component always-on on-invoke

929 scan-dependencies ~100 ~2400

930 review-changes ~80 ~1800

931 

932 On-invoke cost is paid each time a skill or agent fires.

933 Token counts are estimates and may differ from actual usage.

934```

935 

936El total always-on se calcula a través de la API `count_tokens` para tu modelo activo. Los números por componente se escalan proporcionalmente desde ese total. Si la API es inaccesible, el comando recurre a una estimación basada en caracteres.

937 

878### plugin tag938### plugin tag

879 939 

880Crea una etiqueta de lanzamiento de git para el plugin en el directorio actual. Ejecuta desde dentro de la carpeta del plugin. Consulta [Etiquetar lanzamientos de plugins](/es/plugin-dependencies#tag-plugin-releases-for-version-resolution).940Crea una etiqueta de lanzamiento de git para el plugin en el directorio actual. Ejecuta desde dentro de la carpeta del plugin. Consulta [Etiquetar lanzamientos de plugins](/es/plugin-dependencies#tag-plugin-releases-for-version-resolution).


938 998 

9391. Verifica que el script sea ejecutable: `chmod +x ./scripts/your-script.sh`9991. Verifica que el script sea ejecutable: `chmod +x ./scripts/your-script.sh`

9402. Verifica la línea shebang: La primera línea debe ser `#!/bin/bash` o `#!/usr/bin/env bash`10002. Verifica la línea shebang: La primera línea debe ser `#!/bin/bash` o `#!/usr/bin/env bash`

9413. Verifica que la ruta use `${CLAUDE_PLUGIN_ROOT}`: `"command": "${CLAUDE_PLUGIN_ROOT}/scripts/your-script.sh"`10013. Verifica que la ruta use `${CLAUDE_PLUGIN_ROOT}`: `"command": "\"${CLAUDE_PLUGIN_ROOT}\"/scripts/your-script.sh"`

9424. Prueba el script manualmente: `./scripts/your-script.sh`10024. Prueba el script manualmente: `./scripts/your-script.sh`

943 1003 

944**El hook no se dispara en los eventos esperados**:1004**El hook no se dispara en los eventos esperados**:

quickstart.md +4 −4

Details

284 Intente: "corrige el error de inicio de sesión donde los usuarios ven una pantalla en blanco después de ingresar credenciales incorrectas"284 Intente: "corrige el error de inicio de sesión donde los usuarios ven una pantalla en blanco después de ingresar credenciales incorrectas"

285 </Accordion>285 </Accordion>

286 286 

287 <Accordion title="Use instrucciones paso a paso">287 <Accordion title="Utilice instrucciones paso a paso">

288 Divida tareas complejas en pasos:288 Divida tareas complejas en pasos:

289 289 

290 ```text theme={null}290 ```text theme={null}


307 </Accordion>307 </Accordion>

308 308 

309 <Accordion title="Ahorre tiempo con atajos de teclado">309 <Accordion title="Ahorre tiempo con atajos de teclado">

310 * Presione `?` para ver todos los atajos de teclado disponibles

311 * Use Tab para completar comandos

312 * Presione ↑ para el historial de comandos

313 * Escriba `/` para ver todos los comandos y skills310 * Escriba `/` para ver todos los comandos y skills

311 * Utilice Tab para completar comandos

312 * Presione ↑ para el historial de comandos

313 * Presione `Shift+Tab` para ciclar a través de los modos de permisos

314 </Accordion>314 </Accordion>

315</AccordionGroup>315</AccordionGroup>

316 316 

routines.md +2 −0

Details

318 318 

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

320 320 

321Los conectores son las [integraciones de claude.ai](/es/mcp#use-mcp-servers-from-claude-ai) en su cuenta. Los servidores MCP que agregó localmente en la CLI con `claude mcp add` se almacenan en su máquina en lugar de su cuenta de claude.ai, por lo que no aparecen en la lista de conectores. Para usar uno de esos servidores en una rutina, agréguelo como conector en [claude.ai/customize/connectors](https://claude.ai/customize/connectors), o declárelo en un [`.mcp.json`](/es/mcp#project-scope) confirmado para que sea parte del repositorio clonado.

322 

321Cuando crea una rutina, todos sus conectores actualmente conectados se incluyen de forma predeterminada. Elimine cualquiera que no sea necesario para limitar a qué herramientas tiene acceso Claude durante la ejecución. También puede agregar conectores directamente desde el formulario de rutina.323Cuando crea una rutina, todos sus conectores actualmente conectados se incluyen de forma predeterminada. Elimine cualquiera que no sea necesario para limitar a qué herramientas tiene acceso Claude durante la ejecución. También puede agregar conectores directamente desde el formulario de rutina.

322 324 

323Para administrar o agregar conectores fuera del formulario de rutina, visite **Settings > Connectors** en claude.ai o use `/schedule update` en la CLI.325Para administrar o agregar conectores fuera del formulario de rutina, visite **Settings > Connectors** en claude.ai o use `/schedule update` en la CLI.

security.md +1 −1

Details

87 87 

88Claude Code permite a los usuarios configurar servidores del Protocolo de Contexto del Modelo (MCP). La lista de servidores MCP permitidos se configura en su código fuente, como parte de la configuración de Claude Code que los ingenieros verifican en el control de versiones.88Claude Code permite a los usuarios configurar servidores del Protocolo de Contexto del Modelo (MCP). La lista de servidores MCP permitidos se configura en su código fuente, como parte de la configuración de Claude Code que los ingenieros verifican en el control de versiones.

89 89 

90Le recomendamos que escriba sus propios servidores MCP o utilice servidores MCP de proveedores en los que confíe. Puede configurar permisos de Claude Code para servidores MCP. Anthropic no gestiona ni audita ningún servidor MCP.90Le recomendamos que escriba sus propios servidores MCP o utilice servidores MCP de proveedores en los que confíe. Puede configurar permisos de Claude Code para servidores MCP. Anthropic revisa los conectores según sus [criterios de listado](https://claude.com/docs/connectors/building/review-criteria) antes de agregarlos al [Directorio de Anthropic](https://claude.ai/directory), pero no realiza auditorías de seguridad ni gestiona ningún servidor MCP.

91 91 

92## Seguridad del IDE92## Seguridad del IDE

93 93 

settings.md +3 −1

Details

178| `awsCredentialExport` | Script personalizado que genera JSON con credenciales de AWS (consulte [configuración avanzada de credenciales](/es/amazon-bedrock#advanced-credential-configuration)) | `/bin/generate_aws_grant.sh` |178| `awsCredentialExport` | Script personalizado que genera JSON con credenciales de AWS (consulte [configuración avanzada de credenciales](/es/amazon-bedrock#advanced-credential-configuration)) | `/bin/generate_aws_grant.sh` |

179| `blockedMarketplaces` | (Solo configuraciones administradas) Lista negra de fuentes de marketplace. Aplicada en adición de marketplace y en instalación, actualización, actualización y auto-actualización de plugins, por lo que un marketplace agregado antes de que se estableciera la política no puede usarse para obtener plugins. Las fuentes bloqueadas se verifican antes de descargar, por lo que nunca tocan el sistema de archivos. Consulte [Restricciones de marketplace administradas](/es/plugin-marketplaces#managed-marketplace-restrictions) | `[{ "source": "github", "repo": "untrusted/plugins" }]` |179| `blockedMarketplaces` | (Solo configuraciones administradas) Lista negra de fuentes de marketplace. Aplicada en adición de marketplace y en instalación, actualización, actualización y auto-actualización de plugins, por lo que un marketplace agregado antes de que se estableciera la política no puede usarse para obtener plugins. Las fuentes bloqueadas se verifican antes de descargar, por lo que nunca tocan el sistema de archivos. Consulte [Restricciones de marketplace administradas](/es/plugin-marketplaces#managed-marketplace-restrictions) | `[{ "source": "github", "repo": "untrusted/plugins" }]` |

180| `channelsEnabled` | (Solo configuraciones administradas) Permitir [canales](/es/channels) para la organización. En planes de Claude.ai Team y Enterprise, los canales se bloquean cuando esto no está definido o es `false`. Para cuentas de [Anthropic Console](/es/authentication#claude-console-authentication) que usan autenticación de clave API, los canales se permiten de forma predeterminada a menos que su organización implemente configuraciones administradas, en cuyo caso esta clave debe establecerse en `true` | `true` |180| `channelsEnabled` | (Solo configuraciones administradas) Permitir [canales](/es/channels) para la organización. En planes de Claude.ai Team y Enterprise, los canales se bloquean cuando esto no está definido o es `false`. Para cuentas de [Anthropic Console](/es/authentication#claude-console-authentication) que usan autenticación de clave API, los canales se permiten de forma predeterminada a menos que su organización implemente configuraciones administradas, en cuyo caso esta clave debe establecerse en `true` | `true` |

181| `claudeMd` | (Solo configuraciones administradas) Instrucciones de estilo CLAUDE.md inyectadas como memoria administrada por la organización. Solo se honra cuando se establece en configuraciones administradas o de política e ignorado en configuraciones de usuario, proyecto y local. Consulte [CLAUDE.md en toda la organización](/es/memory#deploy-organization-wide-claude-md) | `"Always run make lint before committing."` |

181| `claudeMdExcludes` | Patrones Glob o rutas absolutas de archivos `CLAUDE.md` a omitir al cargar [memoria](/es/memory). Los patrones coinciden con rutas de archivo absolutas. Solo se aplica a memoria de usuario, proyecto y local; los archivos de política administrada no pueden excluirse | `["**/vendor/**/CLAUDE.md"]` |182| `claudeMdExcludes` | Patrones Glob o rutas absolutas de archivos `CLAUDE.md` a omitir al cargar [memoria](/es/memory). Los patrones coinciden con rutas de archivo absolutas. Solo se aplica a memoria de usuario, proyecto y local; los archivos de política administrada no pueden excluirse | `["**/vendor/**/CLAUDE.md"]` |

182| `cleanupPeriodDays` | Las sesiones inactivas durante más tiempo que este período se eliminan al inicio (predeterminado: 30 días, mínimo 1). Establecer en `0` se rechaza con un error de validación. También controla el corte de edad para la eliminación automática de [worktrees de subagent huérfanos](/es/worktrees#clean-up-worktrees) al inicio. Para deshabilitar completamente las escrituras de transcripción, establezca la variable de entorno [`CLAUDE_CODE_SKIP_PROMPT_HISTORY`](/es/env-vars), o en modo no interactivo (`-p`) use la bandera `--no-session-persistence` o la opción SDK `persistSession: false`. | `20` |183| `cleanupPeriodDays` | Las sesiones inactivas durante más tiempo que este período se eliminan al inicio (predeterminado: 30 días, mínimo 1). Establecer en `0` se rechaza con un error de validación. También controla el corte de edad para la eliminación automática de [worktrees de subagent huérfanos](/es/worktrees#clean-up-worktrees) al inicio. Para deshabilitar completamente las escrituras de transcripción, establezca la variable de entorno [`CLAUDE_CODE_SKIP_PROMPT_HISTORY`](/es/env-vars), o en modo no interactivo (`-p`) use la bandera `--no-session-persistence` o la opción SDK `persistSession: false`. | `20` |

183| `companyAnnouncements` | Anuncio a mostrar a los usuarios al inicio. Si se proporcionan múltiples anuncios, se alternarán aleatoriamente. | `["Welcome to Acme Corp! Review our code guidelines at docs.acme.com"]` |184| `companyAnnouncements` | Anuncio a mostrar a los usuarios al inicio. Si se proporcionan múltiples anuncios, se alternarán aleatoriamente. | `["Welcome to Acme Corp! Review our code guidelines at docs.acme.com"]` |


253</Note>254</Note>

254 255 

255| Clave | Descripción | Ejemplo |256| Clave | Descripción | Ejemplo |

256| :------------------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------ |257| :------------------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------- |

257| `autoConnectIde` | Conectarse automáticamente a un IDE en ejecución cuando Claude Code se inicia desde una terminal externa. Predeterminado: `false`. Aparece en `/config` como **Auto-connect to IDE (external terminal)** cuando se ejecuta fuera de una terminal de VS Code o JetBrains. La variable de entorno [`CLAUDE_CODE_AUTO_CONNECT_IDE`](/es/env-vars) anula esto cuando se establece | `true` |258| `autoConnectIde` | Conectarse automáticamente a un IDE en ejecución cuando Claude Code se inicia desde una terminal externa. Predeterminado: `false`. Aparece en `/config` como **Auto-connect to IDE (external terminal)** cuando se ejecuta fuera de una terminal de VS Code o JetBrains. La variable de entorno [`CLAUDE_CODE_AUTO_CONNECT_IDE`](/es/env-vars) anula esto cuando se establece | `true` |

258| `autoInstallIdeExtension` | Instalar automáticamente la extensión de Claude Code IDE cuando se ejecuta desde una terminal de VS Code. Predeterminado: `true`. Aparece en `/config` como **Auto-install IDE extension** cuando se ejecuta dentro de una terminal de VS Code o JetBrains. También puede establecer la variable de entorno [`CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL`](/es/env-vars) | `false` |259| `autoInstallIdeExtension` | Instalar automáticamente la extensión de Claude Code IDE cuando se ejecuta desde una terminal de VS Code. Predeterminado: `true`. Aparece en `/config` como **Auto-install IDE extension** cuando se ejecuta dentro de una terminal de VS Code o JetBrains. También puede establecer la variable de entorno [`CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL`](/es/env-vars) | `false` |

259| `externalEditorContext` | Anteponer la respuesta anterior de Claude como contexto comentado con `#` cuando abre el editor externo con `Ctrl+G`. Predeterminado: `false`. Aparece en `/config` como **Show last response in external editor** | `true` |260| `externalEditorContext` | Anteponer la respuesta anterior de Claude como contexto comentado con `#` cuando abre el editor externo con `Ctrl+G`. Predeterminado: `false`. Aparece en `/config` como **Show last response in external editor** | `true` |

261| `teammateDefaultModel` | Modelo predeterminado para compañeros de [equipo de agentes](/es/agent-teams) cuando el indicador de generación no especifica uno. Establezca en un alias de modelo como `"sonnet"`, o `null` para heredar la selección actual de `/model` del líder. Aparece en `/config` como **Default teammate model** | `"sonnet"` |

260 262 

261### Configuración de worktrees263### Configuración de worktrees

262 264 

vs-code.md +4 −2

Details

233</Note>233</Note>

234 234 

235| Comando | Atajo de teclado | Descripción |235| Comando | Atajo de teclado | Descripción |

236| -------------------------- | -------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- |236| -------------------------- | -------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

237| Focus Input | `Cmd+Esc` (Mac) / `Ctrl+Esc` (Windows/Linux) | Alternar el enfoque entre el editor y Claude |237| 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 |238| Open in Side Bar | - | Abrir Claude en la barra lateral izquierda |

239| Open in Terminal | - | Abrir Claude en modo terminal |239| 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 |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 |

241| Open in New Window | - | Abrir una nueva conversación en una ventana separada |241| 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` |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` |

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

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

244| Show Logs | - | Ver registros de depuración de la extensión |245| Show Logs | - | Ver registros de depuración de la extensión |

245| Logout | - | Cerrar sesión de tu cuenta de Anthropic |246| Logout | - | Cerrar sesión de tu cuenta de Anthropic |


307### Configuración de extensión308### Configuración de extensión

308 309 

309| Configuración | Predeterminado | Descripción |310| Configuración | Predeterminado | Descripción |

310| --------------------------------- | -------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |311| ----------------------------------- | -------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

311| `useTerminal` | `false` | Lanzar Claude en modo terminal en lugar de panel gráfico |312| `useTerminal` | `false` | Lanzar Claude en modo terminal en lugar de panel gráfico |

312| `initialPermissionMode` | `default` | Controla mensajes de aprobación para nuevas conversaciones: `default`, `plan`, `acceptEdits`, o `bypassPermissions`. Consulta [modos de permiso](/es/permission-modes). |313| `initialPermissionMode` | `default` | Controla mensajes de aprobación para nuevas conversaciones: `default`, `plan`, `acceptEdits`, o `bypassPermissions`. Consulta [modos de permiso](/es/permission-modes). |

313| `preferredLocation` | `panel` | Dónde se abre Claude: `sidebar` (derecha) o `panel` (nueva pestaña) |314| `preferredLocation` | `panel` | Dónde se abre Claude: `sidebar` (derecha) o `panel` (nueva pestaña) |

314| `autosave` | `true` | Guardar archivos automáticamente antes de que Claude los lea o escriba |315| `autosave` | `true` | Guardar archivos automáticamente antes de que Claude los lea o escriba |

315| `useCtrlEnterToSend` | `false` | Usar Ctrl/Cmd+Enter en lugar de Enter para enviar mensajes |316| `useCtrlEnterToSend` | `false` | Usar Ctrl/Cmd+Enter en lugar de Enter para enviar mensajes |

316| `enableNewConversationShortcut` | `false` | Habilitar Cmd/Ctrl+N para iniciar una nueva conversación |317| `enableNewConversationShortcut` | `false` | Habilitar Cmd/Ctrl+N para iniciar una nueva conversación |

318| `enableReopenClosedSessionShortcut` | `true` | Usar Cmd/Ctrl+Shift+T para reabrir la pestaña de sesión de Claude cerrada más recientemente. Cuando la última pestaña cerrada no era una sesión de Claude, el atajo ejecuta el comando normal de reapertura de editor cerrado de VS Code en su lugar. |

317| `hideOnboarding` | `false` | Ocultar la lista de verificación de incorporación (icono de gorro de graduación) |319| `hideOnboarding` | `false` | Ocultar la lista de verificación de incorporación (icono de gorro de graduación) |

318| `respectGitIgnore` | `true` | Excluir patrones de .gitignore de búsquedas de archivos |320| `respectGitIgnore` | `true` | Excluir patrones de .gitignore de búsquedas de archivos |

319| `usePythonEnvironment` | `true` | Activar el entorno de Python del espacio de trabajo cuando se ejecuta Claude. Requiere la extensión de Python. |321| `usePythonEnvironment` | `true` | Activar el entorno de Python del espacio de trabajo cuando se ejecuta Claude. Requiere la extensión de Python. |