SpyBara
Go Premium

Documentation 2026-10-06 23:59 UTC to 2026-10-07 20:57 UTC

67 files changed +1,593 −1,380. View all changes and history on the product overview
2026
Wed 7 20:57 Tue 6 23:59 Mon 5 23:58 Sun 4 23:58 Sat 3 23:57 Fri 2 22:59 Thu 1 23:59

admin-setup.md +16 −16

Details

50 50 

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

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

53| Server-managed | Consola de administración de claude.ai, o una [puerta de enlace de aplicaciones Claude](/docs/es/claude-apps-gateway) autohospedada para inicios de sesión de puerta de enlace | Más alta | Todas |53| Server-managed | Consola de administración de claude.ai, o un [Claude apps gateway](/docs/es/claude-apps-gateway) autohospedado para inicios de sesión mediante gateway | Más alta | Todas |

54| plist / registry policy | macOS: `com.anthropic.claudecode` plist<br />Windows: `HKLM\SOFTWARE\Policies\ClaudeCode` | Alta | macOS, Windows |54| plist / registry policy | macOS: `com.anthropic.claudecode` plist<br />Windows: `HKLM\SOFTWARE\Policies\ClaudeCode` | Alta | macOS, Windows |

55| File-based managed | macOS: `/Library/Application Support/ClaudeCode/managed-settings.json`<br />Linux y WSL: `/etc/claude-code/managed-settings.json`<br />Windows: `C:\Program Files\ClaudeCode\managed-settings.json` | Media | Todas |55| File-based managed | macOS: `/Library/Application Support/ClaudeCode/managed-settings.json`<br />Linux y WSL: `/etc/claude-code/managed-settings.json`<br />Windows: `C:\Program Files\ClaudeCode\managed-settings.json` | Media | Todas |

56| Windows user registry | `HKCU\SOFTWARE\Policies\ClaudeCode` | Más baja | Solo Windows |56| Windows user registry | `HKCU\SOFTWARE\Policies\ClaudeCode` | Más baja | Solo Windows |

57 57 

58Claude Code obtiene la configuración administrada por servidor al inicio y la actualiza cada hora durante la sesión, sin infraestructura de punto final para implementar. La entrega a través de la consola de administración de claude.ai requiere un plan Claude for Teams o Enterprise. Las implementaciones en Amazon Bedrock, Google Cloud's Agent Platform o Microsoft Foundry pueden obtener la misma entrega remota ejecutando una [puerta de enlace de aplicaciones Claude](/docs/es/claude-apps-gateway), o usar uno de los mecanismos basados en archivos o a nivel del SO en su lugar.58Claude Code obtiene la configuración administrada por servidor al inicio y la actualiza cada hora durante la sesión, sin infraestructura de endpoints que desplegar. La entrega a través de la consola de administración de claude.ai requiere un plan Claude for Teams o Enterprise. Los despliegues en Amazon Bedrock, Google Cloud's Agent Platform o Microsoft Foundry pueden obtener la misma entrega remota ejecutando un [Claude apps gateway](/docs/es/claude-apps-gateway), o usar en su lugar uno de los mecanismos basados en archivos o a nivel del SO.

59 59 

60Si su organización mezcla proveedores, configure [server-managed settings](/docs/es/server-managed-settings) para usuarios de claude.ai más un [respaldo basado en archivos o plist/registry](/docs/es/managed-settings#delivery-mechanisms) para que otros usuarios aún reciban política administrada.60Si tu organización mezcla proveedores, configura [server-managed settings](/docs/es/server-managed-settings) para usuarios de claude.ai más un [respaldo basado en archivos o plist/registry](/docs/es/managed-settings#delivery-mechanisms) para que otros usuarios aún reciban política administrada.

61 61 

62Las ubicaciones de plist y registro HKLM funcionan con cualquier proveedor y resisten la manipulación porque requieren privilegios de administrador para escribir. El registro de usuario de Windows en HKCU se puede escribir sin elevación, así que trátelo como un valor predeterminado de conveniencia en lugar de un canal de aplicación.62Las ubicaciones de plist y registro HKLM funcionan con cualquier proveedor y resisten la manipulación porque requieren privilegios de administrador para escribir. El registro de usuario de Windows en HKCU se puede escribir sin elevación, así que trátalo como un valor predeterminado de conveniencia en lugar de un canal de aplicación.

63 63 

64Por defecto, WSL lee solo la ruta de archivo de Linux en `/etc/claude-code`. Para extender su política de registro de Windows y `C:\Program Files\ClaudeCode` a WSL en la misma máquina, establezca [`wslInheritsWindowsSettings: true`](/docs/es/settings-reference#wslinheritswindowssettings) en cualquiera de esas fuentes de solo administrador de Windows.64Por defecto, WSL lee solo la ruta de archivo de Linux en `/etc/claude-code`. Para extender tu política de registro de Windows y `C:\Program Files\ClaudeCode` a WSL en la misma máquina, establece [`wslInheritsWindowsSettings: true`](/docs/es/settings-reference#wslinheritswindowssettings) en cualquiera de esas fuentes de Windows de solo administrador.

65 65 

66Cualquiera que sea el mecanismo que elija, los valores administrados tienen prioridad sobre la configuración de usuario y proyecto, aparte de algunas [excepciones](/docs/es/settings#exceptions-to-managed-settings-precedence) sensibles a la seguridad. La configuración de matriz como `permissions.allow` y `permissions.deny` fusionan entradas de todas las fuentes, por lo que los desarrolladores pueden extender listas administradas pero no eliminar de ellas. Para `fallbackModel`, `availableModels` y [`modelPicker`](/docs/es/settings-reference#modelpicker), el valor administrado reemplaza capas inferiores en lugar de fusionarse.66Cualquiera que sea el mecanismo que elijas, los valores administrados tienen prioridad sobre la configuración de usuario y proyecto, aparte de algunas [excepciones](/docs/es/settings#exceptions-to-managed-settings-precedence) sensibles a la seguridad. Los ajustes de matriz como `permissions.allow` y `permissions.deny` combinan entradas de todas las fuentes, por lo que los desarrolladores pueden extender listas administradas pero no eliminar elementos de ellas. Para `fallbackModel`, `availableModels` y [`modelPicker`](/docs/es/settings-reference#modelpicker), el valor administrado reemplaza las capas inferiores en lugar de combinarse.

67 67 

68<h3 id="wsl-sessions-in-claude-code-desktop">68<h3 id="wsl-sessions-in-claude-code-desktop">

69 Sesiones de WSL en Claude Code Desktop69 Sesiones de WSL en Claude Code Desktop

70</h3>70</h3>

71 71 

72En Windows, [Claude Code Desktop puede ejecutar sesiones de Code dentro de una distribución de WSL 2](/docs/es/desktop-wsl). El proceso de Claude Code de la sesión se ejecuta dentro de la distribución, por lo que resuelve la configuración administrada a través de la ruta de descubrimiento de WSL anterior: las fuentes solo de Windows no la alcanzan a menos que `wslInheritsWindowsSettings: true` esté implementado.72En Windows, [Claude Code Desktop puede ejecutar sesiones de Code dentro de una distribución de WSL 2](/docs/es/desktop-wsl). El proceso de Claude Code de la sesión se ejecuta dentro de la distribución, por lo que resuelve la configuración administrada a través de la ruta de descubrimiento de WSL anterior: las fuentes solo de Windows no la alcanzan a menos que `wslInheritsWindowsSettings: true` esté desplegado.

73 73 

74Claude Desktop desactiva las sesiones de WSL de forma predeterminada en dispositivos que detecta como administrados por la organización, por ejemplo cuando existe `C:\Program Files\ClaudeCode\managed-settings.json`. Para activarlas, implemente una política de registro de Windows, que requiere Claude Desktop v1.19367.0 o posterior:74Claude Desktop desactiva las sesiones de WSL de forma predeterminada en dispositivos que detecta como administrados por la organización, por ejemplo cuando existe `C:\Program Files\ClaudeCode\managed-settings.json`. Para activarlas, despliega una política de registro de Windows, que requiere Claude Desktop v1.19367.0 o posterior:

75 75 

76* Cree un valor denominado `disableWslSessions` bajo `HKLM\SOFTWARE\Policies\Claude` y establézcalo en la cadena `REG_SZ` `false` o en `REG_DWORD` `0`. Este valor se encuentra bajo la clave de política de Claude Desktop, separado de la clave `ClaudeCode` que lleva la configuración administrada. Implemente el valor bajo HKLM, que requiere privilegios de administrador para escribir. Un valor bajo HKCU no habilita las sesiones de WSL.76* Crea un valor denominado `disableWslSessions` bajo `HKLM\SOFTWARE\Policies\Claude` y establécelo en la cadena `REG_SZ` `false` o en `REG_DWORD` `0`. Este valor se encuentra bajo la clave de política de Claude Desktop, separado de la clave `ClaudeCode` que lleva la configuración administrada. Despliega el valor bajo HKLM, que requiere privilegios de administrador para escribir. Un valor bajo HKCU no habilita las sesiones de WSL.

77* Deje `C:\Program Files\ClaudeCode\managed-settings.json` en su lugar si lo implementa. Una vez que `disableWslSessions` es `false` bajo HKLM, Desktop permite sesiones de WSL aunque ese archivo esté presente.77* Deja `C:\Program Files\ClaudeCode\managed-settings.json` en su lugar si lo despliegas. Una vez que `disableWslSessions` es `false` bajo HKLM, Desktop permite sesiones de WSL aunque ese archivo esté presente.

78 78 

79Desktop lee la política cada vez que se inicia una sesión de WSL, por lo que no necesita reiniciar la aplicación después de implementarla.79Desktop lee la política cada vez que se inicia una sesión de WSL, por lo que no necesitas reiniciar la aplicación después de desplegarla.

80 80 

81Si un dispositivo aún rechaza las sesiones de WSL, abra **Help > Troubleshooting > Show Logs in Explorer** en Claude Desktop en ese dispositivo, que guarda una copia de su carpeta de registro en Descargas. Busque `main.log` en esa copia para `[wslPolicyGate] denying WSL session`. La razón de la denegación aparece entre paréntesis, como `(cli-file-present)`. Si Claude Desktop se instaló con el instalador `.exe`, también puede leer el archivo activo en `%APPDATA%\Claude\logs\main.log`.81Si un dispositivo aún rechaza las sesiones de WSL, abre **Help > Troubleshooting > Show Logs in File Explorer** en Claude Desktop en ese dispositivo, lo que guarda una copia de su carpeta de registros en Descargas. Busca `[wslPolicyGate] denying WSL session` en el `main.log` de esa copia. La razón de la denegación aparece a continuación entre paréntesis, como `(cli-file-present)`.

82 82 

83Después de que las sesiones de WSL estén habilitadas, extienda su configuración administrada a ellas:83Después de que las sesiones de WSL estén habilitadas, extiende tu configuración administrada a ellas:

84 84 

85* Implemente `wslInheritsWindowsSettings: true` a través del registro HKLM o del archivo `C:\Program Files\ClaudeCode` para que las sesiones de WSL hereden la misma política que las sesiones del host.85* Despliega `wslInheritsWindowsSettings: true` a través del registro HKLM o del archivo `C:\Program Files\ClaudeCode` para que las sesiones de WSL hereden la misma política que las sesiones del host.

86* Verifique ejecutando `/status` dentro de una sesión de WSL y leyendo la línea `Setting sources`. Para interpretar lo que enumera, consulte [Leer la fuente en /status](/docs/es/managed-settings#read-the-source-in-/status).86* Verifica ejecutando `/status` dentro de una sesión de WSL y leyendo la línea `Setting sources`. Para interpretar lo que enumera, consulta [Leer la fuente en /status](/docs/es/managed-settings#read-the-source-in-/status).

87 87 

88Los procesos dentro de la máquina virtual de utilidad de WSL 2 no son visibles para los sensores de detección de puntos finales del lado de Windows. Para observar la actividad de procesos y archivos dentro de la distribución, consulte la guía de WSL de su proveedor de detección de puntos finales para un sensor de Linux que pueda ejecutar dentro de la distribución y las exclusiones que necesita. La [telemetría de ejecución de herramientas de OpenTelemetry](/docs/es/monitoring-usage) de Claude Code se emite de forma idéntica para sesiones de WSL y nativas.88Los procesos dentro de la máquina virtual de utilidad de WSL 2 no son visibles para los sensores de detección de endpoints del lado de Windows. Para observar la actividad de procesos y archivos dentro de la distribución, consulta la guía de WSL de tu proveedor de detección de endpoints para encontrar un sensor de Linux que puedas ejecutar dentro de la distribución y las exclusiones que necesita. La [telemetría de ejecución de herramientas de OpenTelemetry](/docs/es/monitoring-usage) de Claude Code se emite de forma idéntica para sesiones de WSL y nativas.

89 89 

90<h2 id="decide-what-to-enforce">90<h2 id="decide-what-to-enforce">

91 Decidir qué aplicar91 Decidir qué aplicar

advisor.md +8 −8

Details

87Claude Code usa la bandera en lugar del ajuste `advisorModel` para esa sesión. No enumera `--advisor` en `claude --help`. Claude Code sale con un error al iniciar si:87Claude Code usa la bandera en lugar del ajuste `advisorModel` para esa sesión. No enumera `--advisor` en `claude --help`. Claude Code sale con un error al iniciar si:

88 88 

89* El modelo principal de la sesión no admite el advisor89* El modelo principal de la sesión no admite el advisor

90* El modelo solicitado, como Haiku, no puede actuar como advisor90* El modelo solicitado, como Haiku 4.5, no puede actuar como advisor

91* La lista de permitidos [`availableModels`](/docs/es/model-config#restrict-model-selection) de tu organización excluye el modelo solicitado91* La lista de permitidos [`availableModels`](/docs/es/model-config#restrict-model-selection) de tu organización excluye el modelo solicitado

92* Solicitaste Fable y tu cuenta aún requiere el [consentimiento de créditos de uso](#fable-advisor-and-usage-credits)92* Solicitaste Fable y tu cuenta aún requiere el [consentimiento de créditos de uso](#fable-advisor-and-usage-credits)

93 93 


103 103 

104| Modelo principal | Advisors aceptados |104| Modelo principal | Advisors aceptados |

105| - | - |105| - | - |

106| Haiku 4.5 | Fable, Opus, Sonnet |106| Haiku 4.5 | Fable, Opus, Sonnet, Haiku 5.5 |

107| Sonnet 4.6 | Fable, Opus, Sonnet |107| Sonnet 4.6 | Fable, Opus, Sonnet, Haiku 5.5 |

108| Opus 4.6 | Fable, Opus, Sonnet 5 o posterior |108| Opus 4.6 | Fable, Opus, Sonnet 5 o posterior, Haiku 5.5 |

109| Sonnet 5 | Fable, Opus 4.7 o posterior, Sonnet 5 o posterior |109| Sonnet 5 o Haiku 5.5 | Fable, Opus 4.7 o posterior, Sonnet 5 o posterior, Haiku 5.5 |

110| Opus 4.7 u Opus 4.8 | Fable, Opus 4.7 o posterior, Sonnet 5.5 |110| Opus 4.7 u Opus 4.8 | Fable, Opus 4.7 o posterior, Sonnet 5.5 |

111| Sonnet 5.5 | Fable, Opus 5 o posterior, Sonnet 5.5 |111| Sonnet 5.5 | Fable, Opus 5 o posterior, Sonnet 5.5 |

112| Opus 5 u Opus 5.5 | Fable, Opus 5 o posterior |112| Opus 5 u Opus 5.5 | Fable, Opus 5 o posterior |

113| Fable 5 | Fable 5.1 o Fable 5 |113| Fable 5 | Fable 5.1 o Fable 5 |

114| Fable 5.1 | Fable 5.1 |114| Fable 5.1 | Fable 5.1 |

115 115 

116Fable 5.1 requiere Claude Code v2.1.257 o posterior. Los modelos Fable requieren [acceso a Fable](/docs/es/model-config#work-with-fable). Sonnet 5.5 como advisor de un modelo principal Opus 4.7 u Opus 4.8 requiere Claude Code v2.1.287 o posterior.116Fable 5.1 requiere Claude Code v2.1.257 o posterior. Los modelos Fable requieren [acceso a Fable](/docs/es/model-config#work-with-fable). Sonnet 5.5 como advisor de un modelo principal Opus 4.7 u Opus 4.8 requiere Claude Code v2.1.287 o posterior. Haiku 5.5 como modelo principal o como advisor requiere Claude Code v2.1.293 o posterior.

117 117 

118Establece el advisor como `fable`, `opus` o `sonnet`. Estos alias se resuelven a la [versión predeterminada integrada](/docs/es/model-config#model-aliases) de Claude Code para cada familia de modelos, que avanza con nuevas versiones de Claude Code. También puedes pasar un ID de modelo completo como `claude-opus-5-5`. Haiku puede llamar al advisor pero no puede actuar como uno.118Establece el advisor como `fable`, `opus` o `sonnet`. Estos alias se resuelven a la [versión predeterminada integrada](/docs/es/model-config#model-aliases) de Claude Code para cada familia de modelos, que avanza con nuevas versiones de Claude Code. También puedes pasar un ID de modelo completo como `claude-opus-5-5` o `claude-haiku-5-5`. Haiku 4.5 puede llamar al advisor pero no puede actuar como uno.

119 119 

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

121 121 


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

203 203 

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

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

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

207 207 

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

agent-sdk/hooks.md +50 −50

Details

20 20 

21<Steps>21<Steps>

22 <Step title="Se dispara un evento">22 <Step title="Se dispara un evento">

23 Algo sucede durante la ejecución del agente y el SDK dispara un evento: una herramienta está a punto de ser llamada (`PreToolUse`), una herramienta devolvió un resultado (`PostToolUse`), un subagente se inició o se detuvo, el agente está inactivo, o la ejecución finalizó. Vea la [lista completa de eventos](#available-hooks).23 Algo sucede durante la ejecución del agente y el SDK dispara un evento: una herramienta está a punto de ser llamada (`PreToolUse`), una herramienta devolvió un resultado (`PostToolUse`), un subagente se inició o se detuvo, el agente está inactivo, o la ejecución finalizó. Consulta la [lista completa de eventos](#available-hooks).

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`](/docs/es/agent-sdk/typescript#settingsource) o [`setting_sources`](/docs/es/agent-sdk/python#settingsource) 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 pasas en `options.hooks` y hooks de comandos de shell de archivos de configuración cuando la entrada [`settingSources`](/docs/es/agent-sdk/typescript#settingsource) o [`setting_sources`](/docs/es/agent-sdk/python#settingsource) 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">


32 </Step>32 </Step>

33 33 

34 <Step title="Se ejecutan las funciones de devolución de llamada">34 <Step title="Se ejecutan las funciones de devolución de llamada">

35 Cada hook coincidente recibe su [función de devolución de llamada](#callback-functions) con información sobre lo que está sucediendo: el nombre de la herramienta, sus argumentos, el ID de sesión y otros detalles específicos del evento.35 La [función de devolución de llamada](#callback-functions) de cada hook coincidente recibe información sobre lo que está sucediendo: el nombre de la herramienta, sus argumentos, el ID de sesión y otros detalles específicos del evento.

36 </Step>36 </Step>

37 37 

38 <Step title="Su devolución de llamada devuelve una decisión">38 <Step title="Tu devolución de llamada devuelve una decisión">

39 Después de realizar cualquier operación (registro, llamadas a API, validación), su devolución de llamada devuelve un [objeto de salida](#outputs) que le dice al agente qué hacer: permitir la operación, bloquearla, modificar la entrada o inyectar contexto en la conversación.39 Después de realizar cualquier operación (registro, llamadas a API, validación), tu devolución de llamada devuelve un [objeto de salida](#outputs) que le dice al agente qué hacer: permitir la operación, bloquearla, modificar la entrada o inyectar contexto en la conversación.

40 </Step>40 </Step>

41</Steps>41</Steps>

42 42 


140 ```140 ```

141</CodeGroup>141</CodeGroup>

142 142 

143Cuando ejecuta cualquiera de los scripts, Claude intenta crear el archivo `.env`, el hook niega la llamada de herramienta, y la respuesta final de Claude explica que no puede crear archivos `.env`.143Cuando ejecutas cualquiera de los scripts, Claude intenta crear el archivo `.env` y el hook niega la llamada a herramienta.

144 144 

145<h2 id="available-hooks">145<h2 id="available-hooks">

146 Hooks disponibles146 Hooks disponibles


179| `ConfigChange` | No | Sí | Archivo de configuración cambia | Recargar configuración dinámicamente |179| `ConfigChange` | No | Sí | Archivo de configuración cambia | Recargar configuración dinámicamente |

180| `InstructionsLoaded` | No | Sí | Se carga un archivo `CLAUDE.md` o de reglas en el contexto | Auditar qué archivos de instrucciones se cargan |180| `InstructionsLoaded` | No | Sí | Se carga un archivo `CLAUDE.md` o de reglas en el contexto | Auditar qué archivos de instrucciones se cargan |

181| `WorktreeCreate` | No | Sí | Git worktree creado | Rastrear espacios de trabajo aislados |181| `WorktreeCreate` | No | Sí | Git worktree creado | Rastrear espacios de trabajo aislados |

182| `WorktreeRemove` | No | Sí | Git worktree eliminado | Limpiar recursos de espacio de trabajo |182| `WorktreeRemove` | No | Sí | Se está eliminando un worktree creado por un hook `WorktreeCreate` | Limpiar recursos de espacio de trabajo |

183| `CwdChanged` | No | Sí | El directorio de trabajo cambia durante una sesión | Recargar variables de entorno por directorio |183| `CwdChanged` | No | Sí | El directorio de trabajo cambia durante una sesión | Recargar variables de entorno por directorio |

184| `FileChanged` | No | Sí | Un archivo vigilado se modifica, crea o elimina | Recargar configuración cuando cambian archivos del proyecto |184| `FileChanged` | No | Sí | Un archivo vigilado se modifica, crea o elimina | Recargar configuración cuando cambian archivos del proyecto |

185| `DirectoryAdded` | No | Sí | Se agrega un directorio de trabajo durante una sesión | Instalar dependencias para un repositorio agregado a mitad de sesión |185| `DirectoryAdded` | No | Sí | Se agrega un directorio de trabajo durante una sesión | Instalar dependencias para un repositorio agregado a mitad de sesión |


188 Configurar hooks188 Configurar hooks

189</h2>189</h2>

190 190 

191Para configurar un hook, páselo en el campo `hooks` de sus opciones de agente (`ClaudeAgentOptions` en Python, el objeto `options` en TypeScript). Este fragmento asume que ya ha definido una devolución de llamada de hook, como `protect_env_files` en Python o `protectEnvFiles` en TypeScript del ejemplo anterior:191Para configurar un hook, pásalo en el campo `hooks` de tus opciones de agente (`ClaudeAgentOptions` en Python, el objeto `options` en TypeScript). Este fragmento asume que ya has definido una devolución de llamada de hook, como `protect_env_files` en Python o `protectEnvFiles` en TypeScript del ejemplo anterior:

192 192 

193<CodeGroup>193<CodeGroup>

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


219La opción `hooks` es un diccionario en Python u objeto en TypeScript, donde:219La opción `hooks` es un diccionario en Python u objeto en TypeScript, donde:

220 220 

221* **Las claves**: [nombres de eventos de hook](#available-hooks) como `'PreToolUse'`, `'PostToolUse'` y `'Stop'`221* **Las claves**: [nombres de eventos de hook](#available-hooks) como `'PreToolUse'`, `'PostToolUse'` y `'Stop'`

222* **Los valores**: matrices de [matchers](#matchers), cada una conteniendo un patrón de filtro opcional y sus [funciones de devolución de llamada](#callback-functions)222* **Los valores**: matrices de [matchers](#matchers), cada una conteniendo un patrón de filtro opcional y tus [funciones de devolución de llamada](#callback-functions)

223 223 

224<h3 id="matchers">224<h3 id="matchers">

225 Matchers225 Matchers

226</h3>226</h3>

227 227 

228Use matchers para filtrar cuándo se disparan sus devoluciones de llamada. El campo `matcher` coincide con un valor diferente dependiendo del tipo de evento de hook. Por ejemplo, los hooks basados en herramientas coinciden con el nombre de la herramienta, mientras que los hooks `Notification` coinciden con el tipo de notificación.228Usa matchers para filtrar cuándo se disparan tus devoluciones de llamada. El campo `matcher` coincide con un valor diferente dependiendo del tipo de evento de hook. Por ejemplo, los hooks basados en herramientas coinciden con el nombre de la herramienta, mientras que los hooks `Notification` coinciden con el tipo de notificación.

229 229 

230Los matchers del SDK siguen las mismas reglas que [matchers en archivos de configuración](/docs/es/hooks#matcher-patterns). Esa sección documenta las rutas de evaluación de cadena exacta y expresión regular, sus requisitos de versión, y los valores de matcher para cada tipo de evento.230Los matchers del SDK siguen las mismas reglas que [matchers en archivos de configuración](/docs/es/hooks#matcher-patterns). Esa sección documenta las rutas de evaluación de cadena exacta y expresión regular, sus requisitos de versión, y los valores de matcher para cada tipo de evento.

231 231 

232| Opción | Tipo | Predeterminado | Descripción |232| Opción | Tipo | Predeterminado | Descripción |

233| - | - | - | - |233| - | - | - | - |

234| `matcher` | `string` | `undefined` | Patrón coincidido contra el campo de filtro del evento, siguiendo las [reglas para matchers en archivos de configuración](/docs/es/hooks#matcher-patterns). Para hooks de herramientas, este es el nombre de la herramienta. Las herramientas integradas incluyen `Bash`, `Read`, `Write`, `Edit`, `Glob`, `Grep`, `WebFetch`, `Agent` y otros (vea [Tipos de entrada de herramienta](/docs/es/agent-sdk/typescript#tool-input-types) para la lista completa). Las herramientas MCP usan el patrón `mcp__<server>__<action>`, donde `<server>` es la clave que usa en la configuración `mcpServers`. |234| `matcher` | `string` | `undefined` | Patrón coincidido contra el campo de filtro del evento, siguiendo las [reglas para matchers en archivos de configuración](/docs/es/hooks#matcher-patterns). Para hooks de herramientas, este es el nombre de la herramienta. Las herramientas integradas incluyen `Bash`, `Read`, `Write`, `Edit`, `Glob`, `Grep`, `WebFetch`, `Agent` y otros (consulta [Tipos de entrada de herramienta](/docs/es/agent-sdk/typescript#tool-input-types) para la lista completa). Las herramientas MCP usan el patrón `mcp__<server>__<action>`, donde `<server>` es la clave que usas en la configuración `mcpServers`. |

235| `hooks` | `HookCallback[]` | - | Requerido. Matriz de funciones de devolución de llamada a ejecutar cuando el patrón coincide |235| `hooks` | `HookCallback[]` | - | Requerido. Matriz de funciones de devolución de llamada a ejecutar cuando el patrón coincide |

236| `timeout` | `number` | `undefined` | Tiempo de espera en segundos. Cuando se omite, Claude Code aplica el [tiempo de espera predeterminado del evento](#hook-timeout). Sus devoluciones de llamada del SDK siguen los valores predeterminados del hook `command` |236| `timeout` | `number` | `undefined` | Tiempo de espera en segundos. Cuando se omite, Claude Code aplica el [tiempo de espera predeterminado del evento](#hook-timeout). Tus devoluciones de llamada del SDK siguen los valores predeterminados del hook `command` |

237 237 

238Use el patrón `matcher` para dirigirse a herramientas específicas siempre que sea posible. Un matcher con `'Bash'` solo se ejecuta para comandos Bash, mientras que omitir el patrón ejecuta sus devoluciones de llamada para cada ocurrencia del evento. Omítalo a propósito para registrar cada llamada de herramienta que su sesión realiza.238Usa el patrón `matcher` para dirigirte a herramientas específicas siempre que sea posible. Un matcher con `'Bash'` solo se ejecuta para comandos Bash, mientras que omitir el patrón ejecuta tus devoluciones de llamada para cada ocurrencia del evento. Omítelo a propósito para registrar cada llamada a herramienta que realiza tu sesión.

239 239 

240<h3 id="callback-functions">240<h3 id="callback-functions">

241 Funciones de devolución de llamada241 Funciones de devolución de llamada


247 247 

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

249 249 

250* **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](/docs/es/agent-sdk/typescript#hookinput) y [Python](/docs/es/agent-sdk/python#hookinput).250* **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`. Consulta las definiciones de tipo completas en las referencias del SDK de [TypeScript](/docs/es/agent-sdk/typescript#hookinput) y [Python](/docs/es/agent-sdk/python#hookinput).

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

252 * `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, son campos opcionales en `PreToolUse`, `PostToolUse`, `PostToolUseFailure` y `PermissionRequest`, y campos requeridos en `SubagentStart` y `SubagentStop`.252 * `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, son campos opcionales en `PreToolUse`, `PostToolUse`, `PostToolUseFailure` y `PermissionRequest`, y campos requeridos en `SubagentStart` y `SubagentStop`.

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

254* **Contexto:** en TypeScript, contiene una propiedad `signal` (`AbortSignal`) para cancelación. En Python, este argumento está reservado para uso futuro.254* **Contexto:** en TypeScript, contiene una propiedad `signal` (`AbortSignal`) para cancelación. En Python, este argumento está reservado para uso futuro.

255 255 

256<h4 id="outputs">256<h4 id="outputs">

257 Salidas257 Salidas

258</h4>258</h4>

259 259 

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

261 261 

262* **Campos de nivel superior** se aceptan en cada evento: `systemMessage` muestra un mensaje al usuario, y `continue` (`continue_` en Python) determina si el agente sigue ejecutándose después de este hook. Algunos eventos los descartan o los entregan en otro lugar. Cada [sección del evento](/docs/es/hooks#hook-events) en la página de hooks dice dónde llegan.262* **Campos de nivel superior** se aceptan en cada evento: `systemMessage` muestra un mensaje al usuario, y `continue` (`continue_` en Python) determina si el agente sigue ejecutándose después de este hook. Algunos eventos los descartan o los entregan en otro lugar. Cada [sección del evento](/docs/es/hooks#hook-events) en la página de hooks dice dónde llegan.

263* **`hookSpecificOutput`** controla la operación actual. Los campos que estableces dentro dependen del tipo de evento de hook:263* **`hookSpecificOutput`** controla la operación actual. Los campos que estableces dentro dependen del tipo de evento de hook:

264 * Para hooks `PreToolUse`, aquí es donde estableces `permissionDecision` (`"allow"`, `"deny"`, `"ask"` o `"defer"`), `permissionDecisionReason` e `updatedInput`. Si devuelves `"defer"`, el turno termina con un mensaje de resultado cuyo `stop_reason` es `"tool_deferred"`, para que puedas [reanudar la llamada más tarde](/docs/es/hooks#defer-a-tool-call-for-later).264 * Para hooks `PreToolUse`, aquí es donde estableces `permissionDecision` (`"allow"`, `"deny"`, `"ask"` o `"defer"`), `permissionDecisionReason` e `updatedInput`. Si devuelves `"defer"`, el turno termina con un mensaje de resultado cuyo `stop_reason` es `"tool_deferred"`, para que puedas [reanudar la llamada más tarde](/docs/es/hooks#defer-a-tool-call-for-later).

265 * Para hooks `PostToolUse`, puedes establecer `additionalContext` para agregar información al resultado de la herramienta. Para reemplazar la salida de la herramienta antes de que Claude la vea, establece `updatedToolOutput`, que funciona para cualquier herramienta en ambos SDK. El campo anterior `updatedMCPToolOutput` reemplaza solo la salida de herramientas MCP y está obsoleto.265 * Para hooks `PostToolUse`, puedes establecer `additionalContext` para agregar información al resultado de la herramienta. Para reemplazar la salida de la herramienta antes de que Claude la vea, establece `updatedToolOutput`, que funciona para cualquier herramienta en ambos SDK. El campo anterior `updatedMCPToolOutput` reemplaza solo la salida de herramientas MCP.

266 * En el SDK de TypeScript, una devolución de llamada `PostToolUse` también puede devolver `classifierContext`, una nota breve sobre el resultado de la llamada a herramienta para el clasificador de permisos del [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode). Debido a que tu devolución de llamada se ejecuta en el proceso propio de tu aplicación, el clasificador puede considerar una declaración de usuario que retransmitas en la nota como intención del usuario. El campo requiere TypeScript Agent SDK v0.3.236 o posterior. [Anotar un resultado para el clasificador del modo automático](/docs/es/hooks#annotate-a-result-for-the-auto-mode-classifier) cubre el límite de longitud, la regla de solo sincrónico, y qué no poner en la nota.266 * En el SDK de TypeScript, una devolución de llamada `PostToolUse` también puede devolver `classifierContext`, una nota breve sobre el resultado de la llamada a herramienta para el clasificador de permisos del [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode). Debido a que tu devolución de llamada se ejecuta en el proceso propio de tu aplicación, el clasificador puede considerar una declaración de usuario que retransmitas en la nota como intención del usuario. El campo requiere TypeScript Agent SDK v0.3.236 o posterior. [Anotar un resultado para el clasificador del modo automático](/docs/es/hooks#annotate-a-result-for-the-auto-mode-classifier) cubre el límite de longitud, la regla de solo sincrónico, y qué no poner en la nota.

267 267 

268Devuelva `{}` 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](/docs/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](/docs/es/agent-sdk/typescript#synchookjsonoutput) y [Python](/docs/es/agent-sdk/python#synchookjsonoutput).268Devuelve `{}` 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](/docs/es/hooks#json-output), que documenta cada campo y opción específica del evento. Para las definiciones de tipo del SDK, consulta las referencias del SDK de [TypeScript](/docs/es/agent-sdk/typescript#synchookjsonoutput) y [Python](/docs/es/agent-sdk/python#synchookjsonoutput).

269 269 

270<Note>270<Note>

271 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.271 Cuando se aplican múltiples hooks o reglas de permisos, `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.

272</Note>272</Note>

273 273 

274<h4 id="asynchronous-output">274<h4 id="asynchronous-output">

275 Salida asincrónica275 Salida asincrónica

276</h4>276</h4>

277 277 

278De forma predeterminada, el agente espera a que su hook devuelva antes de continuar. Si su hook realiza un efecto secundario, como registro o envío de webhook, y no necesita influir en el comportamiento del agente, puede devolver una salida asincrónica en su lugar. Esto le dice al agente que continúe inmediatamente sin esperar a que el hook termine. En este fragmento, `send_to_logging_service` en Python y `sendToLoggingService` en TypeScript representan cualquier función de registro que defina:278De forma predeterminada, el agente espera a que tu hook devuelva antes de continuar. Si tu hook realiza un efecto secundario, como registro o envío de webhook, y no necesita influir en el comportamiento del agente, puedes devolver una salida asincrónica en su lugar. Esto le dice al agente que continúe inmediatamente sin esperar a que el hook termine. En este fragmento, `send_to_logging_service` en Python y `sendToLoggingService` en TypeScript representan cualquier función de registro que definas:

279 279 

280<CodeGroup>280<CodeGroup>

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


296 296 

297| Campo | Tipo | Descripción |297| Campo | Tipo | Descripción |

298| - | - | - |298| - | - | - |

299| `async` | `true` | Señala modo asincrónico. El agente continúa sin esperar. En Python, use `async_` para evitar la palabra clave reservada. |299| `async` | `true` | Señala modo asincrónico. El agente continúa sin esperar. En Python, usa `async_` para evitar la palabra clave reservada. |

300| `asyncTimeout` | `number` | Tiempo de espera opcional en milisegundos para la operación de fondo |300| `asyncTimeout` | `number` | Tiempo de espera opcional en milisegundos para la operación en segundo plano |

301 301 

302<Note>302<Note>

303 Las salidas asincrónicas no pueden bloquear, modificar o inyectar contexto en la operación ya que el agente ya ha avanzado. Úselas solo para efectos secundarios como registro, métricas o notificaciones.303 Las salidas asincrónicas no pueden bloquear, modificar o inyectar contexto en la operación ya que el agente ya ha avanzado. Úsalas solo para efectos secundarios como registro, métricas o notificaciones.

304</Note>304</Note>

305 305 

306<h2 id="examples">306<h2 id="examples">


801 Hook no se dispara801 Hook no se dispara

802</h3>802</h3>

803 803 

804* Verifique que el nombre del evento de hook sea correcto y sensible a mayúsculas (`PreToolUse`, no `preToolUse`)804* Verifica que el nombre del evento de hook sea correcto y sensible a mayúsculas (`PreToolUse`, no `preToolUse`)

805* Verifique que su patrón de matcher coincida exactamente con el nombre de la herramienta805* Verifica que tu patrón de matcher coincida exactamente con el nombre de la herramienta

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

807* Para hooks que no son de herramientas que admiten matchers, como `Notification` y `SubagentStop`, los matchers coinciden contra campos diferentes, y `Stop` ignora los matchers por completo (vea [patrones de matcher](/docs/es/hooks#matcher-patterns))807* Para hooks que no son de herramientas que admiten matchers, como `Notification` y `SubagentStop`, los matchers coinciden contra campos diferentes, y `Stop` ignora los matchers por completo (consulta [patrones de matcher](/docs/es/hooks#matcher-patterns))

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

809 809 

810<h3 id="matcher-not-filtering-as-expected">810<h3 id="matcher-not-filtering-as-expected">

811 Matcher no filtra como se esperaba811 Matcher no filtra como se esperaba

812</h3>812</h3>

813 813 

814Los matchers solo coinciden con nombres de herramientas, no con rutas de archivo u otros argumentos. Para filtrar por ruta de archivo, verifique `tool_input.file_path` dentro de su hook:814Los matchers solo coinciden con nombres de herramientas, no con rutas de archivo u otros argumentos. Para filtrar por ruta de archivo, verifica `tool_input.file_path` dentro de tu hook:

815 815 

816```typescript theme={null}816```typescript theme={null}

817const myHook: HookCallback = async (input, toolUseID, { signal }) => {817const myHook: HookCallback = async (input, toolUseID, { signal }) => {


828 Tiempo de espera del hook828 Tiempo de espera del hook

829</h3>829</h3>

830 830 

831Claude Code ejecuta cada devolución de llamada con un tiempo de espera, que usted establece en segundos con el campo `timeout` en su `HookMatcher`. Cuando no establece uno, Claude Code utiliza el valor predeterminado del evento: 600 segundos para la mayoría de eventos, 30 segundos para `UserPromptSubmit`, `PreModelSwitch` y `PostModelSwitch`, y 10 segundos para `MessageDisplay`. Claude Code ejecuta devoluciones de llamada `SessionEnd` durante el apagado bajo el [presupuesto de tiempo de espera SessionEnd](/docs/es/hooks#sessionend-input) más corto, 1,5 segundos de forma predeterminada.831Claude Code ejecuta cada devolución de llamada con un tiempo de espera, que estableces en segundos con el campo `timeout` en su `HookMatcher`. Cuando no estableces uno, Claude Code utiliza el valor predeterminado del evento: 600 segundos para la mayoría de eventos, 30 segundos para `UserPromptSubmit`, `PreModelSwitch` y `PostModelSwitch`, y 10 segundos para `MessageDisplay`. Claude Code ejecuta devoluciones de llamada `SessionEnd` durante el apagado bajo el [presupuesto de tiempo de espera SessionEnd](/docs/es/hooks#sessionend-input) más corto, 1,5 segundos de forma predeterminada.

832 832 

833Cuando una devolución de llamada excede su tiempo de espera, Claude Code la cancela y descarta su salida, y la sesión continúa en lugar de colgarse. Lo que sucede a continuación depende del evento:833Cuando una devolución de llamada excede su tiempo de espera, Claude Code la cancela y descarta su salida, y la sesión continúa en lugar de colgarse. Lo que sucede a continuación depende del evento:

834 834 

835* `PreToolUse`: Claude Code no ejecuta la llamada de herramienta, Claude recibe un resultado de herramienta indicando que el hook no respondió antes de su tiempo de espera, y el turno continúa. Si otro hook `PreToolUse` devolvió una denegación explícita, Claude recibe esa denegación en lugar del error de tiempo de espera. Antes de v2.1.210, Claude Code reportaba el tiempo de espera a Claude como un rechazo del usuario, lo que hacía que las sesiones desatendidas se detuvieran y esperaran entrada.835* `PreToolUse`: Claude Code no ejecuta la llamada a herramienta, Claude recibe un resultado de herramienta indicando que el hook no respondió antes de su tiempo de espera, y el turno continúa. Si otro hook `PreToolUse` devolvió una denegación explícita, Claude recibe esa denegación en lugar del error de tiempo de espera. Antes de v2.1.210, Claude Code reportaba el tiempo de espera a Claude como un rechazo del usuario, lo que hacía que las sesiones desatendidas se detuvieran y esperaran entrada.

836* `PostToolUse` y `PostToolUseFailure`: Claude Code mantiene el resultado de la herramienta y el turno continúa.836* `PostToolUse` y `PostToolUseFailure`: Claude Code mantiene el resultado de la herramienta y el turno continúa.

837* `UserPromptSubmit` y [`UserPromptExpansion`](/docs/es/hooks#userpromptexpansion): Claude Code bloquea el mensaje con un mensaje que nombra el hook y el tiempo de espera, y la sesión continúa. Debido a que una devolución de llamada en estos eventos puede actuar como una puerta de política, Claude Code nunca permite que un mensaje con tiempo de espera agotado pase sin ser revisado. Antes de v2.1.208, Claude Code terminaba la consulta con `error_during_execution` cuando una devolución de llamada en estos eventos agotaba el tiempo de espera.837* `UserPromptSubmit` y [`UserPromptExpansion`](/docs/es/hooks#userpromptexpansion): Claude Code bloquea el prompt con un mensaje que nombra el hook y el tiempo de espera, y la sesión continúa. Debido a que una devolución de llamada en estos eventos puede actuar como una puerta de política, Claude Code nunca permite que un prompt cuyo tiempo de espera se agotó pase sin ser revisado. Antes de v2.1.208, Claude Code terminaba la consulta con `error_during_execution` cuando se agotaba el tiempo de espera de una devolución de llamada en estos eventos.

838* `Stop` y `SubagentStop`: la devolución de llamada con tiempo de espera agotado cuenta como no devolver ninguna decisión. El agente o subagente se detiene como si esa devolución de llamada lo hubiera permitido, y una decisión de sus otros hooks en el evento aún se aplica. Antes de Claude Code v2.1.273, una devolución de llamada `Stop` o `SubagentStop` con tiempo de espera agotado contaba como una ejecución de hook fallida, y Claude Code descartaba las decisiones de sus otros hooks en el evento.838* `Stop` y `SubagentStop`: la devolución de llamada con tiempo de espera agotado cuenta como no devolver ninguna decisión. El agente o subagente se detiene como si esa devolución de llamada lo hubiera permitido, y una decisión de tus otros hooks en el evento aún se aplica. Antes de Claude Code v2.1.273, una devolución de llamada `Stop` o `SubagentStop` con tiempo de espera agotado contaba como una ejecución de hook fallida, y Claude Code descartaba las decisiones de tus otros hooks en el evento.

839* `SessionStart`: la devolución de llamada con tiempo de espera agotado cuenta como no devolver ninguna salida, y la sesión continúa con la salida de sus otros hooks `SessionStart`.839* `SessionStart`: la devolución de llamada con tiempo de espera agotado cuenta como no devolver ninguna salida, y la sesión continúa con la salida de tus otros hooks `SessionStart`.

840* `PreModelSwitch`: Claude Code bloquea el cambio de modelo. Un hook que no responde no ha aprobado el cambio.840* `PreModelSwitch`: Claude Code bloquea el cambio de modelo. Un hook que no responde no ha aprobado el cambio.

841* Otros eventos, como `Notification`, `PreCompact` y `PostModelSwitch`: Claude Code registra el fallo y continúa.841* Otros eventos, como `Notification`, `PreCompact` y `PostModelSwitch`: Claude Code registra el fallo y continúa.

842 842 

843La primera vez que una devolución de llamada `Stop` o `SessionStart` agota el tiempo de espera en la sesión principal, Claude Code también agrega un [`SDKInformationalMessage`](/docs/es/agent-sdk/typescript#sdkinformationalmessage) al flujo de mensajes diciendo que la aplicación que impulsa la sesión no respondió. Los tiempos de espera posteriores no repiten ese mensaje mientras su aplicación permanece sin responder.843La primera vez que se agota el tiempo de espera de una devolución de llamada `Stop` o `SessionStart` en la sesión principal, Claude Code también agrega un [`SDKInformationalMessage`](/docs/es/agent-sdk/typescript#sdkinformationalmessage) al flujo de mensajes diciendo que la aplicación que impulsa la sesión no respondió. Los tiempos de espera posteriores no repiten ese mensaje mientras tu aplicación permanece sin responder.

844 844 

845Si interrumpe la consulta mientras una devolución de llamada está pendiente, Claude Code cancela la llamada de herramienta pendiente. Antes de v2.1.208, la llamada de herramienta podría proceder si interrumpía durante una devolución de llamada `PreToolUse` pendiente.845Si interrumpes la consulta mientras una devolución de llamada está pendiente, Claude Code cancela la llamada a herramienta pendiente. Antes de v2.1.208, la llamada a herramienta podía proceder si interrumpías durante una devolución de llamada `PreToolUse` pendiente.

846 846 

847Si su devolución de llamada necesita más tiempo, establezca un `timeout` más alto en su `HookMatcher`. En TypeScript, use el `AbortSignal` del tercer argumento de devolución de llamada para manejar la cancelación correctamente cuando se agote el tiempo de espera.847Si tu devolución de llamada necesita más tiempo, establece un `timeout` más alto en su `HookMatcher`. En TypeScript, usa el `AbortSignal` del tercer argumento de la devolución de llamada para manejar la cancelación correctamente cuando se agote el tiempo de espera.

848 848 

849<h3 id="tool-blocked-unexpectedly">849<h3 id="tool-blocked-unexpectedly">

850 Herramienta bloqueada inesperadamente850 Herramienta bloqueada inesperadamente

851</h3>851</h3>

852 852 

853* Verifique todos los hooks `PreToolUse` para devoluciones de `permissionDecision: 'deny'`853* Verifica todos los hooks `PreToolUse` en busca de devoluciones de `permissionDecision: 'deny'`

854* Agregue registro a sus hooks para ver qué `permissionDecisionReason` están devolviendo854* Agrega registro a tus hooks para ver qué `permissionDecisionReason` están devolviendo

855* Verifique que los patrones de matcher no sean demasiado amplios: un matcher vacío coincide con todas las herramientas855* Verifica que los patrones de matcher no sean demasiado amplios: un matcher vacío coincide con todas las herramientas

856 856 

857<h3 id="modified-input-not-applied">857<h3 id="modified-input-not-applied">

858 Entrada modificada no aplicada858 Entrada modificada no aplicada

859</h3>859</h3>

860 860 

861* Asegúrese de que `updatedInput` esté dentro de `hookSpecificOutput`, no en el nivel superior:861* Asegúrate de que `updatedInput` esté dentro de `hookSpecificOutput`, no en el nivel superior:

862 862 

863 ```typescript theme={null}863 ```typescript theme={null}

864 return {864 return {


870 };870 };

871 ```871 ```

872 872 

873* No empareje `updatedInput` con `permissionDecision: 'defer'`, que descarta la entrada modificada. Omitir `permissionDecision` está bien: la entrada modificada aún se aplica a través de la evaluación de permiso normal. También puede devolver `'allow'` para aprobar automáticamente la entrada modificada u `'ask'` para mostrarla al usuario para su aprobación873* No emparejes `updatedInput` con `permissionDecision: 'defer'`, que descarta la entrada modificada. Omitir `permissionDecision` está bien: la entrada modificada aún se aplica a través de la evaluación de permisos normal. También puedes devolver `'allow'` para aprobar automáticamente la entrada modificada u `'ask'` para mostrarla al usuario para su aprobación

874 874 

875* Incluya `hookEventName` en `hookSpecificOutput` para identificar para qué tipo de hook es la salida875* Incluye `hookEventName` en `hookSpecificOutput` para identificar para qué tipo de hook es la salida

876 876 

877<h3 id="session-hooks-not-available-in-python">877<h3 id="session-hooks-not-available-in-python">

878 Hooks de sesión no disponibles en Python878 Hooks de sesión no disponibles en Python

879</h3>879</h3>

880 880 

881`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 porque su tipo `HookEvent` los omite. En Python, solo están disponibles como [hooks de comandos de shell](/docs/es/hooks#hook-events) definidos en archivos de configuración como `.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`](/docs/es/agent-sdk/python#settingsource) o [`settingSources`](/docs/es/agent-sdk/typescript#settingsource):881`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 porque su tipo `HookEvent` los omite. En Python, solo están disponibles como [hooks de comandos de shell](/docs/es/hooks#hook-events) definidos en archivos de configuración como `.claude/settings.json`. Los archivos de configuración que carga tu aplicación SDK dependen de [`setting_sources`](/docs/es/agent-sdk/python#settingsource) o [`settingSources`](/docs/es/agent-sdk/typescript#settingsource). Si estableces esa opción, incluye la fuente que contiene los hooks:

882 882 

883<CodeGroup>883<CodeGroup>

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


894 ```894 ```

895</CodeGroup>895</CodeGroup>

896 896 

897Para ejecutar lógica de inicialización como una devolución de llamada del SDK de Python en su lugar, use el primer mensaje de `client.receive_response()` como su disparador.897Para ejecutar lógica de inicialización como una devolución de llamada del SDK de Python en su lugar, usa el primer mensaje de `client.receive_response()` como tu disparador.

898 898 

899<h3 id="subagent-permission-prompts-multiplying">899<h3 id="subagent-permission-prompts-multiplying">

900 Solicitudes de permiso de subagente multiplicándose900 Solicitudes de permiso de subagentes multiplicándose

901</h3>901</h3>

902 902 

903Al generar múltiples subagentes, cada uno puede solicitar permisos por separado para sus propias llamadas de herramienta. Para evitar solicitudes repetidas, use hooks `PreToolUse` para aprobar automáticamente herramientas específicas, o configure reglas de permiso, que los subagentes [heredan de la conversación padre](/docs/es/sub-agents#permission-modes).903Al generar múltiples subagentes, cada uno puede solicitar permisos por separado para sus propias llamadas a herramientas. Para evitar solicitudes repetidas, usa hooks `PreToolUse` para aprobar automáticamente herramientas específicas, o configura reglas de permisos, que los subagentes [heredan de la conversación padre](/docs/es/sub-agents#permission-modes).

904 904 

905<h3 id="recursive-hook-loops-with-subagents">905<h3 id="recursive-hook-loops-with-subagents">

906 Bucles recursivos de hook con subagentes906 Bucles recursivos de hook con subagentes


908 908 

909Un hook `UserPromptSubmit` que genera subagentes puede crear bucles infinitos si esos subagentes disparan el mismo hook. Para prevenir esto:909Un hook `UserPromptSubmit` que genera subagentes puede crear bucles infinitos si esos subagentes disparan el mismo hook. Para prevenir esto:

910 910 

911* Use una variable compartida o estado de sesión para rastrear si ya está dentro de un subagente911* Usa una variable compartida o estado de sesión para rastrear si ya estás dentro de un subagente

912* Alcance los hooks para ejecutarse solo para la sesión del agente de nivel superior912* Limita los hooks para que solo se ejecuten en la sesión del agente de nivel superior

913 913 

914<h3 id="systemmessage-not-appearing-in-output">914<h3 id="systemmessage-not-appearing-in-output">

915 systemMessage no aparece en la salida915 systemMessage no aparece en la salida

916</h3>916</h3>

917 917 

918El campo `systemMessage` muestra un mensaje al usuario, no al modelo. En Claude Code v2.1.227 o posterior, el `systemMessage` de un hook puede aparecer en el flujo de mensajes como un [`SDKInformationalMessage`](/docs/es/agent-sdk/typescript#sdkinformationalmessage). Si lo hace depende del evento. Cada [sección del evento](/docs/es/hooks#hook-events) en la página de hooks dice cómo aparece la salida. Para pasar contexto al modelo en su lugar, devuelva [`additionalContext`](/docs/es/hooks#add-context-for-claude).918El campo `systemMessage` muestra un mensaje al usuario, no al modelo. En Claude Code v2.1.227 o posterior, el `systemMessage` de un hook puede aparecer en el flujo de mensajes como un [`SDKInformationalMessage`](/docs/es/agent-sdk/typescript#sdkinformationalmessage). Que aparezca o no depende del evento. Cada [sección del evento](/docs/es/hooks#hook-events) en la página de hooks indica cómo aparece la salida. Para pasar contexto al modelo en su lugar, devuelve [`additionalContext`](/docs/es/hooks#add-context-for-claude).

919 919 

920Antes de v2.1.227, el SDK exponía la salida de hooks en el flujo de mensajes solo para hooks `SessionStart` y `Setup`. Para cualquier otro evento, la salida aparecía solo en los eventos del ciclo de vida que [`includeHookEvents`](/docs/es/agent-sdk/typescript#options) (`include_hook_events` en Python) agrega. La entrada de esa opción cubre qué eventos del ciclo de vida produce cada evento de hook.920Antes de v2.1.227, el SDK exponía la salida de hooks en el flujo de mensajes solo para hooks `SessionStart` y `Setup`. Para cualquier otro evento, la salida aparecía solo en los eventos del ciclo de vida que [`includeHookEvents`](/docs/es/agent-sdk/typescript#options) (`include_hook_events` en Python) agrega. La entrada de esa opción cubre qué eventos del ciclo de vida produce cada evento de hook.

921 921 

922Si necesita exponer decisiones de hook a su aplicación de manera confiable, regístrelas por separado o use un canal de salida dedicado.922Si necesitas exponer decisiones de hook a tu aplicación de manera confiable, regístralas por separado o usa un canal de salida dedicado.

923 923 

924<h2 id="related-resources">924<h2 id="related-resources">

925 Recursos relacionados925 Recursos relacionados

agent-sdk/python.md +213 −212

Details

44 Funciones44 Funciones

45</h2>45</h2>

46 46 

47<Note>Los bloques de firma y fragmentos desnudos de `async for` / `async with` en esta página son ilustrativos. Para ejecutarlos, envuelva el cuerpo en `async def main(): ...` y llame a `asyncio.run(main())`.</Note>47<Note>Los bloques de firma y fragmentos desnudos de `async for` / `async with` en esta página son ilustrativos. Para ejecutarlos, envuelve el cuerpo en `async def main(): ...` y llama a `asyncio.run(main())`.</Note>

48 48 

49<h3 id="query">49<h3 id="query">

50 `query()`50 `query()`

51</h3>51</h3>

52 52 

53Crea una nueva sesión para cada interacción con Claude Code de forma predeterminada. Devuelve un iterador asincrónico que produce mensajes a medida que llegan. Cada llamada a `query()` comienza de nuevo sin memoria de interacciones anteriores a menos que pase `continue_conversation=True` o `resume` en [`ClaudeAgentOptions`](#claudeagentoptions). Consulte [Sessions](/docs/es/agent-sdk/sessions).53Crea una nueva sesión para cada interacción con Claude Code de forma predeterminada. Devuelve un iterador asincrónico que produce mensajes a medida que llegan. Cada llamada a `query()` comienza de nuevo sin memoria de interacciones anteriores a menos que pases `continue_conversation=True` o `resume` en [`ClaudeAgentOptions`](#claudeagentoptions). Consulta [Sessions](/docs/es/agent-sdk/sessions).

54 54 

55```python theme={null}55```python theme={null}

56async def query(56async def query(


122| :- | :- | :- |122| :- | :- | :- |

123| `name` | `str` | Identificador único para la herramienta |123| `name` | `str` | Identificador único para la herramienta |

124| `description` | `str` | Descripción legible de lo que hace la herramienta |124| `description` | `str` | Descripción legible de lo que hace la herramienta |

125| `input_schema` | `type \| dict[str, Any]` | Esquema que define los parámetros de entrada de la herramienta. Consulte [Opciones de esquema de entrada](#input-schema-options) |125| `input_schema` | `type \| dict[str, Any]` | Esquema que define los parámetros de entrada de la herramienta. Consulta [Opciones de esquema de entrada](#input-schema-options) |

126| `annotations` | [`ToolAnnotations`](#toolannotations)` \| None` | Anotaciones opcionales de herramienta MCP que proporcionan sugerencias de comportamiento a los clientes |126| `annotations` | [`ToolAnnotations`](#toolannotations)` \| None` | Anotaciones opcionales de herramienta MCP que proporcionan sugerencias de comportamiento a los clientes |

127 127 

128<h4 id="input-schema-options">128<h4 id="input-schema-options">


194 `ToolAnnotations`194 `ToolAnnotations`

195</h4>195</h4>

196 196 

197Sugerencias de comportamiento para una herramienta, pasadas como el argumento `annotations` de [`tool()`](#tool). `ToolAnnotations` extiende `mcp.types.ToolAnnotations` del SDK de MCP con un campo `maxResultSizeChars`, y puede escribir cada sugerencia en camelCase o snake\_case: `ToolAnnotations(readOnlyHint=True)` y `ToolAnnotations(read_only_hint=True)` son equivalentes. También puede pasar un `mcp.types.ToolAnnotations` simple dondequiera que el SDK acepte anotaciones.197Sugerencias de comportamiento para una herramienta, pasadas como el argumento `annotations` de [`tool()`](#tool). `ToolAnnotations` extiende `mcp.types.ToolAnnotations` del SDK de MCP con un campo `maxResultSizeChars`, y puedes escribir cada sugerencia en camelCase o snake\_case: `ToolAnnotations(readOnlyHint=True)` y `ToolAnnotations(read_only_hint=True)` son equivalentes. Para volver a leer una sugerencia desde el objeto, usa la escritura que declara tu paquete `mcp` instalado: `.readOnlyHint` en `mcp` 1.x y `.read_only_hint` en 2.x, mientras que `.maxResultSizeChars` funciona en ambas. También puedes pasar un `mcp.types.ToolAnnotations` simple dondequiera que el SDK acepte anotaciones.

198 198 

199Los nombres snake\_case y el campo `maxResultSizeChars` tipado requieren Python Agent SDK 0.2.140 o posterior. Las versiones 0.1.31 a 0.2.139 re-exportan `mcp.types.ToolAnnotations` sin cambios. En las versiones 0.1.55 a 0.2.139 aún puede pasar `maxResultSizeChars` como argumento de palabra clave: la clase MCP acepta campos adicionales, y el SDK reenvía el valor a Claude Code.199Los nombres snake\_case y el campo `maxResultSizeChars` tipado requieren Python Agent SDK 0.2.140 o posterior. Las versiones 0.1.31 a 0.2.139 re-exportan `mcp.types.ToolAnnotations` sin cambios. En las versiones 0.1.55 a 0.2.139 aún puedes pasar `maxResultSizeChars` como argumento de palabra clave: la clase MCP acepta campos adicionales, y el SDK reenvía el valor a Claude Code.

200 200 

201Todos los campos son opcionales. Los clientes no deben depender de las sugerencias para decisiones de seguridad.201Todos los campos son opcionales. Los clientes no deben depender de las sugerencias para decisiones de seguridad.

202 202 


207| `destructiveHint` | `bool \| None` | `True` | Si es `True`, la herramienta puede realizar actualizaciones destructivas (solo significativo cuando `readOnlyHint` es `False`) |207| `destructiveHint` | `bool \| None` | `True` | Si es `True`, la herramienta puede realizar actualizaciones destructivas (solo significativo cuando `readOnlyHint` es `False`) |

208| `idempotentHint` | `bool \| None` | `False` | Si es `True`, las llamadas repetidas con los mismos argumentos no tienen efecto adicional (solo significativo cuando `readOnlyHint` es `False`) |208| `idempotentHint` | `bool \| None` | `False` | Si es `True`, las llamadas repetidas con los mismos argumentos no tienen efecto adicional (solo significativo cuando `readOnlyHint` es `False`) |

209| `openWorldHint` | `bool \| None` | `True` | Si es `True`, la herramienta interactúa con entidades externas (por ejemplo, búsqueda web). Si es `False`, el dominio de la herramienta es cerrado (por ejemplo, una herramienta de memoria) |209| `openWorldHint` | `bool \| None` | `True` | Si es `True`, la herramienta interactúa con entidades externas (por ejemplo, búsqueda web). Si es `False`, el dominio de la herramienta es cerrado (por ejemplo, una herramienta de memoria) |

210| `maxResultSizeChars` | `int \| None` | `None` | Número de caracteres hasta los cuales Claude Code mantiene el resultado de texto de esta herramienta en línea en la conversación en lugar de guardarlo en un archivo, hasta 500.000. Los resultados que contienen imágenes no se ven afectados. Una configuración de Claude Code en lugar de una sugerencia MCP: el SDK la envía en `_meta` de la herramienta como `anthropic/maxResultSizeChars`. Consulte [Raise the limit for a specific tool](/docs/es/mcp#raise-the-limit-for-a-specific-tool) |210| `maxResultSizeChars` | `int \| None` | `None` | Número de caracteres hasta los cuales Claude Code mantiene el resultado de texto de esta herramienta en línea en la conversación en lugar de guardarlo en un archivo, hasta 500.000. Los resultados que contienen imágenes no se ven afectados. Un ajuste de Claude Code en lugar de una sugerencia MCP: el SDK lo envía en `_meta` de la herramienta como `anthropic/maxResultSizeChars`. Consulta [Raise the limit for a specific tool](/docs/es/mcp#raise-the-limit-for-a-specific-tool) |

211 211 

212```python theme={null}212```python theme={null}

213from claude_agent_sdk import tool, ToolAnnotations213from claude_agent_sdk import tool, ToolAnnotations


228 `create_sdk_mcp_server()`228 `create_sdk_mcp_server()`

229</h3>229</h3>

230 230 

231Crea un servidor MCP en proceso que se ejecuta dentro de su aplicación Python.231Crea un servidor MCP en proceso que se ejecuta dentro de tu aplicación Python.

232 232 

233```python theme={null}233```python theme={null}

234def create_sdk_mcp_server(234def create_sdk_mcp_server(


289 `list_sessions()`289 `list_sessions()`

290</h3>290</h3>

291 291 

292Lista sesiones pasadas con metadatos. Filtre por directorio de proyecto o liste sesiones en todos los proyectos. Sincrónico; devuelve inmediatamente.292Lista sesiones pasadas con metadatos. Filtra por directorio de proyecto o lista sesiones en todos los proyectos. Sincrónico; devuelve inmediatamente.

293 293 

294```python theme={null}294```python theme={null}

295def list_sessions(295def list_sessions(


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

309| `directory` | `str \| None` | `None` | Directorio para listar sesiones. Cuando se omite, devuelve sesiones en todos los proyectos |309| `directory` | `str \| None` | `None` | Directorio para listar sesiones. Cuando se omite, devuelve sesiones en todos los proyectos |

310| `limit` | `int \| None` | `None` | Número máximo de sesiones a devolver |310| `limit` | `int \| None` | `None` | Número máximo de sesiones a devolver |

311| `offset` | `int` | `0` | Número de sesiones a omitir desde el inicio de los resultados ordenados. Úselo con `limit` para paginación |311| `offset` | `int` | `0` | Número de sesiones a omitir desde el inicio de los resultados ordenados. Úsalo con `limit` para paginación |

312| `include_worktrees` | `bool` | `True` | Cuando `directory` está dentro de un repositorio git, incluya sesiones de todas las rutas de worktree |312| `include_worktrees` | `bool` | `True` | Cuando `directory` está dentro de un repositorio git, incluye sesiones de todas las rutas de worktree |

313 313 

314<h4 id="return-type-sdksessioninfo">314<h4 id="return-type-sdksessioninfo">

315 Tipo de retorno: `SDKSessionInfo`315 Tipo de retorno: `SDKSessionInfo`


318| Propiedad | Tipo | Descripción |318| Propiedad | Tipo | Descripción |

319| :- | :- | :- |319| :- | :- | :- |

320| `session_id` | `str` | Identificador único de sesión |320| `session_id` | `str` | Identificador único de sesión |

321| `summary` | `str` | Título de visualización: título personalizado, resumen generado automáticamente o primer prompt |321| `summary` | `str` | Título de visualización: título personalizado, prompt más reciente, resumen generado automáticamente o primer prompt |

322| `last_modified` | `int` | Última hora de modificación en milisegundos desde la época |322| `last_modified` | `int` | Última hora de modificación en milisegundos desde la época |

323| `file_size` | `int \| None` | Tamaño del archivo de sesión en bytes (`None` para backends de almacenamiento remoto) |323| `file_size` | `int \| None` | Tamaño del archivo de sesión en bytes (`None` para backends de almacenamiento remoto) |

324| `custom_title` | `str \| None` | Título de sesión establecido por el usuario |324| `custom_title` | `str \| None` | Título de sesión: el título establecido por el usuario, o el título generado automáticamente cuando no se ha establecido ninguno |

325| `first_prompt` | `str \| None` | Primer prompt de usuario significativo en la sesión |325| `first_prompt` | `str \| None` | Primer prompt de usuario significativo en la sesión |

326| `git_branch` | `str \| None` | Rama de Git al final de la sesión |326| `git_branch` | `str \| None` | Rama de Git al final de la sesión |

327| `cwd` | `str \| None` | Directorio de trabajo para la sesión |327| `cwd` | `str \| None` | Directorio de trabajo para la sesión |


332 Ejemplo332 Ejemplo

333</h4>333</h4>

334 334 

335Imprima las 10 sesiones más recientes para un proyecto. Los resultados se ordenan por `last_modified` descendente, por lo que el primer elemento es el más nuevo. Omita `directory` para buscar en todos los proyectos.335Imprime las 10 sesiones más recientes para un proyecto. Los resultados se ordenan por `last_modified` descendente, por lo que el primer elemento es el más nuevo. Omite `directory` para buscar en todos los proyectos.

336 336 

337```python theme={null}337```python theme={null}

338from claude_agent_sdk import list_sessions338from claude_agent_sdk import list_sessions


422 Ejemplo422 Ejemplo

423</h4>423</h4>

424 424 

425Busque los metadatos de una única sesión sin escanear el directorio del proyecto. Útil cuando ya tiene un ID de sesión de una ejecución anterior.425Busca los metadatos de una única sesión sin escanear el directorio del proyecto. Útil cuando ya tienes un ID de sesión de una ejecución anterior.

426 426 

427```python theme={null}427```python theme={null}

428from claude_agent_sdk import get_session_info428from claude_agent_sdk import get_session_info


462 Ejemplo462 Ejemplo

463</h4>463</h4>

464 464 

465Renombre la sesión más reciente para que sea más fácil de encontrar más tarde. El nuevo título aparece en [`SDKSessionInfo.custom_title`](#return-type-sdksessioninfo) en lecturas posteriores.465Renombra la sesión más reciente para que sea más fácil de encontrar más tarde. El nuevo título aparece en [`SDKSessionInfo.custom_title`](#return-type-sdksessioninfo) en lecturas posteriores.

466 466 

467```python theme={null}467```python theme={null}

468from claude_agent_sdk import list_sessions, rename_session468from claude_agent_sdk import list_sessions, rename_session


476 `tag_session()`476 `tag_session()`

477</h3>477</h3>

478 478 

479Etiqueta una sesión. Pase `None` para borrar la etiqueta. Las llamadas repetidas son seguras; la etiqueta más reciente gana. Sincrónico.479Etiqueta una sesión. Pasa `None` para borrar la etiqueta. Las llamadas repetidas son seguras; la etiqueta más reciente gana. Sincrónico.

480 480 

481```python theme={null}481```python theme={null}

482def tag_session(482def tag_session(


502 Ejemplo502 Ejemplo

503</h4>503</h4>

504 504 

505Etiquete una sesión, luego filtre por esa etiqueta en una lectura posterior. Pase `None` para borrar una etiqueta existente.505Etiqueta una sesión y luego filtra por esa etiqueta en una lectura posterior. Pasa `None` para borrar una etiqueta existente.

506 506 

507```python theme={null}507```python theme={null}

508from claude_agent_sdk import list_sessions, tag_session508from claude_agent_sdk import list_sessions, tag_session


813 `Transport`813 `Transport`

814</h3>814</h3>

815 815 

816Clase base abstracta para implementaciones de transporte personalizadas. Utilícela para comunicarse con el proceso Claude a través de un canal personalizado (por ejemplo, una conexión remota en lugar de un subproceso local).816Clase base abstracta para implementaciones de transporte personalizadas. Úsala para comunicarte con el proceso de Claude a través de un canal personalizado (por ejemplo, una conexión remota en lugar de un subproceso local).

817 817 

818<Warning>818<Warning>

819 Esta es una API interna de bajo nivel. La interfaz puede cambiar en futuras versiones. Las implementaciones personalizadas deben actualizarse para coincidir con cualquier cambio de interfaz.819 Esta es una API interna de bajo nivel. La interfaz puede cambiar en futuras versiones. Las implementaciones personalizadas deben actualizarse para coincidir con cualquier cambio de interfaz.


852| `read_messages()` | Iterador asincrónico que produce mensajes JSON analizados |852| `read_messages()` | Iterador asincrónico que produce mensajes JSON analizados |

853| `close()` | Cerrar la conexión y limpiar recursos |853| `close()` | Cerrar la conexión y limpiar recursos |

854| `is_ready()` | Devuelve `True` si el transporte puede enviar y recibir |854| `is_ready()` | Devuelve `True` si el transporte puede enviar y recibir |

855| `end_input()` | Cerrar el flujo de entrada (por ejemplo, cerrar stdin para transportes de subproceso) |855| `end_input()` | Cerrar el stream de entrada (por ejemplo, cerrar stdin para transportes de subproceso) |

856 856 

857Importación: `from claude_agent_sdk import Transport`857Importación: `from claude_agent_sdk import Transport`

858 858 


918 918 

919| Propiedad | Tipo | Predeterminado | Descripción |919| Propiedad | Tipo | Predeterminado | Descripción |

920| :- | :- | :- | :- |920| :- | :- | :- | :- |

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

922| `allowed_tools` | `list[str]` | `[]` | Herramientas para aprobar automáticamente sin solicitar. Esto no restringe Claude solo a estas herramientas. Si nombra una de las [herramientas de seguimiento de tareas](/docs/es/agent-sdk/todo-tracking#model-availability) aquí, Claude Code también opta por la sesión. Otras herramientas no listadas se transfieren a `permission_mode` y `can_use_tool`. Utilice `disallowed_tools` para bloquear herramientas. Consulte [Permisos](/docs/es/agent-sdk/permissions#allow-and-deny-rules) |922| `allowed_tools` | `list[str]` | `[]` | Herramientas que se aprueban automáticamente sin pedir confirmación. Esto no restringe a Claude solo a estas herramientas. Si nombras aquí una de las [herramientas de seguimiento de tareas](/docs/es/agent-sdk/todo-tracking#model-availability), Claude Code también habilita esa función en la sesión. Las demás herramientas no listadas pasan a `permission_mode` y `can_use_tool`. Usa `disallowed_tools` para bloquear herramientas. Consulta [Permisos](/docs/es/agent-sdk/permissions#allow-and-deny-rules) |

923| `system_prompt` | `str \| SystemPromptPreset \| SystemPromptCustom \| SystemPromptFile \| None` | `None` | Configuración de indicación del sistema. Pase una cadena para un indicador personalizado, `{"type": "preset", "preset": "claude_code"}` para el indicador del sistema de Claude Code con `"append"` opcional, `{"type": "custom", "prompt": "..."}` para un indicador personalizado que también puede establecer `"snapshot"`, o `{"type": "file", "path": "..."}` para cargar un indicador grande desde el disco. Consulte [`SystemPromptPreset`](#systempromptpreset), [`SystemPromptCustom`](#systempromptcustom), y [`SystemPromptFile`](#systempromptfile) |923| `system_prompt` | `str \| SystemPromptPreset \| SystemPromptCustom \| SystemPromptFile \| None` | `None` | Configuración del prompt del sistema. Pasa una cadena para un prompt personalizado, `{"type": "preset", "preset": "claude_code"}` para el prompt del sistema de Claude Code con `"append"` opcional, `{"type": "custom", "prompt": "..."}` para un prompt personalizado que también puede establecer `"snapshot"`, o `{"type": "file", "path": "..."}` para cargar un prompt grande desde el disco. Consulta [`SystemPromptPreset`](#systempromptpreset), [`SystemPromptCustom`](#systempromptcustom) y [`SystemPromptFile`](#systempromptfile) |

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

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

926| `permission_mode` | `PermissionMode \| None` | `None` | Modo de permiso para el uso de herramientas |926| `permission_mode` | `PermissionMode \| None` | `None` | Modo de permisos para el uso de herramientas |

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

928| `resume` | `str \| None` | `None` | ID de sesión para reanudar |928| `resume` | `str \| None` | `None` | ID de sesión para reanudar |

929| `session_id` | `str \| None` | `None` | Utilice un ID de sesión específico en lugar de uno generado automáticamente. Debe ser un UUID válido. No se puede combinar con `continue_conversation` o `resume` a menos que `fork_session` también esté configurado |929| `session_id` | `str \| None` | `None` | Usar un ID de sesión específico en lugar de uno generado automáticamente. Debe ser un UUID válido. No se puede combinar con `continue_conversation` o `resume` a menos que `fork_session` también esté establecido |

930| `max_turns` | `int \| None` | `None` | Máximo de turnos agentes (viajes de ronda de uso de herramientas) |930| `max_turns` | `int \| None` | `None` | Máximo de turnos agénticos (ciclos de ida y vuelta de uso de herramientas) |

931| `max_budget_usd` | `float \| None` | `None` | Detener la consulta cuando la estimación de costo del lado del cliente alcance este valor en USD. Se compara con la misma estimación que `total_cost_usd`. Para advertencias de precisión y comportamiento de reinicio, consulte [Rastrear costo y uso](/docs/es/agent-sdk/cost-tracking) |931| `max_budget_usd` | `float \| None` | `None` | Detener la consulta cuando la estimación de costo del lado del cliente alcance este valor en USD. Cuenta solo el gasto propio de la llamada; los totales restaurados de una sesión reanudada no cuentan. Para advertencias de precisión y comportamiento de reinicio, consulta [Rastrear costo y uso](/docs/es/agent-sdk/cost-tracking) |

932| `disallowed_tools` | `list[str]` | `[]` | Herramientas a denegar. Un nombre simple como `"Bash"` elimina la herramienta del contexto de Claude. Una regla con alcance como `"Bash(rm *)"` deja la herramienta disponible y deniega llamadas coincidentes en cada modo de permiso, incluido `bypassPermissions`, para el comando [tal como está escrito](/docs/es/permissions#bash-rule-limits). Consulte [Permisos](/docs/es/agent-sdk/permissions#allow-and-deny-rules) |932| `disallowed_tools` | `list[str]` | `[]` | Herramientas a denegar. Un nombre simple como `"Bash"` elimina la herramienta del contexto de Claude. Una regla con alcance como `"Bash(rm *)"` deja la herramienta disponible y deniega las llamadas coincidentes en todos los modos de permisos, incluido `bypassPermissions`, para el comando [tal como está escrito](/docs/es/permissions#bash-rule-limits). Consulta [Permisos](/docs/es/agent-sdk/permissions#allow-and-deny-rules) |

933| `enable_file_checkpointing` | `bool` | `False` | Habilitar el seguimiento de cambios de archivo para rebobinar. Consulte [Punto de control de archivo](/docs/es/agent-sdk/file-checkpointing) |933| `enable_file_checkpointing` | `bool` | `False` | Habilitar el seguimiento de cambios de archivos para rebobinar. Consulta [Checkpointing de archivos](/docs/es/agent-sdk/file-checkpointing) |

934| `model` | `str \| None` | `None` | Alias de modelo Claude o nombre de modelo completo. Consulte [valores aceptados e IDs específicos del proveedor](/docs/es/model-config#available-models) |934| `model` | `str \| None` | `None` | Alias de modelo de Claude o nombre de modelo completo. Consulta [valores aceptados e IDs específicos del proveedor](/docs/es/model-config#available-models) |

935| `fallback_model` | `str \| None` | `None` | Modelo de respaldo a utilizar si el modelo principal falla. Acepta una lista separada por comas. Para orientación, consulte [Elegir un modelo](/docs/es/agent-sdk/configuration#choose-a-model) |935| `fallback_model` | `str \| None` | `None` | Modelo de respaldo a usar si el modelo principal falla. Acepta una lista separada por comas. Para orientación, consulta [Elegir un modelo](/docs/es/agent-sdk/configuration#choose-a-model) |

936| `betas` | `list[SdkBeta]` | `[]` | Características beta para habilitar. Consulte [`SdkBeta`](#sdkbeta) para opciones disponibles |936| `betas` | `list[SdkBeta]` | `[]` | Características beta para habilitar. Consulta [`SdkBeta`](#sdkbeta) para ver las opciones disponibles |

937| `output_format` | `dict[str, Any] \| None` | `None` | Formato de salida para respuestas estructuradas (por ejemplo, `{"type": "json_schema", "schema": {...}}`). Consulte [Salidas estructuradas](/docs/es/agent-sdk/structured-outputs) para detalles |937| `output_format` | `dict[str, Any] \| None` | `None` | Formato de salida para respuestas estructuradas (por ejemplo, `{"type": "json_schema", "schema": {...}}`). Consulta [Salidas estructuradas](/docs/es/agent-sdk/structured-outputs) para más detalles |

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

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

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

941| `settings` | `str \| None` | `None` | Ruta a un archivo de configuración o una cadena JSON en línea |941| `settings` | `str \| None` | `None` | Ruta a un archivo de configuración o una cadena JSON en línea |

942| `add_dirs` | `list[str \| Path]` | `[]` | Directorios adicionales a los que Claude puede acceder. El SDK pasa cada entrada a Claude Code como `--add-dir`, por lo que con la fuente de configuración `project` Claude Code también [carga las skills, comandos y subagentes del directorio](/docs/es/permissions#additional-directories-grant-file-access-not-configuration) |942| `add_dirs` | `list[str \| Path]` | `[]` | Directorios adicionales a los que Claude puede acceder. El SDK pasa cada entrada a Claude Code como `--add-dir`, por lo que con la fuente de configuración `project` Claude Code también [carga los skills, comandos y subagentes del directorio](/docs/es/permissions#additional-directories-grant-file-access-not-configuration) |

943| `env` | `dict[str, str]` | `{}` | Variables de entorno fusionadas en la parte superior del entorno de proceso heredado. Consulte [Variables de entorno](/docs/es/env-vars) para variables que lee la CLI subyacente, y [Manejar respuestas API lentas o estancadas](#handle-slow-or-stalled-api-responses) para variables relacionadas con tiempos de espera. Establezca `CLAUDE_AGENT_SDK_CLIENT_APP` para identificar su aplicación en el encabezado User-Agent |943| `env` | `dict[str, str]` | `{}` | Variables de entorno que se fusionan sobre el entorno de proceso heredado. Consulta [Variables de entorno](/docs/es/env-vars) para ver las variables que lee la CLI subyacente, y [Manejar respuestas de API lentas o estancadas](#handle-slow-or-stalled-api-responses) para las variables relacionadas con tiempos de espera. Establece `CLAUDE_AGENT_SDK_CLIENT_APP` para identificar tu aplicación en el encabezado User-Agent |

944| `extra_args` | `dict[str, str \| None]` | `{}` | Argumentos CLI adicionales para pasar directamente a la CLI |944| `extra_args` | `dict[str, str \| None]` | `{}` | Argumentos de CLI adicionales para pasar directamente a la CLI |

945| `max_buffer_size` | `int \| None` | `None` | Máximo de bytes al almacenar en búfer la salida estándar de CLI |945| `max_buffer_size` | `int \| None` | `None` | Máximo de bytes al almacenar en búfer la salida estándar de la CLI |

946| `debug_stderr` | `Any` | `sys.stderr` | *Obsoleto* - El SDK ignora este valor. Utilice la devolución de llamada `stderr` para salida de stderr de CLI |946| `debug_stderr` | `Any` | `sys.stderr` | *Obsoleto* - El SDK ignora este valor. Usa el callback `stderr` para la salida stderr de la CLI |

947| `stderr` | `Callable[[str], None] \| None` | `None` | Función de devolución de llamada para salida de stderr desde CLI |947| `stderr` | `Callable[[str], None] \| None` | `None` | Función de callback para la salida stderr de la CLI |

948| `can_use_tool` | [`CanUseTool`](#canusetool) ` \| None` | `None` | Devolución de llamada de permiso de herramienta, invocada solo cuando el [flujo de permiso](/docs/es/agent-sdk/permissions#how-permissions-are-evaluated) se transfiere a un indicador. No se invoca para llamadas aprobadas automáticamente por `allowed_tools`, reglas de permiso, o `permission_mode`. Una regla de permiso no aprueba previamente las [acciones que ningún modo aprueba automáticamente](/docs/es/permission-modes#actions-no-mode-auto-approves). Consulte [`CanUseTool`](#canusetool) para detalles |948| `can_use_tool` | [`CanUseTool`](#canusetool) ` \| None` | `None` | Callback de permisos de herramientas, que se invoca solo cuando el [flujo de permisos](/docs/es/agent-sdk/permissions#how-permissions-are-evaluated) termina en una solicitud de permiso. No se invoca para llamadas aprobadas automáticamente por `allowed_tools`, reglas de permiso o `permission_mode`. Una regla de permiso no aprueba previamente las [acciones que ningún modo aprueba automáticamente](/docs/es/permission-modes#actions-no-mode-auto-approves). Consulta [`CanUseTool`](#canusetool) para más detalles |

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

950| `user` | `str \| None` | `None` | En plataformas POSIX, la cuenta de usuario del SO bajo la cual se ejecuta el subproceso de Claude Code. Claude Code mantiene el entorno del proceso padre, incluido `HOME`, y se ejecuta en `cwd` |950| `user` | `str \| None` | `None` | En plataformas POSIX, la cuenta de usuario del SO con la que se ejecuta el subproceso de Claude Code. Claude Code mantiene el entorno del proceso padre, incluido `HOME`, y se ejecuta en `cwd` |

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

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

953| `forward_subagent_text` | `bool` | `False` | Reenviar bloques de texto y pensamiento de subagentes en el flujo de mensajes. Sin esta opción, Claude Code emite bloques `tool_use` y `tool_result` de subagentes pero no texto ni pensamiento. Requiere Python Agent SDK 0.2.140 o posterior |953| `forward_subagent_text` | `bool` | `False` | Reenviar bloques de texto y de pensamiento de subagentes en el stream de mensajes. Sin esta opción, Claude Code omite los bloques de texto y de pensamiento de un subagente que se ejecuta en [primer plano](/docs/es/sub-agents#run-subagents-in-foreground-or-background). Para subagentes anidados, skills con `context: fork` y la versión de Claude Code que requiere cada uno, consulta [Seguir los mensajes de subagentes](/docs/es/headless#follow-subagent-messages). Requiere Python Agent SDK 0.2.140 o posterior |

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

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

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

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

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

959| `plugins` | `list[SdkPluginConfig]` | `[]` | Cargar plugins personalizados desde rutas locales. Consulte [Plugins](/docs/es/agent-sdk/plugins) para detalles |959| `plugins` | `list[SdkPluginConfig]` | `[]` | Cargar plugins personalizados desde rutas locales. Consulta [Plugins](/docs/es/agent-sdk/plugins) para más detalles |

960| `sandbox` | [`SandboxSettings`](#sandboxsettings) ` \| None` | `None` | Configurar el comportamiento del sandbox programáticamente. Consulte [Configuración de sandbox](#sandboxsettings) para detalles |960| `sandbox` | [`SandboxSettings`](#sandboxsettings) ` \| None` | `None` | Configurar el comportamiento del sandbox programáticamente. Consulta [Configuración del sandbox](#sandboxsettings) para más detalles |

961| `setting_sources` | `list[SettingSource] \| None` | `None` (Valores predeterminados de CLI: todas las fuentes) | Controlar qué configuración del sistema de archivos cargar. Pase `[]` para deshabilitar la configuración de usuario, proyecto y local. Con `skills` establecido y este campo sin establecer, solo se cargan las fuentes de usuario y proyecto. Establezca `setting_sources` explícitamente para mantener la configuración local. La política administrada por punto final se carga independientemente; la configuración administrada por servidor se obtiene cuando la sesión se autentica con una credencial de organización en una [configuración elegible](/docs/es/server-managed-settings#platform-availability). Para entradas leídas independientemente de esta opción, consulte [Lo que settingSources no controla](/docs/es/agent-sdk/claude-code-features#what-settingsources-does-not-control) |961| `setting_sources` | `list[SettingSource] \| None` | `None` (valores predeterminados de la CLI: todas las fuentes) | Controlar qué configuración del sistema de archivos se carga. Pasa `[]` para deshabilitar la configuración de usuario, de proyecto y local. Con `skills` establecido y este campo sin establecer, solo se cargan las fuentes de usuario y de proyecto. Establece `setting_sources` explícitamente para mantener la configuración local. La política administrada por endpoint se carga de todos modos; la configuración administrada por servidor se obtiene cuando la sesión se autentica con una credencial de organización en una [configuración elegible](/docs/es/server-managed-settings#platform-availability). Para las entradas que se leen independientemente de esta opción, consulta [Lo que settingSources no controla](/docs/es/agent-sdk/claude-code-features#what-settingsources-does-not-control) |

962| `skills` | `list[str] \| Literal["all"] \| None` | `None` | Skills disponibles para la sesión. Pase `"all"` para habilitar cada skill descubierto, o una lista de nombres de skills. Pase solo nombres exactos. El SDK rechaza nombres mal formados y en forma de comodín con un `ValueError` antes de iniciar el proceso de Claude Code; esta verificación requiere Python Agent SDK 0.2.129 o posterior. Cuando se establece, el SDK agrega automáticamente la herramienta Skill a `allowed_tools`. Si también pasa `tools`, incluya `"Skill"` en esa lista. Consulte [Skills](/docs/es/agent-sdk/skills) |962| `skills` | `list[str] \| Literal["all"] \| None` | `None` | Skills disponibles para la sesión. Pasa `"all"` para habilitar todos los skills descubiertos, o una lista de nombres de skills. Pasa solo nombres exactos. El SDK rechaza los nombres mal formados y con comodines con un `ValueError` antes de iniciar el proceso de Claude Code; esta verificación requiere Python Agent SDK 0.2.129 o posterior. Cuando se establece, el SDK agrega automáticamente la herramienta Skill a `allowed_tools`. Si también pasas `tools`, incluye `"Skill"` en esa lista. Consulta [Skills](/docs/es/agent-sdk/skills) |

963| `max_thinking_tokens` | `int \| None` | `None` | *Obsoleto* - Máximo de tokens para bloques de pensamiento. Utilice `thinking` en su lugar |963| `max_thinking_tokens` | `int \| None` | `None` | *Obsoleto* - Máximo de tokens para bloques de pensamiento. Usa `thinking` en su lugar |

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

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

966| `session_store` | [`SessionStore`](/docs/es/agent-sdk/session-storage#the-sessionstore-interface) ` \| None` | `None` | Reflejar transcripciones de sesión en un backend externo para que otro host pueda reanudarlas. Consulte [Persistir sesiones en almacenamiento externo](/docs/es/agent-sdk/session-storage) |966| `session_store` | [`SessionStore`](/docs/es/agent-sdk/session-storage#the-sessionstore-interface) ` \| None` | `None` | Replicar las transcripciones de sesión en un backend externo para que otro host pueda reanudarlas. Consulta [Persistir sesiones en almacenamiento externo](/docs/es/agent-sdk/session-storage) |

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

968| `load_timeout_ms` | `int` | `60000` | Tiempo de espera por llamada para `session_store.load()` y `list_subkeys()` durante la materialización de reanudación, en milisegundos |968| `load_timeout_ms` | `int` | `60000` | Tiempo de espera por llamada para `session_store.load()` y `list_subkeys()` durante la materialización de la reanudación, en milisegundos |

969| `task_budget` | `TaskBudget \| None` | `None` | Presupuesto de tokens del lado de la API. Se envía como `output_config.task_budget` con el encabezado beta `task-budgets-2026-03-13`. Pase `{"total": <int>}`. |969| `task_budget` | `TaskBudget \| None` | `None` | Presupuesto de tokens del lado de la API. Se envía como `output_config.task_budget` con el encabezado beta `task-budgets-2026-03-13`. Pasa `{"total": <int>}`. |

970 970 

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

972 Manejar respuestas API lentas o estancadas972 Manejar respuestas de API lentas o estancadas

973</h4>973</h4>

974 974 

975El subproceso CLI lee varias variables de entorno que controlan los tiempos de espera de API y la detección de estancamiento. Páselas a través de `ClaudeAgentOptions.env`:975El subproceso de la CLI lee varias variables de entorno que controlan los tiempos de espera de la API y la detección de estancamientos. Pásalas a través de `ClaudeAgentOptions.env`:

976 976 

977```python theme={null}977```python theme={null}

978from claude_agent_sdk import ClaudeAgentOptions978from claude_agent_sdk import ClaudeAgentOptions


987```987```

988 988 

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

990* `CLAUDE_CODE_MAX_RETRIES`: máximo de reintentos de API. Predeterminado `10`, limitado a `15`. Cada reintento obtiene su propia ventana `API_TIMEOUT_MS`, por lo que el tiempo de pared en el peor caso es aproximadamente `API_TIMEOUT_MS × (CLAUDE_CODE_MAX_RETRIES + 1)` más backoff. Para ejecuciones desatendidas que necesitan esperar a través de interrupciones más largas, establezca [`CLAUDE_CODE_RETRY_WATCHDOG=1`](/docs/es/errors#tune-retry-behavior): reintenta errores de capacidad transitoria indefinidamente y, en Claude Code v2.1.199 o posterior, eleva el predeterminado para otros errores transitorios a `300` y elimina el límite en esta variable.990* `CLAUDE_CODE_MAX_RETRIES`: máximo de reintentos de la API. Predeterminado `10`, limitado a `15`. Cada reintento obtiene su propia ventana de `API_TIMEOUT_MS`, por lo que el tiempo real en el peor caso es aproximadamente `API_TIMEOUT_MS × (CLAUDE_CODE_MAX_RETRIES + 1)` más el backoff. Para ejecuciones desatendidas que necesitan esperar durante interrupciones más largas, establece [`CLAUDE_CODE_RETRY_WATCHDOG=1`](/docs/es/errors#tune-retry-behavior): reintenta indefinidamente los errores transitorios de capacidad y, en Claude Code v2.1.199 o posterior, eleva el predeterminado para otros errores transitorios a `300` y elimina el límite de esta variable.

991* `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS`: perro guardián de estancamiento para subagentes. Mientras el perro guardián de flujo está activado, el predeterminado es `CLAUDE_STREAM_IDLE_TIMEOUT_MS` más 5 minutos, lo que suma `600000` a menos que eleve esa variable. Con el perro guardián de flujo desactivado, el predeterminado es `600000`. Antes de v2.1.257, el predeterminado era siempre `600000`.991* `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS`: watchdog de estancamiento para subagentes. Mientras el watchdog de stream está activado, el predeterminado es `CLAUDE_STREAM_IDLE_TIMEOUT_MS` más 5 minutos, lo que da `600000` a menos que aumentes esa variable. Con el watchdog de stream desactivado, el predeterminado es `600000`. Antes de v2.1.257, el predeterminado era siempre `600000`.

992 992 

993 El temporizador se reinicia en cada evento de flujo. En un estancamiento, Claude Code aborta el subagente e informa el estancamiento al padre. Para un subagente en segundo plano, también marca la tarea como fallida y adjunta cualquier resultado parcial.993 El temporizador se reinicia con cada evento de stream. Ante un estancamiento, Claude Code aborta el subagente e informa el estancamiento al padre. Para un subagente en segundo plano, también marca la tarea como fallida y adjunta cualquier resultado parcial.

994* `CLAUDE_ENABLE_STREAM_WATCHDOG` con `CLAUDE_STREAM_IDLE_TIMEOUT_MS`: perro guardián de flujo que aborta la solicitud cuando los encabezados han llegado pero el cuerpo de respuesta deja de transmitirse. El perro guardián está activado de forma predeterminada para todos los proveedores; establezca `CLAUDE_ENABLE_STREAM_WATCHDOG=0` para desactivarlo. `CLAUDE_STREAM_IDLE_TIMEOUT_MS` tiene un predeterminado de `300000` y se fija a ese mínimo. Después del aborto, [Reintentos automáticos](/docs/es/errors#automatic-retries) cubre lo que Claude Code hace, según qué tan lejos haya progresado la respuesta.994* `CLAUDE_ENABLE_STREAM_WATCHDOG` con `CLAUDE_STREAM_IDLE_TIMEOUT_MS`: watchdog de stream que aborta la solicitud cuando los encabezados han llegado pero el cuerpo de la respuesta deja de transmitirse en streaming. El watchdog está activado de forma predeterminada para todos los proveedores; establece `CLAUDE_ENABLE_STREAM_WATCHDOG=0` para desactivarlo. `CLAUDE_STREAM_IDLE_TIMEOUT_MS` tiene un predeterminado de `300000` y se ajusta a ese mínimo. Después del aborto, [Reintentos automáticos](/docs/es/errors#automatic-retries) explica lo que hace Claude Code según cuánto haya avanzado la respuesta.

995 995 

996 Mientras el perro guardián espera una respuesta que una puerta de enlace detrás de `ANTHROPIC_BASE_URL` mantiene abierta con pings de keep-alive, un host que establece `include_partial_messages` sigue recibiendo mensajes [`StreamEvent`](#streamevent) de `ping`. Lea esos fotogramas como vivacidad en lugar de agotar el tiempo de espera de la sesión en silencio. Antes de v2.1.257, los fotogramas se detenían 5 minutos después del último evento de flujo real.996 Mientras el watchdog espera una respuesta que un gateway detrás de `ANTHROPIC_BASE_URL` mantiene abierta con pings de keep-alive, un host que establece `include_partial_messages` sigue recibiendo mensajes [`StreamEvent`](#streamevent) de tipo `ping`. Interpreta esos frames como señal de actividad en lugar de agotar el tiempo de espera de la sesión por silencio. Antes de v2.1.257, los frames se detenían 5 minutos después del último evento de stream real.

997 997 

998<h3 id="outputformat">998<h3 id="outputformat">

999 `OutputFormat`999 `OutputFormat`

1000</h3>1000</h3>

1001 1001 

1002Configuración para validación de salida estructurada. Pase esto como un `dict` al campo `output_format` en `ClaudeAgentOptions`:1002Configuración para la validación de salida estructurada. Pásala como un `dict` al campo `output_format` de `ClaudeAgentOptions`:

1003 1003 

1004```python theme={null}1004```python theme={null}

1005# Forma de dict esperada para output_format1005# Forma de dict esperada para output_format

1006{1006{

1007 "type": "json_schema",1007 "type": "json_schema",

1008 "schema": {...}, # Su definición de JSON Schema1008 "schema": {...}, # Tu definición de JSON Schema

1009}1009}

1010```1010```

1011 1011 

1012| Campo | Requerido | Descripción |1012| Campo | Requerido | Descripción |

1013| :- | :- | :- |1013| :- | :- | :- |

1014| `type` | Sí | Debe ser `"json_schema"` para validación de JSON Schema |1014| `type` | Sí | Debe ser `"json_schema"` para la validación con JSON Schema |

1015| `schema` | Sí | Definición de JSON Schema para validación de salida |1015| `schema` | Sí | Definición de JSON Schema para la validación de salida |

1016 1016 

1017<h3 id="systempromptpreset">1017<h3 id="systempromptpreset">

1018 `SystemPromptPreset`1018 `SystemPromptPreset`

1019</h3>1019</h3>

1020 1020 

1021Configuración para usar el indicador del sistema preestablecido de Claude Code con adiciones opcionales.1021Configuración para usar el prompt del sistema preestablecido de Claude Code con adiciones opcionales.

1022 1022 

1023```python theme={null}1023```python theme={null}

1024class SystemPromptPreset(TypedDict):1024class SystemPromptPreset(TypedDict):


1031 1031 

1032| Campo | Requerido | Descripción |1032| Campo | Requerido | Descripción |

1033| :- | :- | :- |1033| :- | :- | :- |

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

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

1036| `append` | No | Instrucciones adicionales para agregar al indicador del sistema preestablecido |1036| `append` | No | Instrucciones adicionales para agregar al prompt del sistema preestablecido |

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

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

1039 1039 

1040<h3 id="systempromptcustom">1040<h3 id="systempromptcustom">

1041 `SystemPromptCustom`1041 `SystemPromptCustom`

1042</h3>1042</h3>

1043 1043 

1044Un indicador del sistema personalizado en forma de objeto, equivalente a pasar una cadena como `system_prompt`, que también puede establecer `snapshot`. Requiere `claude-agent-sdk` v0.2.153 o posterior.1044Un prompt del sistema personalizado en forma de objeto, equivalente a pasar una cadena como `system_prompt`, que también puede establecer `snapshot`. Requiere `claude-agent-sdk` v0.2.153 o posterior.

1045 1045 

1046```python theme={null}1046```python theme={null}

1047class SystemPromptCustom(TypedDict):1047class SystemPromptCustom(TypedDict):


1053| Campo | Requerido | Descripción |1053| Campo | Requerido | Descripción |

1054| :- | :- | :- |1054| :- | :- | :- |

1055| `type` | Sí | Debe ser `"custom"` |1055| `type` | Sí | Debe ser `"custom"` |

1056| `prompt` | Sí | El texto del indicador del sistema. Se pasa a la CLI como un argumento de línea de comandos, por lo que se aplican los [límites de longitud de línea de comandos](#systempromptfile) |1056| `prompt` | Sí | El texto del prompt del sistema. Se pasa a la CLI como un argumento de línea de comandos, por lo que se aplican los [límites de longitud de la línea de comandos](#systempromptfile) |

1057| `snapshot` | No | Igual que [`SystemPromptPreset.snapshot`](#systempromptpreset), aplicado a `prompt` |1057| `snapshot` | No | Igual que [`SystemPromptPreset.snapshot`](#systempromptpreset), aplicado a `prompt` |

1058 1058 

1059<h3 id="systempromptfile">1059<h3 id="systempromptfile">

1060 `SystemPromptFile`1060 `SystemPromptFile`

1061</h3>1061</h3>

1062 1062 

1063Configuración para cargar un indicador del sistema personalizado desde un archivo en lugar de pasarlo como una cadena. El SDK asigna esto a la bandera CLI [`--system-prompt-file`](/docs/es/cli-reference#system-prompt-flags). Utilice la forma de archivo cuando el indicador es grande: el SDK pasa un `system_prompt` de cadena en el argv del subproceso CLI, que está sujeto a límites de longitud de línea de comandos del SO antes de que el SDK envíe cualquier solicitud de API. En Linux, un único argumento más largo que aproximadamente 128 KB falla al generar el proceso con `Argument list too long`. En Windows, toda la línea de comandos está limitada a aproximadamente 32 KB, por lo que la forma de cadena falla en un umbral más bajo.1063Configuración para cargar un prompt del sistema personalizado desde un archivo en lugar de pasarlo como una cadena. El SDK lo asigna al flag de la CLI [`--system-prompt-file`](/docs/es/cli-reference#system-prompt-flags). Usa la forma de archivo cuando el prompt sea grande: el SDK pasa un `system_prompt` de tipo cadena en el argv del subproceso de la CLI, que está sujeto a los límites de longitud de la línea de comandos del SO antes de que el SDK envíe cualquier solicitud a la API. En Linux, un único argumento de más de aproximadamente 128 KB falla al generar el proceso con `Argument list too long`. En Windows, toda la línea de comandos está limitada a aproximadamente 32 KB, por lo que la forma de cadena falla con un umbral más bajo.

1064 1064 

1065```python theme={null}1065```python theme={null}

1066class SystemPromptFile(TypedDict):1066class SystemPromptFile(TypedDict):


1070 1070 

1071| Campo | Requerido | Descripción |1071| Campo | Requerido | Descripción |

1072| :- | :- | :- |1072| :- | :- | :- |

1073| `type` | Sí | Debe ser `"file"` para cargar el indicador desde el disco |1073| `type` | Sí | Debe ser `"file"` para cargar el prompt desde el disco |

1074| `path` | Sí | Ruta a un archivo que contiene el indicador del sistema |1074| `path` | Sí | Ruta a un archivo que contiene el prompt del sistema |

1075 1075 

1076<h3 id="settingsource">1076<h3 id="settingsource">

1077 `SettingSource`1077 `SettingSource`

1078</h3>1078</h3>

1079 1079 

1080Controla qué fuentes de configuración basadas en el sistema de archivos carga el SDK.1080Controla desde qué fuentes de configuración basadas en el sistema de archivos carga el SDK la configuración.

1081 1081 

1082```python theme={null}1082```python theme={null}

1083SettingSource = Literal["user", "project", "local"]1083SettingSource = Literal["user", "project", "local"]


1086| Valor | Descripción | Ubicación |1086| Valor | Descripción | Ubicación |

1087| :- | :- | :- |1087| :- | :- | :- |

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

1089| `"project"` | Configuración del proyecto compartido (controlada por versión) | `.claude/settings.json` |1089| `"project"` | Configuración compartida del proyecto (bajo control de versiones) | `.claude/settings.json` |

1090| `"local"` | Configuración del proyecto local, ignorada en git cuando Claude Code guarda una configuración en ella | `.claude/settings.local.json` |1090| `"local"` | Configuración local del proyecto, ignorada por git cuando Claude Code guarda un ajuste en ella | `.claude/settings.local.json` |

1091 1091 

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

1093 Comportamiento predeterminado1093 Comportamiento predeterminado

1094</h4>1094</h4>

1095 1095 

1096Cuando `setting_sources` se omite o es `None` y `skills` no está establecido, `query()` carga la misma configuración del sistema de archivos que la CLI de Claude Code: usuario, proyecto y local. Con `skills` establecido, la fila [`setting_sources`](#claudeagentoptions) describe el predeterminado actual. La política administrada por punto final se carga en todos los casos; la configuración administrada por servidor se obtiene cuando la sesión se autentica con una credencial de organización en una [configuración elegible](/docs/es/server-managed-settings#platform-availability). Para más información, consulte [Lo que settingSources no controla](/docs/es/agent-sdk/claude-code-features#what-settingsources-does-not-control).1096Cuando `setting_sources` se omite o es `None` y `skills` no está establecido, `query()` carga la misma configuración del sistema de archivos que la CLI de Claude Code: de usuario, de proyecto y local. Con `skills` establecido, la fila [`setting_sources`](#claudeagentoptions) describe el predeterminado actual. La política administrada por endpoint se carga en todos los casos; la configuración administrada por servidor se obtiene cuando la sesión se autentica con una credencial de organización en una [configuración elegible](/docs/es/server-managed-settings#platform-availability). Para más información, consulta [Lo que settingSources no controla](/docs/es/agent-sdk/claude-code-features#what-settingsources-does-not-control).

1097 1097 

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

1099 Por qué usar setting\_sources1099 Por qué usar setting\_sources

1100</h4>1100</h4>

1101 1101 

1102**Deshabilitar configuración del sistema de archivos:**1102**Deshabilitar la configuración del sistema de archivos:**

1103 1103 

1104```python theme={null}1104```python theme={null}

1105# No cargar configuración de usuario, proyecto o local desde el disco1105# No cargar configuración de usuario, proyecto o local desde el disco


1121```1121```

1122 1122 

1123<Note>1123<Note>

1124 En Python SDK 0.1.59 y anterior, una lista vacía se trataba igual que omitir la opción, por lo que `setting_sources=[]` no deshabilitaba la configuración del sistema de archivos. Actualice a una versión más reciente si necesita que una lista vacía tenga efecto. El SDK de TypeScript no se ve afectado.1124 En Python SDK 0.1.59 y anteriores, una lista vacía se trataba igual que omitir la opción, por lo que `setting_sources=[]` no deshabilitaba la configuración del sistema de archivos. Actualiza a una versión más reciente si necesitas que una lista vacía tenga efecto. El SDK de TypeScript no se ve afectado.

1125</Note>1125</Note>

1126 1126 

1127**Cargar solo fuentes de configuración específicas:**1127**Cargar solo fuentes de configuración específicas:**


1145asyncio.run(main())1145asyncio.run(main())

1146```1146```

1147 1147 

1148**Aplicaciones solo SDK:**1148**Aplicaciones solo con SDK:**

1149 1149 

1150```python theme={null}1150```python theme={null}

1151# Definir todo programáticamente.1151# Definir todo programáticamente.

1152# Pase [] para optar por no usar fuentes de configuración del sistema de archivos.1152# Pasa [] para excluir las fuentes de configuración del sistema de archivos.

1153import asyncio1153import asyncio

1154from claude_agent_sdk import AgentDefinition, ClaudeAgentOptions, query1154from claude_agent_sdk import AgentDefinition, ClaudeAgentOptions, query

1155 1155 


1174asyncio.run(main())1174asyncio.run(main())

1175```1175```

1176 1176 

1177Para cargar instrucciones del proyecto CLAUDE.md, incluya `"project"` en `setting_sources`. Consulte [Modificar indicadores del sistema](/docs/es/agent-sdk/modifying-system-prompts#claude-md-files-for-project-level-instructions) para ver cómo la carga de CLAUDE.md interactúa con las opciones de indicador del sistema.1177Para cargar las instrucciones del proyecto de CLAUDE.md, incluye `"project"` en `setting_sources`. Consulta [Modificar prompts del sistema](/docs/es/agent-sdk/modifying-system-prompts#claude-md-files-for-project-level-instructions) para ver cómo interactúa la carga de CLAUDE.md con las opciones del prompt del sistema.

1178 1178 

1179<h4 id="settings-precedence">1179<h4 id="settings-precedence">

1180 Precedencia de configuración1180 Precedencia de configuración

1181</h4>1181</h4>

1182 1182 

1183Cuando se cargan múltiples fuentes, la configuración se fusiona con esta precedencia (mayor a menor):1183Cuando se cargan varias fuentes, la configuración se fusiona con esta precedencia (de mayor a menor):

1184 1184 

11851. Configuración local (`.claude/settings.local.json`)11851. Configuración local (`.claude/settings.local.json`)

11862. Configuración del proyecto (`.claude/settings.json`)11862. Configuración del proyecto (`.claude/settings.json`)

11873. Configuración del usuario (`~/.claude/settings.json`)11873. Configuración del usuario (`~/.claude/settings.json`)

1188 1188 

1189Las opciones programáticas como `agents`, `allowed_tools` y `settings` anulan la configuración del sistema de archivos de usuario, proyecto y local. La configuración de política administrada tiene precedencia sobre las opciones programáticas.1189Las opciones programáticas como `agents`, `allowed_tools` y `settings` sobrescriben la configuración del sistema de archivos de usuario, de proyecto y local. La configuración de política administrada tiene precedencia sobre las opciones programáticas.

1190 1190 

1191<h3 id="agentdefinition">1191<h3 id="agentdefinition">

1192 `AgentDefinition`1192 `AgentDefinition`


1215| Campo | Requerido | Descripción |1215| Campo | Requerido | Descripción |

1216| :- | :- | :- |1216| :- | :- | :- |

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

1218| `prompt` | Sí | El indicador del sistema del agente |1218| `prompt` | Sí | El prompt del sistema del agente |

1219| `tools` | No | Matriz de nombres de herramientas permitidas. Si se omite, hereda cada [herramienta disponible para subagentes](/docs/es/sub-agents#available-tools) |1219| `tools` | No | Array de nombres de herramientas permitidas. Si se omite, hereda todas las [herramientas disponibles para subagentes](/docs/es/sub-agents#available-tools) |

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

1221| `model` | No | Anulación de modelo para este agente. Acepta un alias como `"sonnet"`, `"opus"`, `"haiku"`, o `"inherit"`, o un ID de modelo completo. Cuando lo omite, Claude Code elige el modelo en el [orden de modelo de subagente](/docs/es/sub-agents#choose-a-model) |1221| `model` | No | Sobrescritura del modelo para este agente. Acepta un alias como `"sonnet"`, `"opus"`, `"haiku"` o `"inherit"`, o un ID de modelo completo. Cuando lo omites, Claude Code elige el modelo según el [orden de modelos de subagentes](/docs/es/sub-agents#choose-a-model) |

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

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

1224| `mcpServers` | No | Servidores MCP disponibles para este agente. Cada entrada es un nombre de servidor o un dict `{name: config}` en línea |1224| `mcpServers` | No | Servidores MCP disponibles para este agente. Cada entrada es un nombre de servidor o un dict `{name: config}` en línea |

1225| `initialPrompt` | No | Se envía automáticamente como el primer turno del usuario cuando este agente se ejecuta como el agente del hilo principal |1225| `initialPrompt` | No | Se envía automáticamente como el primer turno del usuario cuando este agente se ejecuta como el agente del hilo principal |

1226| `maxTurns` | No | Número máximo de turnos agentes antes de que el agente se detenga |1226| `maxTurns` | No | Número máximo de turnos agénticos antes de que el agente se detenga |

1227| `background` | No | Ejecutar este agente como una tarea de fondo no bloqueante cuando se invoca |1227| `background` | No | Ejecutar este agente como una tarea en segundo plano no bloqueante cuando se invoca |

1228| `effort` | No | Nivel de esfuerzo de razonamiento para este agente. Acepta un nivel nombrado o un entero. Consulte [`EffortLevel`](#effortlevel) |1228| `effort` | No | Nivel de esfuerzo de razonamiento para este agente. Acepta un nivel con nombre o un entero. Consulta [`EffortLevel`](#effortlevel) |

1229| `permissionMode` | No | Modo de permiso para la ejecución de herramientas dentro de este agente. Las [reglas de herencia de subagentes](/docs/es/agent-sdk/permissions#available-modes) deciden cuándo se aplica. Consulte [`PermissionMode`](#permissionmode) |1229| `permissionMode` | No | Modo de permisos para la ejecución de herramientas dentro de este agente. Las [reglas de herencia de subagentes](/docs/es/agent-sdk/permissions#available-modes) deciden cuándo se aplica. Consulta [`PermissionMode`](#permissionmode) |

1230 1230 

1231<Note>1231<Note>

1232 Los nombres de campo `AgentDefinition` utilizan camelCase, como `disallowedTools`, `permissionMode` y `maxTurns`. Estos nombres se asignan directamente al formato de cable compartido con el SDK de TypeScript. Esto difiere de `ClaudeAgentOptions`, que utiliza snake\_case de Python para los campos de nivel superior equivalentes como `disallowed_tools` y `permission_mode`. Debido a que `AgentDefinition` es una dataclass, pasar una palabra clave snake\_case genera un `TypeError` en el tiempo de construcción.1232 Los nombres de campo de `AgentDefinition` usan camelCase, como `disallowedTools`, `permissionMode` y `maxTurns`. Estos nombres corresponden directamente al formato de transmisión compartido con el SDK de TypeScript. Esto difiere de `ClaudeAgentOptions`, que usa snake\_case de Python para los campos de nivel superior equivalentes, como `disallowed_tools` y `permission_mode`. Como `AgentDefinition` es una dataclass, pasar una palabra clave en snake\_case genera un `TypeError` al construirla.

1233</Note>1233</Note>

1234 1234 

1235<h3 id="permissionmode">1235<h3 id="permissionmode">

1236 `PermissionMode`1236 `PermissionMode`

1237</h3>1237</h3>

1238 1238 

1239Modos de permiso para controlar la ejecución de herramientas.1239Modos de permisos para controlar la ejecución de herramientas.

1240 1240 

1241```python theme={null}1241```python theme={null}

1242PermissionMode = Literal[1242PermissionMode = Literal[

1243 "default", # Comportamiento de permiso estándar1243 "default", # Comportamiento de permisos estándar

1244 "acceptEdits", # Aceptar automáticamente ediciones de archivo1244 "acceptEdits", # Aceptar automáticamente ediciones de archivos

1245 "plan", # Modo de planificación - explorar sin editar1245 "plan", # Modo de planificación - explorar sin editar

1246 "dontAsk", # Denegar cualquier cosa no preaprobada en lugar de solicitar1246 "dontAsk", # Denegar todo lo no preaprobado en lugar de pedir confirmación

1247 "bypassPermissions", # Omitir verificaciones de permiso; las reglas de solicitud explícita aún solicitan (usar con cuidado)1247 "bypassPermissions", # Omitir verificaciones de permisos; las reglas ask explícitas siguen pidiendo confirmación (usar con cuidado)

1248 "auto", # El clasificador del modelo aprueba o deniega indicadores de permiso1248 "auto", # Un clasificador de modelo revisa acciones como comandos de shell y solicitudes de red

1249]1249]

1250```1250```

1251 1251 


1260 "low", # Pensamiento mínimo, respuestas más rápidas1260 "low", # Pensamiento mínimo, respuestas más rápidas

1261 "medium", # Pensamiento moderado1261 "medium", # Pensamiento moderado

1262 "high", # Razonamiento profundo1262 "high", # Razonamiento profundo

1263 "xhigh", # Razonamiento extendido; vuelve a "high" en modelos que no lo admiten1263 "xhigh", # Razonamiento extendido; recurre a "high" en modelos que no lo admiten

1264 "max", # Esfuerzo máximo1264 "max", # Esfuerzo máximo

1265]1265]

1266```1266```


1269 `CanUseTool`1269 `CanUseTool`

1270</h3>1270</h3>

1271 1271 

1272Alias de tipo para funciones de devolución de llamada de permiso de herramienta.1272Alias de tipo para funciones de callback de permisos de herramientas.

1273 1273 

1274```python theme={null}1274```python theme={null}

1275CanUseTool = Callable[1275CanUseTool = Callable[


1277]1277]

1278```1278```

1279 1279 

1280La devolución de llamada recibe:1280El callback recibe:

1281 1281 

1282* `tool_name`: Nombre de la herramienta que se está llamando1282* `tool_name`: Nombre de la herramienta que se está llamando

1283* `input_data`: Los parámetros de entrada de la herramienta1283* `input_data`: Los parámetros de entrada de la herramienta


1285 1285 

1286Devuelve un `PermissionResult` (ya sea `PermissionResultAllow` o `PermissionResultDeny`).1286Devuelve un `PermissionResult` (ya sea `PermissionResultAllow` o `PermissionResultDeny`).

1287 1287 

1288La devolución de llamada es el reemplazo del SDK para el indicador de permiso interactivo: se invoca solo cuando el [flujo de evaluación de permiso](/docs/es/agent-sdk/permissions#how-permissions-are-evaluated) se resuelve en un indicador. Las llamadas de herramienta ya aprobadas por una entrada `allowed_tools`, una regla de permiso de configuración, o el modo de permiso, como `acceptEdits` o `bypassPermissions`, nunca la invocan. Para controlar cada llamada de herramienta, utilice un [hook `PreToolUse`](/docs/es/agent-sdk/hooks) en su lugar.1288El callback es el reemplazo del SDK para la solicitud de permiso interactiva: se invoca solo cuando el [flujo de evaluación de permisos](/docs/es/agent-sdk/permissions#how-permissions-are-evaluated) termina en una solicitud de permiso. Las llamadas a herramientas ya aprobadas por una entrada de `allowed_tools`, una regla allow de la configuración o el modo de permisos, como `acceptEdits` o `bypassPermissions`, nunca lo invocan. Para controlar cada llamada a herramienta, usa en su lugar un [hook `PreToolUse`](/docs/es/agent-sdk/hooks).

1289 1289 

1290Una regla de permiso no aprueba previamente las [acciones que ningún modo aprueba automáticamente](/docs/es/permission-modes#actions-no-mode-auto-approves); consulte [Cómo se evalúan los permisos](/docs/es/agent-sdk/permissions#how-permissions-are-evaluated) para ver cuál de ellas llega a la devolución de llamada y qué sucede en modo `dontAsk` y `auto`.1290Una regla allow no aprueba previamente las [acciones que ningún modo aprueba automáticamente](/docs/es/permission-modes#actions-no-mode-auto-approves); consulta [Cómo se evalúan los permisos](/docs/es/agent-sdk/permissions#how-permissions-are-evaluated) para ver cuáles de ellas llegan al callback y qué sucede en los modos `dontAsk` y `auto`.

1291 1291 

1292<h3 id="toolpermissioncontext">1292<h3 id="toolpermissioncontext">

1293 `ToolPermissionContext`1293 `ToolPermissionContext`

1294</h3>1294</h3>

1295 1295 

1296Información de contexto pasada a devoluciones de llamada de permiso de herramienta.1296Información de contexto que se pasa a los callbacks de permisos de herramientas.

1297 1297 

1298```python theme={null}1298```python theme={null}

1299@dataclass1299@dataclass


1311 1311 

1312| Campo | Tipo | Descripción |1312| Campo | Tipo | Descripción |

1313| :- | :- | :- |1313| :- | :- | :- |

1314| `signal` | `Any \| None` | Reservado para soporte futuro de señal de aborto |1314| `signal` | `Any \| None` | Reservado para el futuro soporte de señal de aborto |

1315| `suggestions` | `list[PermissionUpdate]` | Sugerencias de actualización de permiso de la CLI. Los indicadores de Bash incluyen una sugerencia con el destino `localSettings`, por lo que devolverla en `updated_permissions` escribe la regla en `.claude/settings.local.json` y persiste entre sesiones. |1315| `suggestions` | `list[PermissionUpdate]` | Sugerencias de actualización de permisos de la CLI. Las solicitudes de permiso de Bash incluyen una sugerencia con el destino `localSettings`, por lo que devolverla en `updated_permissions` escribe la regla en `.claude/settings.local.json` y persiste entre sesiones. |

1316| `tool_use_id` | `str \| None` | Identificador de la llamada de herramienta específica para la que es este indicador. Siempre se completa cuando se entrega a `can_use_tool` |1316| `tool_use_id` | `str \| None` | Identificador de la llamada a herramienta específica a la que corresponde esta solicitud. Siempre se completa cuando se entrega a `can_use_tool` |

1317| `agent_id` | `str \| None` | ID del subagente cuando la llamada se origina desde un subagente; `None` para el agente principal |1317| `agent_id` | `str \| None` | ID del subagente cuando la llamada se origina en un subagente; `None` para el agente principal |

1318| `blocked_path` | `str \| None` | Ruta de archivo que activó la solicitud de permiso, cuando sea aplicable. Por ejemplo, cuando un comando Bash intenta acceder a una ruta fuera de directorios permitidos |1318| `blocked_path` | `str \| None` | Ruta de archivo que activó la solicitud de permiso, cuando corresponda. Por ejemplo, cuando un comando de Bash intenta acceder a una ruta fuera de los directorios permitidos |

1319| `decision_reason` | `str \| None` | Razón por la que se activó esta solicitud de permiso. Reenviado desde el `permissionDecisionReason` de un hook PreToolUse cuando el hook devolvió `"ask"` |1319| `decision_reason` | `str \| None` | Motivo por el que se activó esta solicitud de permiso. Se reenvía desde el `permissionDecisionReason` de un hook PreToolUse cuando el hook devolvió `"ask"` |

1320| `title` | `str \| None` | Oración de indicador de permiso completo, como `Claude wants to read foo.txt`. Utilice como texto de indicador principal cuando esté presente |1320| `title` | `str \| None` | Oración completa de la solicitud de permiso, como `Claude wants to read foo.txt`. Úsala como texto principal de la solicitud cuando esté presente |

1321| `display_name` | `str \| None` | Frase de sustantivo corto para la acción de herramienta, como `Read file`, adecuada para etiquetas de botón |1321| `display_name` | `str \| None` | Frase nominal corta para la acción de la herramienta, como `Read file`, adecuada para etiquetas de botones |

1322| `description` | `str \| None` | Subtítulo legible por humanos para la interfaz de usuario de permiso |1322| `description` | `str \| None` | Subtítulo legible por humanos para la interfaz de permisos |

1323 1323 

1324<h3 id="permissionresult">1324<h3 id="permissionresult">

1325 `PermissionResult`1325 `PermissionResult`

1326</h3>1326</h3>

1327 1327 

1328Tipo de unión para resultados de devolución de llamada de permiso.1328Tipo de unión para los resultados del callback de permisos.

1329 1329 

1330```python theme={null}1330```python theme={null}

1331PermissionResult = PermissionResultAllow | PermissionResultDeny1331PermissionResult = PermissionResultAllow | PermissionResultDeny


1335 `PermissionResultAllow`1335 `PermissionResultAllow`

1336</h3>1336</h3>

1337 1337 

1338Resultado indicando que la llamada de herramienta debe permitirse.1338Resultado que indica que la llamada a herramienta debe permitirse.

1339 1339 

1340```python theme={null}1340```python theme={null}

1341@dataclass1341@dataclass


1348| Campo | Tipo | Predeterminado | Descripción |1348| Campo | Tipo | Predeterminado | Descripción |

1349| :- | :- | :- | :- |1349| :- | :- | :- | :- |

1350| `behavior` | `Literal["allow"]` | `"allow"` | Debe ser "allow" |1350| `behavior` | `Literal["allow"]` | `"allow"` | Debe ser "allow" |

1351| `updated_input` | `dict[str, Any] \| None` | `None` | Entrada modificada a usar en lugar de la original |1351| `updated_input` | `dict[str, Any] \| None` | `None` | Entrada modificada que se usa en lugar de la original |

1352| `updated_permissions` | `list[PermissionUpdate] \| None` | `None` | Actualizaciones de permiso a aplicar |1352| `updated_permissions` | `list[PermissionUpdate] \| None` | `None` | Actualizaciones de permisos que se aplican |

1353 1353 

1354<h3 id="permissionresultdeny">1354<h3 id="permissionresultdeny">

1355 `PermissionResultDeny`1355 `PermissionResultDeny`

1356</h3>1356</h3>

1357 1357 

1358Resultado indicando que la llamada de herramienta debe denegarse.1358Resultado que indica que la llamada a herramienta debe denegarse.

1359 1359 

1360```python theme={null}1360```python theme={null}

1361@dataclass1361@dataclass


1368| Campo | Tipo | Predeterminado | Descripción |1368| Campo | Tipo | Predeterminado | Descripción |

1369| :- | :- | :- | :- |1369| :- | :- | :- | :- |

1370| `behavior` | `Literal["deny"]` | `"deny"` | Debe ser "deny" |1370| `behavior` | `Literal["deny"]` | `"deny"` | Debe ser "deny" |

1371| `message` | `str` | `""` | Mensaje explicando por qué se denegó la herramienta |1371| `message` | `str` | `""` | Mensaje que explica por qué se denegó la herramienta |

1372| `interrupt` | `bool` | `False` | Si se debe interrumpir la ejecución actual |1372| `interrupt` | `bool` | `False` | Si se debe interrumpir la ejecución actual |

1373 1373 

1374<h3 id="permissionupdate">1374<h3 id="permissionupdate">


1399 1399 

1400| Campo | Tipo | Descripción |1400| Campo | Tipo | Descripción |

1401| :- | :- | :- |1401| :- | :- | :- |

1402| `type` | `Literal[...]` | El tipo de operación de actualización de permiso |1402| `type` | `Literal[...]` | El tipo de operación de actualización de permisos |

1403| `rules` | `list[PermissionRuleValue] \| None` | Reglas para operaciones de agregar/reemplazar/eliminar |1403| `rules` | `list[PermissionRuleValue] \| None` | Reglas para operaciones de agregar/reemplazar/eliminar |

1404| `behavior` | `Literal["allow", "deny", "ask"] \| None` | Comportamiento para operaciones basadas en reglas |1404| `behavior` | `Literal["allow", "deny", "ask"] \| None` | Comportamiento para operaciones basadas en reglas |

1405| `mode` | `PermissionMode \| None` | Modo para operación setMode |1405| `mode` | `PermissionMode \| None` | Modo para la operación setMode |

1406| `directories` | `list[str] \| None` | Directorios para operaciones de agregar/eliminar directorio |1406| `directories` | `list[str] \| None` | Directorios para operaciones de agregar/eliminar directorios |

1407| `destination` | `Literal[...] \| None` | Dónde aplicar la actualización de permiso |1407| `destination` | `Literal[...] \| None` | Dónde aplicar la actualización de permisos |

1408 1408 

1409<h3 id="permissionrulevalue">1409<h3 id="permissionrulevalue">

1410 `PermissionRuleValue`1410 `PermissionRuleValue`

1411</h3>1411</h3>

1412 1412 

1413Una regla a agregar, reemplazar o eliminar en una actualización de permiso.1413Una regla para agregar, reemplazar o eliminar en una actualización de permisos.

1414 1414 

1415```python theme={null}1415```python theme={null}

1416@dataclass1416@dataclass


1423 `ToolsPreset`1423 `ToolsPreset`

1424</h3>1424</h3>

1425 1425 

1426Configuración de herramientas preestablecidas para usar el conjunto de herramientas predeterminado de Claude Code.1426Configuración de herramientas preestablecida para usar el conjunto de herramientas predeterminado de Claude Code.

1427 1427 

1428```python theme={null}1428```python theme={null}

1429class ToolsPreset(TypedDict):1429class ToolsPreset(TypedDict):


1461 1461 

1462| Variante | Campos | Descripción |1462| Variante | Campos | Descripción |

1463| :- | :- | :- |1463| :- | :- | :- |

1464| `adaptive` | `type`, `display` | Claude decide adaptativamente cuándo pensar |1464| `adaptive` | `type`, `display` | Claude decide de forma adaptativa cuándo pensar |

1465| `enabled` | `type`, `budget_tokens`, `display` | Habilitar pensamiento con un presupuesto de token específico |1465| `enabled` | `type`, `budget_tokens`, `display` | Habilitar el pensamiento con un presupuesto de tokens específico |

1466| `disabled` | `type` | Deshabilitar pensamiento |1466| `disabled` | `type` | Deshabilitar el pensamiento |

1467 1467 

1468El campo `display` opcional controla si el texto de pensamiento se devuelve `"summarized"` u `"omitted"`. En Claude Opus 4.7 y posterior, el predeterminado de API es `"omitted"`, por lo que establezca `"summarized"` para recibir contenido de pensamiento en salidas [`ThinkingBlock`](#thinkingblock). Claude Code no envía `display` a Amazon Bedrock ni a la Plataforma de Agentes de Google Cloud, por lo que en esos proveedores Opus 4.7 y posterior devuelven salidas `ThinkingBlock` vacías incluso cuando establece `display` en `"summarized"`.1468El campo opcional `display` controla si el texto del pensamiento se devuelve `"summarized"` u `"omitted"`. En Claude Opus 4.7 y posteriores, el predeterminado de la API es `"omitted"`, así que establece `"summarized"` para recibir el contenido del pensamiento en las salidas [`ThinkingBlock`](#thinkingblock). Claude Code no pasa tu valor de `display` a algunos proveedores, como Amazon Bedrock y Agent Platform de Google Cloud. En esos proveedores, Opus 4.7 y posteriores devuelven salidas `ThinkingBlock` vacías incluso cuando estableces `display` en `"summarized"`.

1469 1469 

1470Debido a que estas son clases `TypedDict`, son dicts simples en tiempo de ejecución. Construyalas como literales de dict o llame a la clase como un constructor; ambos producen un `dict`. Acceda a los campos con `config["budget_tokens"]`, no `config.budget_tokens`:1470Como estas son clases `TypedDict`, son dicts simples en tiempo de ejecución. Puedes construirlas como literales de dict o llamar a la clase como un constructor; ambas formas producen un `dict`. Accede a los campos con `config["budget_tokens"]`, no con `config.budget_tokens`:

1471 1471 

1472```python theme={null}1472```python theme={null}

1473from claude_agent_sdk import ClaudeAgentOptions, ThinkingConfigEnabled1473from claude_agent_sdk import ClaudeAgentOptions, ThinkingConfigEnabled


1485 `TaskBudget`1485 `TaskBudget`

1486</h3>1486</h3>

1487 1487 

1488Presupuesto de tarea del lado de la API en tokens, utilizado con el campo `task_budget` en `ClaudeAgentOptions`.1488Presupuesto de tarea del lado de la API en tokens, que se usa con el campo `task_budget` de `ClaudeAgentOptions`.

1489 1489 

1490```python theme={null}1490```python theme={null}

1491class TaskBudget(TypedDict):1491class TaskBudget(TypedDict):


1494 1494 

1495| Campo | Tipo | Descripción |1495| Campo | Tipo | Descripción |

1496| :- | :- | :- |1496| :- | :- | :- |

1497| `total` | `int` | Presupuesto de token total para la tarea |1497| `total` | `int` | Presupuesto total de tokens para la tarea |

1498 1498 

1499Debido a que esto es un `TypedDict`, páselo como un dict simple, como `ClaudeAgentOptions(task_budget={"total": 50000})`.1499Como es un `TypedDict`, pásalo como un dict simple, por ejemplo `ClaudeAgentOptions(task_budget={"total": 50000})`.

1500 1500 

1501<h3 id="sdkbeta">1501<h3 id="sdkbeta">

1502 `SdkBeta`1502 `SdkBeta`

1503</h3>1503</h3>

1504 1504 

1505Tipo literal para características beta del SDK.1505Tipo literal para las características beta del SDK.

1506 1506 

1507```python theme={null}1507```python theme={null}

1508SdkBeta = Literal["context-1m-2025-08-07"]1508SdkBeta = Literal["context-1m-2025-08-07"]

1509```1509```

1510 1510 

1511Utilice con el campo `betas` en `ClaudeAgentOptions` para habilitar características beta.1511Úsalo con el campo `betas` de `ClaudeAgentOptions` para habilitar características beta.

1512 1512 

1513<Warning>1513<Warning>

1514 En la Claude API, la beta `context-1m-2025-08-07` está retirada para Claude Sonnet 4.5 y Claude Sonnet 4. Si todavía la pasas con cualquiera de esos modelos, las solicitudes que superan la ventana de contexto estándar de 200K tokens devuelven un error, así que elimínala de `betas`. Para ejecutar una sesión con una ventana de contexto de 1M tokens, establece `model` en un modelo que [se ejecute con la ventana de 1M de forma predeterminada](/docs/es/model-config#extended-context), como `claude-sonnet-5-5` o `claude-opus-5-5`. Para un modelo que alcanza 1M solo mediante su variante `[1m]`, agrega el sufijo al ID del modelo, como en `claude-opus-4-6[1m]`.1514 En la Claude API, la beta `context-1m-2025-08-07` está retirada para Claude Sonnet 4.5 y Claude Sonnet 4. Si todavía la pasas con cualquiera de esos modelos, las solicitudes que superan la ventana de contexto estándar de 200K tokens devuelven un error, así que elimínala de `betas`. Para ejecutar una sesión con una ventana de contexto de 1M tokens, establece `model` en un modelo que [se ejecute con la ventana de 1M de forma predeterminada](/docs/es/model-config#extended-context), como `claude-sonnet-5-5` o `claude-opus-5-5`. Para un modelo que alcanza 1M solo mediante su variante `[1m]`, agrega el sufijo al ID del modelo, como en `claude-opus-4-6[1m]`.


1531 `McpServerConfig`1531 `McpServerConfig`

1532</h3>1532</h3>

1533 1533 

1534Tipo de unión para configuraciones de servidor MCP.1534Tipo de unión para configuraciones de servidores MCP.

1535 1535 

1536```python theme={null}1536```python theme={null}

1537McpServerConfig = (1537McpServerConfig = (


1545 1545 

1546```python theme={null}1546```python theme={null}

1547class McpStdioServerConfig(TypedDict):1547class McpStdioServerConfig(TypedDict):

1548 type: NotRequired[Literal["stdio"]] # Opcional para compatibilidad hacia atrás1548 type: NotRequired[Literal["stdio"]] # Opcional para compatibilidad con versiones anteriores

1549 command: str1549 command: str

1550 args: NotRequired[list[str]]1550 args: NotRequired[list[str]]

1551 env: NotRequired[dict[str, str]]1551 env: NotRequired[dict[str, str]]


1577 `McpServerStatusConfig`1577 `McpServerStatusConfig`

1578</h3>1578</h3>

1579 1579 

1580La configuración de un servidor MCP tal como se informa mediante [`get_mcp_status()`](#methods). Esta es la unión de todas las variantes de transporte [`McpServerConfig`](#mcpserverconfig) más una variante de solo salida `claudeai-proxy` para servidores proxificados a través de claude.ai.1580La configuración de un servidor MCP tal como la informa [`get_mcp_status()`](#methods). Es la unión de todas las variantes de transporte de [`McpServerConfig`](#mcpserverconfig) más una variante `claudeai-proxy` de solo salida para servidores que pasan por proxy a través de claude.ai.

1581 1581 

1582```python theme={null}1582```python theme={null}

1583McpServerStatusConfig = (1583McpServerStatusConfig = (


1589)1589)

1590```1590```

1591 1591 

1592`McpSdkServerConfigStatus` es la forma serializable de [`McpSdkServerConfig`](#mcpsdkserverconfig) con solo campos `type` (`"sdk"`) y `name` (`str`); la `instance` en proceso se omite. `McpClaudeAIProxyServerConfig` tiene campos `type` (`"claudeai-proxy"`), `url` (`str`), e `id` (`str`).1592`McpSdkServerConfigStatus` es la forma serializable de [`McpSdkServerConfig`](#mcpsdkserverconfig) con solo los campos `type` (`"sdk"`) y `name` (`str`); se omite la `instance` en proceso. `McpClaudeAIProxyServerConfig` tiene los campos `type` (`"claudeai-proxy"`), `url` (`str`) e `id` (`str`).

1593 1593 

1594<h3 id="mcpstatusresponse">1594<h3 id="mcpstatusresponse">

1595 `McpStatusResponse`1595 `McpStatusResponse`

1596</h3>1596</h3>

1597 1597 

1598Respuesta de [`ClaudeSDKClient.get_mcp_status()`](#methods). Envuelve la lista de estados del servidor bajo la clave `mcpServers`.1598Respuesta de [`ClaudeSDKClient.get_mcp_status()`](#methods). Envuelve la lista de estados de servidores bajo la clave `mcpServers`.

1599 1599 

1600```python theme={null}1600```python theme={null}

1601class McpStatusResponse(TypedDict):1601class McpStatusResponse(TypedDict):


1622| Campo | Tipo | Descripción |1622| Campo | Tipo | Descripción |

1623| :- | :- | :- |1623| :- | :- | :- |

1624| `name` | `str` | Nombre del servidor |1624| `name` | `str` | Nombre del servidor |

1625| `status` | `str` | Uno de `"connected"`, `"failed"`, `"needs-auth"`, `"pending"`, o `"disabled"` |1625| `status` | `str` | Uno de `"connected"`, `"failed"`, `"needs-auth"`, `"pending"` o `"disabled"` |

1626| `serverInfo` | `dict` (opcional) | Nombre y versión del servidor (`{"name": str, "version": str}`) |1626| `serverInfo` | `dict` (opcional) | Nombre y versión del servidor (`{"name": str, "version": str}`) |

1627| `error` | `str` (opcional) | Mensaje de error si el servidor no se conectó |1627| `error` | `str` (opcional) | Mensaje de error si el servidor no pudo conectarse |

1628| `config` | [`McpServerStatusConfig`](#mcpserverstatusconfig) (opcional) | Configuración del servidor. Misma forma que [`McpServerConfig`](#mcpserverconfig) (stdio, SSE, HTTP, o SDK), más una variante `claudeai-proxy` para servidores conectados a través de claude.ai |1628| `config` | [`McpServerStatusConfig`](#mcpserverstatusconfig) (opcional) | Configuración del servidor. Misma forma que [`McpServerConfig`](#mcpserverconfig) (stdio, SSE, HTTP o SDK), más una variante `claudeai-proxy` para servidores conectados a través de claude.ai |

1629| `scope` | `str` (opcional) | Alcance de configuración |1629| `scope` | `str` (opcional) | Alcance de la configuración |

1630| `tools` | `list` (opcional) | Herramientas proporcionadas por este servidor, cada una con campos `name`, `description`, y `annotations` |1630| `tools` | `list` (opcional) | Herramientas proporcionadas por este servidor, cada una con los campos `name`, `description` y `annotations` |

1631 1631 

1632<h3 id="contextusageresponse">1632<h3 id="contextusageresponse">

1633 `ContextUsageResponse`1633 `ContextUsageResponse`

1634</h3>1634</h3>

1635 1635 

1636Respuesta de [`ClaudeSDKClient.get_context_usage()`](#methods). Este es el mismo payload que Claude Code renderiza para el comando `/context` en una sesión interactiva, por lo que junto con los conteos de tokens lleva campos de visualización como `color` y `gridRows` que Claude Code utiliza para dibujar la cuadrícula de uso de `/context`.1636Respuesta de [`ClaudeSDKClient.get_context_usage()`](#methods). Es el mismo payload que Claude Code renderiza para el comando `/context` en una sesión interactiva, por lo que, junto con los recuentos de tokens, incluye campos de visualización como `color` y `gridRows` que Claude Code usa para dibujar la cuadrícula de uso de `/context`.

1637 1637 

1638Claude Code construye este payload enviando varias solicitudes a la API de [conteo de tokens](https://platform.claude.com/docs/en/build-with-claude/token-counting). Estas solicitudes no aparecen en el flujo de mensajes, por lo que el seguimiento de costos que lee el flujo no las verá. En la API de Anthropic, el conteo de tokens no se factura.1638Claude Code construye este payload enviando varias solicitudes a la API de [conteo de tokens](https://platform.claude.com/docs/en/build-with-claude/token-counting). Estas solicitudes no aparecen en el stream de mensajes, por lo que el seguimiento de costos que lee el stream no las verá. En la API de Anthropic, el conteo de tokens no se factura.

1639 1639 

1640```python theme={null}1640```python theme={null}

1641class ContextUsageResponse(TypedDict):1641class ContextUsageResponse(TypedDict):


1660 apiUsage: NotRequired[dict[str, Any] | None]1660 apiUsage: NotRequired[dict[str, Any] | None]

1661```1661```

1662 1662 

1663Cada entrada `ContextUsageCategory` lleva `name`, `tokens`, `color`, y una bandera `isDeferred` opcional. `totalTokens` es el uso de contexto actual de la sesión, y `maxTokens` es la ventana contra la que se mide el uso. Esa ventana es la ventana de contexto del modelo, o la ventana de compactación automática más baja cuando se aplica una, y `rawMaxTokens` lleva el mismo valor que `maxTokens`. `apiUsage` contiene el uso de la respuesta de API más reciente, no un total acumulado para la sesión. Claude Code deja sin establecer las claves opcionales `deferredBuiltinTools`, `systemTools` y `systemPromptSections`, por lo que espere que estén ausentes incluso aunque el tipo las declare.1663Cada entrada de `ContextUsageCategory` incluye `name`, `tokens`, `color` y un flag opcional `isDeferred`. `totalTokens` es el uso de contexto actual de la sesión, y `maxTokens` es la ventana con la que se mide ese uso. Esa ventana es la ventana de contexto del modelo, o la ventana de compactación automática más baja cuando corresponde, y `rawMaxTokens` contiene el mismo valor que `maxTokens`. `apiUsage` contiene el uso de la respuesta de API más reciente, no un total acumulado de la sesión. Claude Code deja sin establecer las claves opcionales `deferredBuiltinTools`, `systemTools` y `systemPromptSections`, así que espera que estén ausentes aunque el tipo las declare.

1664 1664 

1665<h3 id="sdkpluginconfig">1665<h3 id="sdkpluginconfig">

1666 `SdkPluginConfig`1666 `SdkPluginConfig`


1688]1688]

1689```1689```

1690 1690 

1691Para información completa sobre cómo crear y usar plugins, consulte [Plugins](/docs/es/agent-sdk/plugins).1691Para obtener información completa sobre cómo crear y usar plugins, consulta [Plugins](/docs/es/agent-sdk/plugins).

1692 1692 

1693<h2 id="message-types">1693<h2 id="message-types">

1694 Tipos de mensaje1694 Tipos de mensaje


1736| `tool_use_result` | `dict[str, Any] \| None` | Datos de resultado de herramienta si es aplicable |1736| `tool_use_result` | `dict[str, Any] \| None` | Datos de resultado de herramienta si es aplicable |

1737| `origin` | `MessageOrigin \| None` | Procedencia de este mensaje, rellenado en turnos inyectados como notificaciones de tareas y mensajes de pares. `None` cuando la CLI no lo atribuyó. Requiere Python Agent SDK 0.2.137 o posterior |1737| `origin` | `MessageOrigin \| None` | Procedencia de este mensaje, rellenado en turnos inyectados como notificaciones de tareas y mensajes de pares. `None` cuando la CLI no lo atribuyó. Requiere Python Agent SDK 0.2.137 o posterior |

1738 1738 

1739El SDK pasa `tool_use_result` a través de la CLI sin modificar. Para una herramienta en un servidor MCP externo cuyo resultado contiene bloques `resource_link`, el dict tiene una clave `resourceLinks` que contiene una lista de dicts con las claves del tipo TypeScript [`SDKMcpResourceLink`](/docs/es/agent-sdk/typescript#sdkmcpresourcelink). Claude recibe cada enlace como una línea de texto en el resultado de la herramienta. Para renderizar los archivos que devolvió el servidor, lea `resourceLinks` en lugar de analizar ese texto. La clave `resourceLinks` requiere Python Agent SDK 0.2.150 o posterior y Claude Code v2.1.257 o posterior; la CLI incluida con esa versión del SDK satisface el requisito de Claude Code.1739El SDK pasa `tool_use_result` a través de la CLI sin modificar. Para una herramienta en un servidor MCP externo cuyo resultado contiene bloques `resource_link`, el dict tiene una clave `resourceLinks` que contiene una lista de dicts con las claves del tipo TypeScript [`SDKMcpResourceLink`](/docs/es/agent-sdk/typescript#sdkmcpresourcelink). Claude recibe cada enlace como una línea de texto en el resultado de la herramienta. Para renderizar los archivos que devolvió el servidor, lee `resourceLinks` en lugar de analizar ese texto. La clave `resourceLinks` requiere Python Agent SDK 0.2.150 o posterior y Claude Code v2.1.257 o posterior; la CLI incluida con esa versión del SDK satisface el requisito de Claude Code.

1740 1740 

1741La CLI omite la clave cuando el resultado no tiene enlaces y en resultados de subagentes. La CLI mantiene como máximo 50 enlaces por resultado y deja de agregar enlaces una vez que la lista alcanza 64 KiB de JSON serializado. Una herramienta que define en proceso con [`tool()`](#tool) nunca produce la clave, porque el SDK aplana sus bloques `resource_link` a texto antes de que la CLI vea el resultado.1741La CLI omite la clave cuando el resultado no tiene enlaces y en resultados de subagentes. La CLI mantiene como máximo 50 enlaces por resultado y deja de agregar enlaces una vez que la lista alcanza 64 KiB de JSON serializado. Una herramienta que defines en proceso con [`tool()`](#tool) nunca produce la clave, porque el SDK aplana sus bloques `resource_link` a texto antes de que la CLI vea el resultado.

1742 1742 

1743<h3 id="assistantmessage">1743<h3 id="assistantmessage">

1744 `AssistantMessage`1744 `AssistantMessage`


1789]1789]

1790```1790```

1791 1791 

1792El proceso CLI subyacente puede emitir tipos de error que este Literal no enumera, como `max_output_tokens`. El SDK pasa el valor sin modificar, así que trate las cadenas fuera de esta lista de la manera que trata `unknown`. El tipo TypeScript [`SDKAssistantMessageError`](/docs/es/agent-sdk/typescript#sdkassistantmessage) enumera el conjunto completo de valores que la CLI puede emitir.1792El proceso CLI subyacente puede emitir tipos de error que este Literal no enumera, como `max_output_tokens`. El SDK pasa el valor sin modificar, así que trata las cadenas fuera de esta lista de la misma manera en que tratas `unknown`. El tipo TypeScript [`SDKAssistantMessageError`](/docs/es/agent-sdk/typescript#sdkassistantmessage) enumera el conjunto completo de valores que la CLI puede emitir.

1793 1793 

1794<h3 id="systemmessage">1794<h3 id="systemmessage">

1795 `SystemMessage`1795 `SystemMessage`


1842 1842 

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

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

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

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

1847* `terminal_reason`: por qué terminó el bucle de consulta, como `"completed"`, `"max_turns"`, `"api_error"`, `"aborted_streaming"`, o `"aborted_tools"`. Un valor de `"aborted_streaming"` o `"aborted_tools"` significa que el turno fue abortado antes de completarse. Las causas comunes son [`interrupt()`](#claudesdkclient) y una devolución de llamada de permiso que devuelve [`PermissionResultDeny`](#permissionresultdeny) con `interrupt=True`. `None` en versiones de CLI que preceden al campo, en resultados de comandos locales como `/voice` o `/usage`, que omiten el bucle de consulta, o en resultados de error sintetizados emitidos cuando la sesión falla fatalmente. Refleja el [`SDKResultMessage.terminal_reason`](/docs/es/agent-sdk/typescript#sdkresultmessage) del SDK de TypeScript, que enumera el conjunto completo de valores.1847* `terminal_reason`: por qué terminó el bucle de consulta, como `"completed"`, `"max_turns"`, `"api_error"`, `"aborted_streaming"`, o `"aborted_tools"`. Un valor de `"aborted_streaming"` o `"aborted_tools"` significa que el turno fue abortado antes de completarse. Las causas comunes son [`interrupt()`](#claudesdkclient) y una devolución de llamada de permiso que devuelve [`PermissionResultDeny`](#permissionresultdeny) con `interrupt=True`. `None` en versiones de CLI que preceden al campo, en resultados de comandos locales como `/voice` o `/usage`, que omiten el bucle de consulta, o en resultados de error sintetizados emitidos cuando la sesión falla fatalmente. Refleja el [`SDKResultMessage.terminal_reason`](/docs/es/agent-sdk/typescript#sdkresultmessage) del SDK de TypeScript, que enumera el conjunto completo de valores.

1848* `origin`: origen del mensaje del usuario que activó este turno. En [modo de entrada de streaming](/docs/es/agent-sdk/streaming-vs-single-mode), verifique esto para distinguir el resultado de su propio prompt, donde `origin` es `None` o `{"kind": "human"}`, del resultado de un turno inyectado como una notificación de tarea de fondo. Requiere Python Agent SDK 0.2.137 o posterior.1848* `origin`: origen del mensaje del usuario que activó este turno. En [modo de entrada de streaming](/docs/es/agent-sdk/streaming-vs-single-mode), verifica esto para distinguir el resultado de tu propio prompt, donde `origin` es `None` o `{"kind": "human"}`, del resultado de un turno inyectado como una notificación de tarea en segundo plano. Requiere Python Agent SDK 0.2.137 o posterior.

1849 1849 

1850El dict `usage` cubre solo el bucle del agente principal y excluye subagentes y otras llamadas de modelo anidadas o auxiliares. En [modo de entrada de streaming](/docs/es/agent-sdk/streaming-vs-single-mode), los valores son por turno. Prefiera `model_usage` para contabilidad de token y costo. El dict `usage` contiene las siguientes claves cuando está presente:1850El dict `usage` cubre solo el bucle del agente principal y excluye subagentes y otras llamadas de modelo anidadas o auxiliares. En [modo de entrada de streaming](/docs/es/agent-sdk/streaming-vs-single-mode), los valores son por turno. Prefiere `model_usage` para contabilidad de token y costo. El dict `usage` contiene las siguientes claves cuando está presente:

1851 1851 

1852| Clave | Tipo | Descripción |1852| Clave | Tipo | Descripción |

1853| - | - | - |1853| - | - | - |

1854| `input_tokens` | `int` | Tokens de entrada consumidos por el bucle del agente de nivel superior. [Los tokens de subagentes no se incluyen](/docs/es/agent-sdk/cost-tracking#get-the-total-cost-of-a-query); use `model_usage` para contabilidad de árbol completo. |1854| `input_tokens` | `int` | Tokens de entrada consumidos por el bucle del agente de nivel superior. [Los tokens de subagentes no se incluyen](/docs/es/agent-sdk/cost-tracking#get-the-total-cost-of-a-query); usa `model_usage` para contabilidad de árbol completo. |

1855| `output_tokens` | `int` | Tokens de salida generados por el bucle del agente de nivel superior. Los tokens de subagentes no se incluyen. |1855| `output_tokens` | `int` | Tokens de salida generados por el bucle del agente de nivel superior. Los tokens de subagentes no se incluyen. |

1856| `cache_creation_input_tokens` | `int` | Tokens usados para crear nuevas entradas de caché. |1856| `cache_creation_input_tokens` | `int` | Tokens usados para crear nuevas entradas de caché. |

1857| `cache_read_input_tokens` | `int` | Tokens leídos de entradas de caché existentes. |1857| `cache_read_input_tokens` | `int` | Tokens leídos de entradas de caché existentes. |

1858 1858 

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

1860 1860 

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

1862 1862 

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

1864 1864 


1869| `cacheReadInputTokens` | `int` | Tokens de lectura de caché para este modelo. |1869| `cacheReadInputTokens` | `int` | Tokens de lectura de caché para este modelo. |

1870| `cacheCreationInputTokens` | `int` | Tokens de creación de caché para este modelo. |1870| `cacheCreationInputTokens` | `int` | Tokens de creación de caché para este modelo. |

1871| `webSearchRequests` | `int` | Solicitudes de búsqueda web realizadas por este modelo. |1871| `webSearchRequests` | `int` | Solicitudes de búsqueda web realizadas por este modelo. |

1872| `thinkingTokens` | `int` | Tokens de pensamiento generados por este modelo, ya contados en `outputTokens`. Ausente hasta que un turno se ejecute en una versión de Claude Code que lo registre, y no declarado en el TypedDict, así que léalo con `.get()`. Requiere Python Agent SDK 0.2.150 o posterior, cuya CLI incluida lo registra. |1872| `thinkingTokens` | `int` | Tokens de pensamiento generados por este modelo, ya contados en `outputTokens`. Ausente hasta que un turno se ejecute en una versión de Claude Code que lo registre, y no declarado en el TypedDict, así que léelo con `.get()`. Requiere Python Agent SDK 0.2.150 o posterior, cuya CLI incluida lo registra. |

1873| `costUSD` | `float` | Costo estimado en USD para este modelo, calculado del lado del cliente. Vea [Rastrear costo y uso](/docs/es/agent-sdk/cost-tracking) para advertencias de facturación. |1873| `costUSD` | `float` | Costo estimado en USD para este modelo, calculado del lado del cliente. Consulta [Rastrear costo y uso](/docs/es/agent-sdk/cost-tracking) para advertencias de facturación. |

1874| `contextWindow` | `int` | Tamaño de ventana de contexto para este modelo. |1874| `contextWindow` | `int` | Tamaño de ventana de contexto para este modelo. |

1875| `maxOutputTokens` | `int` | Límite de token de salida máximo para este modelo. |1875| `maxOutputTokens` | `int` | Límite de token de salida máximo para este modelo. |

1876| `canonicalModel` | `str` | ID de modelo canónico utilizado para la búsqueda de precios. Puede diferir de la cadena de modelo sin procesar por la que se indexa la entrada, como un ID específico del proveedor o un alias. No siempre presente. |1876| `canonicalModel` | `str` | ID de modelo canónico utilizado para la búsqueda de precios. Puede diferir de la cadena de modelo sin procesar por la que se indexa la entrada, como un ID específico del proveedor o un alias. No siempre presente. |

1877| `provider` | `str` | Proveedor de API que sirvió este modelo, como `firstParty`, `bedrock`, `vertex`, `foundry`, `anthropicAws`, `mantle`, o `gateway`. No siempre presente. |1877| `provider` | `str` | Proveedor de API que sirvió este modelo, como `firstParty`, `bedrock`, `vertex`, `foundry`, `anthropicAws`, `mantle`, o `gateway`. No siempre presente. |

1878| `costBasis` | `str` | Tabla de precios con la que se calculó el precio de la solicitud más reciente de este modelo: `list` para el precio de lista, `managed` para una tabla [`modelPricing`](/docs/es/settings-reference#modelpricing), o `unknown` cuando ninguna coincidió con el ID del modelo. No siempre presente, y no declarado en el TypedDict, así que léelo con `.get()`. Requiere Claude Code v2.1.246 o posterior. |

1878 1879 

1879<h3 id="streamevent">1880<h3 id="streamevent">

1880 `StreamEvent`1881 `StreamEvent`

1881</h3>1882</h3>

1882 1883 

1883Evento de flujo para actualizaciones de mensaje parcial durante el streaming. Solo se recibe cuando `include_partial_messages=True` en `ClaudeAgentOptions`. Importar vía `from claude_agent_sdk.types import StreamEvent`.1884Evento de streaming para actualizaciones de mensaje parcial durante el streaming. Solo se recibe cuando `include_partial_messages=True` en `ClaudeAgentOptions`. Importar vía `from claude_agent_sdk.types import StreamEvent`.

1884 1885 

1885```python theme={null}1886```python theme={null}

1886@dataclass1887@dataclass


1895| :- | :- | :- |1896| :- | :- | :- |

1896| `uuid` | `str` | Identificador único para este evento |1897| `uuid` | `str` | Identificador único para este evento |

1897| `session_id` | `str` | Identificador de sesión |1898| `session_id` | `str` | Identificador de sesión |

1898| `event` | `dict[str, Any]` | Los datos del evento de flujo de API de Claude sin procesar |1899| `event` | `dict[str, Any]` | Los datos del evento de streaming de API de Claude sin procesar |

1899| `parent_tool_use_id` | `str \| None` | Siempre `None`. Los eventos de flujo se emiten solo para la sesión principal. Para la atribución de subagentes, use mensajes completos como [`AssistantMessage`](#assistantmessage) |1900| `parent_tool_use_id` | `str \| None` | Siempre `None`. Los eventos de streaming se emiten solo para la sesión principal. Para la atribución de subagentes, usa mensajes completos como [`AssistantMessage`](#assistantmessage) |

1900 1901 

1901<h3 id="ratelimitevent">1902<h3 id="ratelimitevent">

1902 `RateLimitEvent`1903 `RateLimitEvent`

1903</h3>1904</h3>

1904 1905 

1905Emitido cuando el estado del límite de velocidad cambia (por ejemplo, de `"allowed"` a `"allowed_warning"`). Use esto para advertir a los usuarios antes de que alcancen un límite duro, o para retroceder cuando el estado es `"rejected"`.1906Emitido cuando el estado del rate limit cambia (por ejemplo, de `"allowed"` a `"allowed_warning"`). Usa esto para advertir a los usuarios antes de que alcancen un límite duro, o para retroceder cuando el estado es `"rejected"`.

1906 1907 

1907```python theme={null}1908```python theme={null}

1908@dataclass1909@dataclass


1914 1915 

1915| Campo | Tipo | Descripción |1916| Campo | Tipo | Descripción |

1916| :- | :- | :- |1917| :- | :- | :- |

1917| `rate_limit_info` | [`RateLimitInfo`](#ratelimitinfo) | Estado actual del límite de velocidad |1918| `rate_limit_info` | [`RateLimitInfo`](#ratelimitinfo) | Estado actual del rate limit |

1918| `uuid` | `str` | Identificador único del evento |1919| `uuid` | `str` | Identificador único del evento |

1919| `session_id` | `str` | Identificador de sesión |1920| `session_id` | `str` | Identificador de sesión |

1920 1921 


1922 `RateLimitInfo`1923 `RateLimitInfo`

1923</h3>1924</h3>

1924 1925 

1925Estado del límite de velocidad llevado por [`RateLimitEvent`](#ratelimitevent).1926Estado del rate limit llevado por [`RateLimitEvent`](#ratelimitevent).

1926 1927 

1927```python theme={null}1928```python theme={null}

1928RateLimitStatus = Literal["allowed", "allowed_warning", "rejected"]1929RateLimitStatus = Literal["allowed", "allowed_warning", "rejected"]


1945 1946 

1946| Campo | Tipo | Descripción |1947| Campo | Tipo | Descripción |

1947| :- | :- | :- |1948| :- | :- | :- |

1948| `status` | `RateLimitStatus` | Estado actual. `"allowed_warning"` significa acercarse al límite; `"rejected"` significa que se alcanzó el límite |1949| `status` | `RateLimitStatus` | Estado actual, uno de `"allowed"`, `"allowed_warning"` o `"rejected"`. `"allowed_warning"` significa acercarse al límite; `"rejected"` significa que se alcanzó el límite |

1949| `resets_at` | `int \| None` | Marca de tiempo Unix cuando se reinicia la ventana del límite de velocidad |1950| `resets_at` | `int \| None` | Marca de tiempo Unix cuando se reinicia la ventana del rate limit |

1950| `rate_limit_type` | `RateLimitType \| None` | Qué ventana de límite de velocidad se aplica |1951| `rate_limit_type` | `RateLimitType \| None` | Qué ventana de rate limit se aplica |

1951| `utilization` | `float \| None` | Fracción del límite de velocidad consumido (0.0 a 1.0) |1952| `utilization` | `float \| None` | Fracción del rate limit consumida (0.0 a 1.0) |

1952| `overage_status` | `RateLimitStatus \| None` | Estado del uso de exceso de pago por uso, si es aplicable |1953| `overage_status` | `RateLimitStatus \| None` | Estado del uso de exceso de pago por uso, si es aplicable |

1953| `overage_resets_at` | `int \| None` | Marca de tiempo Unix cuando se reinicia la ventana de exceso |1954| `overage_resets_at` | `int \| None` | Marca de tiempo Unix cuando se reinicia la ventana de exceso |

1954| `overage_disabled_reason` | `str \| None` | Por qué el exceso no está disponible, si el estado es `"rejected"` |1955| `overage_disabled_reason` | `str \| None` | Por qué el exceso no está disponible, si el estado es `"rejected"` |

1955| `raw` | `dict[str, Any]` | Dict sin procesar completo del CLI, incluyendo campos no modelados arriba |1956| `raw` | `dict[str, Any]` | Dict sin procesar completo de la CLI, incluyendo campos no modelados arriba |

1956 1957 

1957<h3 id="conversationresetmessage">1958<h3 id="conversationresetmessage">

1958 `ConversationResetMessage`1959 `ConversationResetMessage`

1959</h3>1960</h3>

1960 1961 

1961Emitido cuando la conversación se reemplaza sin terminar la conexión, como después de `/clear`. Vea [Rastrear costos en modo de entrada de streaming](/docs/es/agent-sdk/cost-tracking#track-costs-in-streaming-input-mode) para cómo un reinicio afecta los totales en ejecución en objetos `ResultMessage` posteriores. Requiere Python Agent SDK 0.2.137 o posterior.1962Emitido cuando la conversación se reemplaza sin terminar la conexión, como después de `/clear`. Consulta [Rastrear costos en modo de entrada de streaming](/docs/es/agent-sdk/cost-tracking#track-costs-in-streaming-input-mode) para ver cómo un reinicio afecta los totales en ejecución en objetos `ResultMessage` posteriores. Requiere Python Agent SDK 0.2.137 o posterior.

1962 1963 

1963```python theme={null}1964```python theme={null}

1964@dataclass1965@dataclass


1970 1971 

1971| Campo | Tipo | Descripción |1972| Campo | Tipo | Descripción |

1972| :- | :- | :- |1973| :- | :- | :- |

1973| `new_conversation_id` | `str` | Identificador opaco para la conversación nueva. No es el `session_id` de mensajes posteriores; lea eso del siguiente mensaje |1974| `new_conversation_id` | `str` | Identificador opaco para la conversación nueva. No es el `session_id` de mensajes posteriores; léelo del siguiente mensaje |

1974| `uuid` | `str` | Identificador único del mensaje |1975| `uuid` | `str` | Identificador único del mensaje |

1975| `session_id` | `str` | ID de la sesión que fue reiniciada. Los mensajes después del reinicio llevan un nuevo `session_id` |1976| `session_id` | `str` | ID de la sesión que fue reiniciada. Los mensajes después del reinicio llevan un nuevo `session_id` |

1976 1977 


1978 `TaskStartedMessage`1979 `TaskStartedMessage`

1979</h3>1980</h3>

1980 1981 

1981Emitido cuando comienza una tarea de fondo. Una tarea de fondo es cualquier cosa rastreada fuera del turno principal: un comando Bash en segundo plano, un reloj de [Monitor](#monitor), un subagente generado a través de la herramienta Agent, o un agente remoto. El campo `task_type` le dice cuál. Este nombre no está relacionado con el cambio de nombre de herramienta `Task`-a-`Agent`.1982Emitido cuando comienza una tarea en segundo plano. Una tarea en segundo plano es cualquier cosa rastreada fuera del turno principal: un comando Bash en segundo plano, una vigilancia de [Monitor](#monitor), un subagente generado a través de la herramienta Agent, o un agente remoto. El campo `task_type` te indica cuál. Este nombre no está relacionado con el cambio de nombre de herramienta `Task`-a-`Agent`.

1982 1983 

1983```python theme={null}1984```python theme={null}

1984@dataclass1985@dataclass


1998| `uuid` | `str` | Identificador único del mensaje |1999| `uuid` | `str` | Identificador único del mensaje |

1999| `session_id` | `str` | Identificador de sesión |2000| `session_id` | `str` | Identificador de sesión |

2000| `tool_use_id` | `str \| None` | ID de uso de herramienta asociado |2001| `tool_use_id` | `str \| None` | ID de uso de herramienta asociado |

2001| `task_type` | `str \| None` | Qué tipo de tarea de fondo: `"local_bash"` para Bash de fondo y relojes de Monitor, `"local_agent"`, o `"remote_agent"` |2002| `task_type` | `str \| None` | Qué tipo de tarea en segundo plano: `"local_bash"` para Bash en segundo plano y vigilancias de Monitor, `"local_agent"`, o `"remote_agent"` |

2002 2003 

2003<h3 id="taskusage">2004<h3 id="taskusage">

2004 `TaskUsage`2005 `TaskUsage`

2005</h3>2006</h3>

2006 2007 

2007Datos de token y tiempo para una tarea de fondo.2008Datos de token y tiempo para una tarea en segundo plano.

2008 2009 

2009```python theme={null}2010```python theme={null}

2010class TaskUsage(TypedDict):2011class TaskUsage(TypedDict):


2017 `TaskProgressMessage`2018 `TaskProgressMessage`

2018</h3>2019</h3>

2019 2020 

2020Emitido periódicamente con actualizaciones de progreso para una tarea de fondo en ejecución.2021Emitido periódicamente con actualizaciones de progreso para una tarea en segundo plano en ejecución.

2021 2022 

2022```python theme={null}2023```python theme={null}

2023@dataclass2024@dataclass


2045 `TaskNotificationMessage`2046 `TaskNotificationMessage`

2046</h3>2047</h3>

2047 2048 

2048Emitido cuando una tarea de fondo se completa, falla o se detiene. Las tareas de fondo incluyen comandos Bash `run_in_background`, relojes de Monitor y subagentes de fondo.2049Emitido cuando una tarea en segundo plano se completa, falla o se detiene. Las tareas en segundo plano incluyen comandos Bash `run_in_background`, vigilancias de Monitor y subagentes en segundo plano.

2049 2050 

2050```python theme={null}2051```python theme={null}

2051@dataclass2052@dataclass


2071| `tool_use_id` | `str \| None` | ID de uso de herramienta asociado |2072| `tool_use_id` | `str \| None` | ID de uso de herramienta asociado |

2072| `usage` | `TaskUsage \| None` | Uso de token final para la tarea |2073| `usage` | `TaskUsage \| None` | Uso de token final para la tarea |

2073 2074 

2074Cuando la CLI [mueve una llamada de herramienta MCP larga al fondo](/docs/es/mcp#automatic-backgrounding-of-long-tool-calls), el resultado de la herramienta para esa llamada contiene solo un marcador de posición y el resultado real de la llamada llega en este mensaje. En una notificación `"completed"` para tal llamada, la CLI agrega una clave `resource_links` que enumera los archivos que devolvió la herramienta por referencia, con las mismas entradas y límites que la clave `resourceLinks` en [`UserMessage.tool_use_result`](#usermessage). La clave `resource_links` requiere Python Agent SDK 0.2.150 o posterior y Claude Code v2.1.257 o posterior; la CLI incluida con esa versión del SDK satisface el requisito de Claude Code.2075Cuando la CLI [mueve una llamada a herramienta MCP larga a segundo plano](/docs/es/mcp#automatic-backgrounding-of-long-tool-calls), el resultado de la herramienta para esa llamada contiene solo un marcador de posición y el resultado real de la llamada llega en este mensaje. En una notificación `"completed"` para tal llamada, la CLI agrega una clave `resource_links` que enumera los archivos que devolvió la herramienta por referencia, con las mismas entradas y límites que la clave `resourceLinks` en [`UserMessage.tool_use_result`](#usermessage). La clave `resource_links` requiere Python Agent SDK 0.2.150 o posterior y Claude Code v2.1.257 o posterior; la CLI incluida con esa versión del SDK satisface el requisito de Claude Code.

2075 2076 

2076La clase de datos no tiene campo para `resource_links`. Léalo del dict `data` que el mensaje hereda de [`SystemMessage`](#systemmessage): `message.data.get("resource_links")`. Haga coincidir la notificación con la llamada usando `tool_use_id`. La CLI omite la clave cuando el resultado no tenía enlaces y en notificaciones para tareas que no son llamadas de herramienta MCP.2077La clase de datos no tiene campo para `resource_links`. Léelo del dict `data` que el mensaje hereda de [`SystemMessage`](#systemmessage): `message.data.get("resource_links")`. Haz coincidir la notificación con la llamada usando `tool_use_id`. La CLI omite la clave cuando el resultado no tenía enlaces y en notificaciones para tareas que no son llamadas a herramientas MCP.

2077 2078 

2078<h2 id="content-block-types">2079<h2 id="content-block-types">

2079 Tipos de bloque de contenido2080 Tipos de bloque de contenido


2153 Tipos de error2154 Tipos de error

2154</h2>2155</h2>

2155 2156 

2156Los tipos a continuación definen lo que su código detecta. Para entradas vinculadas a los mensajes de error que estos tipos generan, con la causa y la solución para cada uno, consulte [Solución de problemas](/docs/es/agent-sdk/troubleshooting).2157Los tipos a continuación definen lo que tu código detecta. Para entradas vinculadas a los mensajes de error que estos tipos generan, con la causa y la solución para cada uno, consulta [Solución de problemas](/docs/es/agent-sdk/troubleshooting).

2157 2158 

2158<h3 id="claudesdkerror">2159<h3 id="claudesdkerror">

2159 `ClaudeSDKError`2160 `ClaudeSDKError`


2166 """Base error for Claude SDK."""2167 """Base error for Claude SDK."""

2167```2168```

2168 2169 

2169Cuando una consulta `query()` de un solo turno termina con un resultado de error, por ejemplo un error de límite de turnos, el SDK genera una [`ResultError`](#resulterror) después de ceder el mensaje de resultado final. Las versiones del SDK del Agente Python anteriores a 0.2.140 generaban una `Exception` simple que no era una subclase de `ClaudeSDKError`.2170Cuando una consulta `query()` de un solo turno termina con un resultado de error, por ejemplo un error de límite de turnos, el SDK genera una [`ResultError`](#resulterror).

2170 2171 

2171<h3 id="clinotfounderror">2172<h3 id="clinotfounderror">

2172 `CLINotFoundError`2173 `CLINotFoundError`


2216 `ResultError`2217 `ResultError`

2217</h3>2218</h3>

2218 2219 

2219Se genera después del [`ResultMessage`](#resultmessage) final cuando el proceso de Claude Code se cierra porque la ejecución terminó con un resultado de error, como un error de límite de turnos o un error de API. `ResultError` es una subclase de `ProcessError`, por lo que un controlador `except ProcessError` existente también lo detecta. Sus atributos llevan los campos de ese mensaje de resultado, por lo que puede ramificarse según por qué falló la ejecución sin analizar el texto del mensaje. Requiere Python Agent SDK 0.2.140 o posterior.2220Se genera cuando el proceso de Claude Code se cierra porque la ejecución terminó con un [mensaje de resultado](#resultmessage) de error, como un error de límite de turnos o un error de API. `ResultError` es una subclase de `ProcessError`, por lo que un controlador `except ProcessError` existente también lo detecta. Sus atributos llevan los campos de ese mensaje de resultado, por lo que puedes actuar según por qué falló la ejecución sin analizar el texto del mensaje. Requiere Python Agent SDK 0.2.140 o posterior.

2220 2221 

2221```python theme={null}2222```python theme={null}

2222class ResultError(ProcessError):2223class ResultError(ProcessError):


2229 data: dict[str, Any] # the raw result message payload2230 data: dict[str, Any] # the raw result message payload

2230```2231```

2231 2232 

2232Para distinguir los fallos, compruebe `terminal_reason` antes de `subtype`. Cuando la solicitud final falla, como en un error de API, Claude Code informa `subtype` `"success"` con la causa en `terminal_reason`, por ejemplo `"api_error"`; cuando un límite que establece termina la ejecución, como `max_turns` o `max_budget_usd`, informa un subtipo `error_*`.2233Para distinguir los fallos, comprueba `terminal_reason` antes de `subtype`. Cuando la solicitud final falla, como en un error de API, Claude Code informa `subtype` `"success"` con la causa en `terminal_reason`, por ejemplo `"api_error"`; cuando un límite que estableces termina la ejecución, como `max_turns` o `max_budget_usd`, informa un subtipo `error_*`.

2233 2234 

2234<h3 id="clijsondecodeerror">2235<h3 id="clijsondecodeerror">

2235 `CLIJSONDecodeError`2236 `CLIJSONDecodeError`


2370| `session_id` | `str` | Identificador de sesión actual |2371| `session_id` | `str` | Identificador de sesión actual |

2371| `transcript_path` | `str` | Ruta al archivo de transcripción de sesión |2372| `transcript_path` | `str` | Ruta al archivo de transcripción de sesión |

2372| `cwd` | `str` | Directorio de trabajo actual |2373| `cwd` | `str` | Directorio de trabajo actual |

2373| `permission_mode` | `str` (opcional) | Modo de permiso actual |2374| `permission_mode` | `str` (opcional) | Modo de permisos actual |

2374 2375 

2375<h3 id="pretoolusehookinput">2376<h3 id="pretoolusehookinput">

2376 `PreToolUseHookInput`2377 `PreToolUseHookInput`


2627```2628```

2628 2629 

2629<Note>2630<Note>

2630 Use `continue_` (con guion bajo) en código Python. Se convierte automáticamente a `continue` cuando se envía al CLI.2631 Usa `continue_` (con guion bajo) en código Python. Se convierte automáticamente a `continue` cuando se envía al CLI.

2631</Note>2632</Note>

2632 2633 

2633<h4 id="hookspecificoutput">2634<h4 id="hookspecificoutput">

2634 `HookSpecificOutput`2635 `HookSpecificOutput`

2635</h4>2636</h4>

2636 2637 

2637Una unión discriminada de tipos de salida específicos del evento `TypedDict`. El campo `hookEventName` determina qué campos son válidos. Para detalles completos sobre campos disponibles por evento de hook, ver [Control execution with hooks](/docs/es/agent-sdk/hooks#outputs).2638Una unión discriminada de tipos de salida específicos del evento `TypedDict`. El campo `hookEventName` determina qué campos son válidos. Para detalles completos sobre campos disponibles por evento de hook, ver [Controlar la ejecución con hooks](/docs/es/agent-sdk/hooks#outputs).

2638 2639 

2639```python theme={null}2640```python theme={null}

2640class PreToolUseHookSpecificOutput(TypedDict):2641class PreToolUseHookSpecificOutput(TypedDict):


2649 hookEventName: Literal["PostToolUse"]2650 hookEventName: Literal["PostToolUse"]

2650 additionalContext: NotRequired[str]2651 additionalContext: NotRequired[str]

2651 updatedToolOutput: NotRequired[Any]2652 updatedToolOutput: NotRequired[Any]

2652 updatedMCPToolOutput: NotRequired[Any] # Deprecated: use updatedToolOutput, which works for all tools2653 updatedMCPToolOutput: NotRequired[Any] # MCP tools only. Prefer updatedToolOutput, which works for all tools

2653 2654 

2654 2655 

2655class PostToolUseFailureHookSpecificOutput(TypedDict):2656class PostToolUseFailureHookSpecificOutput(TypedDict):


2701```2702```

2702 2703 

2703<Note>2704<Note>

2704 Use `async_` (con guion bajo) en código Python. Se convierte automáticamente a `async` cuando se envía al CLI.2705 Usa `async_` (con guion bajo) en código Python. Se convierte automáticamente a `async` cuando se envía al CLI.

2705</Note>2706</Note>

2706 2707 

2707<h3 id="hook-usage-example">2708<h3 id="hook-usage-example">

2708 Ejemplo de uso de hook2709 Ejemplo de uso de hook

2709</h3>2710</h3>

2710 2711 

2711Este ejemplo registra dos hooks: uno que bloquea comandos bash peligrosos como `rm -rf /`, y otro que registra todo el uso de herramientas para auditoría. El hook de seguridad solo se ejecuta en comandos Bash (a través del `matcher`), mientras que el hook de registro se ejecuta en todas las herramientas.2712Este ejemplo registra dos hooks: uno que bloquea comandos Bash peligrosos como `rm -rf /`, y otro que registra todo el uso de herramientas para auditoría. El hook de seguridad solo se ejecuta en comandos Bash (a través del `matcher`), mientras que el hook de registro se ejecuta en todas las herramientas.

2712 2713 

2713```python theme={null}2714```python theme={null}

2714import asyncio2715import asyncio


2767 Tipos de entrada/salida de herramienta2768 Tipos de entrada/salida de herramienta

2768</h2>2769</h2>

2769 2770 

2770Documentación de esquemas de entrada/salida para todas las herramientas integradas de Claude Code. Aunque el SDK de Python no exporta estos como tipos, representan la estructura de entradas y salidas de herramientas en mensajes.2771Documentación de esquemas de entrada/salida para las herramientas integradas de Claude Code. Aunque el SDK de Python no exporta estos como tipos, representan la estructura de entradas y salidas de herramientas en mensajes.

2771 2772 

2772Cada salida mostrada es el valor que usted lee desde [`UserMessage.tool_use_result`](#usermessage) para esa herramienta. Los nombres de clave aparecen exactamente como Claude Code los emite. Una clave anotada `| None` con un comentario "presente cuando" u "opcional" se omite cuando no aplica.2773Cada salida mostrada es el valor que lees desde [`UserMessage.tool_use_result`](#usermessage) para esa herramienta. Los nombres de clave aparecen exactamente como Claude Code los emite. Una clave anotada `| None` con un comentario "presente cuando" u "opcional" se omite cuando no aplica.

2773 2774 

2774<h3 id="agent">2775<h3 id="agent">

2775 Agent2776 Agent


2875 2876 

2876Devuelve el resultado del subagente. La salida se discrimina en el campo `status`: `"completed"` para tareas terminadas, `"async_launched"` para tareas en segundo plano, y `"remote_launched"` para tareas que Claude Code envió a una sesión en la nube, donde `sessionUrl` enlaza a esa sesión y `taskId` la identifica. Si Claude Code [mantuvo el worktree aislado del subagente](/docs/es/worktrees#isolate-subagents-with-worktrees), `worktreePath` en la variante `completed` es donde encontrarlo, y `worktreeBranch` es su rama cuando Claude Code creó el worktree con git.2877Devuelve el resultado del subagente. La salida se discrimina en el campo `status`: `"completed"` para tareas terminadas, `"async_launched"` para tareas en segundo plano, y `"remote_launched"` para tareas que Claude Code envió a una sesión en la nube, donde `sessionUrl` enlaza a esa sesión y `taskId` la identifica. Si Claude Code [mantuvo el worktree aislado del subagente](/docs/es/worktrees#isolate-subagents-with-worktrees), `worktreePath` en la variante `completed` es donde encontrarlo, y `worktreeBranch` es su rama cuando Claude Code creó el worktree con git.

2877 2878 

2878En la variante `completed`, `resolvedModel` nombra el modelo en el que comenzó el subagente, que puede diferir del `model` de entrada solicitado cuando [`availableModels`](/docs/es/model-config#restrict-model-selection) u otra anulación se aplica. Este campo requiere Claude Code v2.1.174 o posterior. En la variante `async_launched`, `resolvedModel` nombra el modelo en uso cuando el agente se movió al segundo plano, por lo que un cambio que ocurrió antes del envío a segundo plano se refleja allí. El campo `modelsUsed` en ambas variantes enumera los modelos utilizados en orden, con repeticiones consecutivas colapsadas; se establece solo cuando el modelo se cambió durante la ejecución. `modelsUsed` y el comportamiento de `resolvedModel` en el momento del envío a segundo plano requieren Claude Code v2.1.212 o posterior.2879En la variante `completed`, `resolvedModel` nombra el modelo en el que comenzó el subagente, que puede diferir del `model` de entrada solicitado cuando [`availableModels`](/docs/es/model-config#restrict-model-selection) u otra sobrescritura se aplica. Este campo requiere Claude Code v2.1.174 o posterior. En la variante `async_launched`, `resolvedModel` nombra el modelo en uso cuando el agente se movió al segundo plano, por lo que un cambio que ocurrió antes del envío a segundo plano se refleja allí. El campo `modelsUsed` en ambas variantes enumera los modelos utilizados en orden, con repeticiones consecutivas colapsadas; se establece solo cuando el modelo se cambió durante la ejecución. `modelsUsed` y el comportamiento de `resolvedModel` en el momento del envío a segundo plano requieren Claude Code v2.1.212 o posterior.

2879 2880 

2880Claude Code completa `usage` y `totalTokens` desde la solicitud final de API del subagente, no desde toda la ejecución. Cuando está presente, `thinking_tokens` bajo `output_tokens_details` en `usage` es el número de tokens de salida de esa solicitud que fueron tokens de pensamiento. La clave `output_tokens_details` requiere Python SDK v0.2.136 o posterior, que incluye Claude Code v2.1.228. La clave `fallback_credit` requiere Python SDK v0.2.162 o posterior, que incluye Claude Code v2.1.285.2881Claude Code completa `usage` y `totalTokens` desde la solicitud final de API del subagente, no desde toda la ejecución. Cuando está presente, `thinking_tokens` bajo `output_tokens_details` en `usage` es el número de tokens de salida de esa solicitud que fueron tokens de pensamiento. La clave `output_tokens_details` requiere Python SDK v0.2.136 o posterior, que incluye Claude Code v2.1.228. La clave `fallback_credit` requiere Python SDK v0.2.162 o posterior, que incluye Claude Code v2.1.285.

2881 2882 


2885 2886 

2886**Nombre de herramienta:** `AskUserQuestion`2887**Nombre de herramienta:** `AskUserQuestion`

2887 2888 

2888Hace preguntas aclaratorias al usuario durante la ejecución. Ver [Manejar aprobaciones e entrada del usuario](/docs/es/agent-sdk/user-input#handle-clarifying-questions) para detalles de uso.2889Hace preguntas aclaratorias al usuario durante la ejecución. Consulta [Manejar aprobaciones y entrada del usuario](/docs/es/agent-sdk/user-input#handle-clarifying-questions) para detalles de uso.

2889 2890 

2890**Entrada:**2891**Entrada:**

2891 2892 


2945 2946 

2946**Nombre de herramienta:** `Bash`2947**Nombre de herramienta:** `Bash`

2947 2948 

2948Para lo que establece el límite de primer plano, ver [Límites de tiempo de espera y salida](/docs/es/tools-reference#timeout-and-output-limits). Para el límite de tiempo en segundo plano, ver [Límite de tiempo para comandos en segundo plano](/docs/es/tools-reference#time-limit-for-background-commands).2949Para lo que establece el límite de primer plano, consulta [Límites de tiempo de espera y salida](/docs/es/tools-reference#timeout-and-output-limits). Para el límite de tiempo en segundo plano, consulta [Límite de tiempo para comandos en segundo plano](/docs/es/tools-reference#time-limit-for-background-commands).

2949 2950 

2950**Entrada:**2951**Entrada:**

2951 2952 


2976 2977 

2977**Nombre de herramienta:** `Monitor`2978**Nombre de herramienta:** `Monitor`

2978 2979 

2979Ejecuta una fuente de fondo y entrega cada evento a Claude para que pueda reaccionar sin sondeo: `command` ejecuta un script y emite un evento por línea stdout, y `ws` abre un WebSocket y emite un evento por marco de texto. Proporcione exactamente uno de `command` o `ws`.2980Ejecuta una fuente en segundo plano y entrega cada evento a Claude para que pueda reaccionar sin sondeo: `command` ejecuta un script y emite un evento por línea stdout, y `ws` abre un WebSocket y emite un evento por marco de texto. Proporciona exactamente uno de `command` o `ws`.

2980 2981 

2981Cuando Monitor ejecuta un comando, sigue las mismas reglas de permiso que Bash; una vigilancia de WebSocket solicita aprobación por separado. La fuente `ws` requiere Claude Code v2.1.195 o posterior. Ver la [referencia de herramienta Monitor](/docs/es/tools-reference#monitor-tool) para comportamiento y disponibilidad de proveedor.2982Cuando Monitor ejecuta un comando, sigue las mismas reglas de permisos que Bash; una vigilancia de WebSocket solicita aprobación por separado. La fuente `ws` requiere Claude Code v2.1.195 o posterior. Consulta la [referencia de la herramienta Monitor](/docs/es/tools-reference#monitor-tool) para comportamiento y disponibilidad de proveedor.

2982 2983 

2983**Entrada:**2984**Entrada:**

2984 2985 


3065}3066}

3066```3067```

3067 3068 

3068La salida toma una de las siguientes formas dependiendo de lo que Claude leyó. Verifique la clave `type` para distinguirlas.3069La salida toma una de las siguientes formas dependiendo de lo que Claude leyó. Verifica la clave `type` para distinguirlas.

3069 3070 

3070**Salida (tipo: `"text"`):**3071**Salida (tipo: `"text"`):**

3071 3072 


3386 3387 

3387 Este conjunto predeterminado se aplica en Claude Code v2.1.268 y posterior, que el TypeScript Agent SDK agrupa desde v0.3.268.3388 Este conjunto predeterminado se aplica en Claude Code v2.1.268 y posterior, que el TypeScript Agent SDK agrupa desde v0.3.268.

3388 3389 

3389 Ver [Disponibilidad de modelos](/docs/es/agent-sdk/todo-tracking#model-availability) para optar por participar.3390 Consulta [Disponibilidad de modelos](/docs/es/agent-sdk/todo-tracking#model-availability) para optar por participar.

3390</Note>3391</Note>

3391 3392 

3392**Entrada:**3393**Entrada:**


3544 TaskOutput3545 TaskOutput

3545</h3>3546</h3>

3546 3547 

3547Eliminado en Claude Code v2.1.277. Anteriormente recuperaba salida de una tarea en ejecución o completada, con `BashOutput` aceptado como alias; Claude lee el archivo de salida de una tarea en segundo plano con `Read` en su lugar.3548Eliminado en Claude Code v2.1.277. Anteriormente recuperaba la salida de una tarea en segundo plano en ejecución o completada, con `BashOutput` aceptado como alias; Claude lee el archivo de salida de una tarea en segundo plano con `Read` en su lugar.

3548 3549 

3549Una entrada `disallowed_tools` o una regla de denegación que aún nombre cualquiera de estos nombres se ignora sin una advertencia.3550Una entrada `disallowed_tools` o una regla de denegación que aún nombre cualquiera de estos nombres se ignora sin una advertencia.

3550 3551 

Details

60 60 

61Para usar salidas estructuradas, defina un [JSON Schema](https://json-schema.org/understanding-json-schema/about) que describa la forma de los datos que desea, luego páselo a `query()` a través de la opción `outputFormat` (TypeScript) u opción `output_format` (Python). Cuando el agente termina, el mensaje de resultado incluye un campo `structured_output` con datos validados que coinciden con su esquema.61Para usar salidas estructuradas, defina un [JSON Schema](https://json-schema.org/understanding-json-schema/about) que describa la forma de los datos que desea, luego páselo a `query()` a través de la opción `outputFormat` (TypeScript) u opción `output_format` (Python). Cuando el agente termina, el mensaje de resultado incluye un campo `structured_output` con datos validados que coinciden con su esquema.

62 62 

63El ejemplo a continuación le pide al agente que investigue Anthropic y devuelva el nombre de la empresa, año de fundación y sede como salida estructurada.63Antes de ejecutar los ejemplos de esta página, instala el Claude Agent SDK siguiendo el [inicio rápido](/docs/es/agent-sdk/quickstart#setup). El ejemplo a continuación le pide al agente que investigue Anthropic y devuelva el nombre de la empresa, el año de fundación y la sede como salida estructurada.

64 64 

65<CodeGroup>65<CodeGroup>

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


390 Manejo de errores390 Manejo de errores

391</h2>391</h2>

392 392 

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

394 394 

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

396 396 

Details

6 6 

7> Referencia completa de la API del SDK de Agent de TypeScript, incluyendo todas las funciones, tipos e interfaces.7> Referencia completa de la API del SDK de Agent de TypeScript, incluyendo todas las funciones, tipos e interfaces.

8 8 

9<script src="/docs/components/typescript-sdk-type-links.js" defer />

10 

11<h2 id="installation">9<h2 id="installation">

12 Instalación10 Instalación

13</h2>11</h2>


181});179});

182 180 

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

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

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

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

187});185});

188 186 

189for await (const message of claimedQuery) {187try {

188 for await (const message of claimedQuery) {

190 console.log(message);189 console.log(message);

190 }

191} catch (error) {

192 // Tras una reclamación rechazada, la consulta reclamada lanza una excepción una vez que ha emitido el resultado de error

193 console.error(`Session ended with an error: ${error}`);

191}194}

192```195```

193 196 


546| `allowDangerouslySkipPermissions` | `boolean` | `false` | Habilita la omisión de permisos. Es obligatorio al usar `permissionMode: 'bypassPermissions'`, ya sea al inicio o más tarde mediante `setPermissionMode()`. Consulta [modo plan](/docs/es/agent-sdk/permissions#plan-mode-plan) para ver cómo interactúa con `permissionMode: 'plan'` |549| `allowDangerouslySkipPermissions` | `boolean` | `false` | Habilita la omisión de permisos. Es obligatorio al usar `permissionMode: 'bypassPermissions'`, ya sea al inicio o más tarde mediante `setPermissionMode()`. Consulta [modo plan](/docs/es/agent-sdk/permissions#plan-mode-plan) para ver cómo interactúa con `permissionMode: 'plan'` |

547| `allowedTools` | `string[]` | `[]` | Herramientas que se aprueban automáticamente sin pedir confirmación. Esto no restringe a Claude a usar solo estas herramientas. Si nombras aquí una de las [herramientas de seguimiento de tareas](/docs/es/agent-sdk/todo-tracking#model-availability), Claude Code también habilita su uso en la sesión. Las demás herramientas no listadas pasan a `permissionMode` y `canUseTool`. Usa `disallowedTools` para bloquear herramientas. Consulta [Permisos](/docs/es/agent-sdk/permissions#allow-and-deny-rules) |550| `allowedTools` | `string[]` | `[]` | Herramientas que se aprueban automáticamente sin pedir confirmación. Esto no restringe a Claude a usar solo estas herramientas. Si nombras aquí una de las [herramientas de seguimiento de tareas](/docs/es/agent-sdk/todo-tracking#model-availability), Claude Code también habilita su uso en la sesión. Las demás herramientas no listadas pasan a `permissionMode` y `canUseTool`. Usa `disallowedTools` para bloquear herramientas. Consulta [Permisos](/docs/es/agent-sdk/permissions#allow-and-deny-rules) |

548| `betas` | [`SdkBeta`](#sdkbeta)`[]` | `[]` | Habilita funciones beta |551| `betas` | [`SdkBeta`](#sdkbeta)`[]` | `[]` | Habilita funciones beta |

549| `canUseTool` | [`CanUseTool`](#canusetool) | `undefined` | Función de permisos personalizada, que se invoca solo cuando el [flujo de permisos](/docs/es/agent-sdk/permissions#how-permissions-are-evaluated) llega a una solicitud de permiso. No se invoca para las llamadas aprobadas automáticamente por `allowedTools`, por reglas de permiso o por `permissionMode`. Una regla de permiso no aprueba previamente las [acciones que ningún modo aprueba automáticamente](/docs/es/permission-modes#actions-no-mode-auto-approves). Consulta [`CanUseTool`](#canusetool) para más detalles |552| `canUseTool` | [`CanUseTool`](#canusetool) | `undefined` | Función de permisos personalizada, que se invoca solo cuando el [flujo de permisos](/docs/es/agent-sdk/permissions#how-permissions-are-evaluated) llega a una solicitud de permiso. No se invoca para llamadas aprobadas automáticamente por `allowedTools`, reglas de permiso o `permissionMode`. Una regla de permiso no aprueba de antemano las [acciones que ningún modo aprueba automáticamente](/docs/es/permission-modes#actions-no-mode-auto-approves). Consulta [`CanUseTool`](#canusetool) para más detalles |

550| `continue` | `boolean` | `false` | Continúa la conversación más reciente |553| `continue` | `boolean` | `false` | Continúa la conversación más reciente |

551| `cwd` | `string` | `process.cwd()` | Directorio de trabajo actual |554| `cwd` | `string` | `process.cwd()` | Directorio de trabajo actual |

552| `debug` | `boolean` | `false` | Habilita el modo de depuración para el proceso de Claude Code |555| `debug` | `boolean` | `false` | Habilita el modo de depuración para el proceso de Claude Code |

553| `debugFile` | `string` | `undefined` | Escribe los registros de depuración en una ruta de archivo específica. Habilita implícitamente el modo de depuración |556| `debugFile` | `string` | `undefined` | Escribe los registros de depuración en una ruta de archivo específica. Habilita implícitamente el modo de depuración |

554| `disallowedTools` | `string[]` | `[]` | Herramientas que se deniegan. Un nombre sin más, como `"Bash"`, elimina la herramienta del contexto de Claude. Una regla con alcance, como `"Bash(rm *)"`, deja la herramienta disponible y deniega las llamadas coincidentes en todos los modos de permisos, incluido `bypassPermissions`, para el comando [tal como está escrito](/docs/es/permissions#bash-rule-limits). Consulta [Permisos](/docs/es/agent-sdk/permissions#allow-and-deny-rules) |557| `disallowedTools` | `string[]` | `[]` | Herramientas que se deniegan. Un nombre simple como `"Bash"` elimina la herramienta del contexto de Claude. Una regla con alcance como `"Bash(rm *)"` deja la herramienta disponible y deniega las llamadas coincidentes en todos los modos de permisos, incluido `bypassPermissions`, para el comando [tal como está escrito](/docs/es/permissions#bash-rule-limits). Consulta [Permisos](/docs/es/agent-sdk/permissions#allow-and-deny-rules) |

555| `effort` | `'low' \| 'medium' \| 'high' \| 'xhigh' \| 'max'` | `undefined` | Controla cuánto esfuerzo pone Claude en su respuesta. Funciona con el pensamiento adaptativo para orientar la profundidad del pensamiento. Consulta [ajustar el nivel de esfuerzo](/docs/es/model-config#adjust-effort-level) |558| `effort` | `'low' \| 'medium' \| 'high' \| 'xhigh' \| 'max'` | `undefined` | Controla cuánto esfuerzo dedica Claude a su respuesta. Funciona con el pensamiento adaptativo para guiar la profundidad del pensamiento. Consulta [ajustar el nivel de esfuerzo](/docs/es/model-config#adjust-effort-level) |

556| `enableFileCheckpointing` | `boolean` | `false` | Habilita el seguimiento de cambios en archivos para poder rebobinar. Consulta [Checkpointing de archivos](/docs/es/agent-sdk/file-checkpointing) |559| `enableFileCheckpointing` | `boolean` | `false` | Habilita el seguimiento de cambios en archivos para poder revertirlos. Consulta [Checkpointing de archivos](/docs/es/agent-sdk/file-checkpointing) |

557| `env` | `Record<string, string \| undefined>` | `process.env` | Variables de entorno. Cuando se establece, reemplaza el entorno del subproceso en lugar de combinarse con `process.env`, así que pasa `{ ...process.env, YOUR_VAR: 'value' }` para conservar variables heredadas como `PATH`. Consulta [Manejar respuestas de API lentas o detenidas](#handle-slow-or-stalled-api-responses) para ver un ejemplo de este patrón, y [Variables de entorno](/docs/es/env-vars) para ver las variables que lee la CLI subyacente. Establece `CLAUDE_AGENT_SDK_CLIENT_APP` para identificar tu app en el encabezado User-Agent |560| `env` | `Record<string, string \| undefined>` | `process.env` | Variables de entorno. Cuando se establece, reemplaza el entorno del subproceso en lugar de combinarse con `process.env`, así que pasa `{ ...process.env, YOUR_VAR: 'value' }` para conservar variables heredadas como `PATH`. Consulta [Manejar respuestas de la API lentas o detenidas](#handle-slow-or-stalled-api-responses) para ver un ejemplo de este patrón, y [Variables de entorno](/docs/es/env-vars) para ver las variables que lee la CLI subyacente. Establece `CLAUDE_AGENT_SDK_CLIENT_APP` para identificar tu aplicación en el encabezado User-Agent |

558| `executable` | `'bun' \| 'deno' \| 'node'` | Detectado automáticamente | Runtime de JavaScript que se usará |561| `executable` | `'bun' \| 'deno' \| 'node'` | Detectado automáticamente | Runtime de JavaScript que se usará |

559| `executableArgs` | `string[]` | `[]` | Argumentos que se pasan al ejecutable |562| `executableArgs` | `string[]` | `[]` | Argumentos que se pasan al ejecutable |

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

561| `fallbackModel` | `string` | `undefined` | Modelo que se usará si el modelo principal falla. Acepta una lista separada por comas. Para el orden y el límite, consulta [Cadenas de modelos de respaldo](/docs/es/model-config#fallback-model-chains). Para orientación, consulta [Elegir un modelo](/docs/es/agent-sdk/configuration#choose-a-model) |564| `fallbackModel` | `string` | `undefined` | Modelo que se usa si falla el modelo principal. Acepta una lista separada por comas. Para el orden y el límite, consulta [Cadenas de modelos de respaldo](/docs/es/model-config#fallback-model-chains). Para orientación, consulta [Elegir un modelo](/docs/es/agent-sdk/configuration#choose-a-model) |

562| `forkSession` | `boolean` | `false` | Al reanudar con `resume`, bifurca a un nuevo ID de sesión en lugar de continuar la sesión original |565| `forkSession` | `boolean` | `false` | Al reanudar con `resume`, bifurca a un nuevo ID de sesión en lugar de continuar la sesión original |

563| `forwardSubagentText` | `boolean` | `false` | Reenvía el texto y los bloques de pensamiento de los subagentes como mensajes de asistente y de usuario con `parent_tool_use_id` establecido, para que los consumidores puedan renderizar una transcripción anidada. Sin esta opción, Claude Code emite los bloques `tool_use` y `tool_result` de los subagentes, pero no el texto ni el pensamiento. Los mensajes de subagentes en cualquier nivel de anidamiento se reenvían en Claude Code v2.1.219 y posteriores; antes de v2.1.219, solo aparecían los mensajes de subagentes de profundidad 1. Los mensajes de los subagentes que genera un skill bifurcado, y los de skills bifurcados anidados, requieren v2.1.275 o posterior |566| `forwardSubagentText` | `boolean` | `false` | Reenvía el texto y los bloques de pensamiento de los subagentes como mensajes de assistant y user con `parent_tool_use_id` establecido, para que los consumidores puedan renderizar una transcripción anidada. Sin esta opción, Claude Code omite el texto y los bloques de pensamiento de un subagente que se ejecuta en [primer plano](/docs/es/sub-agents#run-subagents-in-foreground-or-background). Para subagentes anidados, skills con `context: fork` y la versión de Claude Code que necesita cada caso, consulta [Seguir los mensajes de subagentes](/docs/es/headless#follow-subagent-messages) |

564| `hooks` | `Partial<Record<`[`HookEvent`](#hookevent)`, `[`HookCallbackMatcher`](#hookcallbackmatcher)`[]>>` | `{}` | Callbacks de hooks para eventos |567| `hooks` | `Partial<Record<`[`HookEvent`](#hookevent)`, `[`HookCallbackMatcher`](#hookcallbackmatcher)`[]>>` | `{}` | Callbacks de hooks para eventos |

565| `includeHookEvents` | `boolean` | `false` | Incluye los eventos del ciclo de vida de los hooks en el flujo de mensajes como [`SDKHookStartedMessage`](#sdkhookstartedmessage), [`SDKHookProgressMessage`](#sdkhookprogressmessage) y [`SDKHookResponseMessage`](#sdkhookresponsemessage). Los eventos del ciclo de vida de los hooks `SessionStart` y `Setup` siempre se incluyen y no necesitan esta opción. Algunos eventos de hooks, como `Notification`, `SessionEnd`, `PreCompact` y `PostCompact`, nunca producen un `SDKHookStartedMessage`, incluso con esta opción. Para esos eventos, Claude Code igualmente emite un `SDKHookProgressMessage` mientras un hook de comando que se ejecuta durante más de un segundo produce salida, y emite un `SDKHookResponseMessage` solo cuando termina un hook [que se ejecuta en segundo plano](/docs/es/hooks#run-hooks-in-the-background) |568| `includeHookEvents` | `boolean` | `false` | Incluye los eventos del ciclo de vida de los hooks en el stream de mensajes como [`SDKHookStartedMessage`](#sdkhookstartedmessage), [`SDKHookProgressMessage`](#sdkhookprogressmessage) y [`SDKHookResponseMessage`](#sdkhookresponsemessage). Los eventos del ciclo de vida de los hooks `SessionStart` y `Setup` siempre se incluyen y no necesitan esta opción. Algunos eventos de hook, como `Notification`, `SessionEnd`, `PreCompact` y `PostCompact`, nunca producen un `SDKHookStartedMessage`, ni siquiera con esta opción. Para esos eventos, Claude Code sigue emitiendo un `SDKHookProgressMessage` mientras un hook de comando que se ejecuta durante más de un segundo produce salida, y emite un `SDKHookResponseMessage` solo cuando termina un hook [que se ejecuta en segundo plano](/docs/es/hooks#run-hooks-in-the-background) |

566| `includePartialMessages` | `boolean` | `false` | Incluye eventos de mensajes parciales |569| `includePartialMessages` | `boolean` | `false` | Incluye eventos de mensajes parciales |

567| `loadTimeoutMs` | `number` | `60000` | *Alpha.* Tiempo de espera en milisegundos para cada llamada a `sessionStore.load()` y `sessionStore.listSubkeys()` durante la materialización de la reanudación. Si el adaptador no se resuelve dentro de este plazo, la consulta falla en lugar de quedarse colgada. Se ignora cuando `sessionStore` no está establecido |570| `loadTimeoutMs` | `number` | `60000` | *Alfa.* Tiempo de espera en milisegundos para cada llamada a `sessionStore.load()` y `sessionStore.listSubkeys()` durante la materialización de la reanudación. Si el adaptador no se resuelve dentro de este intervalo, la consulta falla en lugar de quedarse colgada. Se ignora cuando `sessionStore` no está establecido |

568| `managedSettings` | `Settings` | `undefined` | Configuración de nivel de política que tu proceso host proporciona a la sesión generada. En máquinas con configuración administrada desplegada por un administrador, Claude Code la ignora a menos que la fuente administrada de mayor prioridad del administrador establezca `parentSettingsBehavior: 'merge'`, y nunca la combina mientras un [`policyHelper`](/docs/es/settings-reference#policyhelper) proporcione configuración administrada. Los valores combinados pasan por un filtro que solo admite restricciones; [Restringir la configuración principal](/docs/es/claude-apps-gateway#restrict-parent-settings) explica qué admite el filtro y los bloqueos `allowManaged*Only`. En un host que establece [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/es/env-vars), en cambio, se leen tres claves directamente de este payload: su [configuración de modelos](/docs/es/model-config#restrict-model-selection) en Claude Code v2.1.222 o posterior, [`modelPricing`](/docs/es/settings-reference#modelpricing) cuando ninguna fuente administrada lo establece en v2.1.246 o posterior, y su entrada env `ENABLE_TOOL_SEARCH` en v2.1.247 o posterior |571| `managedSettings` | `Settings` | `undefined` | Configuración de nivel de política que tu proceso host proporciona a la sesión generada. En máquinas con configuración administrada implementada por un administrador, Claude Code la ignora a menos que la fuente administrada de mayor prioridad del administrador establezca `parentSettingsBehavior: 'merge'`, y nunca la combina mientras un [`policyHelper`](/docs/es/settings-reference#policyhelper) proporcione configuración administrada. Los valores combinados pasan por un filtro solo restrictivo; [Restringir la configuración principal](/docs/es/claude-apps-gateway#restrict-parent-settings) explica lo que admite el filtro y los bloqueos `allowManaged*Only`. Un host que establece [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/es/env-vars) hace que, en cambio, se lean tres claves directamente de este payload: su [configuración de modelos](/docs/es/model-config#restrict-model-selection) en Claude Code v2.1.222 o posterior, [`modelPricing`](/docs/es/settings-reference#modelpricing) cuando ninguna fuente administrada lo establece en v2.1.246 o posterior, y su entrada env `ENABLE_TOOL_SEARCH` en v2.1.247 o posterior |

569| `maxBudgetUsd` | `number` | `undefined` | Detiene la consulta cuando la estimación de costo del lado del cliente alcanza este valor en USD. Solo cuenta el gasto propio de la llamada; los totales restaurados de una sesión reanudada no cuentan. Para advertencias sobre la precisión y el comportamiento de restablecimiento, consulta [Seguimiento de costos y uso](/docs/es/agent-sdk/cost-tracking) |572| `maxBudgetUsd` | `number` | `undefined` | Detiene la consulta cuando la estimación de costo del lado del cliente alcanza este valor en USD. Cuenta solo el gasto propio de la llamada; los totales restaurados de una sesión reanudada no cuentan. Para las advertencias sobre precisión y el comportamiento de restablecimiento, consulta [Seguimiento de costos y uso](/docs/es/agent-sdk/cost-tracking) |

570| `maxThinkingTokens` | `number` | `undefined` | *Obsoleto:* usa `thinking` en su lugar. Máximo de tokens para el proceso de pensamiento |573| `maxThinkingTokens` | `number` | `undefined` | *Obsoleto:* usa `thinking` en su lugar. Máximo de tokens para el proceso de pensamiento |

571| `maxTurns` | `number` | `undefined` | Máximo de turnos agénticos (idas y vueltas de uso de herramientas) |574| `maxTurns` | `number` | `undefined` | Máximo de turnos agénticos (ciclos de ida y vuelta de uso de herramientas) |

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

573| `model` | `string` | Predeterminado de la CLI | Alias del modelo de Claude o nombre completo del modelo. Consulta [valores aceptados e IDs específicos de cada proveedor](/docs/es/model-config#available-models) |576| `model` | `string` | Predeterminado de la CLI | Alias del modelo de Claude o nombre completo del modelo. Consulta [valores aceptados e IDs específicos de cada proveedor](/docs/es/model-config#available-models) |

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

575| `outputFormat` | `{ type: 'json_schema', schema: JSONSchema }` | `undefined` | Define el formato de salida para los resultados del agente. Consulta [Salidas estructuradas](/docs/es/agent-sdk/structured-outputs) para más detalles |578| `outputFormat` | `{ type: 'json_schema', schema: JSONSchema }` | `undefined` | Define el formato de salida para los resultados del agente. Consulta [Salidas estructuradas](/docs/es/agent-sdk/structured-outputs) para más detalles |

576| `outputStyle` | `string` | `undefined` | No es un campo de `Options`. Establece `outputStyle` en el objeto [`settings`](/docs/es/settings) en línea o en un archivo de configuración. Consulta [Activar un estilo de salida](/docs/es/agent-sdk/modifying-system-prompts#activate-an-output-style) |579| `outputStyle` | `string` | `undefined` | No es un campo de `Options`. En su lugar, establece `outputStyle` en el objeto [`settings`](/docs/es/settings) en línea o en un archivo de configuración. Consulta [Activar un estilo de salida](/docs/es/agent-sdk/modifying-system-prompts#activate-an-output-style) |

577| `pathToClaudeCodeExecutable` | `string` | Se resuelve automáticamente desde el binario nativo incluido | Ruta al ejecutable de Claude Code. Solo es necesaria si se omitieron las dependencias opcionales durante la instalación o si tu plataforma no está en el conjunto compatible |580| `pathToClaudeCodeExecutable` | `string` | Resuelto automáticamente a partir del binario nativo incluido | Ruta al ejecutable de Claude Code. Solo es necesaria si se omitieron las dependencias opcionales durante la instalación o si tu plataforma no está en el conjunto compatible |

578| `permissionMode` | [`PermissionMode`](#permissionmode) | `undefined` | Modo de permisos para la sesión. Si lo omites, la sesión puede iniciarse en modo automático. Consulta [Modos de permisos](/docs/es/agent-sdk/permissions#permission-modes) para ver cómo elige Claude Code el modo de permisos inicial |581| `permissionMode` | [`PermissionMode`](#permissionmode) | `undefined` | Modo de permisos para la sesión. Si lo omites, la sesión puede iniciarse en modo automático. Consulta [Modos de permisos](/docs/es/agent-sdk/permissions#permission-modes) para ver cómo Claude Code elige el modo de permisos inicial |

579| `permissionPromptToolName` | `string` | `undefined` | Nombre de la herramienta MCP para las solicitudes de permiso |582| `permissionPromptToolName` | `string` | `undefined` | Nombre de la herramienta MCP para las solicitudes de permiso |

580| `permissionPrompts` | `'host' \| 'none'` | `'host'` | Quién responde las solicitudes de permiso: `'host'` las dirige a tu callback [`canUseTool`](#canusetool) o a la herramienta `permissionPromptToolName`, y `'none'` [deniega las llamadas que habrían requerido una solicitud](/docs/es/agent-sdk/permissions#how-permissions-are-evaluated). Requiere Claude Code v2.1.259 o posterior |583| `permissionPrompts` | `'host' \| 'none'` | `'host'` | Quién responde a las solicitudes de permiso: `'host'` las dirige a tu callback [`canUseTool`](#canusetool) o a la herramienta `permissionPromptToolName`, y `'none'` [deniega las llamadas que habrían pedido permiso](/docs/es/agent-sdk/permissions#how-permissions-are-evaluated). Requiere Claude Code v2.1.259 o posterior |

581| `persistSession` | `boolean` | `true` | Cuando es `false`, deshabilita la persistencia de la sesión en disco. Las sesiones no se pueden reanudar después |584| `persistSession` | `boolean` | `true` | Cuando es `false`, desactiva la persistencia de la sesión en disco. Las sesiones no se pueden reanudar después |

582| `planModeInstructions` | `string` | `undefined` | Instrucciones de flujo de trabajo personalizadas para el modo plan. Cuando `permissionMode` es `'plan'`, esta cadena reemplaza el cuerpo predeterminado del flujo de trabajo del modo plan. La CLI igualmente la envuelve con el preámbulo que impone el modo de solo lectura y el pie del protocolo ExitPlanMode |585| `planModeInstructions` | `string` | `undefined` | Instrucciones de flujo de trabajo personalizadas para el modo plan. Cuando `permissionMode` es `'plan'`, esta cadena reemplaza el cuerpo predeterminado del flujo de trabajo del modo plan. La CLI aún la envuelve con el preámbulo que impone el modo de solo lectura y el pie del protocolo de ExitPlanMode |

583| `plugins` | [`SdkPluginConfig`](#sdkpluginconfig)`[]` | `[]` | Carga plugins personalizados desde rutas locales. Consulta [Plugins](/docs/es/agent-sdk/plugins) para más detalles |586| `plugins` | [`SdkPluginConfig`](#sdkpluginconfig)`[]` | `[]` | Carga plugins personalizados desde rutas locales. Consulta [Plugins](/docs/es/agent-sdk/plugins) para más detalles |

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

585| `promptSuggestions` | `boolean` | `false` | Habilita las sugerencias de prompts. Después de un turno, Claude Code emite un mensaje `prompt_suggestion` que contiene una predicción del siguiente prompt del usuario. Claude Code no genera sugerencias en algunos turnos, por ejemplo cuando tu cuenta está cerca de su límite de uso o ya lo alcanzó. Consulta [Cuándo Claude Code omite las sugerencias](/docs/es/interactive-mode#when-claude-code-skips-suggestions) |588| `promptSuggestions` | `boolean` | `false` | Habilita las sugerencias de prompts. Después de un turno, Claude Code emite un mensaje `prompt_suggestion` que contiene una predicción del siguiente prompt del usuario. Claude Code no genera sugerencias en algunos turnos, por ejemplo cuando tu cuenta está cerca de su límite de uso o ya lo alcanzó. Consulta [Cuándo Claude Code omite las sugerencias](/docs/es/interactive-mode#when-claude-code-skips-suggestions) |

586| `resume` | `string` | `undefined` | ID de la sesión que se reanudará |589| `resume` | `string` | `undefined` | ID de la sesión que se reanudará |

587| `resumeDropsTurn` | `string` | `undefined` | Con `resumeSessionAt`: el UUID del prompt del turno que la reanudación con truncamiento pretende descartar. Claude Code rechaza la reanudación cuando el rango descartado contiene algo que no se puede atribuir a ese turno, como mensajes en cola absorbidos o notificaciones de tareas, y nombra el flag `--resume-drops-turn` en el mensaje de rechazo. Solo las reanudaciones del Agent SDK y del modo print leen este par. Requiere Claude Code v2.1.223 o posterior |590| `resumeDropsTurn` | `string` | `undefined` | Con `resumeSessionAt`: el UUID del prompt del turno que la reanudación con truncamiento pretende descartar. Claude Code rechaza la reanudación cuando el rango descartado contiene algo que no se puede atribuir a ese turno, como mensajes en cola absorbidos o notificaciones de tareas, y menciona el flag `--resume-drops-turn` en el mensaje de rechazo. Solo las reanudaciones del Agent SDK y del modo print leen este par. Requiere Claude Code v2.1.223 o posterior |

588| `resumeSessionAt` | `string` | `undefined` | Reanuda la sesión en un UUID de mensaje específico |591| `resumeSessionAt` | `string` | `undefined` | Reanuda la sesión en un UUID de mensaje específico |

589| `sandbox` | [`SandboxSettings`](#sandboxsettings) | `undefined` | Configura el comportamiento del sandbox mediante programación. Consulta [Configuración del sandbox](#sandboxsettings) para más detalles |592| `sandbox` | [`SandboxSettings`](#sandboxsettings) | `undefined` | Configura el comportamiento del sandbox mediante programación. Consulta [Configuración del sandbox](#sandboxsettings) para más detalles |

590| `sessionId` | `string` | Generado automáticamente | Usa un UUID específico para la sesión en lugar de generar uno automáticamente |593| `sessionId` | `string` | Generado automáticamente | Usa un UUID específico para la sesión en lugar de generar uno automáticamente |

591| `sessionStore` | [`SessionStore`](/docs/es/agent-sdk/session-storage#the-sessionstore-interface) | `undefined` | Replica las transcripciones de la sesión en un backend externo para que otro host pueda reanudarlas. Consulta [Persistir sesiones en almacenamiento externo](/docs/es/agent-sdk/session-storage) |594| `sessionStore` | [`SessionStore`](/docs/es/agent-sdk/session-storage#the-sessionstore-interface) | `undefined` | Replica las transcripciones de la sesión en un backend externo para que otro host pueda reanudarlas. Consulta [Persistir sesiones en almacenamiento externo](/docs/es/agent-sdk/session-storage) |

592| `sessionStoreFlush` | `'batched' \| 'eager'` | `'batched'` | *Alpha.* Modo de vaciado para `sessionStore`. Se ignora cuando `sessionStore` no está establecido |595| `sessionStoreFlush` | `'batched' \| 'eager'` | `'batched'` | *Alfa.* Modo de vaciado para `sessionStore`. Se ignora cuando `sessionStore` no está establecido |

593| `settings` | `string \| Settings` | `undefined` | Objeto de [configuración](/docs/es/settings) en línea, una ruta a un archivo de configuración o una cadena JSON en línea. Rellena la capa de configuración de flags en el [orden de precedencia](/docs/es/settings#settings-precedence). Cámbialo en tiempo de ejecución con [`applyFlagSettings()`](#applyflagsettings) |596| `settings` | `string \| Settings` | `undefined` | Objeto de [configuración](/docs/es/settings) en línea, ruta de un archivo de configuración o cadena JSON en línea. Completa la capa de configuración de flags en el [orden de precedencia](/docs/es/settings#settings-precedence). Cámbialo en tiempo de ejecución con [`applyFlagSettings()`](#applyflagsettings) |

594| `settingSources` | [`SettingSource`](#settingsource)`[]` | Valores predeterminados de la CLI (todas las fuentes) | Controla qué configuración del sistema de archivos se carga. Pasa `[]` para deshabilitar la configuración de usuario, de proyecto y local. La [política administrada por endpoint](/docs/es/managed-settings#delivery-mechanisms) se carga de todos modos; la configuración administrada por servidor se obtiene cuando la sesión se autentica con una credencial de organización en una [configuración elegible](/docs/es/server-managed-settings#platform-availability). Consulta [Usar funciones de Claude Code](/docs/es/agent-sdk/claude-code-features#what-settingsources-does-not-control) |597| `settingSources` | [`SettingSource`](#settingsource)`[]` | Valores predeterminados de la CLI (todas las fuentes) | Controla qué configuración del sistema de archivos se carga. Pasa `[]` para desactivar la configuración de usuario, de proyecto y local. La [política administrada por endpoint](/docs/es/managed-settings#delivery-mechanisms) se carga de todos modos; la configuración administrada por el servidor se obtiene cuando la sesión se autentica con una credencial de organización en una [configuración compatible](/docs/es/server-managed-settings#platform-availability). Consulta [Usar las funciones de Claude Code](/docs/es/agent-sdk/claude-code-features#what-settingsources-does-not-control) |

595| `skills` | `string[] \| 'all'` | `undefined` | Skills disponibles para la sesión. Pasa `'all'` para habilitar todos los skills descubiertos, o una lista de nombres de skills. Pasa solo nombres exactos. En Agent SDK v0.3.221 o posterior, el SDK rechaza con un error los nombres mal formados y con comodines antes de iniciar el proceso de Claude Code. Cuando se establece, el SDK agrega automáticamente la herramienta Skill a `allowedTools`. Si también pasas `tools`, incluye `'Skill'` en esa lista. Consulta [Skills](/docs/es/agent-sdk/skills) |598| `skills` | `string[] \| 'all'` | `undefined` | Skills disponibles para la sesión. Pasa `'all'` para habilitar todos los skills descubiertos, o una lista de nombres de skills. Pasa solo nombres exactos. En Agent SDK v0.3.221 o posterior, el SDK rechaza con un error los nombres mal formados y los que usan comodines antes de iniciar el proceso de Claude Code. Cuando se establece, el SDK agrega automáticamente la herramienta Skill a `allowedTools`. Si también pasas `tools`, incluye `'Skill'` en esa lista. Consulta [Skills](/docs/es/agent-sdk/skills) |

596| `spawnClaudeCodeProcess` | `(options: SpawnOptions) => SpawnedProcess` | `undefined` | Función personalizada para generar el proceso de Claude Code. Úsala para ejecutar Claude Code en VMs, contenedores o entornos remotos |599| `spawnClaudeCodeProcess` | `(options: SpawnOptions) => SpawnedProcess` | `undefined` | Función personalizada para generar el proceso de Claude Code. Úsala para ejecutar Claude Code en máquinas virtuales, contenedores o entornos remotos |

597| `stderr` | `(data: string) => void` | `undefined` | Callback para la salida de stderr |600| `stderr` | `(data: string) => void` | `undefined` | Callback para la salida de stderr |

598| `strictMcpConfig` | `boolean` | `false` | Usa solo los servidores pasados en `mcpServers` e ignora el `.mcp.json` del proyecto, la configuración de usuario, los servidores MCP proporcionados por plugins y los [conectores de claude.ai](/docs/es/mcp#use-mcp-servers-from-claude-ai) |601| `strictMcpConfig` | `boolean` | `false` | Usa solo los servidores pasados en `mcpServers` e ignora el `.mcp.json` del proyecto, la configuración de usuario, los servidores MCP proporcionados por plugins y los [conectores de claude.ai](/docs/es/mcp#use-mcp-servers-from-claude-ai) |

599| `systemPrompt` | `string \| string[] \| { type: 'custom'; prompt: string \| string[]; snapshot?: boolean } \| { type: 'preset'; preset: 'claude_code'; append?: string; excludeDynamicSections?: boolean; snapshot?: boolean }` | `undefined` (prompt mínimo) | Configuración del prompt del sistema. Pasa una cadena para un prompt personalizado, o `{ type: 'preset', preset: 'claude_code' }` para usar el prompt del sistema de Claude Code. Pasa un array de cadenas con la constante exportada `SYSTEM_PROMPT_DYNAMIC_BOUNDARY` entre la parte estática y la parte por solicitud para [almacenar en caché la parte estática de un prompt personalizado](/docs/es/agent-sdk/modifying-system-prompts#cache-the-static-part-of-a-custom-prompt). Al usar la forma de objeto preset, agrega `append` para ampliarlo con instrucciones adicionales, y establece `excludeDynamicSections: true` para mover el contexto por sesión al primer mensaje del usuario y así [reutilizar mejor la caché de prompts entre máquinas](/docs/es/agent-sdk/modifying-system-prompts#improve-prompt-caching-across-users-and-machines). Establece `snapshot: false` para reconstruir el prompt en cada solicitud en lugar de [reutilizar el prompt que la sesión registró en su primera solicitud](/docs/es/agent-sdk/modifying-system-prompts#change-the-prompt-of-an-existing-session). Para establecer `snapshot` en un prompt personalizado, pasa la forma `{ type: 'custom', prompt }`. La forma `{ type: 'custom' }` y el campo `snapshot` requieren TypeScript Agent SDK v0.3.257 o posterior |602| `systemPrompt` | `string \| string[] \| { type: 'custom'; prompt: string \| string[]; snapshot?: boolean } \| { type: 'preset'; preset: 'claude_code'; append?: string; excludeDynamicSections?: boolean; snapshot?: boolean }` | `undefined` (prompt mínimo) | Configuración del prompt del sistema. Pasa una cadena para un prompt personalizado, o `{ type: 'preset', preset: 'claude_code' }` para usar el prompt del sistema de Claude Code. Pasa un array de cadenas con la constante exportada `SYSTEM_PROMPT_DYNAMIC_BOUNDARY` entre la parte estática y la parte por solicitud para [almacenar en caché la parte estática de un prompt personalizado](/docs/es/agent-sdk/modifying-system-prompts#cache-the-static-part-of-a-custom-prompt). Al usar la forma de objeto preset, agrega `append` para ampliarlo con instrucciones adicionales, y establece `excludeDynamicSections: true` para mover el contexto por sesión al primer mensaje del usuario y lograr una [mejor reutilización de la caché de prompts entre máquinas](/docs/es/agent-sdk/modifying-system-prompts#improve-prompt-caching-across-users-and-machines). Establece `snapshot: false` para reconstruir el prompt en cada solicitud en lugar de [reutilizar el prompt que la sesión registró en su primera solicitud](/docs/es/agent-sdk/modifying-system-prompts#change-the-prompt-of-an-existing-session). Para establecer `snapshot` en un prompt personalizado, pasa la forma `{ type: 'custom', prompt }`. La forma `{ type: 'custom' }` y el campo `snapshot` requieren TypeScript Agent SDK v0.3.257 o posterior |

600| `taskBudget` | `{ total: number }` | `undefined` | *Alpha.* Presupuesto de tarea del lado de la API, en tokens. Cuando se establece, se le indica al modelo su presupuesto de tokens restante para que pueda dosificar el uso de herramientas y terminar antes del límite |603| `taskBudget` | `{ total: number }` | `undefined` | *Alfa.* Presupuesto de tarea del lado de la API, en tokens. Cuando se establece, se le indica al modelo su presupuesto de tokens restante para que pueda dosificar el uso de herramientas y concluir antes del límite |

601| `thinking` | [`ThinkingConfig`](#thinkingconfig) | `{ type: 'adaptive' }` para los modelos compatibles | Controla el comportamiento de pensamiento/razonamiento de Claude. Consulta [`ThinkingConfig`](#thinkingconfig) para ver las opciones |604| `thinking` | [`ThinkingConfig`](#thinkingconfig) | `{ type: 'adaptive' }` para los modelos compatibles | Controla el comportamiento de pensamiento/razonamiento de Claude. Consulta [`ThinkingConfig`](#thinkingconfig) para ver las opciones |

602| `title` | `string` | `undefined` | Título que se muestra para la sesión. Al reanudar mediante `resume` o `continue`, el título persistido de la sesión reanudada tiene precedencia; usa [`renameSession()`](#renamesession) para cambiar el título de una sesión existente |605| `title` | `string` | `undefined` | Título visible de la sesión. Al reanudar mediante `resume` o `continue`, el título persistido de la sesión reanudada tiene precedencia; usa [`renameSession()`](#renamesession) para cambiar el título de una sesión existente |

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

604| `toolConfig` | [`ToolConfig`](#toolconfig) | `undefined` | Configuración del comportamiento de las herramientas integradas. Consulta [`ToolConfig`](#toolconfig) para más detalles |607| `toolConfig` | [`ToolConfig`](#toolconfig) | `undefined` | Configuración del comportamiento de las herramientas integradas. Consulta [`ToolConfig`](#toolconfig) para más detalles |

605| `tools` | `string[] \| { type: 'preset'; preset: 'claude_code' }` | `undefined` | Configuración de herramientas. Pasa un array de nombres de herramientas o usa el preset para obtener las herramientas predeterminadas de Claude Code |608| `tools` | `string[] \| { type: 'preset'; preset: 'claude_code' }` | `undefined` | Configuración de herramientas. Pasa un array de nombres de herramientas o usa el preset para obtener las herramientas predeterminadas de Claude Code |

606| `verbatimPrompts` | `boolean` | `false` | Entrega cada prompt tal como está escrito. El SDK envía cada mensaje del usuario con `client_composed: true`. Consulta [`client_composed`](#sdkusermessage) para ver qué omite Claude Code en esos mensajes. Usa esta opción cuando el texto de tu prompt incluya contenido que el usuario final no escribió. Para controlarlo por turno, déjala desactivada y establece `client_composed` en mensajes individuales enviados en streaming. Requiere TypeScript Agent SDK v0.3.280 o posterior y Claude Code v2.1.248 o posterior; la versión de Claude Code incluida con esas versiones del SDK cumple el requisito de Claude Code |609| `verbatimPrompts` | `boolean` | `false` | Entrega cada prompt tal como está escrito. El SDK envía cada mensaje de usuario con `client_composed: true`. Consulta [`client_composed`](#sdkusermessage) para ver lo que Claude Code omite en esos mensajes. Usa esta opción cuando el texto de tu prompt incluya contenido que el usuario final no escribió. Para un control por turno, déjala desactivada y, en su lugar, establece `client_composed` en mensajes individuales enviados en streaming. Requiere TypeScript Agent SDK v0.3.280 o posterior y Claude Code v2.1.248 o posterior; la versión de Claude Code incluida con esas versiones del SDK cumple el requisito de Claude Code |

607 610 

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

609 Manejar respuestas de API lentas o detenidas612 Manejar respuestas de la API lentas o detenidas

610</h4>613</h4>

611 614 

612El subproceso de la CLI lee varias variables de entorno que controlan los tiempos de espera de la API y la detección de bloqueos. Pásalas mediante la opción `env`:615El subproceso de la CLI lee varias variables de entorno que controlan los tiempos de espera de la API y la detección de bloqueos. Pásalas mediante la opción `env`:


627});630});

628```631```

629 632 

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

631* `CLAUDE_CODE_MAX_RETRIES`: máximo de reintentos de la API. Valor predeterminado: `10`, con un límite de `15`. Cada reintento tiene su propia ventana de `API_TIMEOUT_MS`, por lo que el tiempo real en el peor caso es aproximadamente `API_TIMEOUT_MS × (CLAUDE_CODE_MAX_RETRIES + 1)` más el tiempo de backoff. Para ejecuciones desatendidas que necesitan esperar durante interrupciones más largas, establece [`CLAUDE_CODE_RETRY_WATCHDOG=1`](/docs/es/errors#tune-retry-behavior): reintenta indefinidamente los errores transitorios de capacidad y, en Claude Code v2.1.199 o posterior, eleva a `300` el valor predeterminado para otros errores transitorios y elimina el límite de esta variable.634* `CLAUDE_CODE_MAX_RETRIES`: máximo de reintentos de la API. Valor predeterminado `10`, con un tope de `15`. Cada reintento obtiene su propia ventana de `API_TIMEOUT_MS`, por lo que el tiempo real en el peor caso es aproximadamente `API_TIMEOUT_MS × (CLAUDE_CODE_MAX_RETRIES + 1)` más el tiempo de backoff. Para ejecuciones desatendidas que necesitan esperar durante interrupciones más largas, establece [`CLAUDE_CODE_RETRY_WATCHDOG=1`](/docs/es/errors#tune-retry-behavior): reintenta indefinidamente los errores transitorios de capacidad y, en Claude Code v2.1.199 o posterior, eleva el valor predeterminado para otros errores transitorios a `300` y elimina el tope de esta variable.

632* `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS`: watchdog de bloqueos para subagentes. Mientras el watchdog del stream está activado, el valor predeterminado es `CLAUDE_STREAM_IDLE_TIMEOUT_MS` más 5 minutos, lo que da `600000` a menos que aumentes esa variable. Con el watchdog del stream desactivado, el valor predeterminado es `600000`. Antes de v2.1.257, el valor predeterminado era siempre `600000`.635* `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS`: watchdog de bloqueos para subagentes. Mientras el watchdog del stream está activado, el valor predeterminado es `CLAUDE_STREAM_IDLE_TIMEOUT_MS` más 5 minutos, lo que da `600000` a menos que aumentes esa variable. Con el watchdog del stream desactivado, el valor predeterminado es `600000`. Antes de v2.1.257, el valor predeterminado siempre era `600000`.

633 636 

634 El temporizador se reinicia con cada evento del stream. Ante un bloqueo, Claude Code aborta el subagente e informa del bloqueo al agente principal. Para un subagente en segundo plano, también marca la tarea como fallida y adjunta cualquier resultado parcial.637 El temporizador se reinicia con cada evento del stream. Ante un bloqueo, Claude Code aborta el subagente e informa el bloqueo al padre. Para un subagente en segundo plano, también marca la tarea como fallida y adjunta cualquier resultado parcial.

635* `CLAUDE_ENABLE_STREAM_WATCHDOG` con `CLAUDE_STREAM_IDLE_TIMEOUT_MS`: watchdog del stream que aborta la solicitud cuando los encabezados ya llegaron pero el cuerpo de la respuesta deja de transmitirse. El watchdog está activado de forma predeterminada para todos los proveedores; establece `CLAUDE_ENABLE_STREAM_WATCHDOG=0` para desactivarlo. `CLAUDE_STREAM_IDLE_TIMEOUT_MS` tiene un valor predeterminado de `300000` y no puede ser inferior a ese mínimo. Después del aborto, [Reintentos automáticos](/docs/es/errors#automatic-retries) explica qué hace Claude Code según cuánto había avanzado la respuesta.638* `CLAUDE_ENABLE_STREAM_WATCHDOG` con `CLAUDE_STREAM_IDLE_TIMEOUT_MS`: watchdog del stream que aborta la solicitud cuando los encabezados ya llegaron pero el cuerpo de la respuesta deja de transmitirse. El watchdog está activado de forma predeterminada para todos los proveedores; establece `CLAUDE_ENABLE_STREAM_WATCHDOG=0` para desactivarlo. `CLAUDE_STREAM_IDLE_TIMEOUT_MS` tiene como valor predeterminado `300000` y se limita a ese mínimo. Después de abortar, [Reintentos automáticos](/docs/es/errors#automatic-retries) explica lo que hace Claude Code según cuánto había avanzado la respuesta.

636 639 

637 Mientras el watchdog espera una respuesta que un gateway detrás de `ANTHROPIC_BASE_URL` mantiene abierta con pings de keep-alive, un host que establece `includePartialMessages` sigue recibiendo [eventos del stream](#sdkpartialassistantmessage) `ping`, así que interpreta esos frames como señal de actividad en lugar de agotar el tiempo de la sesión por silencio. Antes de v2.1.257, los frames se detenían 5 minutos después del último evento real del stream.640 Mientras el watchdog espera una respuesta que un gateway detrás de `ANTHROPIC_BASE_URL` mantiene abierta con pings de keep-alive, un host que establece `includePartialMessages` sigue recibiendo [eventos de stream](#sdkpartialassistantmessage) `ping`, así que interpreta esos frames como señal de actividad en lugar de agotar el tiempo de espera de la sesión por falta de datos. Antes de v2.1.257, los frames se detenían 5 minutos después del último evento real del stream.

638 641 

639<h3 id="query-object">642<h3 id="query-object">

640 Objeto `Query`643 Objeto `Query`


696 699 

697| Método | Descripción |700| Método | Descripción |

698| :- | :- |701| :- | :- |

699| `interrupt()` | Interrumpe la consulta. Solo está disponible en el modo de entrada en streaming. Cuando la CLI anuncia la capacidad `interrupt_receipt_v1` en [`SDKSystemMessage.capabilities`](#sdksystemmessage), se resuelve con un [`SDKControlInterruptResponse`](#sdkcontrolinterruptresponse) que enumera los mensajes que estaban pendientes cuando llegó la interrupción. Se resuelve con `undefined` en CLIs anteriores a v2.1.205 |702| `interrupt()` | Interrumpe la consulta. Solo está disponible en el modo de entrada en streaming. Cuando la CLI anuncia la capacidad `interrupt_receipt_v1` en [`SDKSystemMessage.capabilities`](#sdksystemmessage), se resuelve con un [`SDKControlInterruptResponse`](#sdkcontrolinterruptresponse) que enumera los mensajes que estaban pendientes cuando llegó la interrupción. Se resuelve con `undefined` en CLI anteriores a v2.1.205 |

700| `rewindFiles(userMessageId, options?)` | Restaura los archivos al estado que tenían en el mensaje de usuario especificado. Pasa `{ dryRun: true }` para previsualizar los cambios. Requiere `enableFileCheckpointing: true`. Consulta [Checkpointing de archivos](/docs/es/agent-sdk/file-checkpointing) |703| `rewindFiles(userMessageId, options?)` | Restaura los archivos al estado que tenían en el mensaje de usuario especificado. Pasa `{ dryRun: true }` para previsualizar los cambios. Requiere `enableFileCheckpointing: true`. Consulta [Checkpointing de archivos](/docs/es/agent-sdk/file-checkpointing) |

701| `setPermissionMode()` | Cambia el modo de permisos (solo disponible en el modo de entrada en streaming) |704| `setPermissionMode()` | Cambia el modo de permisos (solo disponible en el modo de entrada en streaming) |

702| `setModel()` | Cambia el modelo (solo disponible en el modo de entrada en streaming). Pasar `undefined` o la cadena `"default"` restablece el [modelo predeterminado de Claude Code](/docs/es/model-config) |705| `setModel()` | Cambia el modelo (solo disponible en el modo de entrada en streaming). Pasar `undefined` o la cadena `"default"` restablece el [modelo predeterminado de Claude Code](/docs/es/model-config) |

703| `setMaxThinkingTokens()` | *Obsoleto:* usa la opción `thinking` en su lugar. Cambia el máximo de tokens de pensamiento. Pasar `null` restablece el pensamiento al valor predeterminado de la sesión: se borra cualquier sobrescritura hecha a mitad de sesión, y el pensamiento sigue desactivado en las sesiones que lo tienen deshabilitado |706| `setMaxThinkingTokens()` | *Obsoleto:* usa la opción `thinking` en su lugar. Cambia el máximo de tokens de pensamiento. Pasar `null` restablece el pensamiento al valor predeterminado de la sesión: se borra cualquier sobrescritura hecha durante la sesión, y el pensamiento permanece desactivado en las sesiones que lo tienen deshabilitado |

704| `applyFlagSettings(settings)` | Combina ajustes en la capa de configuración de flags de la sesión en tiempo de ejecución (solo disponible en el modo de entrada en streaming). Consulta [`applyFlagSettings()`](#applyflagsettings) |707| `applyFlagSettings(settings)` | Combina configuración en la capa de configuración de flags de la sesión en tiempo de ejecución (solo disponible en el modo de entrada en streaming). Consulta [`applyFlagSettings()`](#applyflagsettings) |

705| `updateSettings(source, settings)` | Escribe una clave permitida en el archivo de configuración local del proyecto o en tu archivo de configuración de usuario, para que el valor persista en sesiones posteriores. Consulta [`updateSettings()`](#updatesettings). Requiere TypeScript SDK v0.3.257 o posterior, que incluye Claude Code v2.1.257 |708| `updateSettings(source, settings)` | Escribe una clave de la lista permitida en el archivo de configuración local del proyecto o en tu archivo de configuración de usuario, para que el valor persista en sesiones posteriores. Consulta [`updateSettings()`](#updatesettings). Requiere TypeScript SDK v0.3.257 o posterior, que incluye Claude Code v2.1.257 |

706| `initializationResult()` | Devuelve el resultado completo de la inicialización, incluidos los comandos compatibles, los modelos, la información de la cuenta y la configuración del estilo de salida |709| `initializationResult()` | Devuelve el resultado completo de la inicialización, que incluye los comandos y modelos compatibles, la información de la cuenta y la configuración del estilo de salida |

707| `reinitialize()` | Vuelve a enviar la solicitud de control `initialize` a la CLI en ejecución y devuelve un resultado nuevo en lugar del resultado de la primera conexión almacenado en caché. Úsalo después de una interrupción del transporte, por ejemplo al volver a conectarte a una sesión tras una desconexión, para que las solicitudes de permiso pendientes vuelvan a llegar a tu callback `canUseTool`. Haz que el callback sea idempotente por ID de solicitud, porque una solicitud cuya respuesta se perdió se despacha de nuevo. Requiere Claude Code v2.1.195 o posterior |710| `reinitialize()` | Vuelve a enviar la solicitud de control `initialize` a la CLI en ejecución y devuelve un resultado nuevo en lugar del resultado almacenado de la primera conexión. Úsalo después de una interrupción del transporte, como al volver a conectarte a una sesión tras una desconexión, para que las solicitudes de permiso pendientes lleguen de nuevo a tu callback `canUseTool`. Haz que el callback sea idempotente por ID de solicitud, porque una solicitud cuya respuesta se perdió se despacha de nuevo. Requiere Claude Code v2.1.195 o posterior |

708| `supportedCommands()` | Devuelve los comandos disponibles. A partir de Agent SDK v0.3.216, la lista refleja los cambios de comandos a mitad de sesión; consulta [`SDKCommandsChangedMessage`](#sdkcommandschangedmessage) |711| `supportedCommands()` | Devuelve los comandos disponibles. A partir de Agent SDK v0.3.216, la lista refleja los cambios de comandos que ocurren durante la sesión; consulta [`SDKCommandsChangedMessage`](#sdkcommandschangedmessage) |

709| `supportedModels()` | Devuelve los modelos disponibles con información para mostrar |712| `supportedModels()` | Devuelve los modelos disponibles con su información de visualización |

710| `supportedAgents()` | Devuelve los subagentes disponibles como [`AgentInfo`](#agentinfo)`[]` |713| `supportedAgents()` | Devuelve los subagentes disponibles como [`AgentInfo`](#agentinfo)`[]` |

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

712| `getContextUsage(opts?)` | Devuelve un [`SDKControlGetContextUsageResponse`](#sdkcontrolgetcontextusageresponse) que desglosa el uso de la ventana de contexto de la sesión por categoría, skill y herramienta. Con el `detail` predeterminado, son los mismos datos que muestra `/context` en una sesión interactiva, calculados con solicitudes de API de conteo de tokens que no aparecen en el flujo de mensajes; consulta [cómo se manejan estas solicitudes](#sdkcontrolgetcontextusageresponse). La [opción `detail`](#sdkcontrolgetcontextusageresponse) requiere Agent SDK v0.3.257 o posterior |715| `getContextUsage(opts?)` | Devuelve un [`SDKControlGetContextUsageResponse`](#sdkcontrolgetcontextusageresponse) que desglosa el uso de la ventana de contexto de la sesión por categoría, skill y herramienta. Con el `detail` predeterminado, son los mismos datos que `/context` muestra en una sesión interactiva, calculados con solicitudes a la API de conteo de tokens que no aparecen en el stream de mensajes; consulta [cómo se manejan estas solicitudes](#sdkcontrolgetcontextusageresponse). La [opción `detail`](#sdkcontrolgetcontextusageresponse) requiere Agent SDK v0.3.257 o posterior |

713| `readFile(path, options?)` | Lee un archivo del sistema de archivos de la sesión. Claude Code resuelve la ruta con respecto a `cwd`; [Qué puede leer `readFile()`](#what-readfile-can-read) enumera los archivos que sirve. Pasa `{ maxBytes }` para cambiar el límite de lectura (1 MB de forma predeterminada, 10 MB como máximo) y `{ encoding: 'base64' }` para archivos binarios como imágenes. Se resuelve con un [`SDKControlReadFileResponse`](#sdkcontrolreadfileresponse), o con `null` ante una denegación de permiso, un archivo inexistente o un error de transporte. Requiere TypeScript SDK v0.2.121 o posterior |716| `readFile(path, options?)` | Lee un archivo del sistema de archivos de la sesión. Claude Code resuelve la ruta respecto a `cwd`; [Qué puede leer `readFile()`](#what-readfile-can-read) enumera los archivos que sirve. Pasa `{ maxBytes }` para cambiar el límite de lectura (1 MB de forma predeterminada, máximo 10 MB) y `{ encoding: 'base64' }` para archivos binarios como imágenes. Se resuelve con un [`SDKControlReadFileResponse`](#sdkcontrolreadfileresponse), o con `null` ante una denegación de permiso, un archivo inexistente o un error de transporte. Requiere TypeScript SDK v0.2.121 o posterior |

714| `reloadPlugins(options?)` | Vuelve a cargar los plugins desde el disco, para que los plugins que instales o edites a mitad de sesión lleguen a la sesión en ejecución. Se resuelve con un [`SDKControlReloadPluginsResponse`](#sdkcontrolreloadpluginsresponse) que enumera los comandos, subagentes, plugins y el estado de los servidores MCP de la sesión. Requiere Agent SDK v0.2.85 o posterior. La [opción `holdOnCacheImpact`](#sdkcontrolreloadpluginsresponse) requiere Agent SDK v0.3.268 o posterior |717| `reloadPlugins(options?)` | Recarga los plugins desde el disco, para que los plugins que instales o edites durante la sesión lleguen a la sesión en ejecución. Se resuelve con un [`SDKControlReloadPluginsResponse`](#sdkcontrolreloadpluginsresponse) que enumera los comandos, subagentes y plugins de la sesión, y el estado de los servidores MCP. Requiere Agent SDK v0.2.85 o posterior. La [opción `holdOnCacheImpact`](#sdkcontrolreloadpluginsresponse) requiere Agent SDK v0.3.268 o posterior |

715| `reloadSkills()` | Vuelve a cargar los skills desde el disco, para que los skills que agregues o edites a mitad de sesión estén disponibles para la sesión en ejecución. Se resuelve con un [`SDKControlReloadSkillsResponse`](#sdkcontrolreloadskillsresponse) que enumera los skills disponibles después de la recarga. Requiere Agent SDK v0.3.163 o posterior |718| `reloadSkills()` | Recarga los skills desde el disco, para que los skills que agregues o edites durante la sesión estén disponibles en la sesión en ejecución. Se resuelve con un [`SDKControlReloadSkillsResponse`](#sdkcontrolreloadskillsresponse) que enumera los skills disponibles después de la recarga. Requiere Agent SDK v0.3.163 o posterior |

716| `reloadOutputStyles()` | Vuelve a leer los [estilos de salida](/docs/es/output-styles) desde el disco, para que un archivo de estilo que agregues o edites a mitad de sesión esté disponible para la sesión en ejecución. Se resuelve con un [`SDKControlReloadOutputStylesResponse`](#sdkcontrolreloadoutputstylesresponse) que enumera los nombres de los estilos disponibles después de la recarga. Requiere Agent SDK v0.3.261 o posterior |719| `reloadOutputStyles()` | Vuelve a leer los [estilos de salida](/docs/es/output-styles) desde el disco, para que un archivo de estilo que agregues o edites durante la sesión esté disponible en la sesión en ejecución. Se resuelve con un [`SDKControlReloadOutputStylesResponse`](#sdkcontrolreloadoutputstylesresponse) que enumera los nombres de los estilos disponibles después de la recarga. Requiere Agent SDK v0.3.261 o posterior |

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

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

719| `toggleMcpServer(serverName, enabled)` | Habilita o deshabilita un servidor MCP por nombre, con la misma resolución de nombres que `reconnectMcpServer()`. Deshabilitar un servidor lo desconecta y elimina sus herramientas. Consulta [`toggleMcpServer()`](#togglemcpserver) para ver la versión de Claude Code que esto necesita para cada tipo de servidor |722| `toggleMcpServer(serverName, enabled)` | Habilita o deshabilita un servidor MCP por nombre, con la misma resolución de nombres que `reconnectMcpServer()`. Deshabilitar un servidor lo desconecta y elimina sus herramientas. Consulta [`toggleMcpServer()`](#togglemcpserver) para ver la versión de Claude Code que esto necesita para cada tipo de servidor |

720| `setMcpServers(servers)` | Reemplaza dinámicamente el conjunto de servidores MCP de esta sesión. Se resuelve con un [`McpSetServersResult`](#mcpsetserversresult) que indica qué servidores se agregaron y cuáles se eliminaron, además de los errores |723| `setMcpServers(servers)` | Reemplaza los servidores MCP que administra este método: los servidores agregados mediante él y los [servidores SDK en proceso](#createsdkmcpserver). Se resuelve con un [`McpSetServersResult`](#mcpsetserversresult) que indica qué servidores se agregaron y cuáles se eliminaron, y cualquier error; esa sección indica qué otros servidores permanecen conectados |

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

722| `streamInput(stream)` | Envía en streaming mensajes de entrada a la consulta para conversaciones de varios turnos |725| `streamInput(stream)` | Envía mensajes de entrada en streaming a la consulta para conversaciones de varios turnos |

723| `stopTask(taskId)` | Detiene una tarea en segundo plano en ejecución por su ID |726| `stopTask(taskId)` | Detiene una tarea en segundo plano en ejecución por su ID |

724| `close()` | Cierra la consulta y termina el proceso subyacente. Finaliza la consulta de forma forzada y libera todos los recursos |727| `close()` | Cierra la consulta y termina el proceso subyacente. Finaliza la consulta de forma forzada y libera todos los recursos |

725 728 


727 `applyFlagSettings()`730 `applyFlagSettings()`

728</h4>731</h4>

729 732 

730Cambia la [configuración](/docs/es/settings) de una sesión en ejecución sin reiniciar la consulta. Úsalo cuando un ajuste que no tiene un setter dedicado necesita cambiar a mitad de sesión, por ejemplo para restringir `permissions` después de que el agente lea una entrada que no es de confianza. `setModel()` y `setPermissionMode()` son setters dedicados para esas dos claves; `applyFlagSettings()` es la forma general que acepta cualquier subconjunto de las claves de configuración, y pasar `model` aquí se comporta igual que `setModel()`.733Cambia la [configuración](/docs/es/settings) de una sesión en ejecución sin reiniciar la consulta. Úsalo cuando un ajuste que no tiene un setter dedicado necesite cambiar durante la sesión, como endurecer `permissions` después de que el agente lea una entrada no confiable. `setModel()` y `setPermissionMode()` son setters dedicados para esas dos claves; `applyFlagSettings()` es la forma general que acepta cualquier subconjunto de las claves de configuración, y pasar `model` aquí se comporta igual que `setModel()`.

731 734 

732Solo algunas claves surten efecto a mitad de sesión:735Solo algunas claves surten efecto durante la sesión:

733 736 

734* **Se aplican en el siguiente turno**: `effortLevel`, `ultracode`, `permissions`, `hooks`, `skillOverrides`, `fastMode`, `agent`. Cambiar `agent` también aplica en el siguiente turno la sobrescritura de modelo y los hooks de ese agente. Su prompt del sistema se aplica en el siguiente turno o, en una sesión que [reutiliza un prompt del sistema registrado](/docs/es/agent-sdk/modifying-system-prompts#change-the-prompt-of-an-existing-session), una vez que la sesión se compacta.737* **Se aplican en el siguiente turno**: `effortLevel`, `ultracode`, `permissions`, `hooks`, `skillOverrides`, `fastMode`, `agent`. Cambiar `agent` también aplica la sobrescritura de modelo y los hooks de ese agente en el siguiente turno. Su prompt del sistema se aplica en el siguiente turno o, en una sesión que [reutiliza un prompt del sistema registrado](/docs/es/agent-sdk/modifying-system-prompts#change-the-prompt-of-an-existing-session), una vez que la sesión se compacta.

735* **Se aplican durante el turno actual**: `model`. Si cambias `model` mientras Claude trabaja en un turno, la respuesta que Claude ya está generando termina con el modelo anterior, y el resto del turno, empezando por la siguiente llamada que Claude Code hace al modelo, usa el nuevo. Los subagentes conservan su propio modelo. Antes de v2.1.212, un cambio a mitad de turno esperaba al siguiente turno.738* **Se aplican durante el turno actual**: `model`. Si cambias `model` mientras Claude está trabajando en un turno, la respuesta que Claude ya está generando termina con el modelo anterior, y el resto del turno, a partir de la siguiente llamada que Claude Code hace al modelo, usa el nuevo. Los subagentes conservan su propio modelo. Antes de v2.1.212, un cambio a mitad de turno esperaba al siguiente turno.

736* **Sin efecto a mitad de sesión**: las opciones del prompt del sistema. Se resuelven una sola vez al inicio, por lo que la sesión en ejecución conserva el valor original aunque la llamada se complete correctamente. Para cambiarlas, inicia una nueva sesión.739* **Sin efecto durante la sesión**: las opciones del prompt del sistema. Se resuelven una sola vez al inicio, por lo que la sesión en ejecución conserva el valor original aunque la llamada tenga éxito. Para cambiarlas, inicia una nueva sesión.

737 740 

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

739 742 

740Los valores se escriben en la capa de configuración de flags y se combinan sobre lo que estableció al inicio la opción `settings` en línea de `query()`. Es el mismo nivel que la [sección de precedencia de esta página](#settings-precedence) llama opciones programáticas.743Los valores se escriben en la capa de configuración de flags y se combinan sobre lo que la opción `settings` en línea de `query()` estableció al inicio. Es el mismo nivel que la [sección de precedencia de esta página](#settings-precedence) llama opciones programáticas.

741 744 

742Las llamadas sucesivas combinan superficialmente las claves de nivel superior. Una segunda llamada con `{ permissions: {...} }` reemplaza todo el objeto `permissions` de la llamada anterior en lugar de combinarse en profundidad con él.745Las llamadas sucesivas combinan superficialmente las claves de nivel superior. Una segunda llamada con `{ permissions: {...} }` reemplaza todo el objeto `permissions` de la llamada anterior en lugar de combinarse en profundidad con él.

743 746 

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

745 748 

746Además de `model`, tres claves restablecen el estado de la sesión en lugar de recurrir a otro valor:749Además de `model`, tres claves restablecen el estado de la sesión en lugar de recurrir a otros valores:

747 750 

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

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

750* `ultracode: null` desactiva ultracode, igual que `false`, en lugar de restaurar un valor `ultracode` de un archivo de configuración. La sesión conserva su nivel de esfuerzo actual, así que pasa `effortLevel` en la misma llamada para cambiarlo.753* `ultracode: null` desactiva ultracode, igual que `false`, en lugar de restaurar un valor de `ultracode` de un archivo de configuración. La sesión conserva su nivel de esfuerzo actual, así que pasa `effortLevel` en la misma llamada para cambiarlo.

751 754 

752Solo está disponible en el modo de entrada en streaming, la misma restricción que tienen `setModel()` y `setPermissionMode()`.755Solo está disponible en el modo de entrada en streaming, la misma restricción que `setModel()` y `setPermissionMode()`.

753 756 

754El siguiente ejemplo cambia el modelo activo a mitad de sesión y luego borra la sobrescritura para que el modelo se restablezca al [modelo predeterminado de Claude Code](/docs/es/model-config).757El siguiente ejemplo cambia el modelo activo durante la sesión y luego borra la sobrescritura para que el modelo se restablezca al [modelo predeterminado de Claude Code](/docs/es/model-config).

755 758 

756```typescript theme={null}759```typescript theme={null}

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


766```769```

767 770 

768<Note>771<Note>

769 `applyFlagSettings()` solo está disponible en TypeScript. El SDK de Python no expone un método equivalente.772 `applyFlagSettings()` es exclusivo de TypeScript. El SDK de Python no expone un método equivalente.

770</Note>773</Note>

771 774 

772<h4 id="updatesettings">775<h4 id="updatesettings">

773 `updateSettings()`776 `updateSettings()`

774</h4>777</h4>

775 778 

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

777 780 

778* **`"localSettings"`**: acepta `outputStyle` y lo combina en el archivo de configuración local del proyecto, `.claude/settings.local.json`. El nuevo estilo surte efecto en la siguiente solicitud de la sesión.781* **`"localSettings"`**: acepta `outputStyle` y lo combina en el archivo de configuración local del proyecto, `.claude/settings.local.json`. El nuevo estilo surte efecto en la siguiente solicitud de la sesión.

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

780 783 

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

782 785 

783<h4 id="togglemcpserver">786<h4 id="togglemcpserver">

784 `toggleMcpServer()`787 `toggleMcpServer()`

785</h4>788</h4>

786 789 

787Deshabilitar un servidor lo desconecta y elimina sus herramientas de la sesión. Para los servidores que agregaste a mitad de sesión y para los servidores en proceso, esto depende de tu versión de Claude Code:790Deshabilitar un servidor lo desconecta y elimina sus herramientas de la sesión. Para los servidores que agregaste durante la sesión y para los servidores en proceso, esto depende de tu versión de Claude Code:

788 791 

789* Un servidor stdio, SSE o HTTP que agregaste a mitad de sesión con `setMcpServers()`: eliminar sus herramientas requiere Claude Code v2.1.285 o posterior.792* Un servidor stdio, SSE o HTTP que agregaste durante la sesión con `setMcpServers()`: eliminar sus herramientas requiere Claude Code v2.1.285 o posterior.

790* Un servidor en proceso que creaste con [`createSdkMcpServer()`](#createsdkmcpserver), ya sea que lo pasaras en `mcpServers` o con `setMcpServers()`: desconectarlo y eliminar sus herramientas requiere Claude Code v2.1.286 o posterior. Deshabilitar uno también hace fallar sus llamadas a herramientas que aún se están ejecutando, de modo que Claude recibe de inmediato un resultado de error para cada una, sin esperar a que tu handler termine.793* Un servidor en proceso que creaste con [`createSdkMcpServer()`](#createsdkmcpserver), ya sea que lo hayas pasado en `mcpServers` o con `setMcpServers()`: desconectarlo y eliminar sus herramientas requiere Claude Code v2.1.286 o posterior. Deshabilitarlo también hace fallar sus llamadas a herramientas que aún están en ejecución, por lo que Claude recibe un resultado de error para cada una de ellas de inmediato, sin esperar a que tu handler retorne.

791 794 

792<h3 id="warmquery">795<h3 id="warmquery">

793 `WarmQuery`796 `WarmQuery`


809| Método | Descripción |812| Método | Descripción |

810| :- | :- |813| :- | :- |

811| `query(prompt)` | Envía un prompt al subproceso precalentado y devuelve un [`Query`](#query-object). Solo se puede llamar una vez por `WarmQuery` |814| `query(prompt)` | Envía un prompt al subproceso precalentado y devuelve un [`Query`](#query-object). Solo se puede llamar una vez por `WarmQuery` |

812| `close()` | Cierra el subproceso sin enviar un prompt. Úsalo para descartar una consulta precalentada que ya no necesitas |815| `close()` | Cierra el subproceso sin enviar un prompt. Úsalo para descartar una consulta precalentada que ya no se necesita |

813 816 

814`WarmQuery` implementa `AsyncDisposable`, por lo que se puede usar con `await using` para la limpieza automática.817`WarmQuery` implementa `AsyncDisposable`, por lo que se puede usar con `await using` para una limpieza automática.

815 818 

816<h3 id="spareprocess">819<h3 id="spareprocess">

817 `SpareProcess`820 `SpareProcess`

818</h3>821</h3>

819 822 

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

821 824 

822```typescript theme={null}825```typescript theme={null}

823interface SpareProcess extends AsyncDisposable {826interface SpareProcess extends AsyncDisposable {


837 840 

838| Miembro | Descripción |841| Miembro | Descripción |

839| :- | :- |842| :- | :- |

840| `claim({ prompt, options })` | Vincula el proceso de reserva a una sesión en `options.cwd` y envía su primer mensaje. Devuelve un [`Query`](#query-object) de forma síncrona, igual que `query()`. Solo se puede llamar una vez |843| `claim({ prompt, options })` | Vincula el proceso de reserva a una sesión en `options.cwd` y envía su primer mensaje. Devuelve un [`Query`](#query-object) de forma síncrona, como hace `query()`. Solo se puede llamar una vez |

841| `claimed` | Se resuelve con el directorio de trabajo y el ID de la sesión una vez que Claude Code acepta la reclamación. Se rechaza cuando Claude Code rechaza la reclamación, cuando el proceso terminó o se cerró antes y, con un mensaje que empieza por `option_not_applied`, cuando la sesión se está ejecutando sin el `model` o el `maxThinkingTokens` que pediste |844| `claimed` | Se resuelve con el directorio de trabajo y el ID de la sesión una vez que Claude Code acepta la reclamación. Se rechaza cuando Claude Code rechaza la reclamación, cuando el proceso terminó o se cerró antes y, con un mensaje que empieza por `option_not_applied`, cuando la sesión se está ejecutando sin el `model` o el `maxThinkingTokens` que pediste |

842| `exited` | Se resuelve cuando el proceso termina, haya sido reclamado o no. Reemplaza un proceso de reserva que termine antes de que lo reclames |845| `exited` | Se resuelve cuando el proceso termina, esté reclamado o no. Reemplaza un proceso de reserva que termine antes de que lo reclames |

843| `close()` | Termina el proceso. Antes de una reclamación, esto descarta el proceso de reserva y rechaza `claimed` |846| `close()` | Termina el proceso. Antes de una reclamación, descarta el proceso de reserva y rechaza `claimed` |

844 847 

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

846 849 

847Claude Code puede rechazar una reclamación, por ejemplo para una carpeta que no existe o una cuya configuración de proyecto establece `env`, `agent` o `model`. Cuando `claimed` se rechaza con un mensaje que empieza por `option_not_applied`, la sesión se está ejecutando sin el `model` o el `maxThinkingTokens` que pediste. Después de cualquier otro rechazo, tu prompt no se ha ejecutado, así que inicia la sesión con `query()` en su lugar.850Claude Code puede rechazar una reclamación, por ejemplo para una carpeta que no existe o una cuya configuración de proyecto establece `env`, `agent` o `model`. Después de un rechazo, un prompt que `claim()` ya envió recibe un resultado de error cuyo texto empieza por `not_claimed`, y la consulta devuelta lanza una excepción. Envuelve el bucle de la consulta en un bloque try para continuar después de la excepción. Cuando `claimed` se rechaza con un mensaje que empieza por `option_not_applied`, la sesión se está ejecutando sin el `model` o el `maxThinkingTokens` que pediste. Después de cualquier otro rechazo, tu prompt no se ha ejecutado, así que inicia la sesión con `query()` en su lugar.

848 851 

849<h3 id="sdkcontrolinitializeresponse">852<h3 id="sdkcontrolinitializeresponse">

850 `SDKControlInitializeResponse`853 `SDKControlInitializeResponse`


874};877};

875```878```

876 879 

877`hooks_applied` indica si Claude Code registró los `hooks` que contenía la solicitud `initialize`. El SDK envía esa solicitud una vez cuando se inicia la sesión y de nuevo en cada llamada a [`reinitialize()`](#query-object). El campo requiere Agent SDK v0.3.238 o posterior.880`hooks_applied` informa si Claude Code registró los `hooks` que llevaba la solicitud `initialize`. El SDK envía esa solicitud una vez cuando se inicia la sesión y de nuevo en cada llamada a [`reinitialize()`](#query-object). El campo requiere Agent SDK v0.3.238 o posterior.

878 881 

879Claude Code omite el campo cuando la solicitud no contenía hooks. Cuando la solicitud contenía hooks, el valor depende de si la solicitud es la primera inicialización de la sesión y, en el caso de una repetida, de cómo llegó a la sesión:882Claude Code omite el campo cuando la solicitud no llevaba hooks. Cuando la solicitud llevaba hooks, el valor depende de si la solicitud es el primer initialize de la sesión y, en el caso de uno repetido, de cómo llegó a la sesión:

880 883 

881* `true`: Claude Code registró los hooks. La primera inicialización de una sesión devuelve este valor. Una inicialización repetida enviada por el stdin de la CLI también devuelve `true`. En ese caso, los hooks de la nueva solicitud reemplazan a los registrados anteriormente.884* `true`: Claude Code registró los hooks. El primer initialize de una sesión devuelve este valor. Un initialize repetido enviado por el stdin de la CLI también devuelve `true`. En ese caso, los hooks de la nueva solicitud reemplazan a los hooks registrados anteriormente.

882* `false`: Claude Code ignoró los hooks. Una inicialización repetida enviada a una sesión remota devuelve este valor, de modo que un segundo cliente que se une a una sesión no puede reemplazar los hooks que registró el primer cliente.885* `false`: Claude Code ignoró los hooks. Un initialize repetido enviado a una sesión remota devuelve este valor, de modo que un segundo cliente que se une a una sesión no puede reemplazar los hooks que registró el primer cliente.

883 886 

884Antes de Agent SDK v0.3.238, la respuesta nunca contenía el campo, y Claude Code ignoraba `hooks` en cada inicialización repetida.887Antes de Agent SDK v0.3.238, la respuesta nunca llevaba el campo, y Claude Code ignoraba `hooks` en cada initialize repetido.

885 888 

886El campo `sdkMcpServerManifests` de la solicitud y el campo `sdk_mcp_manifests_parked` de la respuesta son para los [servidores MCP del SDK](/docs/es/agent-sdk/custom-tools) en proceso que creaste con [`createSdkMcpServer()`](#createsdkmcpserver). Tu aplicación no establece ni lee ninguno de los dos campos.889El campo `sdkMcpServerManifests` de la solicitud y el campo `sdk_mcp_manifests_parked` de la respuesta son para los [servidores MCP del SDK](/docs/es/agent-sdk/custom-tools) en proceso que creaste con [`createSdkMcpServer()`](#createsdkmcpserver). Tu aplicación no establece ni lee ninguno de los dos campos.

887 890 

888La respuesta siempre informa `fast_mode_state` y, cuando algo bloquea el [modo rápido](/docs/es/fast-mode), `fast_mode_disabled_reason` contiene el código del motivo junto a él, para que puedas explicar el estado bloqueado en lugar de volver a deducir la disponibilidad. Ambos comportamientos requieren Claude Code v2.1.219 o posterior. Antes de v2.1.219, la respuesta omitía `fast_mode_state` cuando el modo rápido no estaba disponible y nunca incluía un motivo. Para ver los códigos de motivo y su significado, consulta [`fast_mode_disabled_reason`](#sdkresultmessage) en el mensaje de resultado.891La respuesta siempre informa `fast_mode_state` y, cuando algo bloquea el [modo rápido](/docs/es/fast-mode), `fast_mode_disabled_reason` lleva junto a él el código del motivo, para que puedas explicar el estado bloqueado en lugar de volver a deducir la disponibilidad. Ambos comportamientos requieren Claude Code v2.1.219 o posterior. Antes de v2.1.219, la respuesta omitía `fast_mode_state` cuando el modo rápido no estaba disponible y nunca incluía un motivo. Para conocer los códigos de motivo y sus significados, consulta [`fast_mode_disabled_reason`](#sdkresultmessage) en el mensaje de resultado.

889 892 

890El contenedor de respuesta de control de un `initialize` correcto también contiene un array `pending_permission_requests`. El campo está en el propio contenedor de la respuesta, no en el payload `SDKControlInitializeResponse` anterior. Cada entrada es un mensaje `control_request` completo con la misma forma `{ type: "control_request", request_id, request }` que la sesión transmite en streaming para las solicitudes de permiso mientras se ejecuta.893El contenedor de la respuesta de control para un `initialize` exitoso también lleva un array `pending_permission_requests`. El campo está en el propio contenedor de la respuesta, no en el payload `SDKControlInitializeResponse` anterior. Cada entrada es un mensaje `control_request` completo con la misma forma `{ type: "control_request", request_id, request }` que la sesión transmite en streaming para las solicitudes de permiso mientras se ejecuta.

891 894 

892El array enumera las solicitudes de permiso que este proceso de Claude Code ha emitido y aún no ha resuelto. El SDK lee el array por ti y despacha cada entrada a tu callback [`canUseTool`](#canusetool), la misma reentrega que desencadena [`reinitialize()`](#query-object) después de una interrupción del transporte. Maneja los IDs de solicitud repetidos de forma idempotente, porque una entrada puede repetir una solicitud que el callback ya recibió antes de que se cayera la conexión.895El array enumera las solicitudes de permiso que este proceso de Claude Code emitió y que aún no se han resuelto. El SDK lee el array por ti y despacha cada entrada a tu callback [`canUseTool`](#canusetool), la misma reentrega que [`reinitialize()`](#query-object) desencadena después de una interrupción del transporte. Maneja los IDs de solicitud repetidos de forma idempotente, porque una entrada puede repetir una solicitud que el callback ya recibió antes de que se cayera la conexión.

893 896 

894El array siempre está presente en una respuesta `initialize` correcta y está vacío cuando este proceso no tiene solicitudes de permiso sin resolver. Requiere Claude Code v2.1.268 o posterior. Las versiones anteriores podían omitir el campo, así que si analizas el protocolo de comunicación por tu cuenta, trata un campo ausente como señal de una CLI más antigua y no como prueba de que no hay nada pendiente.897El array siempre está presente en una respuesta `initialize` exitosa y está vacío cuando este proceso no tiene ninguna solicitud de permiso sin resolver. Requiere Claude Code v2.1.268 o posterior. Las versiones anteriores podían omitir el campo, así que si analizas el protocolo de comunicación por tu cuenta, trata un campo ausente como señal de una CLI más antigua y no como prueba de que no hay nada pendiente.

895 898 

896<h3 id="sdkcontrolinterruptresponse">899<h3 id="sdkcontrolinterruptresponse">

897 `SDKControlInterruptResponse`900 `SDKControlInterruptResponse`

898</h3>901</h3>

899 902 

900El recibo de interrupción: el valor con el que se resuelve [`interrupt()`](#query-object) en una CLI que anuncia la capacidad `interrupt_receipt_v1` en [`SDKSystemMessage.capabilities`](#sdksystemmessage). Requiere Claude Code v2.1.205 o posterior. Las CLIs anteriores responden a la interrupción con un payload de éxito vacío, por lo que `interrupt()` se resuelve con `undefined`.903El recibo de interrupción: el valor con el que se resuelve [`interrupt()`](#query-object) en una CLI que anuncia la capacidad `interrupt_receipt_v1` en [`SDKSystemMessage.capabilities`](#sdksystemmessage). Requiere Claude Code v2.1.205 o posterior. Las CLI anteriores responden a la interrupción con un payload de éxito vacío, por lo que `interrupt()` se resuelve con `undefined`.

901 904 

902```typescript theme={null}905```typescript theme={null}

903type SDKControlInterruptResponse = {906type SDKControlInterruptResponse = {


906};909};

907```910```

908 911 

909`still_queued` enumera los UUIDs de los mensajes del usuario que estaban pendientes cuando llegó la interrupción: los mensajes que seguían en la cola, más los que Claude Code ya había sacado de la cola para el siguiente turno. Una vez iniciado el primer turno de la sesión, Claude Code procesa los mensajes listados después de la interrupción, a menos que los canceles antes, y puede combinar varios en un solo turno. Si interrumpes antes de que empiece el primer turno, Claude Code aborta ese turno en cuanto empieza, y los mensajes listados en ese turno no reciben respuesta.912`still_queued` enumera los UUID de los mensajes de usuario que estaban pendientes cuando llegó la interrupción: los mensajes que aún están en la cola, más cualquier mensaje que Claude Code ya había sacado de la cola para el siguiente turno. Una vez que el primer turno de la sesión ha comenzado, Claude Code procesa los mensajes listados después de la interrupción a menos que los canceles antes, y puede combinar varios en un solo turno. Si interrumpes antes de que comience el primer turno, Claude Code aborta ese turno en cuanto comienza, y los mensajes listados en ese turno no reciben respuesta.

910 913 

911Usa el recibo para decidir si reenvías algo. Un mensaje listado que no canceles entra en la conversación reciba o no una respuesta, así que reenviarlo hace que le llegue a Claude dos veces.914Usa el recibo para decidir si debes reenviar algo. Un mensaje listado que no canceles entra en la conversación reciba o no una respuesta, por lo que reenviarlo lo entrega a Claude dos veces.

912 915 

913Interpreta la lista teniendo en cuenta estas advertencias:916Interpreta la lista teniendo en cuenta estas advertencias:

914 917 

915* Solo aparecen los mensajes que se pusieron en cola con un UUID. Un array vacío no significa que no se vaya a ejecutar nada más.918* Solo aparecen los mensajes que se pusieron en cola con un UUID. Un array vacío no significa que no se vaya a ejecutar nada más.

916* Solo se listan los mensajes del hilo principal. Los mensajes dirigidos a un subagente quedan fuera del alcance.919* Solo se listan los mensajes del hilo principal. Los mensajes dirigidos a un subagente quedan fuera del alcance.

917* La lista puede incluir UUIDs que tu cliente nunca envió, como los disparadores de [tareas programadas](/docs/es/scheduled-tasks). Ignora los UUIDs que no reconozcas en lugar de tratarlos como un error.920* La lista puede incluir UUID que tu cliente nunca envió, como los disparadores de [tareas programadas](/docs/es/scheduled-tasks). Ignora los UUID que no reconozcas en lugar de tratarlos como un error.

918 921 

919Un cliente que controla directamente el protocolo de control de la CLI, en lugar de hacerlo mediante `interrupt()`, puede establecer `cancel_queued: true` en la solicitud de control `interrupt`. Claude Code v2.1.219 y posteriores anuncian la compatibilidad con la capacidad `interrupt_cancel_queued_v1` en [`SDKSystemMessage.capabilities`](#sdksystemmessage); las CLIs anteriores ignoran el campo y dejan que los mensajes en cola se ejecuten como de costumbre. Una interrupción así también cancela todos los mensajes que de otro modo se listarían en `still_queued`: el recibo los enumera en `cancelled`, `still_queued` queda vacío y ninguno de ellos se ejecuta.922Un cliente que controla directamente el protocolo de control de la CLI, en lugar de hacerlo mediante `interrupt()`, puede establecer `cancel_queued: true` en la solicitud de control `interrupt`. Claude Code v2.1.219 y posteriores anuncian la compatibilidad con la capacidad `interrupt_cancel_queued_v1` en [`SDKSystemMessage.capabilities`](#sdksystemmessage); las CLI más antiguas ignoran el campo y dejan que los mensajes en cola se ejecuten como de costumbre. Una interrupción de este tipo también cancela todos los mensajes que de otro modo aparecerían en `still_queued`: el recibo los enumera en `cancelled`, `still_queued` queda vacío y ninguno de ellos se ejecuta.

920 923 

921La lista `cancelled` tiene las mismas advertencias que `still_queued`. El método `interrupt()` nunca envía `cancel_queued`, por lo que los recibos con los que se resuelve no contienen `cancelled`.924La lista `cancelled` tiene las mismas advertencias que `still_queued`. El método `interrupt()` nunca envía `cancel_queued`, por lo que los recibos con los que se resuelve no llevan `cancelled`.

922 925 

923El recibo es una instantánea tomada en el momento en que se procesa la interrupción y, en una interrupción limpia, llega antes del [`SDKResultMessage`](#sdkresultmessage) del turno interrumpido. Lee el recibo en lugar de inspeccionar la cola después de ese resultado: el bucle inicia inmediatamente el siguiente turno en cola, así que la cola que inspeccionas después del resultado ya ha cambiado.926El recibo es una instantánea tomada en el momento en que se procesa la interrupción y, en una interrupción limpia, llega antes del [`SDKResultMessage`](#sdkresultmessage) del turno interrumpido. Lee el recibo en lugar de inspeccionar la cola después de ese resultado: el bucle inicia de inmediato el siguiente turno en cola, por lo que la cola que inspeccionas después del resultado ya ha cambiado.

924 927 

925<h3 id="sdkcontrolgetcontextusageresponse">928<h3 id="sdkcontrolgetcontextusageresponse">

926 `SDKControlGetContextUsageResponse`929 `SDKControlGetContextUsageResponse`

927</h3>930</h3>

928 931 

929Tipo de retorno de [`getContextUsage()`](#query-object). Con el `detail` predeterminado, es el mismo payload que Claude Code renderiza para el comando `/context` en una sesión interactiva, así que, junto con los conteos de tokens, contiene campos de visualización como `color` y `gridRows` que Claude Code usa para dibujar la cuadrícula de uso de `/context`.932Tipo de retorno de [`getContextUsage()`](#query-object). Con el `detail` predeterminado, es el mismo payload que Claude Code renderiza para el comando `/context` en una sesión interactiva, por lo que, junto con los conteos de tokens, lleva campos de visualización como `color` y `gridRows` que Claude Code usa para dibujar la cuadrícula de uso de `/context`.

930 933 

931El argumento opcional `detail` del método elige cómo cuenta Claude Code cada categoría. El argumento `detail` requiere Agent SDK v0.3.257 o posterior.934El argumento opcional `detail` del método elige cómo cuenta Claude Code cada categoría. El argumento `detail` requiere Agent SDK v0.3.257 o posterior.

932 935 

933* **`'full'`**: el valor predeterminado. Claude Code cuenta cada categoría con solicitudes de API de [conteo de tokens](https://platform.claude.com/docs/en/build-with-claude/token-counting). Estas solicitudes no aparecen en el flujo de mensajes, así que un seguimiento de costos que lea el flujo no las verá. En la API de Anthropic, el conteo de tokens no se factura.936* **`'full'`**: el valor predeterminado. Claude Code cuenta cada categoría con solicitudes a la API de [conteo de tokens](https://platform.claude.com/docs/en/build-with-claude/token-counting). Estas solicitudes no aparecen en el stream de mensajes, por lo que el seguimiento de costos que lee el stream no las verá. En la API de Anthropic, el conteo de tokens no se factura.

934* **`'summary'`**: pasa `{ detail: 'summary' }` para obtener una respuesta basada en el uso de la última respuesta y en estimaciones locales. No se envían solicitudes de conteo de tokens, y los números por categoría son aproximados.937* **`'summary'`**: pasa `{ detail: 'summary' }` para obtener en su lugar una respuesta basada en el uso de la última respuesta y en estimaciones locales. No se envía ninguna solicitud de conteo de tokens, y los números por categoría son aproximados.

935 938 

936Cuando envías `/context` como prompt en lugar de llamar al método, Claude Code adjunta un payload [`SDKContextUsage`](#sdkcontextusage) al campo `context_usage` del mensaje del asistente que entrega el resultado. Ese campo requiere Agent SDK v0.3.232 o posterior.939Cuando envías `/context` como prompt en lugar de llamar al método, Claude Code adjunta un payload [`SDKContextUsage`](#sdkcontextusage) al campo `context_usage` del mensaje de assistant que entrega el resultado. Ese campo requiere Agent SDK v0.3.232 o posterior.

937 940 

938```typescript theme={null}941```typescript theme={null}

939type SDKControlGetContextUsageResponse = {942type SDKControlGetContextUsageResponse = {


1032 1035 

1033Lee la atribución de tokens en los campos de colección:1036Lee la atribución de tokens en los campos de colección:

1034 1037 

1035* `categories` contiene los totales por categoría. El campo `kind` de cada entrada clasifica la fila con los mismos valores que [`SDKContextUsageCategory`](#sdkcontextusagecategory). Clasifica las filas según este campo y no según el `name` de visualización. El campo requiere Agent SDK v0.3.268 o posterior.1038* `categories` contiene los totales por categoría. El `kind` de cada entrada clasifica la fila con los mismos valores que [`SDKContextUsageCategory`](#sdkcontextusagecategory). Clasifica las filas según este campo y no según el `name` de visualización. El campo requiere Agent SDK v0.3.268 o posterior.

1036* `mcpTools` y `agents` atribuyen tokens a herramientas MCP y subagentes individuales.1039* `mcpTools` y `agents` atribuyen tokens a herramientas MCP y subagentes individuales.

1037* `memoryFiles` enumera cada archivo de memoria cargado con su costo.1040* `memoryFiles` enumera cada archivo de memoria cargado con su costo.

1038* `skills.skillFrontmatter` atribuye los tokens del listado de skills a cada skill incluido. Los conteos por skill miden la entrada de cada skill en el listado tal como Claude Code la envía realmente, que puede ser más corta que el frontmatter completo del skill. Compara `skills.totalSkills` con `skills.includedSkills` para ver si todos los skills descubiertos entraron en el listado.1041* `skills.skillFrontmatter` atribuye los tokens del listado de skills a cada skill incluido. Los conteos por skill miden la entrada de cada skill en el listado tal como Claude Code la envía realmente, que puede ser más corta que el frontmatter completo del skill. Compara `skills.totalSkills` con `skills.includedSkills` para ver si todos los skills descubiertos llegaron al listado.

1039 1042 

1040`totalTokens` es el uso de contexto actual de la sesión, y `maxTokens` es la ventana con respecto a la cual se mide ese uso. Esa ventana es la ventana de contexto del modelo, o la ventana de compactación automática, más baja, cuando corresponde. `rawMaxTokens` contiene el mismo valor que `maxTokens`, y `percentage` es `totalTokens` como porcentaje redondeado de esa ventana. `apiUsage` contiene el uso de la última respuesta de la API, no un total acumulado de la sesión.1043`totalTokens` es el uso de contexto actual de la sesión, y `maxTokens` es la ventana con la que se mide ese uso. Esa ventana es la ventana de contexto del modelo, o la ventana de compactación automática más baja cuando corresponde. `rawMaxTokens` tiene el mismo valor que `maxTokens`, y `percentage` es `totalTokens` expresado como porcentaje redondeado de esa ventana. `apiUsage` contiene el uso de la respuesta de API más reciente, no un total acumulado de la sesión.

1041 1044 

1042Claude Code deja sin establecer los diagnósticos opcionales `deferredBuiltinTools`, `systemTools` y `systemPromptSections`, así que espera que estén ausentes aunque el tipo los declare.1045Claude Code deja sin establecer los diagnósticos opcionales `deferredBuiltinTools`, `systemTools` y `systemPromptSections`, así que espera que estén ausentes aunque el tipo los declare.

1043 1046 


1062 Qué puede leer `readFile()`1065 Qué puede leer `readFile()`

1063</h4>1066</h4>

1064 1067 

1065`readFile()` sirve un conjunto de archivos más reducido que la herramienta Read:1068`readFile()` sirve un conjunto de archivos más limitado que la herramienta Read:

1066 1069 

1067* Un archivo normal dentro de uno de los directorios de trabajo de la sesión, como `cwd` y `additionalDirectories`1070* Un archivo normal dentro de uno de los directorios de trabajo de la sesión, como `cwd` y `additionalDirectories`

1068* Algunos de los archivos propios de Claude Code para la sesión, como los resultados de herramientas1071* Algunos de los propios archivos de Claude Code para la sesión, como los resultados de herramientas

1069 1072 

1070Las reglas de denegación y de consulta de `Read` siguen bloqueando una ruta coincidente, y una regla de permiso amplia de `Read` no abre el resto del sistema de archivos a `readFile()`. Para cualquier otra cosa, la llamada se resuelve con `null`.1073Las reglas de denegación y de consulta de `Read` siguen bloqueando una ruta coincidente, y una regla de permiso amplia de `Read` no abre el resto del sistema de archivos a `readFile()`. Para cualquier otra cosa, la llamada se resuelve con `null`.

1071 1074 


1098 1101 

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

1100 1103 

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

1102* `plugins`: cada plugin cargado con su `name` y su `path` de instalación. `version` repite lo que declara el manifiesto del plugin y lo controla el autor del plugin, así que valídalo antes de confiar en él. Se omite cuando el manifiesto no declara ninguna1105* `plugins`: cada plugin cargado con su `name` y su `path` de instalación. `version` repite lo que declara el manifiesto del plugin y lo controla el autor del plugin, así que valídalo antes de confiar en él. Se omite cuando el manifiesto no declara ninguna

1103* `error_count`: el número de errores al cargar los plugins1106* `error_count`: el número de errores al cargar los plugins

1104 1107 

1105Pasa `{ holdOnCacheImpact: true }` a `reloadPlugins()` para retener una recarga que invalidaría la caché de prompts de la conversación en lugar de aplicarla. Claude Code ejecuta la misma comprobación que hace el comando interactivo `/reload-plugins` antes de [advertir sobre el costo para la caché](/docs/es/prompt-caching#enabling-or-disabling-a-plugin). La opción requiere Agent SDK v0.3.268 o posterior. Un ejecutable de Claude Code anterior a v2.1.268, como uno al que apuntes con `pathToClaudeCodeExecutable`, ignora la opción y aplica la recarga.1108Pasa `{ holdOnCacheImpact: true }` a `reloadPlugins()` para retener una recarga que invalidaría la caché de prompts de la conversación en lugar de aplicarla. Claude Code ejecuta la comprobación que hace el comando interactivo `/reload-plugins` antes de [advertir sobre el costo para la caché](/docs/es/prompt-caching#enabling-or-disabling-a-plugin). La opción requiere Agent SDK v0.3.268 o posterior. Un ejecutable de Claude Code anterior a v2.1.268, como uno al que apuntes con `pathToClaudeCodeExecutable`, ignora la opción y aplica la recarga.

1106 1109 

1107Cuando pasas la opción, lee `held` para saber qué ocurrió:1110Cuando pasas la opción, lee `held` para saber qué ocurrió:

1108 1111 


1110* `false`: la comprobación no encontró impacto en la caché, y la recarga se aplicó.1113* `false`: la comprobación no encontró impacto en la caché, y la recarga se aplicó.

1111* Ausente: no pasaste la opción, o el ejecutable de Claude Code es anterior a v2.1.268 y aplicó la recarga.1114* Ausente: no pasaste la opción, o el ejecutable de Claude Code es anterior a v2.1.268 y aplicó la recarga.

1112 1115 

1113`cache_impact` solo está presente junto con `held: true`. `mcp_servers_added` y `mcp_servers_removed` nombran los servidores MCP de plugins que la recarga registraría o eliminaría, como nombres con alcance `plugin:<plugin>:<server>`. Los nombres los define el autor del plugin, así que valídalos antes de mostrarlos. `lsp_tool_change` indica si aplicar la recarga agregaría o eliminaría la herramienta LSP, o `null` cuando no haría ninguna de las dos cosas. Las formas `may-` significan que la comprobación no pudo ver por completo el conjunto de plugins pendiente.1116`cache_impact` solo está presente junto con `held: true`. `mcp_servers_added` y `mcp_servers_removed` nombran los servidores MCP de plugins que la recarga registraría o eliminaría, como nombres con alcance `plugin:<plugin>:<server>`. Los nombres los define el autor del plugin, así que valídalos antes de mostrarlos. `lsp_tool_change` indica si aplicar la recarga agregaría o eliminaría la herramienta LSP, o es `null` cuando no haría ninguna de las dos cosas. Las formas `may-` significan que la comprobación no pudo ver por completo el conjunto de plugins pendiente.

1114 1117 

1115<h3 id="sdkcontrolreloadskillsresponse">1118<h3 id="sdkcontrolreloadskillsresponse">

1116 `SDKControlReloadSkillsResponse`1119 `SDKControlReloadSkillsResponse`


1144 `SDKControlMcpReadResourceResponse`1147 `SDKControlMcpReadResourceResponse`

1145</h3>1148</h3>

1146 1149 

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

1148 1151 

1149```typescript theme={null}1152```typescript theme={null}

1150type SDKControlMcpReadResourceResponse = {1153type SDKControlMcpReadResourceResponse = {


1158};1161};

1159```1162```

1160 1163 

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

1162 1165 

1163Cada entrada de `contents` es un elemento de contenido tal como lo envió el servidor, sin ninguna clave `_meta` bajo el prefijo `com.anthropic/`, que está reservado para Claude Code. `blob` contiene datos en base64 para un elemento binario, y `_meta` es el `_meta` propio del elemento, donde un servidor de MCP Apps coloca los valores `ui.csp` y `ui.permissions` del recurso.1166Cada entrada de `contents` es un elemento de contenido tal como lo envió el servidor, sin ninguna clave `_meta` bajo el prefijo `com.anthropic/`, que está reservado para Claude Code. `blob` contiene datos en base64 para un elemento binario, y `_meta` es el propio `_meta` del elemento, donde un servidor de MCP Apps coloca el `ui.csp` y los `ui.permissions` del recurso.

1164 1167 

1165El contenido es HTML de terceros que no es de confianza, así que renderízalo en un sandbox.1168El contenido es HTML de terceros no confiable, así que renderízalo en un sandbox.

1166 1169 

1167<h3 id="agentdefinition">1170<h3 id="agentdefinition">

1168 `AgentDefinition`1171 `AgentDefinition`


1193| Campo | Obligatorio | Descripción |1196| Campo | Obligatorio | Descripción |

1194| :- | :- | :- |1197| :- | :- | :- |

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

1196| `tools` | No | Array de nombres de herramientas permitidas. Si se omite, hereda todas las [herramientas disponibles para los subagentes](/docs/es/sub-agents#available-tools). Para precargar Skills en el contexto del agente, usa el campo `skills` en lugar de listar `'Skill'` aquí |1199| `tools` | No | Array de nombres de herramientas permitidas. Si se omite, hereda todas las [herramientas disponibles para subagentes](/docs/es/sub-agents#available-tools). Para precargar Skills en el contexto del agente, usa el campo `skills` en lugar de listar `'Skill'` aquí |

1197| `disallowedTools` | No | Array de nombres de herramientas que se prohíben explícitamente para este agente. También se aceptan patrones a nivel de servidor MCP: `mcp__server` o `mcp__server__*` elimina todas las herramientas de ese servidor, y `mcp__*` elimina todas las herramientas MCP de cualquier servidor |1200| `disallowedTools` | No | Array de nombres de herramientas que se prohíben explícitamente para este agente. También se aceptan patrones a nivel de servidor MCP: `mcp__server` o `mcp__server__*` elimina todas las herramientas de ese servidor, y `mcp__*` elimina todas las herramientas MCP de cualquier servidor |

1198| `prompt` | Sí | El prompt del sistema del agente |1201| `prompt` | Sí | El prompt del sistema del agente |

1199| `model` | No | Sobrescritura del modelo para este agente. Acepta un alias como `'fable'`, `'opus'`, `'sonnet'`, `'haiku'`, `'inherit'`, o un ID de modelo completo. `'inherit'` usa el modelo principal. Si lo omites, Claude Code elige el modelo según el [orden de modelos de los subagentes](/docs/es/sub-agents#choose-a-model) |1202| `model` | No | Sobrescritura del modelo para este agente. Acepta un alias como `'fable'`, `'opus'`, `'sonnet'`, `'haiku'`, `'inherit'` o un ID de modelo completo. `'inherit'` usa el modelo principal. Cuando lo omites, Claude Code elige el modelo según el [orden de modelos de subagentes](/docs/es/sub-agents#choose-a-model) |

1200| `mcpServers` | No | Especificaciones de servidores MCP para este agente |1203| `mcpServers` | No | Especificaciones de servidores MCP para este agente |

1201| `skills` | No | Array de nombres de skills que se precargan en el contexto del agente |1204| `skills` | No | Array de nombres de skills que se precargan en el contexto del agente |

1202| `initialPrompt` | No | Se envía automáticamente como el primer turno del usuario cuando este agente se ejecuta como agente del hilo principal |1205| `initialPrompt` | No | Se envía automáticamente como el primer turno del usuario cuando este agente se ejecuta como agente del hilo principal |

1203| `maxTurns` | No | Número máximo de turnos agénticos (idas y vueltas a la API) antes de detenerse |1206| `maxTurns` | No | Número máximo de turnos agénticos (ciclos de ida y vuelta con la API) antes de detenerse |

1204| `background` | No | Ejecuta este agente como una tarea en segundo plano no bloqueante cuando se invoca |1207| `background` | No | Ejecuta este agente como una tarea en segundo plano no bloqueante cuando se invoca |

1205| `omitClaudeMd` | No | Ejecuta este agente sin los archivos CLAUDE.md de usuario, de proyecto y locales cuando se ejecuta como subagente; los archivos de política administrada se siguen cargando. Úsalo para agentes que obtienen todo lo que necesitan del prompt de la herramienta Agent. Se ignora cuando este agente se ejecuta como agente del hilo principal. Requiere TypeScript Agent SDK v0.3.271 o posterior |1208| `omitClaudeMd` | No | Ejecuta este agente sin los archivos CLAUDE.md de usuario, de proyecto y locales cuando se ejecuta como subagente; los archivos de política administrada se siguen cargando. Úsalo para agentes que obtienen todo lo que necesitan del prompt de la herramienta Agent. Se ignora cuando este agente se ejecuta como agente del hilo principal. Requiere TypeScript Agent SDK v0.3.271 o posterior |

1206| `memory` | No | Fuente de memoria para este agente: `'user'`, `'project'` o `'local'` |1209| `memory` | No | Fuente de memoria para este agente: `'user'`, `'project'` o `'local'` |

1207| `effort` | No | Nivel de esfuerzo de razonamiento para este agente. Acepta un nivel con nombre o un entero |1210| `effort` | No | Nivel de esfuerzo de razonamiento para este agente. Acepta un nivel con nombre o un entero |

1208| `permissionMode` | No | Modo de permisos para la ejecución de herramientas dentro de este agente. Las [reglas de herencia de los subagentes](/docs/es/agent-sdk/permissions#available-modes) deciden cuándo se aplica. Consulta [`PermissionMode`](#permissionmode) |1211| `permissionMode` | No | Modo de permisos para la ejecución de herramientas dentro de este agente. Las [reglas de herencia de subagentes](/docs/es/agent-sdk/permissions#available-modes) deciden cuándo se aplica. Consulta [`PermissionMode`](#permissionmode) |

1209| `criticalSystemReminder_EXPERIMENTAL` | No | Experimental: recordatorio crítico que se agrega al prompt del sistema |1212| `criticalSystemReminder_EXPERIMENTAL` | No | Experimental: recordatorio crítico que se agrega al prompt del sistema |

1210 1213 

1211<h3 id="agentmcpserverspec">1214<h3 id="agentmcpserverspec">

1212 `AgentMcpServerSpec`1215 `AgentMcpServerSpec`

1213</h3>1216</h3>

1214 1217 

1215Especifica los servidores MCP disponibles para un subagente. Puede ser un nombre de servidor (una cadena que hace referencia a un servidor de la configuración `mcpServers` del agente principal) o un registro de configuración de servidores en línea que asigna nombres de servidores a configuraciones.1218Especifica los servidores MCP disponibles para un subagente. Puede ser un nombre de servidor (una cadena que hace referencia a un servidor de la configuración `mcpServers` del padre) o un registro de configuración de servidor en línea que asigna nombres de servidor a configuraciones.

1216 1219 

1217```typescript theme={null}1220```typescript theme={null}

1218type AgentMcpServerSpec = string | Record<string, McpServerConfigForProcessTransport>;1221type AgentMcpServerSpec = string | Record<string, McpServerConfigForProcessTransport>;


1224 `SettingSource`1227 `SettingSource`

1225</h3>1228</h3>

1226 1229 

1227Controla desde qué fuentes de configuración basadas en el sistema de archivos carga la configuración el SDK.1230Controla desde qué fuentes de configuración basadas en el sistema de archivos carga el SDK la configuración.

1228 1231 

1229```typescript theme={null}1232```typescript theme={null}

1230type SettingSource = "user" | "project" | "local";1233type SettingSource = "user" | "project" | "local";


1234| :- | :- | :- |1237| :- | :- | :- |

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

1236| `'project'` | Configuración compartida del proyecto (bajo control de versiones) | `.claude/settings.json` |1239| `'project'` | Configuración compartida del proyecto (bajo control de versiones) | `.claude/settings.json` |

1237| `'local'` | Configuración local del proyecto, incluida en gitignore cuando Claude Code guarda un ajuste en ella | `.claude/settings.local.json` |1240| `'local'` | Configuración local del proyecto, ignorada por Git cuando Claude Code guarda un ajuste en ella | `.claude/settings.local.json` |

1238 1241 

1239<h4 id="default-behavior">1242<h4 id="default-behavior">

1240 Comportamiento predeterminado1243 Comportamiento predeterminado

1241</h4>1244</h4>

1242 1245 

1243Cuando `settingSources` se omite o es `undefined`, `query()` carga la misma configuración del sistema de archivos que la CLI de Claude Code: user, project y local. Consulta [Lo que settingSources no controla](/docs/es/agent-sdk/claude-code-features#what-settingsources-does-not-control) para ver las entradas que se leen independientemente de esta opción y cómo desactivarlas.1246Cuando `settingSources` se omite o es `undefined`, `query()` carga la misma configuración del sistema de archivos que la CLI de Claude Code: usuario, proyecto y local. Consulta [Lo que settingSources no controla](/docs/es/agent-sdk/claude-code-features#what-settingsources-does-not-control) para ver las entradas que se leen independientemente de esta opción y cómo deshabilitarlas.

1244 1247 

1245<h4 id="why-use-settingsources">1248<h4 id="why-use-settingsources">

1246 Por qué usar settingSources1249 Por qué usar settingSources

1247</h4>1250</h4>

1248 1251 

1249**Desactivar la configuración del sistema de archivos:**1252**Deshabilitar la configuración del sistema de archivos:**

1250 1253 

1251```typescript theme={null}1254```typescript theme={null}

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


1272});1275});

1273```1276```

1274 1277 

1275Para cargar las instrucciones de proyecto de CLAUDE.md, incluye `"project"` en `settingSources`. Consulta [Modificar prompts del sistema](/docs/es/agent-sdk/modifying-system-prompts#claude-md-files-for-project-level-instructions) para ver cómo interactúa la carga de CLAUDE.md con las opciones del prompt del sistema.1278Para cargar las instrucciones del proyecto de CLAUDE.md, incluye `"project"` en `settingSources`. Consulta [Modificar prompts del sistema](/docs/es/agent-sdk/modifying-system-prompts#claude-md-files-for-project-level-instructions) para ver cómo interactúa la carga de CLAUDE.md con las opciones del prompt del sistema.

1276 1279 

1277<h4 id="settings-precedence">1280<h4 id="settings-precedence">

1278 Precedencia de la configuración1281 Precedencia de la configuración


12842. Configuración del proyecto (`.claude/settings.json`)12872. Configuración del proyecto (`.claude/settings.json`)

12853. Configuración del usuario (`~/.claude/settings.json`)12883. Configuración del usuario (`~/.claude/settings.json`)

1286 1289 

1287Las opciones programáticas como `agents`, `allowedTools` y `settings` sobrescriben la configuración del sistema de archivos de user, project y local. La configuración de políticas administradas tiene precedencia sobre las opciones programáticas.1290Las opciones programáticas como `agents`, `allowedTools` y `settings` sobrescriben la configuración de usuario, de proyecto y local del sistema de archivos. La configuración de políticas administradas tiene precedencia sobre las opciones programáticas.

1288 1291 

1289<h3 id="permissionmode">1292<h3 id="permissionmode">

1290 `PermissionMode`1293 `PermissionMode`


1306 1309 

1307Tipo de función de permisos personalizada para controlar el uso de herramientas.1310Tipo de función de permisos personalizada para controlar el uso de herramientas.

1308 1311 

1309La función es el reemplazo del SDK para la solicitud de permiso interactiva: solo se invoca cuando el [flujo de evaluación de permisos](/docs/es/agent-sdk/permissions#how-permissions-are-evaluated) termina en una solicitud. Las llamadas a herramientas ya aprobadas por una entrada de `allowedTools`, una regla allow de la configuración o el modo de permisos, como `acceptEdits` o `bypassPermissions`, nunca la invocan. Para controlar cada llamada a herramienta, usa en su lugar un [hook `PreToolUse`](/docs/es/agent-sdk/hooks).1312La función es el reemplazo en el SDK de la solicitud de permiso interactiva: solo se invoca cuando el [flujo de evaluación de permisos](/docs/es/agent-sdk/permissions#how-permissions-are-evaluated) resuelve en una solicitud. Las llamadas a herramientas ya aprobadas por una entrada de `allowedTools`, una regla de permiso de la configuración o el modo de permisos, como `acceptEdits` o `bypassPermissions`, nunca la invocan. Para controlar cada llamada a herramienta, usa en su lugar un [hook `PreToolUse`](/docs/es/agent-sdk/hooks).

1310 1313 

1311Una regla allow no aprueba previamente las [acciones que ningún modo aprueba automáticamente](/docs/es/permission-modes#actions-no-mode-auto-approves); consulta [Cómo se evalúan los permisos](/docs/es/agent-sdk/permissions#how-permissions-are-evaluated) para saber cuáles de ellas llegan al callback y qué ocurre en los modos `dontAsk` y `auto`.1314Una regla de permiso no aprueba previamente las [acciones que ningún modo aprueba automáticamente](/docs/es/permission-modes#actions-no-mode-auto-approves); consulta [Cómo se evalúan los permisos](/docs/es/agent-sdk/permissions#how-permissions-are-evaluated) para saber cuáles de ellas llegan al callback y qué ocurre en los modos `dontAsk` y `auto`.

1312 1315 

1313```typescript theme={null}1316```typescript theme={null}

1314type CanUseTool = (1317type CanUseTool = (


1331 1334 

1332| Opción | Tipo | Descripción |1335| Opción | Tipo | Descripción |

1333| :- | :- | :- |1336| :- | :- | :- |

1334| `signal` | `AbortSignal` | Se activa si la operación debe abortarse |1337| `signal` | `AbortSignal` | Se señaliza si la operación debe abortarse |

1335| `suggestions` | [`PermissionUpdate`](#permissionupdate)`[]` | Actualizaciones de permisos sugeridas para que no se vuelva a pedir permiso al usuario para esta herramienta. Las solicitudes de Bash incluyen una sugerencia con el [destino](#permissionupdatedestination) `localSettings`, por lo que devolverla en `updatedPermissions` escribe la regla en `.claude/settings.local.json` y persiste entre sesiones. |1338| `suggestions` | [`PermissionUpdate`](#permissionupdate)`[]` | Actualizaciones de permisos sugeridas para que no se vuelva a pedir permiso al usuario para esta herramienta. Las solicitudes de Bash incluyen una sugerencia con el [destino](#permissionupdatedestination) `localSettings`, por lo que devolverla en `updatedPermissions` escribe la regla en `.claude/settings.local.json` y persiste entre sesiones. |

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

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

1338| `decisionReason` | `string` | Explica por qué se activó esta solicitud de permiso |1341| `decisionReason` | `string` | Explica por qué se activó esta solicitud de permiso |

1339| `defaultToNo` | `boolean` | Cuando es `true`, una sola pulsación accidental no debe aprobar esta solicitud: abre tu solicitud en su opción de rechazo, no preselecciones la aprobación y no ofrezcas ningún atajo de aprobación de una sola tecla. Requiere Agent SDK v0.3.268 o posterior |1342| `defaultToNo` | `boolean` | Cuando es `true`, una sola pulsación accidental no debe aprobar esta solicitud: abre tu solicitud en su opción de rechazo, no preselecciones la aprobación y no ofrezcas ningún atajo de aprobación de una sola tecla. Requiere Agent SDK v0.3.268 o posterior |

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

1341| `toolUseID` | `string` | Identificador único de esta llamada a herramienta específica dentro del mensaje del asistente |1344| `toolUseID` | `string` | Identificador único de esta llamada a herramienta específica dentro del mensaje del asistente |

1342| `agentID` | `string` | Si se ejecuta dentro de un subagente, el ID del subagente |1345| `agentID` | `string` | Si se ejecuta dentro de un subagente, el ID del subagente |

1343| `requestId` | `string` | El `request_id` del sobre `control_request`. Un `control_response` que tu aplicación envíe fuera del SDK, como un HTTP POST firmado, debe repetir este valor para que el proceso de Claude Code pueda asociar la respuesta con la solicitud |1346| `requestId` | `string` | El `request_id` del sobre `control_request`. Un `control_response` que tu aplicación envíe fuera del SDK, como un HTTP POST firmado, debe repetir este valor para que el proceso de Claude Code pueda asociar la respuesta con la solicitud |

1344 1347 

1345Normalmente, el callback resuelve la solicitud devolviendo un [`PermissionResult`](#permissionresult), que el SDK escribe de vuelta a través de su transporte como el `control_response`. Devuelve `null` solo cuando tu aplicación ya haya enviado el `control_response` para esta solicitud por su propio canal, repitiendo `requestId`; el SDK entonces omite escribir la respuesta en su transporte. Devolver `null` en cualquier otro caso deja la llamada a herramienta bloqueada indefinidamente, porque nunca se envía ningún `control_response` y las solicitudes de permiso no tienen tiempo de espera.1348Normalmente, el callback resuelve la solicitud devolviendo un [`PermissionResult`](#permissionresult), que el SDK escribe de vuelta a través de su transporte como el `control_response`. Devuelve `null` solo cuando tu aplicación ya haya enviado el `control_response` para esta solicitud por su propio canal, repitiendo `requestId`; en ese caso, el SDK omite escribir la respuesta en su transporte. Devolver `null` en cualquier otro caso deja la llamada a herramienta bloqueada indefinidamente, porque nunca se envía ningún `control_response` y las solicitudes de permiso no tienen tiempo de espera.

1346 1349 

1347La opción `requestId` y el valor de retorno `null` requieren Claude Code v2.1.199 o posterior.1350La opción `requestId` y el valor de retorno `null` requieren Claude Code v2.1.199 o posterior.

1348 1351 


3787};3790};

3788```3791```

3789 3792 

3790Reporta hallazgos de revisión de código como una lista estructurada para que Claude Code pueda renderizarlos en lugar de imprimirlos como texto. `level` es el nivel de esfuerzo en el que se ejecutó la revisión. Los hallazgos se ordenan de más grave a menos grave, con un máximo de 32 por llamada, y el array está vacío cuando ninguno sobrevivió. Requiere Claude Code v2.1.196 o posterior.3793Reporta hallazgos de revisión de código como una lista estructurada para que Claude Code pueda renderizarlos en lugar de imprimirlos como texto. Los hallazgos se ordenan de más grave a menos grave, con un máximo de 32 por llamada, y el array está vacío cuando ninguno sobrevivió. Requiere Claude Code v2.1.196 o posterior.

3794 

3795`level` es opcional y contiene el nivel de esfuerzo que Claude reporta para la revisión. Claude Code no lo compara con el nivel en el que se ejecutó la revisión, por lo que ambos pueden diferir.

3791 3796 

3792Cada hallazgo lleva estos campos:3797Cada hallazgo lleva estos campos:

3793 3798 


4837};4842};

4838```4843```

4839 4844 

4840Devuelve la cantidad de hallazgos informados, el nivel de esfuerzo con el que se ejecutó la revisión y los hallazgos devueltos para el cuerpo del resultado. Requiere Claude Code v2.1.196 o posterior. El campo devuelto `short_summary` requiere Claude Code v2.1.212 o posterior.4845Devuelve la cantidad de hallazgos informados, el valor de `level` que pasó Claude y los hallazgos devueltos para el cuerpo del resultado. Requiere Claude Code v2.1.196 o posterior. El campo devuelto `short_summary` requiere Claude Code v2.1.212 o posterior.

4841 4846 

4842<h3 id="artifact-2">4847<h3 id="artifact-2">

4843 Artifact4848 Artifact


5458 | { type: "disabled" }; // Sin pensamiento extendido5463 | { type: "disabled" }; // Sin pensamiento extendido

5459```5464```

5460 5465 

5461El campo opcional `display` controla si el texto de pensamiento se devuelve `"summarized"` u `"omitted"`. En Claude Opus 4.7 y posterior, el valor predeterminado de la API es `"omitted"`, así que establece `"summarized"` para recibir contenido de pensamiento en bloques `thinking`. Claude Code no envía `display` a Amazon Bedrock ni a Agent Platform de Google Cloud, por lo que en esos proveedores Opus 4.7 y posterior devuelven bloques `thinking` vacíos incluso cuando estableces `display` en `"summarized"`.5466El campo opcional `display` controla si el texto de pensamiento se devuelve `"summarized"` u `"omitted"`. En Claude Opus 4.7 y posterior, el valor predeterminado de la API es `"omitted"`, así que establece `"summarized"` para recibir contenido de pensamiento en bloques `thinking`. Claude Code no pasa tu valor de `display` a algunos proveedores, como Amazon Bedrock y Agent Platform de Google Cloud. En esos proveedores, Opus 4.7 y posterior devuelven bloques `thinking` vacíos incluso cuando estableces `display` en `"summarized"`.

5462 5467 

5463<h3 id="spawnedprocess">5468<h3 id="spawnedprocess">

5464 `SpawnedProcess`5469 `SpawnedProcess`


5529 5534 

5530Cuando llamas a `setMcpServers()`, Claude Code aplica estas reglas:5535Cuando llamas a `setMcpServers()`, Claude Code aplica estas reglas:

5531 5536 

5532* **Servidores que la llamada no nombra**: Claude Code mantiene en ejecución los servidores proporcionados por plugins. Requiere Agent SDK v0.3.210 o posterior.5537* **Servidores que la llamada no nombra**: fuera de una [sesión en la nube](/docs/es/claude-code-on-the-web), Claude Code desconecta los servidores que agregó una llamada anterior a `setMcpServers()` y los servidores SDK en proceso, y los enumera en `removed`. Los demás servidores siguen en ejecución y no se enumeran en `removed`, entre ellos los servidores stdio, HTTP y SSE de la opción [`mcpServers`](#options), los servidores de los archivos de configuración y los servidores proporcionados por plugins.

5533* **Servidores que la llamada nombra**: salvo los servidores integrados que la CLI inició al arrancar, Claude Code reemplaza un servidor en ejecución solo cuando su configuración difiere de la que pasaste.5538* **Servidores que la llamada nombra**: Claude Code reemplaza un servidor stdio, HTTP o SSE que agregó una llamada anterior a `setMcpServers()` solo cuando su configuración difiere de la que pasaste. Un servidor SDK en proceso ya registrado con ese nombre se queda como está, así que para cambiarlo, déjalo fuera de una llamada y agrégalo en la siguiente.

5534* **Servidores integrados que la CLI inició al arrancar**: si la llamada nombra uno, Claude Code descarta esa entrada y la reporta en `errors`.5539* **Servidores integrados que la CLI inició al arrancar**: si la llamada nombra uno, Claude Code descarta esa entrada y la reporta en `errors`.

5535 5540 

5536La promesa se resuelve después de que los servidores stdio, HTTP y SSE recién agregados se conecten o fallen, por lo que las herramientas de los servidores que se conectaron están disponibles en el siguiente turno.5541La promesa se resuelve después de que los servidores stdio, HTTP y SSE recién agregados se conecten o fallen, por lo que las herramientas de los servidores que se conectaron están disponibles en el siguiente turno.


5850 tasks: {5855 tasks: {

5851 task_id: string;5856 task_id: string;

5852 task_type: string;5857 task_type: string;

5858 subagent_type?: string;

5853 description: string;5859 description: string;

5854 ambient?: boolean;5860 ambient?: boolean;

5855 }[];5861 }[];


5858};5864};

5859```5865```

5860 5866 

5867`subagent_type` nombra el tipo de subagente en las entradas cuyo [`task_type`](#sdktaskstartedmessage) es `"local_agent"`, como `general-purpose` o el nombre de un subagente personalizado. El campo requiere Agent SDK v0.3.293 o posterior.

5868 

5861<h3 id="sdkthinkingtokensmessage">5869<h3 id="sdkthinkingtokensmessage">

5862 `SDKThinkingTokensMessage`5870 `SDKThinkingTokensMessage`

5863</h3>5871</h3>

agent-view.md +1 −0

Details

819| `claude rm <id> --discard-unpushed <commit>@<worktree-id>` | Eliminar una sesión cuya eliminación fue rechazada por commits no enviados, descartando el worktree junto con su rama y commits. Pasa el valor exacto que imprimió el rechazo; consulta [Qué elimina la eliminación de una sesión](#what-deleting-a-session-removes). Requiere v2.1.260 o posterior |819| `claude rm <id> --discard-unpushed <commit>@<worktree-id>` | Eliminar una sesión cuya eliminación fue rechazada por commits no enviados, descartando el worktree junto con su rama y commits. Pasa el valor exacto que imprimió el rechazo; consulta [Qué elimina la eliminación de una sesión](#what-deleting-a-session-removes). Requiere v2.1.260 o posterior |

820| `claude rm <id> --force-remove-worktree <worktree-id>` | Eliminar una sesión cuya eliminación fue rechazada porque git o el hook `WorktreeRemove` no pudieron eliminar su worktree, eliminando el directorio worktree de todas formas y dejando su rama en el repositorio. Pasa el valor exacto que imprimió el rechazo; consulta [Qué elimina la eliminación de una sesión](#what-deleting-a-session-removes). Requiere v2.1.268 o posterior |820| `claude rm <id> --force-remove-worktree <worktree-id>` | Eliminar una sesión cuya eliminación fue rechazada porque git o el hook `WorktreeRemove` no pudieron eliminar su worktree, eliminando el directorio worktree de todas formas y dejando su rama en el repositorio. Pasa el valor exacto que imprimió el rechazo; consulta [Qué elimina la eliminación de una sesión](#what-deleting-a-session-removes). Requiere v2.1.268 o posterior |

821| `claude daemon status` | Imprimir el estado del [supervisor](#the-supervisor-process), versión, directorio de socket y número de workers |821| `claude daemon status` | Imprimir el estado del [supervisor](#the-supervisor-process), versión, directorio de socket y número de workers |

822| `claude daemon logs` | Seguir el archivo de log del supervisor, [`~/.claude/daemon.log`](#where-state-is-stored), imprimiendo las líneas nuevas a medida que llegan hasta que presiones `Ctrl+C` |

822| `claude daemon stop --any` | Detener el proceso supervisor y las sesiones en segundo plano que aloja. Pasa `--keep-workers` para dejar las sesiones en segundo plano en ejecución de modo que el siguiente supervisor se reconecte a ellas. El siguiente `claude agents` o `claude --bg` inicia un nuevo supervisor |823| `claude daemon stop --any` | Detener el proceso supervisor y las sesiones en segundo plano que aloja. Pasa `--keep-workers` para dejar las sesiones en segundo plano en ejecución de modo que el siguiente supervisor se reconecte a ellas. El siguiente `claude agents` o `claude --bg` inicia un nuevo supervisor |

823 824 

824`claude attach` y `claude logs` pueden recibir parte del nombre de una sesión en ejecución en lugar del ID, como en `claude logs "auth refactor"`. Pasar un nombre requiere Claude Code v2.1.290 o posterior.825`claude attach` y `claude logs` pueden recibir parte del nombre de una sesión en ejecución en lugar del ID, como en `claude logs "auth refactor"`. Pasar un nombre requiere Claude Code v2.1.290 o posterior.

agents.md +1 −1

Details

20 20 

21Tres herramientas más apoyan este trabajo sin ser una forma de ejecutar agentes en sí mismos:21Tres herramientas más apoyan este trabajo sin ser una forma de ejecutar agentes en sí mismos:

22 22 

23* [Worktrees](/docs/es/worktrees) le dan a cada sesión un checkout de git separado, por lo que las sesiones paralelas nunca editan los mismos archivos. Úselos para sesiones que ejecuta usted mismo. Una sesión que envía desde la vista de agentes [se mueve a su propio worktree antes de editar archivos](/docs/es/agent-view#how-file-edits-are-isolated), y los subagentes que genera pueden obtener uno también.23* [Worktrees](/docs/es/worktrees) le dan a cada sesión un checkout de git separado, por lo que cada sesión paralela edita su propia copia de los archivos. Úsalos para sesiones que ejecutas tú mismo. Una sesión que envías desde la vista de agentes [se mueve a su propio worktree antes de editar archivos](/docs/es/agent-view#how-file-edits-are-isolated), y cada uno de los subagentes que generas también puede obtener uno.

24* [Mensajería entre sesiones](/docs/es/cross-session-messaging) permite que Claude enumere y envíe mensajes a sus otras sesiones de Claude Code en esta máquina, en otra máquina, o [en la nube](/docs/es/claude-code-on-the-web), por lo que las sesiones que ejecuta usted mismo pueden pasar hallazgos y estado entre sí.24* [Mensajería entre sesiones](/docs/es/cross-session-messaging) permite que Claude enumere y envíe mensajes a sus otras sesiones de Claude Code en esta máquina, en otra máquina, o [en la nube](/docs/es/claude-code-on-the-web), por lo que las sesiones que ejecuta usted mismo pueden pasar hallazgos y estado entre sí.

25* [`/batch`](/docs/es/commands) es una [skill](/docs/es/skills) que hace que Claude divida un cambio grande en 5 a 30 subagentes aislados en worktree. Es un uso empaquetado de subagentes y worktrees, no un estilo de coordinación separado.25* [`/batch`](/docs/es/commands) es una [skill](/docs/es/skills) que hace que Claude divida un cambio grande en 5 a 30 subagentes aislados en worktree. Es un uso empaquetado de subagentes y worktrees, no un estilo de coordinación separado.

26 26 

Details

188 188 

189El caché cubre todas las opciones de credenciales anteriores excepto una clave de API de Amazon Bedrock, que no utiliza la cadena de proveedores. Para resolver la cadena en cada solicitud en su lugar, establezca [`CLAUDE_CODE_SKIP_AWS_CRED_CACHE=1`](/docs/es/env-vars).189El caché cubre todas las opciones de credenciales anteriores excepto una clave de API de Amazon Bedrock, que no utiliza la cadena de proveedores. Para resolver la cadena en cada solicitud en su lugar, establezca [`CLAUDE_CODE_SKIP_AWS_CRED_CACHE=1`](/docs/es/env-vars).

190 190 

191Cada resolución de la cadena agota el tiempo de espera después de 60 segundos. Si un paso en la cadena se detiene, por ejemplo un asistente `credential_process` que espera entrada que no puede recibir, la solicitud falla con [`AWS default-chain credential resolve timed out`](/docs/es/errors#aws-default-chain-credential-resolve-timed-out). Si su cadena ejecuta un inicio de sesión interactivo que legítimamente necesita más tiempo, como SSO basado en navegador con MFA a través de un contenedor como `aws-vault`, aumente el límite en milisegundos con [`CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS`](/docs/es/env-vars). Antes de v2.1.207, una resolución de credenciales detenida dejaba la solicitud esperando indefinidamente.191La resolución que llena la caché agota el tiempo de espera después de 60 segundos. Si un paso en la cadena se detiene, por ejemplo un asistente `credential_process` que espera una entrada que no puede recibir, la solicitud falla con [`AWS default-chain credential resolve timed out`](/docs/es/errors#aws-default-chain-credential-resolve-timed-out). Si tu cadena ejecuta un inicio de sesión interactivo que legítimamente necesita más tiempo, como SSO basado en navegador con MFA a través de un contenedor como `aws-vault`, aumenta el límite en milisegundos con [`CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS`](/docs/es/env-vars). Con `CLAUDE_CODE_SKIP_AWS_CRED_CACHE=1` establecido, cada solicitud a la API resuelve la cadena sin este límite.

192 192 

193Excepto cuando se autentica con una clave de API de Amazon Bedrock, el [asistente de configuración](#sign-in-with-bedrock) aplica el mismo límite a cada llamada de AWS que realiza mientras verifica sus credenciales, y a la búsqueda de credenciales antes de cada verificación de modelo. Durante la verificación de credenciales, una verificación que lo excede falla con [`Timed out after 60s waiting for AWS`](/docs/es/errors#bedrock-setup-verification-timed-out-waiting-for-aws).193Excepto cuando se autentica con una clave de API de Amazon Bedrock, el [asistente de configuración](#sign-in-with-bedrock) aplica el mismo límite a cada llamada de AWS que realiza mientras verifica sus credenciales, y a la búsqueda de credenciales antes de cada verificación de modelo. Durante la verificación de credenciales, una verificación que lo excede falla con [`Timed out after 60s waiting for AWS`](/docs/es/errors#bedrock-setup-verification-timed-out-waiting-for-aws).

194 194 


681 681 

682Amazon Bedrock transmite respuestas `InvokeModelWithResponseStream` en un formato de evento binario event-stream con el encabezado `Content-Type: application/vnd.amazon.eventstream`. Una puerta de enlace o proxy entre Claude Code y Amazon Bedrock debe reenviar el cuerpo de la respuesta y sus encabezados, incluido `Content-Type`, tal como los envió Amazon Bedrock.682Amazon Bedrock transmite respuestas `InvokeModelWithResponseStream` en un formato de evento binario event-stream con el encabezado `Content-Type: application/vnd.amazon.eventstream`. Una puerta de enlace o proxy entre Claude Code y Amazon Bedrock debe reenviar el cuerpo de la respuesta y sus encabezados, incluido `Content-Type`, tal como los envió Amazon Bedrock.

683 683 

684Si la puerta de enlace reescribe `Content-Type` a otro valor, Claude Code rechaza la respuesta con un error que comienza con `Bedrock streaming response has content-type`, nombrando el valor que recibió. La reescritura común es `text/event-stream`, de una integración que reemite el stream como eventos enviados por el servidor.684Si el gateway reescribe `Content-Type` a otro valor, Claude Code rechaza la respuesta con un error que comienza con `Bedrock streaming response has content-type`, nombrando el valor que recibió. La reescritura común es `text/event-stream`, de una integración que reemite el stream como eventos enviados por el servidor. Para la variable `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_GUARD` que nombra el mensaje de error, consulta [Bedrock streaming response has an unexpected content-type](/docs/es/errors#bedrock-streaming-response-has-an-unexpected-content-type).

685 685 

686Si la puerta de enlace elimina o deja en blanco el encabezado en su lugar, Claude Code asume que el cuerpo es el event stream de Amazon Bedrock y lo decodifica, por lo que un cuerpo que la puerta de enlace pasó sin modificar sigue transmitiendo.686Si la puerta de enlace elimina o deja en blanco el encabezado en su lugar, Claude Code asume que el cuerpo es el event stream de Amazon Bedrock y lo decodifica, por lo que un cuerpo que la puerta de enlace pasó sin modificar sigue transmitiendo.

687 687 

Details

12 Inicie sesión en Claude Code12 Inicie sesión en Claude Code

13</h2>13</h2>

14 14 

15Después de [instalar Claude Code](/docs/es/setup#install-claude-code), ejecute `claude` en su terminal. En el primer lanzamiento, Claude Code abre una ventana del navegador para que inicie sesión. Si ha establecido la variable de entorno `ANTHROPIC_API_KEY`, Claude Code omite el símbolo del sistema de inicio de sesión y le pide que apruebe la clave en su lugar.15Después de [instalar Claude Code](/docs/es/setup#install-claude-code), ejecuta `claude` en tu terminal. En el primer lanzamiento, Claude Code abre una ventana del navegador para que inicies sesión. Si estableciste la variable de entorno `ANTHROPIC_API_KEY` y apruebas la clave cuando Claude Code te pregunta si quieres usarla, Claude Code omite el prompt de inicio de sesión.

16 16 

17Si el navegador no se abre automáticamente, presione `c` para copiar la URL de inicio de sesión al portapapeles y luego péguelo en su navegador.17Si el navegador no se abre automáticamente, presione `c` para copiar la URL de inicio de sesión al portapapeles y luego péguelo en su navegador.

18 18 

Details

349}349}

350```350```

351 351 

352Obtenga comentarios de IA sobre sus reglas personalizadas `allow`, `soft_deny` y `hard_deny`:352Obtén comentarios de IA sobre tus entradas personalizadas `allow`, `soft_deny`, `hard_deny` y `environment`:

353 353 

354```bash theme={null}354```bash theme={null}

355claude auto-mode critique355claude auto-mode critique

chrome.md +1 −1

Details

343 343 

344| Error | Causa | Solución |344| Error | Causa | Solución |

345| - | - | - |345| - | - | - |

346| "La extensión del navegador no está conectada" | El host de mensajería nativa no puede alcanzar la extensión, o la lista de permitidos de IP de tu organización rechaza la conexión a `bridge.claudeusercontent.com` | Reinicia Chrome y Claude Code, luego ejecuta `/chrome` para reconectar. Si tu organización usa listas de permitidos de IP y el error persiste, consulta [Listas de permitidos de IP de la organización y salida de proxy](/docs/es/network-config#organization-ip-allowlists-and-proxy-egress) |346| "La extensión del navegador no está conectada" | El host de mensajería nativa no puede alcanzar la extensión, o la lista de permitidos de IP de tu organización rechaza la conexión a `bridge.claudeusercontent.com` | Comprueba que la extensión tenga la sesión iniciada en la misma cuenta de claude.ai que Claude Code, reinicia Chrome y Claude Code, luego ejecuta `/chrome` para reconectar. Si tu organización usa listas de permitidos de IP y el error persiste, consulta [Listas de permitidos de IP de la organización y salida de proxy](/docs/es/network-config#organization-ip-allowlists-and-proxy-egress) |

347| La extensión muestra "No detectada" en `/chrome` | La extensión de Chrome no está instalada o está deshabilitada | Instala o habilita la extensión en `chrome://extensions` |347| La extensión muestra "No detectada" en `/chrome` | La extensión de Chrome no está instalada o está deshabilitada | Instala o habilita la extensión en `chrome://extensions` |

348| "No hay pestaña disponible" | Claude intentó actuar antes de que una pestaña estuviera lista | Pídele a Claude que cree una nueva pestaña e intente de nuevo |348| "No hay pestaña disponible" | Claude intentó actuar antes de que una pestaña estuviera lista | Pídele a Claude que cree una nueva pestaña e intente de nuevo |

349| "El extremo receptor no existe" | El trabajador de servicio de la extensión se quedó inactivo | Ejecuta `/chrome` y selecciona "Reconectar extensión" |349| "El extremo receptor no existe" | El trabajador de servicio de la extensión se quedó inactivo | Ejecuta `/chrome` y selecciona "Reconectar extensión" |

Details

75| - | - |75| - | - |

76| Claude Code v2.1.195 o posterior | El subcomando `claude gateway` y el flujo de inicio de sesión de la puerta de enlace se envían en v2.1.195. Las compilaciones públicas anteriores no los incluyen. Tanto la máquina que ejecuta el servidor de la puerta de enlace como la máquina de cada desarrollador deben estar en v2.1.195 o posterior; ejecute `claude update` para obtener la versión más reciente. El [upstream de Claude Platform en AWS](/docs/es/claude-apps-gateway-config#claude-platform-on-aws) requiere Claude Code v2.1.198 o posterior en el servidor de la puerta de enlace. |76| Claude Code v2.1.195 o posterior | El subcomando `claude gateway` y el flujo de inicio de sesión de la puerta de enlace se envían en v2.1.195. Las compilaciones públicas anteriores no los incluyen. Tanto la máquina que ejecuta el servidor de la puerta de enlace como la máquina de cada desarrollador deben estar en v2.1.195 o posterior; ejecute `claude update` para obtener la versión más reciente. El [upstream de Claude Platform en AWS](/docs/es/claude-apps-gateway-config#claude-platform-on-aws) requiere Claude Code v2.1.198 o posterior en el servidor de la puerta de enlace. |

77| Proveedor de identidad OpenID Connect (OIDC) | Okta, Microsoft Entra ID, Google Workspace, Keycloak, o Dex, o cualquier otro IdP compatible con OIDC como PingFederate. La puerta de enlace ejecuta el descubrimiento OIDC estándar y el flujo de código de autorización en su contra. SAML y LDAP no son compatibles. |77| Proveedor de identidad OpenID Connect (OIDC) | Okta, Microsoft Entra ID, Google Workspace, Keycloak, o Dex, o cualquier otro IdP compatible con OIDC como PingFederate. La puerta de enlace ejecuta el descubrimiento OIDC estándar y el flujo de código de autorización en su contra. SAML y LDAP no son compatibles. |

78| PostgreSQL 14 o posterior | Respalda el flujo de inicio de sesión del dispositivo, donde la devolución de llamada del navegador escribe y la CLI de sondeo lee, además de contadores de límite de velocidad. Cualquier Postgres administrado funciona, incluido el nivel más pequeño. Sin límites de gasto configurados, la puerta de enlace almacena algunos KB de estado de autenticación de corta duración; con [límites de gasto](/docs/es/claude-apps-gateway-spend-limits), también contiene tablas duraderas de gasto, auditoría e identidad que deben respaldarse. Se recomienda TLS a través de `?sslmode=require`. |78| PostgreSQL 11 o posterior | Respalda el flujo de inicio de sesión del dispositivo y los contadores de rate limit. Funciona un servicio de PostgreSQL administrado, incluido el nivel más pequeño; consulta [qué bases de datos son compatibles](/docs/es/claude-apps-gateway-deploy#postgres). Con [límites de gasto](/docs/es/claude-apps-gateway-spend-limits), también contiene tablas duraderas de gasto, auditoría e identidad de las que se debe hacer copia de seguridad. Se recomienda TLS mediante `?sslmode=require`. PostgreSQL 11, 12 y 13 requieren Claude Code v2.1.290 o posterior en el servidor del gateway. El proyecto PostgreSQL ya no mantiene esas versiones, así que usa una más reciente siempre que puedas. |

79| Upstream de modelo | Credenciales de Amazon Bedrock, credenciales de Claude Platform en AWS, credenciales de Google Cloud, un recurso de Microsoft Foundry o una clave de API de Anthropic. Se admiten múltiples upstreams con conmutación por error. |79| Upstream de modelo | Credenciales de Amazon Bedrock, credenciales de Claude Platform en AWS, credenciales de Google Cloud, un recurso de Microsoft Foundry o una clave de API de Anthropic. Se admiten múltiples upstreams con conmutación por error. |

80| HTTPS | La puerta de enlace debe ser accesible a través de `https://` desde portátiles de desarrolladores y desde cualquier navegador utilizado para el inicio de sesión; la puerta de enlace sirve la página de verificación del dispositivo en el mismo oyente. Proporcione un certificado TLS a través de `listen.tls` o ejecute detrás de una entrada que termine TLS, y establezca `listen.public_url` en el origen externo en ambos casos. En `/login`, Claude Code acepta un origen `http://` simple solo cuando el host de la puerta de enlace es loopback: `localhost`, `127.0.0.1` o `::1`. |80| HTTPS | La puerta de enlace debe ser accesible a través de `https://` desde portátiles de desarrolladores y desde cualquier navegador utilizado para el inicio de sesión; la puerta de enlace sirve la página de verificación del dispositivo en el mismo oyente. Proporcione un certificado TLS a través de `listen.tls` o ejecute detrás de una entrada que termine TLS, y establezca `listen.public_url` en el origen externo en ambos casos. En `/login`, Claude Code acepta un origen `http://` simple solo cuando el host de la puerta de enlace es loopback: `localhost`, `127.0.0.1` o `::1`. |

81| Dirección de red privada | En `/login`, Claude Code requiere que el nombre de host o la dirección IP de la puerta de enlace se resuelvan solo a direcciones privadas: RFC 1918, link-local, CGNAT `100.64.0.0/10`, IPv6 ULA `fc00::/7` o loopback. Para una puerta de enlace que aloja, cualquier dirección pública fuera de un bloque que declare se rechaza; consulte el [modelo de amenaza](/docs/es/claude-apps-gateway-deploy#threat-model-summary) en la guía de implementación. Si las máquinas de desarrolladores enrutan HTTPS a través de un proxy corporativo, el inicio de sesión también requiere que el host del proxy se resuelva a direcciones privadas; si no es así, agregue el host de la puerta de enlace a `NO_PROXY` para que la CLI se conecte directamente. Si su red interna está numerada desde espacio IPv4 público que su organización posee, [declare esos bloques](#allow-a-gateway-on-public-address-space-you-own) para que `/login` acepte una puerta de enlace allí. |81| Dirección de red privada | En `/login`, Claude Code requiere que el nombre de host o la dirección IP de la puerta de enlace se resuelvan solo a direcciones privadas: RFC 1918, link-local, CGNAT `100.64.0.0/10`, IPv6 ULA `fc00::/7` o loopback. Para una puerta de enlace que aloja, cualquier dirección pública fuera de un bloque que declare se rechaza; consulte el [modelo de amenaza](/docs/es/claude-apps-gateway-deploy#threat-model-summary) en la guía de implementación. Si las máquinas de desarrolladores enrutan HTTPS a través de un proxy corporativo, el inicio de sesión también requiere que el host del proxy se resuelva a direcciones privadas; si no es así, agregue el host de la puerta de enlace a `NO_PROXY` para que la CLI se conecte directamente. Si su red interna está numerada desde espacio IPv4 público que su organización posee, [declare esos bloques](#allow-a-gateway-on-public-address-space-you-own) para que `/login` acepte una puerta de enlace allí. |


90 Decida primero el nombre de host de la puerta de enlace, porque el URI de redirección debe coincidir con él. Cree una nueva aplicación web OIDC y establezca el URI de redirección en `https://claude-gateway.<su-dominio>/oauth/callback`, donde el host es el mismo valor que establece como [`listen.public_url`](/docs/es/claude-apps-gateway-config#listen) en el paso 3. Anote el `client_id` y `client_secret`. Las instrucciones por IdP están en [Configuración del proveedor de identidad](/docs/es/claude-apps-gateway-deploy#identity-provider-setup).90 Decida primero el nombre de host de la puerta de enlace, porque el URI de redirección debe coincidir con él. Cree una nueva aplicación web OIDC y establezca el URI de redirección en `https://claude-gateway.<su-dominio>/oauth/callback`, donde el host es el mismo valor que establece como [`listen.public_url`](/docs/es/claude-apps-gateway-config#listen) en el paso 3. Anote el `client_id` y `client_secret`. Las instrucciones por IdP están en [Configuración del proveedor de identidad](/docs/es/claude-apps-gateway-deploy#identity-provider-setup).

91 </Step>91 </Step>

92 92 

93 <Step title="Aprovisionar una base de datos PostgreSQL">93 <Step title="Aprovisiona una base de datos PostgreSQL">

94 Cualquier Postgres 14 o posterior funciona, incluido el nivel administrado más pequeño. La puerta de enlace ejecuta sus propias migraciones de esquema al arrancar, por lo que el rol de la base de datos necesita derechos para crear y alterar tablas; consulte [`store`](/docs/es/claude-apps-gateway-config#store).94 Usa PostgreSQL 11 o posterior. El nivel administrado más pequeño es suficiente. El gateway ejecuta sus propias migraciones de esquema al arrancar, por lo que el rol de la base de datos necesita permisos para crear y modificar tablas; consulta [`store`](/docs/es/claude-apps-gateway-config#store).

95 </Step>95 </Step>

96 96 

97 <Step title="Escribir gateway.yaml">97 <Step title="Escribir gateway.yaml">

Details

158El gateway lee la clave y el certificado una sola vez al arrancar, así que un archivo modificado solo surte efecto tras un reinicio. Rota en este orden para que ninguna solicitud de token presente un certificado que el IdP no tenga:158El gateway lee la clave y el certificado una sola vez al arrancar, así que un archivo modificado solo surte efecto tras un reinicio. Rota en este orden para que ninguna solicitud de token presente un certificado que el IdP no tenga:

159 159 

1601. Sube el nuevo certificado al IdP junto al antiguo.1601. Sube el nuevo certificado al IdP junto al antiguo.

1612. Reemplaza los archivos de clave y certificado que carga `gateway.yaml` y luego reinicia el gateway.1612. Reemplaza los archivos de clave y certificado que carga `gateway.yaml` y luego reinicia el gateway. Si ejecutas varias réplicas, un [reinicio progresivo](/docs/es/claude-apps-gateway-deploy#upgrades) funciona, porque el IdP tiene ambos certificados hasta que eliminas el antiguo.

1623. Elimina el certificado antiguo del IdP.1623. Después de que todas las réplicas se hayan reiniciado, elimina el certificado antiguo del IdP.

163 163 

164<h4 id="idp-requests-through-a-forward-proxy">164<h4 id="idp-requests-through-a-forward-proxy">

165 Solicitudes al IdP a través de un proxy de reenvío165 Solicitudes al IdP a través de un proxy de reenvío


227 227 

228| Campo | Requerido | Descripción |228| Campo | Requerido | Descripción |

229| - | - | - |229| - | - | - |

230| `postgres_url` | Sí | URL `postgres://` o `postgresql://`. Requerido: el punto de encuentro de la concesión de dispositivos, donde escribe la devolución de llamada del navegador y lee la CLI que sondea, necesita estado compartido entre réplicas. El gateway ejecuta sus propias migraciones de esquema al arrancar y al actualizarse, por lo que el rol necesita permisos para crear y alterar tablas en el esquema de destino. Consulta [Actualizaciones](/docs/es/claude-apps-gateway-deploy#upgrades) y [Postgres](/docs/es/claude-apps-gateway-deploy#postgres). |230| `postgres_url` | Sí | URL `postgres://` o `postgresql://` con un solo host, no una lista separada por comas. El gateway ejecuta sus propias migraciones de esquema al arrancar y al actualizarse, por lo que el rol necesita permisos para crear y alterar tablas en el esquema de destino. Consulta [Actualizaciones](/docs/es/claude-apps-gateway-deploy#upgrades) y [Postgres](/docs/es/claude-apps-gateway-deploy#postgres). |

231| `username` | No | Sobrescribe el usuario en `postgres_url` |231| `username` | No | Sobrescribe el usuario en `postgres_url` |

232| `password` | No | Credencial de la base de datos. Establécela aquí en lugar de en `postgres_url` para que la credencial quede fuera de la URL. Acepta cualquier carácter y tiene precedencia sobre las credenciales de la URL. |232| `password` | No | Credencial de la base de datos. Establécela aquí en lugar de en `postgres_url` para que la credencial quede fuera de la URL. Acepta cualquier carácter y tiene precedencia sobre las credenciales de la URL. |

233| `max_connections` | No | Tamaño del pool de conexiones de Postgres por réplica. Por defecto `5`, que es conservador y adecuado para bases de datos compartidas. Con los [límites de gasto](#admin) habilitados, la ruta crítica realiza algunas operaciones por solicitud de inferencia, así que auméntalo para una base de datos dedicada bajo carga, y mantén réplicas × este valor por debajo del `max_connections` de la base de datos. |233| `max_connections` | No | Tamaño del pool de conexiones de Postgres por réplica. Por defecto `5`, que es conservador y adecuado para bases de datos compartidas. Con los [límites de gasto](#admin) habilitados, la ruta crítica realiza algunas operaciones por solicitud de inferencia, así que auméntalo para una base de datos dedicada bajo carga, y mantén réplicas × este valor por debajo del `max_connections` de la base de datos. |


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

377| Región | `region:` es la región del endpoint de la API. Los perfiles de inferencia entre regiones enrutan dentro de la geografía (EE. UU., UE, APAC) independientemente de cuál elijas. Para regiones fuera de EE. UU. o ARNs de rendimiento aprovisionado, agrega un bloque [`models:`](#models) con los IDs correctos por upstream. |377| Región | `region:` es la región del endpoint de la API. Los perfiles de inferencia entre regiones enrutan dentro de la geografía (EE. UU., UE, APAC) independientemente de cuál elijas. Para regiones fuera de EE. UU. o ARNs de rendimiento aprovisionado, agrega un bloque [`models:`](#models) con los IDs correctos por upstream. |

378 378 

379<a id="apply-an-amazon-bedrock-guardrail" />

380 

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

380 Aplicar una barrera de protección de Amazon Bedrock382 Aplicar una barrera de protección de Amazon Bedrock

381</h5>383</h5>


921 923 

922 Se aplican dos tiempos de propagación:924 Se aplican dos tiempos de propagación:

923 925 

924 * **Contenido de las políticas**: editar una política y volver a desplegar llega a los clientes conectados en su siguiente consulta de la configuración administrada, en menos de una hora, salvo los [cambios que solo se aplican en el siguiente inicio](/docs/es/server-managed-settings#fetch-and-caching-behavior)926 * **Contenido de las políticas**: editar una política y volver a desplegar llega a los clientes conectados de Claude Code en su siguiente consulta de la configuración administrada, en menos de una hora, salvo los [cambios que solo se aplican en el siguiente inicio](/docs/es/server-managed-settings#fetch-and-caching-behavior)

925 * **Pertenencia a grupos**: cambiar la pertenencia a grupos de un usuario cambia qué política coincide con él. Esto surte efecto en la siguiente nueva emisión de la sesión, es decir, en la siguiente actualización silenciosa, con un límite de `session.ttl_hours`.927 * **Pertenencia a grupos**: cambiar la pertenencia a grupos de un usuario cambia qué política coincide con él. Esto surte efecto en la siguiente nueva emisión de la sesión, es decir, en la siguiente actualización silenciosa, con un límite de `session.ttl_hours`.

928 

929 Claude Desktop sigue [su propio calendario](#when-a-policy-change-reaches-claude-desktop).

926</Note>930</Note>

927 931 

928<h4 id="start-sessions-on-a-model-the-policy-allows">932<h4 id="start-sessions-on-a-model-the-policy-allows">


1086 Requiere Claude Code v2.1.203 o posterior en el servidor del gateway y una activación explícita: `/user/bootstrap` devuelve 404 a menos que la política que coincide con el usuario tenga una clave `desktop`. Un `desktop: {}` vacío activa una política, y una clave `desktop` en la capa base `match: {}` activa todas las políticas que la heredan. El registro de auditoría registra cada solicitud como `desktop_bootstrap.serve` o `desktop_bootstrap.denied`.1090 Requiere Claude Code v2.1.203 o posterior en el servidor del gateway y una activación explícita: `/user/bootstrap` devuelve 404 a menos que la política que coincide con el usuario tenga una clave `desktop`. Un `desktop: {}` vacío activa una política, y una clave `desktop` en la capa base `match: {}` activa todas las políticas que la heredan. El registro de auditoría registra cada solicitud como `desktop_bootstrap.serve` o `desktop_bootstrap.denied`.

1087</Note>1091</Note>

1088 1092 

1089El gateway deriva gran parte de la respuesta del bloque `cli` de la política coincidente y de la configuración de nivel superior del gateway:1093Si no despliegas Claude Desktop, deja `desktop` completamente fuera de tus políticas; el gateway devuelve entonces 404 desde `/user/bootstrap` para todos los usuarios.

1094 

1095<h5 id="settings-the-gateway-derives-for-claude-desktop">

1096 Ajustes que el gateway deriva para Claude Desktop

1097</h5>

1098 

1099El gateway deriva gran parte de la respuesta de bootstrap del bloque `cli` de la política coincidente y de la configuración de nivel superior del gateway:

1090 1100 

1091* La lista de modelos, de `availableModels`. [Contexto extendido en Claude Desktop](#extended-context-in-claude-desktop) explica la opción de contexto de 1M de cada modelo1101* La lista de modelos, de `availableModels`. [Contexto extendido en Claude Desktop](#extended-context-in-claude-desktop) explica la opción de contexto de 1M de cada modelo

1092* Las herramientas deshabilitadas, de las entradas de `permissions.deny` que son solo un nombre de herramienta. Si estableces `disabledBuiltinTools` en el bloque `desktop` de la política, el gateway sirve la unión de tu valor y la lista derivada, por lo que puedes deshabilitar más herramientas de esta manera, pero no puedes volver a habilitar una que deshabilitaste mediante `permissions.deny`1102* Las herramientas deshabilitadas, de las entradas de `permissions.deny` que son solo un nombre de herramienta. Si estableces `disabledBuiltinTools` en el bloque `desktop` de la política, el gateway sirve la unión de tu valor y la lista derivada, por lo que puedes deshabilitar más herramientas de esta manera, pero no puedes volver a habilitar una que deshabilitaste mediante `permissions.deny`


1099 1109 

1100El gateway omite de la respuesta de bootstrap las claves sin equivalente en Claude Desktop, como `hooks` y las reglas de permisos con alcance como `Bash(npm *)`.1110El gateway omite de la respuesta de bootstrap las claves sin equivalente en Claude Desktop, como `hooks` y las reglas de permisos con alcance como `Bash(npm *)`.

1101 1111 

1102Agrega el bloque opcional `desktop` junto a `cli` para establecer directamente la configuración de Claude Desktop. Escribe los ajustes de la [referencia de configuración administrada](https://claude.com/docs/third-party/claude-desktop/configuration) de Claude Desktop como nombres de clave planos. Omite las claves que Claude Desktop lee solo de MDM o de archivos locales, como `bootstrapUrl`; el gateway las rechaza al arrancar. Antes de v2.1.232, el gateway aceptaba una lista fija de 11 claves de activación de funciones, como `chatTabEnabled` y `disableAutoUpdates`, y rechazaba todas las demás claves al arrancar. Antes de v2.1.227, el gateway también rechazaba `chatTabEnabled` y `chatAdvancedFileAnalysisEnabled` al arrancar.1112<h5 id="set-claude-desktop-settings-directly">

1113 Establecer directamente la configuración de Claude Desktop

1114</h5>

1115 

1116Agrega el bloque opcional `desktop` junto a `cli` para establecer directamente la configuración de Claude Desktop. Escribe los ajustes de la [referencia de configuración administrada](https://claude.com/docs/third-party/claude-desktop/configuration) de Claude Desktop como nombres de clave planos. Omite las claves que Claude Desktop lee solo de MDM o de archivos locales, como `bootstrapUrl`; el gateway las rechaza al arrancar.

1117 

1118Este ejemplo establece tres claves de Claude Desktop para el grupo `eng-contractors` junto con su configuración de `cli`:

1103 1119 

1104```yaml theme={null}1120```yaml theme={null}

1105managed:1121managed:


1114 banner: { text: "Contractor build: internal use only" }1130 banner: { text: "Contractor build: internal use only" }

1115```1131```

1116 1132 

1117Todas las claves son opcionales; Claude Desktop aplica su propio valor predeterminado para cualquier clave que omitas. El gateway valida cada bloque `desktop` al arrancar con el mismo esquema de configuración que usa Claude Desktop, por lo que un error aparece al iniciar el gateway como un mensaje que nombra la clave, en lugar de llegar a cada escritorio conectado. El gateway falla al arrancar cuando un bloque contiene:1133Todas las claves son opcionales; Claude Desktop aplica su propio valor predeterminado para cualquier clave que omitas.

1134 

1135<h5 id="what-the-gateway-rejects-at-boot">

1136 Qué rechaza el gateway al arrancar

1137</h5>

1138 

1139El gateway valida cada bloque `desktop` al arrancar con el mismo esquema de configuración que usa Claude Desktop, por lo que un error aparece al iniciar el gateway como un mensaje que nombra la clave, en lugar de llegar a cada escritorio conectado. El gateway falla al arrancar cuando un bloque contiene:

1118 1140 

1119* Una clave desconocida1141* Una clave desconocida

1120* Una clave reconocida cuyo valor Claude Desktop rechazaría o descartaría silenciosamente, como un valor vacío o una subclave mal escrita dentro de una entrada anidada. Antes de v2.1.260, el gateway descartaba silenciosamente un campo mal escrito dentro de un objeto anidado de una entrada `managedMcpServers` u `orgPluginSettings` en lugar de fallar al arrancar.1142* Una clave reconocida cuyo valor Claude Desktop rechazaría o descartaría silenciosamente, como un valor vacío o una subclave mal escrita dentro de una entrada anidada. Antes de v2.1.260, el gateway descartaba silenciosamente un campo mal escrito dentro de un objeto anidado de una entrada `managedMcpServers` u `orgPluginSettings` en lugar de fallar al arrancar.


1123 1145 

1124Si usas un valor o una forma de entrada obsoletos, como una entrada `managedMcpServers` sin `transport`, el gateway arranca y registra una advertencia que nombra el reemplazo.1146Si usas un valor o una forma de entrada obsoletos, como una entrada `managedMcpServers` sin `transport`, el gateway arranca y registra una advertencia que nombra el reemplazo.

1125 1147 

1148Antes de v2.1.232, el gateway aceptaba una lista fija de 11 claves de activación de funciones, como `chatTabEnabled` y `disableAutoUpdates`, y rechazaba todas las demás claves al arrancar. Antes de v2.1.227, el gateway también rechazaba `chatTabEnabled` y `chatAdvancedFileAnalysisEnabled` al arrancar.

1149 

1150<h5 id="keys-that-need-a-later-gateway-or-claude-desktop-version">

1151 Claves que necesitan una versión posterior del gateway o de Claude Desktop

1152</h5>

1153 

1126El gateway valida un bloque `desktop` con el esquema incluido en su versión instalada, igual que hace con el bloque `cli`. Para entregar un ajuste introducido por una versión más reciente de Claude Desktop, actualiza primero el gateway. Por ejemplo, `userPluginMarketplacesEnabled` y `userPluginUploadsEnabled` necesitan Claude Code v2.1.260 o posterior en el servidor del gateway y Claude Desktop 1.37937.0 o posterior en las máquinas de los miembros.1154El gateway valida un bloque `desktop` con el esquema incluido en su versión instalada, igual que hace con el bloque `cli`. Para entregar un ajuste introducido por una versión más reciente de Claude Desktop, actualiza primero el gateway. Por ejemplo, `userPluginMarketplacesEnabled` y `userPluginUploadsEnabled` necesitan Claude Code v2.1.260 o posterior en el servidor del gateway y Claude Desktop 1.37937.0 o posterior en las máquinas de los miembros.

1127 1155 

1128`blockReadsOutsideWorkingDirectories`, `disableBypassPermissionsMode`, `configRecheckIntervalMinutes` y `sshClientPath` necesitan Claude Code v2.1.281 o posterior en el servidor del gateway. Lo mismo ocurre con el valor `required` de `microsoftAuthBroker` y el campo `continuousAccessEvaluation` de una entrada `managedMcpServers` de Microsoft 365. Las versiones de Claude Desktop anteriores al valor `required` lo leen como `disabled`, así que establece `required` solo después de que el Claude Desktop de todos los miembros lo admita. La [referencia de configuración administrada](https://claude.com/docs/third-party/claude-desktop/configuration) de Claude Desktop indica la versión que lee por primera vez cada clave.1156`blockReadsOutsideWorkingDirectories`, `disableBypassPermissionsMode`, `configRecheckIntervalMinutes` y `sshClientPath` necesitan Claude Code v2.1.281 o posterior en el servidor del gateway. Lo mismo ocurre con el valor `required` de `microsoftAuthBroker` y el campo `continuousAccessEvaluation` de una entrada `managedMcpServers` de Microsoft 365. Las versiones de Claude Desktop anteriores al valor `required` lo leen como `disabled`, así que establece `required` solo después de que el Claude Desktop de todos los miembros lo admita. La [referencia de configuración administrada](https://claude.com/docs/third-party/claude-desktop/configuration) de Claude Desktop indica la versión que lee por primera vez cada clave.

1129 1157 

1130Si estableces `orgPluginSettings` en el bloque `desktop` de una política, el gateway lo sirve en la forma de array que leen Claude Desktop 1.15200.0 y posteriores. Los escritorios más antiguos ignoran el array y no aplican ninguna política de herramientas de plugins, así que actualiza a los miembros a 1.15200.0 o posterior antes de depender de ello.1158Si estableces `orgPluginSettings` en el bloque `desktop` de una política, el gateway lo sirve en la forma de array que leen Claude Desktop 1.15200.0 y posteriores. Los escritorios más antiguos ignoran el array y no aplican ninguna política de herramientas de plugins, así que actualiza a los miembros a 1.15200.0 o posterior antes de depender de ello.

1131 1159 

1160<h5 id="how-a-role-policy-inherits-the-base-desktop-block">

1161 Cómo hereda una política de rol el bloque `desktop` de la base

1162</h5>

1163 

1132El gateway completa las claves que el bloque `desktop` de una política no establece a partir del bloque `desktop` de la captura general `match: {}`, de la misma manera que completa el bloque `cli` de una política a partir de la base. Si estableces `disabledBuiltinTools` o `builtinToolPolicy` tanto en la base como en una política de rol, el gateway conserva la restricción de la base:1164El gateway completa las claves que el bloque `desktop` de una política no establece a partir del bloque `desktop` de la captura general `match: {}`, de la misma manera que completa el bloque `cli` de una política a partir de la base. Si estableces `disabledBuiltinTools` o `builtinToolPolicy` tanto en la base como en una política de rol, el gateway conserva la restricción de la base:

1133 1165 

1134* `disabledBuiltinTools`: el gateway usa la unión de la lista de la base y la lista de la política1166* `disabledBuiltinTools`: el gateway usa la unión de la lista de la base y la lista de la política


1136 1168 

1137Para cualquier otra clave, si la estableces en la política de rol, el gateway usa el valor de la política de rol. El gateway reemplaza completo un array o un objeto anidado como `banner`, por lo que si estableces `banner.text` en una política de rol, el gateway descarta el `banner.backgroundColor` de la base.1169Para cualquier otra clave, si la estableces en la política de rol, el gateway usa el valor de la política de rol. El gateway reemplaza completo un array o un objeto anidado como `banner`, por lo que si estableces `banner.text` en una política de rol, el gateway descarta el `banner.backgroundColor` de la base.

1138 1170 

1139Si no despliegas Claude Desktop, deja `desktop` completamente fuera de tus políticas; el gateway devuelve entonces 404 desde `/user/bootstrap` para todos los usuarios.1171<h5 id="when-a-policy-change-reaches-claude-desktop">

1172 Cuándo llega un cambio de política a Claude Desktop

1173</h5>

1174 

1175Después de volver a desplegar el gateway con una política modificada, Claude Desktop aplica la mayoría de los ajustes solo la próxima vez que se inicia:

1176 

1177* **Cerrado**: Claude Desktop obtiene la respuesta de bootstrap al iniciarse, por lo que el cambio se aplica a partir del siguiente inicio

1178* **Abierto**: Claude Desktop comprueba si la respuesta cambió cada 10 minutos de forma predeterminada y aplica algunos ajustes sin reiniciarse. Para el resto, como [`skillCreationEnabled`](https://claude.com/docs/third-party/claude-desktop/configuration#skillcreationenabled), el usuario ve una tarjeta **Relaunch Claude Desktop** en la barra lateral y conserva la configuración anterior hasta que reinicia la app. Tras 24 horas de forma predeterminada, Claude Desktop muestra un diálogo de reinicio y se reinicia por sí solo tras 2 minutos de inactividad

1179 

1180Para acortar las 24 horas, establece [`relaunchEnforcementHours`](https://claude.com/docs/third-party/claude-desktop/configuration#relaunchenforcementhours) en el bloque `desktop` de la política. Necesitas Claude Code v2.1.260 o posterior en el servidor del gateway y Claude Desktop 1.40609.0 o posterior en las máquinas de los miembros. Con `0`, el diálogo aparece en cuanto Claude Desktop detecta el cambio.

1140 1181 

1141<h4 id="extended-context-in-claude-desktop">1182<h4 id="extended-context-in-claude-desktop">

1142 Contexto extendido en Claude Desktop1183 Contexto extendido en Claude Desktop

Details

249 Postgres249 Postgres

250</h3>250</h3>

251 251 

252El gateway guarda su estado en una base de datos PostgreSQL:

253 

254* **Base de datos**: PostgreSQL propiamente dicho, autoalojado o administrado, en la [versión mínima](/docs/es/claude-apps-gateway#prerequisites) o posterior. No se admiten bases de datos que solo implementan el protocolo de Postgres, como las bases de datos SQL distribuidas.

255* **Dirección**: `store.postgres_url` acepta un solo host. Si la base de datos tiene varios nodos, usa la dirección que está delante de ellos, como el endpoint de tu servicio administrado, un balanceador de carga o una IP virtual. Configura un [período de gracia de disponibilidad](#readiness-grace-period) más largo de lo que tarda una conmutación por error.

256 

252La puerta de enlace contiene cinco tablas de datos más una tabla `_migrations`, todas creadas por sus migraciones de tiempo de arranque:257La puerta de enlace contiene cinco tablas de datos más una tabla `_migrations`, todas creadas por sus migraciones de tiempo de arranque:

253 258 

254| Tabla | Contenidos | Retención |259| Tabla | Contenidos | Retención |


396| CLI `/login`: `Could not resolve the configured HTTP proxy` | El nombre de host en `HTTPS_PROXY` o `HTTP_PROXY` no se resuelve desde la máquina del desarrollador, normalmente porque no está conectada a la red corporativa | Pide al desarrollador que se conecte a tu red o VPN y vuelva a intentarlo, o corrige la URL del proxy |401| CLI `/login`: `Could not resolve the configured HTTP proxy` | El nombre de host en `HTTPS_PROXY` o `HTTP_PROXY` no se resuelve desde la máquina del desarrollador, normalmente porque no está conectada a la red corporativa | Pide al desarrollador que se conecte a tu red o VPN y vuelva a intentarlo, o corrige la URL del proxy |

397| CLI `/login`: `Could not resolve gateway host <host>` | La máquina no puede resolver el nombre DNS interno del gateway, normalmente porque no está en la red corporativa | Pide al desarrollador que se conecte a tu red o VPN y luego reintente `/login` |402| CLI `/login`: `Could not resolve gateway host <host>` | La máquina no puede resolver el nombre DNS interno del gateway, normalmente porque no está en la red corporativa | Pide al desarrollador que se conecte a tu red o VPN y luego reintente `/login` |

398| El arranque sale con un error de validación de configuración que menciona `store.postgres_url` | No hay Postgres configurado; el gateway requiere Postgres | Establece `store.postgres_url`. Para desarrollo local, usa un contenedor desechable: `docker run --rm -p 5432:5432 -e POSTGRES_HOST_AUTH_METHOD=trust postgres`. |403| El arranque sale con un error de validación de configuración que menciona `store.postgres_url` | No hay Postgres configurado; el gateway requiere Postgres | Establece `store.postgres_url`. Para desarrollo local, usa un contenedor desechable: `docker run --rm -p 5432:5432 -e POSTGRES_HOST_AUTH_METHOD=trust postgres`. |

404| El arranque sale con: `store.postgres_url in <path> is not a URL the gateway can read`, o, antes de v2.1.290, un simple `Invalid URL` o `URI error` | No se puede analizar la URL, por ejemplo porque enumera más de un host o su contraseña tiene un `/`, `?`, `#` o `%` sin codificar | Indica [un solo host](#postgres) y mueve la contraseña a [`store.password`](/docs/es/claude-apps-gateway-config#store) |

399| El arranque sale con: `requires the native binary` | Se está ejecutando con Node en lugar del binario nativo | Instala Claude Code con uno de los [métodos de instalación independiente](/docs/es/setup) |405| El arranque sale con: `requires the native binary` | Se está ejecutando con Node en lugar del binario nativo | Instala Claude Code con uno de los [métodos de instalación independiente](/docs/es/setup) |

400| El arranque sale con un error de descubrimiento OIDC después de `config.load` | `oidc.issuer` no es accesible, o la cadena TLS no es de confianza | Verifica que el emisor sea accesible desde el pod y sirva `/.well-known/openid-configuration`. Establece `ca_cert_pem` para una PKI privada. Si el pod llega al IdP solo a través de un proxy de reenvío, establece [`oidc.use_proxy: true`](/docs/es/claude-apps-gateway-config#idp-requests-through-a-forward-proxy); en versiones anteriores a v2.1.227, dale al pod una ruta directa a cada uno de los endpoints del IdP en su lugar. Si el pod tampoco puede resolver el nombre de host del IdP, o el proxy rechaza `CONNECT` a una dirección IP, consulta [Salida solo por proxy](/docs/es/claude-apps-gateway-config#proxy-only-egress), que requiere v2.1.277 o posterior. |406| El arranque sale con un error de descubrimiento OIDC después de `config.load` | `oidc.issuer` no es accesible, o la cadena TLS no es de confianza | Verifica que el emisor sea accesible desde el pod y sirva `/.well-known/openid-configuration`. Establece `ca_cert_pem` para una PKI privada. Si el pod llega al IdP solo a través de un proxy de reenvío, establece [`oidc.use_proxy: true`](/docs/es/claude-apps-gateway-config#idp-requests-through-a-forward-proxy); en versiones anteriores a v2.1.227, dale al pod una ruta directa a cada uno de los endpoints del IdP en su lugar. Si el pod tampoco puede resolver el nombre de host del IdP, o el proxy rechaza `CONNECT` a una dirección IP, consulta [Salida solo por proxy](/docs/es/claude-apps-gateway-config#proxy-only-egress), que requiere v2.1.277 o posterior. |

401| El arranque sale con un error de permisos de Postgres | El rol de la base de datos no tiene derechos DDL sobre su esquema | Otorga al rol `CREATE` sobre el esquema del gateway para que pueda crear y modificar sus tablas al arrancar |407| El arranque sale con un error de permisos de Postgres | El rol de la base de datos no tiene derechos DDL sobre su esquema | Otorga al rol `CREATE` sobre el esquema del gateway para que pueda crear y modificar sus tablas al arrancar |

402| Registro: `could not connect to Postgres at boot, attempt 1 of 3` | La base de datos aún no era accesible cuando se inició el gateway, por ejemplo en una instancia en frío cuya red todavía se está levantando | Si el gateway luego termina de arrancar, no hace falta hacer nada. Cuando la base de datos no es accesible, el gateway intenta la conexión tres veces, con dos segundos de diferencia, antes de salir. Si sale con `could not connect to Postgres`, revisa `store.postgres_url` y la ruta de red hacia la base de datos. Si se agota el tiempo de espera de los intentos en lugar de ser rechazados, aumenta [`store.connect_timeout_seconds`](/docs/es/claude-apps-gateway-config#store) para darle más tiempo a cada uno. |408| Registro: `could not connect to Postgres at boot, attempt 1 of 3` | La base de datos aún no era accesible cuando se inició el gateway, por ejemplo en una instancia en frío cuya red todavía se está levantando | Si el gateway luego termina de arrancar, no hace falta hacer nada. Cuando la base de datos no es accesible, el gateway intenta la conexión tres veces, con dos segundos de diferencia, antes de salir. Si sale con `could not connect to Postgres`, revisa `store.postgres_url`, incluido que indique un solo host, y la ruta de red hacia la base de datos. Si se agota el tiempo de espera de los intentos en lugar de ser rechazados, aumenta [`store.connect_timeout_seconds`](/docs/es/claude-apps-gateway-config#store) para darle más tiempo a cada uno. |

403| `/oauth/callback` muestra "Sign-in could not be completed" | Dominio de correo electrónico rechazado, falló la validación del id\_token, o `email_verified` es explícitamente `false`, que el gateway siempre rechaza sin posibilidad de sobrescribirlo | Revisa `allowed_email_domains` y que el IdP devuelva un claim `email` verificado. Para `email_verified: false`, corrige la verificación del lado del IdP. Si tu IdP emite el correo electrónico con un nombre de claim diferente, establece `oidc.email_claim`. |409| `/oauth/callback` muestra "Sign-in could not be completed" | Dominio de correo electrónico rechazado, falló la validación del id\_token, o `email_verified` es explícitamente `false`, que el gateway siempre rechaza sin posibilidad de sobrescribirlo | Revisa `allowed_email_domains` y que el IdP devuelva un claim `email` verificado. Para `email_verified: false`, corrige la verificación del lado del IdP. Si tu IdP emite el correo electrónico con un nombre de claim diferente, establece `oidc.email_claim`. |

404| Registro: `token exchange failed request_id=<id>: id_token missing email claim` | El IdP no incluye `email` en el id\_token de forma predeterminada. Este rechazo solo se produce cuando `allowed_email_domains` está establecido; sin él, la falta de correo electrónico genera una sesión sin correo electrónico | Configura el IdP para que emita `email` en el id\_token. Okta: agrega `email` a los claims del token de ID de un servidor de autorización personalizado. Entra: agrega `email` como claim opcional en el registro de la aplicación. PingFederate: habilita una OpenID Connect Policy que emita `email`. Si el IdP sirve `email` desde el endpoint de userinfo pero no lo incluye en el id\_token, como el servidor de autorización de organización de Okta, establece `oidc.userinfo_fallback: true`. |410| Registro: `token exchange failed request_id=<id>: id_token missing email claim` | El IdP no incluye `email` en el id\_token de forma predeterminada. Este rechazo solo se produce cuando `allowed_email_domains` está establecido; sin él, la falta de correo electrónico genera una sesión sin correo electrónico | Configura el IdP para que emita `email` en el id\_token. Okta: agrega `email` a los claims del token de ID de un servidor de autorización personalizado. Entra: agrega `email` como claim opcional en el registro de la aplicación. PingFederate: habilita una OpenID Connect Policy que emita `email`. Si el IdP sirve `email` desde el endpoint de userinfo pero no lo incluye en el id\_token, como el servidor de autorización de organización de Okta, establece `oidc.userinfo_fallback: true`. |

405| Registro: `refresh failed request_id=<id>: invalid_token (…) (at userinfo_no_id_token, …)`, y los desarrolladores ven `Cloud gateway session expired` cada `session.ttl_hours` | El IdP aceptó el token de actualización pero no devolvió ningún id\_token con él, así que el gateway solicitó los claims del usuario al endpoint de userinfo del IdP. El IdP rechazó allí el token de acceso actualizado. El gateway responde `temporarily_unavailable`, por lo que Claude Code conserva el token de actualización pero no puede renovar la sesión. Las versiones del gateway anteriores a v2.1.260 registran la misma línea sin el detalle `(at …)`. | Establece [`oidc.scope_on_refresh: true`](/docs/es/claude-apps-gateway-config#oidc), disponible en el gateway v2.1.260 o posterior, para que la solicitud de actualización pida `openid` de nuevo. Algunos IdP, como Okta, devuelven un id\_token en la actualización solo cuando se solicita. En PingFederate, habilita **Return ID Token On Refresh Grant** en **Applications > OAuth > OpenID Connect Policy Management** en su lugar. La clave no cambia el comportamiento de PingFederate. Para otros IdP que sigan omitiéndolo, verifica si el endpoint de userinfo acepta tokens de acceso emitidos por una actualización. Como solución provisional, aumenta [`session.ttl_hours`](/docs/es/claude-apps-gateway-config#session). Consulta [Configuración del proveedor de identidad](#identity-provider-setup) para conocer la contrapartida en cuanto al desaprovisionamiento. |411| Registro: `refresh failed request_id=<id>: invalid_token (…) (at userinfo_no_id_token, …)`, y los desarrolladores ven `Cloud gateway session expired` cada `session.ttl_hours` | El IdP aceptó el token de actualización pero no devolvió ningún id\_token con él, así que el gateway solicitó los claims del usuario al endpoint de userinfo del IdP. El IdP rechazó allí el token de acceso actualizado. El gateway responde `temporarily_unavailable`, por lo que Claude Code conserva el token de actualización pero no puede renovar la sesión. Las versiones del gateway anteriores a v2.1.260 registran la misma línea sin el detalle `(at …)`. | Establece [`oidc.scope_on_refresh: true`](/docs/es/claude-apps-gateway-config#oidc), disponible en el gateway v2.1.260 o posterior, para que la solicitud de actualización pida `openid` de nuevo. Algunos IdP, como Okta, devuelven un id\_token en la actualización solo cuando se solicita. En PingFederate, habilita **Return ID Token On Refresh Grant** en **Applications > OAuth > OpenID Connect Policy Management** en su lugar. La clave no cambia el comportamiento de PingFederate. Para otros IdP que sigan omitiéndolo, verifica si el endpoint de userinfo acepta tokens de acceso emitidos por una actualización. Como solución provisional, aumenta [`session.ttl_hours`](/docs/es/claude-apps-gateway-config#session). Consulta [Configuración del proveedor de identidad](#identity-provider-setup) para conocer la contrapartida en cuanto al desaprovisionamiento. |

Details

168 La pista de EKS reutiliza ambos documentos de política en un rol de IRSA en lugar de los dos roles de ECS; consulte el paso de implementación.168 La pista de EKS reutiliza ambos documentos de política en un rol de IRSA en lugar de los dos roles de ECS; consulte el paso de implementación.

169 </Step>169 </Step>

170 170 

171 <Step title="Aprovisione Amazon RDS para PostgreSQL">171 <Step title="Aprovisiona Amazon RDS para PostgreSQL">

172 La instancia se ejecuta en las subredes privadas sin dirección pública y con cifrado de almacenamiento activado. La versión del motor se fija en Postgres 16, que satisface el piso compatible del gateway de PostgreSQL 14 y garantiza que la familia del grupo de parámetros a continuación coincida con la instancia.172 La instancia ejecuta Postgres 16 en las subredes privadas, sin dirección pública y con el cifrado de almacenamiento activado.

173 173 

174 Primero, cree el grupo de subredes que coloca la base de datos en las subredes privadas, y un grupo de parámetros con `rds.force_ssl=1` para que el servidor rechace las conexiones de texto sin formato. La versión del motor se fija una vez porque la familia del grupo de parámetros debe coincidir con la versión principal del motor que ejecuta la instancia:174 Primero, cree el grupo de subredes que coloca la base de datos en las subredes privadas, y un grupo de parámetros con `rds.force_ssl=1` para que el servidor rechace las conexiones de texto sin formato. La versión del motor se fija una vez porque la familia del grupo de parámetros debe coincidir con la versión principal del motor que ejecuta la instancia:

175 175 

Details

416* **Máquinas virtuales aisladas**: cada sesión se ejecuta en una VM aislada administrada por Anthropic. Las sesiones que su organización enruta a un [entorno autohospedado](/docs/es/self-hosted-environments) se ejecutan en su propia infraestructura en su lugar, donde el aislamiento es responsabilidad de su implementación416* **Máquinas virtuales aisladas**: cada sesión se ejecuta en una VM aislada administrada por Anthropic. Las sesiones que su organización enruta a un [entorno autohospedado](/docs/es/self-hosted-environments) se ejecutan en su propia infraestructura en su lugar, donde el aislamiento es responsabilidad de su implementación

417* <span id="default-allowed-domains" />**Controles de acceso a la red**: en entornos alojados por Anthropic, el acceso a la red se limita de forma predeterminada y puede deshabilitarse. Consulte [Acceso a la red](/docs/es/cloud-environments#network-access) para los niveles de acceso, los [dominios permitidos predeterminados](/docs/es/cloud-environments#default-allowed-domains) y el tráfico que no pasa por la lista de permitidos. En un entorno autohospedado, usted restringe la salida de la sesión en su propio límite de red. Cuando se ejecuta con acceso a la red deshabilitado, Claude Code aún puede comunicarse con la API de Anthropic, lo que puede permitir que los datos salgan de la VM.417* <span id="default-allowed-domains" />**Controles de acceso a la red**: en entornos alojados por Anthropic, el acceso a la red se limita de forma predeterminada y puede deshabilitarse. Consulte [Acceso a la red](/docs/es/cloud-environments#network-access) para los niveles de acceso, los [dominios permitidos predeterminados](/docs/es/cloud-environments#default-allowed-domains) y el tráfico que no pasa por la lista de permitidos. En un entorno autohospedado, usted restringe la salida de la sesión en su propio límite de red. Cuando se ejecuta con acceso a la red deshabilitado, Claude Code aún puede comunicarse con la API de Anthropic, lo que puede permitir que los datos salgan de la VM.

418* **Protección de credenciales**: en entornos alojados por Anthropic, las credenciales de git y las claves de firma permanecen fuera del sandbox, y un proxy se autentica en nombre de la sesión con credenciales de alcance. En un entorno autohospedado, su implementación proporciona credenciales de git; consulte [Configurar git](/docs/es/self-hosted-environments-deploy#configure-git)418* **Protección de credenciales**: en entornos alojados por Anthropic, las credenciales de git y las claves de firma permanecen fuera del sandbox, y un proxy se autentica en nombre de la sesión con credenciales de alcance. En un entorno autohospedado, su implementación proporciona credenciales de git; consulte [Configurar git](/docs/es/self-hosted-environments-deploy#configure-git)

419* **Credenciales de API**: en entornos alojados por Anthropic en planes Pro y Max, las claves que [agrega a un entorno en la nube](/docs/es/cloud-environments#add-api-credentials) permanecen fuera del sandbox de la misma manera, adjuntas a solicitudes coincidentes después de que salen de la sesión. Un entorno autohospedado no tiene credenciales de API, y los planes Team y Enterprise aún no las tienen419* **Secretos de red**: en entornos alojados por Anthropic en planes Pro y Max, las claves que [agregas a un entorno en la nube](/docs/es/cloud-environments#add-api-credentials) permanecen fuera del sandbox de la misma manera, adjuntas a solicitudes coincidentes después de que salen de la sesión. Un entorno autohospedado no tiene secretos de red, y los planes Team y Enterprise aún no los tienen

420* **Análisis seguro**: el código se analiza y modifica dentro del entorno aislado de la sesión antes de crear PRs420* **Análisis seguro**: el código se analiza y modifica dentro del entorno aislado de la sesión antes de crear PRs

421 421 

422<h2 id="troubleshooting">422<h2 id="troubleshooting">


442`claude --cloud` y `claude --teleport` requieren iniciar sesión con una cuenta de claude.ai. Si te autenticas con una clave de API, o tus detalles de cuenta almacenados están obsoletos, verás uno de estos:442`claude --cloud` y `claude --teleport` requieren iniciar sesión con una cuenta de claude.ai. Si te autenticas con una clave de API, o tus detalles de cuenta almacenados están obsoletos, verás uno de estos:

443 443 

444* `Unable to get organization UUID`444* `Unable to get organization UUID`

445* Un mensaje de que la autenticación con clave de API no es suficiente445* ``Cloud sessions need a claude.ai sign-in. Run `claude auth login` (or /login in a local session), then try again.``

446* `Error loading Claude Code sessions` en el selector de sesiones, cuando ejecutas `claude --teleport` sin un ID de sesión446* `Error loading Claude Code sessions` en el selector de sesiones, cuando ejecutas `claude --teleport` sin un ID de sesión

447 447 

448Ejecuta `/login` para iniciar sesión con tu cuenta de claude.ai, luego reintenta el comando. Si el error nombra tu proveedor en su lugar, consulta la [tabla de errores](#errors-when-sending-to-a-cloud-session): las sesiones en la nube no están disponibles a través de proveedores de terceros.448Ejecuta [`claude auth login`](/docs/es/cli-reference#cli-commands) en tu shell para iniciar sesión con tu cuenta de claude.ai, luego reintenta el comando. Dentro de una sesión en ejecución, `/login` hace lo mismo. Si el error nombra tu proveedor en su lugar, consulta la [tabla de errores](#errors-when-sending-to-a-cloud-session): las sesiones en la nube no están disponibles a través de proveedores de terceros.

449 

450De la v2.1.274 a la v2.1.289, el mensaje de inicio de sesión decía `Claude Code cloud sessions require authentication with a Claude.ai account. API key authentication is not sufficient. Please run /login to authenticate, or check your authentication status with /status.`

449 451 

450<h3 id="remote-control-session-expired-or-access-denied">452<h3 id="remote-control-session-expired-or-access-denied">

451 Sesión de Control Remoto expirada o acceso denegado453 Sesión de Control Remoto expirada o acceso denegado

Details

34 oneLiner: 'Project instructions Claude reads every session',34 oneLiner: 'Project instructions Claude reads every session',

35 when: 'Loaded into context at the start of every session',35 when: 'Loaded into context at the start of every session',

36 description: 'Project-specific instructions that shape how Claude works in this repository. Put your conventions, common commands, and architectural context here so Claude operates with the same assumptions your team does.',36 description: 'Project-specific instructions that shape how Claude works in this repository. Put your conventions, common commands, and architectural context here so Claude operates with the same assumptions your team does.',

37 tips: ['Target under 200 lines. Longer files still load in full but may reduce adherence', <>CLAUDE.md loads into every session. If something only matters for specific tasks, move it to a <A href="/docs/en/skills">skill</A> or a path-scoped <A href="/docs/en/memory#organize-rules-with-claude/rules/">rule</A> so it loads only when needed</>, 'List the commands you run most, like build, test, and format, so Claude knows them without you spelling them out each time', <>Run <C>/memory</C> to open and edit CLAUDE.md from within a session</>, <>Also works at <C>.claude/CLAUDE.md</C> if you prefer to keep the project root clean</>, <>If your repo already has an <C>AGENTS.md</C> for other coding agents, Claude Code <A href="/docs/en/memory#agents-md">can read that</A> on its own or alongside CLAUDE.md</>],37 tips: ['Target under 200 lines. Longer files still load in full but may reduce adherence', <>CLAUDE.md loads into every session. If something only matters for specific tasks, move it to a <A href="/docs/en/skills">skill</A> or a path-scoped <A href="/docs/en/memory#organize-rules-with-claude/rules/">rule</A> so it loads only when needed</>, 'List the commands you run most, like build, test, and format, so Claude knows them without you spelling them out each time', <>Run <C>/memory</C> to open and edit CLAUDE.md from within a session</>, <>Also works at <C>.claude/CLAUDE.md</C> if you prefer to keep the project root clean</>, <>If your repo already has an <C>AGENTS.md</C> for other coding agents, Claude Code <A href="/docs/en/memory#agents-md">can read that</A> in place of a <C>CLAUDE.md</C></>],

38 exampleIntro: 'This example is for a TypeScript and React project. It lists the build and test commands, the framework conventions Claude should follow, and project-specific rules like export style and file layout.',38 exampleIntro: 'This example is for a TypeScript and React project. It lists the build and test commands, the framework conventions Claude should follow, and project-specific rules like export style and file layout.',

39 example: `# Project conventions39 example: `# Project conventions

40 40 


164 icon: 'folder',164 icon: 'folder',

165 color: '#9B7BC4',165 color: '#9B7BC4',

166 oneLiner: 'Topic-scoped instructions, optionally gated by file paths',166 oneLiner: 'Topic-scoped instructions, optionally gated by file paths',

167 when: <>Rules without <C>paths:</C> load at session start. Rules with <C>paths:</C> load when a matching file enters context</>,167 when: <>Rules without <C>paths:</C> load at session start. Rules with <C>paths:</C> load when Claude reads, writes, or edits a matching file</>,

168 description: [<>Project instructions split into topic files that can load conditionally based on file paths. A rule without <C>paths:</C> frontmatter loads at session start like CLAUDE.md; a rule with <C>paths:</C> loads only when Claude reads, writes, or edits a matching file.</>, <>Like CLAUDE.md, rules are guidance Claude reads, not configuration Claude Code enforces. For guaranteed behavior use <A href="/docs/en/hooks">hooks</A> or <A href="/docs/en/permissions">permissions</A>.</>],168 description: [<>Project instructions split into topic files that can load conditionally based on file paths. A rule without <C>paths:</C> frontmatter loads at session start like CLAUDE.md; a rule with <C>paths:</C> loads only when Claude reads, writes, or edits a matching file.</>, <>Like CLAUDE.md, rules are guidance Claude reads, not configuration Claude Code enforces. For guaranteed behavior use <A href="/docs/en/hooks">hooks</A> or <A href="/docs/en/permissions">permissions</A>.</>],

169 tips: [<>Use <C>paths:</C> frontmatter with globs to scope rules to directories or file types</>, <>Subdirectories work: <C>.claude/rules/frontend/react.md</C> is discovered automatically</>, 'When CLAUDE.md approaches 200 lines, start splitting into rules'],169 tips: [<>Use <C>paths:</C> frontmatter with globs to scope rules to directories or file types</>, <>Subdirectories work: <C>.claude/rules/frontend/react.md</C> is discovered automatically</>, 'When CLAUDE.md approaches 200 lines, start splitting into rules'],

170 docsLink: '/en/memory#organize-rules-with-claude/rules/',170 docsLink: '/en/memory#organize-rules-with-claude/rules/',


176 color: '#9B7BC4',176 color: '#9B7BC4',

177 badge: 'committed',177 badge: 'committed',

178 oneLiner: 'Test conventions scoped to test files',178 oneLiner: 'Test conventions scoped to test files',

179 when: <>Loaded when Claude reads a file matching the <C>paths:</C> globs below</>,179 when: <>Loaded when Claude reads, writes, or edits a file matching the <C>paths:</C> globs below</>,

180 description: <>An example rule that only loads when Claude is working on test files. The <C>paths:</C> globs in the frontmatter define which files trigger it; here, anything ending in .test.ts or .test.tsx. For other files, this rule is not loaded into context.</>,180 description: <>An example rule that only loads when Claude is working on test files. The <C>paths:</C> globs in the frontmatter define which files trigger it; here, anything ending in .test.ts or .test.tsx. For other files, this rule is not loaded into context.</>,

181 example: `---181 example: `---

182paths:182paths:


197 color: '#9B7BC4',197 color: '#9B7BC4',

198 badge: 'committed',198 badge: 'committed',

199 oneLiner: 'API conventions scoped to backend code',199 oneLiner: 'API conventions scoped to backend code',

200 when: <>Loaded when Claude reads a file matching the <C>paths:</C> glob below</>,200 when: <>Loaded when Claude reads, writes, or edits a file matching the <C>paths:</C> glob below</>,

201 description: <>A second example showing a rule scoped to backend code. The <C>paths:</C> glob matches files under src/api/, so these conventions load only when Claude is editing API routes.</>,201 description: <>A second example showing a rule scoped to backend code. The <C>paths:</C> glob matches files under src/api/, so these conventions load only when Claude is working on API routes.</>,

202 example: `---202 example: `---

203paths:203paths:

204 - "src/api/**/*.ts"204 - "src/api/**/*.ts"


605 icon: 'folder',605 icon: 'folder',

606 color: '#9B7BC4',606 color: '#9B7BC4',

607 oneLiner: 'User-level rules that apply to every project',607 oneLiner: 'User-level rules that apply to every project',

608 when: <>Rules without <C>paths:</C> load at session start. Rules with <C>paths:</C> load when a matching file enters context</>,608 when: <>Rules without <C>paths:</C> load at session start. Rules with <C>paths:</C> load when Claude reads, writes, or edits a matching file</>,

609 description: 'Same as project .claude/rules/ but applies everywhere. Use this for conventions you want across all your work, like personal code style or commit message format.',609 description: 'Same as project .claude/rules/ but applies everywhere. Use this for conventions you want across all your work, like personal code style or commit message format.',

610 docsLink: '/en/memory#organize-rules-with-claude/rules/',610 docsLink: '/en/memory#organize-rules-with-claude/rules/',

611 children: []611 children: []


1434 1434 

1435En Windows, `~/.claude` se resuelve a `%USERPROFILE%\.claude`. Si establece [`CLAUDE_CONFIG_DIR`](/docs/es/env-vars), cada ruta `~/.claude` en esta página vive bajo ese directorio en su lugar.1435En Windows, `~/.claude` se resuelve a `%USERPROFILE%\.claude`. Si establece [`CLAUDE_CONFIG_DIR`](/docs/es/env-vars), cada ruta `~/.claude` en esta página vive bajo ese directorio en su lugar.

1436 1436 

1437La mayoría de los usuarios solo editan `CLAUDE.md` y `settings.json`. Si su repositorio ya tiene un `AGENTS.md` para otros agentes de codificación, Claude Code [puede leerlo](/docs/es/memory#agents-md) por su cuenta o junto con `CLAUDE.md`. El resto del directorio es opcional: agregue skills, rules o subagents según sea necesario.1437La mayoría de los usuarios solo editan `CLAUDE.md` y `settings.json`. Si tu repositorio ya tiene un `AGENTS.md` para otros agentes de codificación, Claude Code [puede leerlo](/docs/es/memory#agents-md) en lugar de un `CLAUDE.md`. El resto del directorio es opcional: agrega skills, reglas o subagentes según los necesites.

1438 1438 

1439<h2 id="explore-the-directory">1439<h2 id="explore-the-directory">

1440 Explorar el directorio1440 Explorar el directorio


1452 1452 

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

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

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

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

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

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

1459 1459 

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


1487<Note>1487<Note>

1488 Varias cosas pueden anular lo que coloque en estos archivos:1488 Varias cosas pueden anular lo que coloque en estos archivos:

1489 1489 

1490 * [Configuración administrada](/docs/es/server-managed-settings) implementada por su organización tiene precedencia sobre todo, aparte de las [excepciones bajo Precedencia de configuración](/docs/es/settings#exceptions-to-managed-settings-precedence)1490 * La [configuración administrada](/docs/es/server-managed-settings) implementada por tu organización tiene precedencia sobre todos los archivos de configuración y cualquier valor de `--settings`, aparte de las [excepciones bajo Precedencia de configuración](/docs/es/settings#exceptions-to-managed-settings-precedence)

1491 * Las banderas CLI como `--permission-mode` o `--settings` anulan `settings.json` para esa sesión1491 * Las banderas CLI como `--permission-mode` o `--settings` anulan `settings.json` para esa sesión

1492 * Algunas variables de entorno tienen precedencia sobre su configuración equivalente, pero esto varía: consulte la [referencia de variables de entorno](/docs/es/env-vars) para cada una1492 * Algunas variables de entorno tienen precedencia sobre su configuración equivalente, pero esto varía: consulte la [referencia de variables de entorno](/docs/es/env-vars) para cada una

1493 1493 


1708 1708 

1709Pase `--all` en lugar de una ruta para purgar el estado de cada proyecto a la vez, lo que elimina `history.jsonl` directamente en lugar de filtrarlo. Pase `-i` para recorrer el plan de eliminación un elemento a la vez.1709Pase `--all` en lugar de una ruta para purgar el estado de cada proyecto a la vez, lo que elimina `history.jsonl` directamente en lugar de filtrarlo. Pase `-i` para recorrer el plan de eliminación un elemento a la vez.

1710 1710 

1711En un script, verifica la salida en lugar de solo el estado de salida. Una ejecución que elimina todo lo de su plan termina con `Purged N item(s)`. Trata esa línea como la señal de éxito.

1712 

1713El comando deja `shell-snapshots/` y `backups/` intactos porque no están limitados al proyecto, y advierte sobre ellos en la salida del plan. Si alguien ejecutó [`/heapdump`](/docs/es/troubleshooting#high-cpu-or-memory-usage) en la máquina, elimina también los archivos `.heapsnapshot` que escribió. Una instantánea del heap contiene la conversación completa y cualquier credencial que tuviera el proceso, y ni el barrido de retención ni la purga la tocan.1711El comando deja `shell-snapshots/` y `backups/` intactos porque no están limitados al proyecto, y advierte sobre ellos en la salida del plan. Si alguien ejecutó [`/heapdump`](/docs/es/troubleshooting#high-cpu-or-memory-usage) en la máquina, elimina también los archivos `.heapsnapshot` que escribió. Una instantánea del heap contiene la conversación completa y cualquier credencial que tuviera el proceso, y ni el barrido de retención ni la purga la tocan.

1714 1712 

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

Details

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

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

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

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

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

65 65 

66Los hilos en la nube no recogen nada de la configuración de Claude Code en tu propia máquina. [Obtener skills, plugins, conectores y herramientas en hilos](#get-skills-plugins-connectors-and-tools-into-threads) cubre cómo darles lo que de otro modo les faltaría.66Los hilos en la nube no recogen nada de la configuración de Claude Code en tu propia máquina. [Obtener skills, plugins, conectores y herramientas en hilos](#get-skills-plugins-connectors-and-tools-into-threads) cubre cómo darles lo que de otro modo les faltaría.


92 92 

93* **Plan**: estás en Pro o Max y **Projects** aparece en tu barra lateral.93* **Plan**: estás en Pro o Max y **Projects** aparece en tu barra lateral.

94* **GitHub, si el proyecto trabajará en código**: tu código está en github.com en lugar de GitHub Enterprise Server, GitLab o Bitbucket, tu cuenta de GitHub conectada tiene acceso de inserción a él, y la Claude GitHub App está instalada en él. Si conectaste GitHub con [`/web-setup`](/docs/es/web-quickstart#connect-from-your-terminal), ese token permite que tus otras sesiones en la nube accedan a un repositorio pero no es suficiente para hilos de proyecto, que necesitan la Claude GitHub App. [Configurar acceso a GitHub](#set-up-github-access) tiene los pasos.94* **GitHub, si el proyecto trabajará en código**: tu código está en github.com en lugar de GitHub Enterprise Server, GitLab o Bitbucket, tu cuenta de GitHub conectada tiene acceso de inserción a él, y la Claude GitHub App está instalada en él. Si conectaste GitHub con [`/web-setup`](/docs/es/web-quickstart#connect-from-your-terminal), ese token permite que tus otras sesiones en la nube accedan a un repositorio pero no es suficiente para hilos de proyecto, que necesitan la Claude GitHub App. [Configurar acceso a GitHub](#set-up-github-access) tiene los pasos.

95* **Red, credenciales y herramientas**: para hilos en la nube, estos provienen del [entorno en la nube](#choose-an-environment-for-threads) del proyecto. El entorno predeterminado ya alcanza [registros de paquetes comunes](/docs/es/cloud-environments#default-allowed-domains), así que verifica esto solo si el trabajo necesita otros dominios, un secreto, o una herramienta que no esté preinstalada. Si el trabajo necesita un servidor MCP, verifica que aparezca como conectado en tus [conectores de claude.ai](https://claude.ai/customize/connectors).95* **Acceso a la red, secretos y herramientas**: para hilos en la nube, estos provienen del [entorno en la nube](#choose-an-environment-for-threads) del proyecto. El entorno predeterminado ya alcanza [registros de paquetes comunes](/docs/es/cloud-environments#default-allowed-domains), así que verifica esto solo si el trabajo necesita otros dominios, un secreto, o una herramienta que no esté preinstalada. Si el trabajo necesita un servidor MCP, verifica que aparezca como conectado en tus [conectores de claude.ai](https://claude.ai/customize/connectors).

96 96 

97<h3 id="start-a-new-project-from-scratch">97<h3 id="start-a-new-project-from-scratch">

98 Comienza un nuevo proyecto desde cero98 Comienza un nuevo proyecto desde cero


396 Elegir un entorno para los hilos396 Elegir un entorno para los hilos

397</h3>397</h3>

398 398 

399Cada nuevo hilo en la nube comienza en el [entorno en la nube](/docs/es/cloud-environments) del proyecto. El entorno establece a qué dominios pueden acceder los hilos, qué variables de entorno tienen, qué credenciales de API se agregan a sus solicitudes, y qué instala el script de configuración antes de que Claude comience. Los hilos en la nube usan un entorno predeterminado alojado por Anthropic hasta que elige uno en **Configuración del proyecto > Entorno**.399Cada nuevo hilo en la nube comienza en el [entorno en la nube](/docs/es/cloud-environments) del proyecto. El entorno establece a qué dominios pueden acceder los hilos, qué variables de entorno tienen, qué secretos de red se agregan a sus solicitudes y qué instala el script de configuración antes de que Claude comience. Los hilos en la nube usan un entorno predeterminado alojado por Anthropic hasta que eliges uno en **Configuración del proyecto > Entorno**.

400 400 

401Si los hilos en la nube necesitan acceder a una API interna o a un registro de paquetes privado, o necesitan un token que su máquina normalmente contiene, cambie el entorno en lugar del proyecto: vea [Acceso de red](/docs/es/cloud-environments#network-access), [Agregar credenciales de API](/docs/es/cloud-environments#add-api-credentials) y [Scripts de configuración](/docs/es/cloud-environments#setup-scripts).401Si los hilos en la nube necesitan acceder a una API interna o a un registro de paquetes privado, o necesitan un token que tu máquina normalmente tiene, cambia el entorno en lugar del proyecto: consulta [Acceso de red](/docs/es/cloud-environments#network-access), [Agregar secretos de red](/docs/es/cloud-environments#add-api-credentials) y [Scripts de configuración](/docs/es/cloud-environments#setup-scripts).

402 402 

403<h3 id="get-skills-plugins-connectors-and-tools-into-threads">403<h3 id="get-skills-plugins-connectors-and-tools-into-threads">

404 Obtener skills, plugins, conectores y herramientas en los hilos404 Obtener skills, plugins, conectores y herramientas en los hilos


590</h2>590</h2>

591 591 

592* [Usa Claude Code en la nube](/docs/es/claude-code-on-the-web): cómo funcionan las sesiones en la nube detrás de cada hilo, incluidas las opciones de acceso a GitHub y auto-fix en solicitudes de extracción592* [Usa Claude Code en la nube](/docs/es/claude-code-on-the-web): cómo funcionan las sesiones en la nube detrás de cada hilo, incluidas las opciones de acceso a GitHub y auto-fix en solicitudes de extracción

593* [Configura entornos en la nube](/docs/es/cloud-environments): cambia a qué pueden llegar los hilos en la red, dale variables de entorno y credenciales de API, e instala herramientas con un script de configuración593* [Configura entornos en la nube](/docs/es/cloud-environments): cambia a qué pueden llegar los hilos en la nube en la red, dales variables de entorno y secretos de red, e instala herramientas con un script de configuración

594* [Automatiza trabajo con rutinas](/docs/es/routines): horarios, disparadores, y administración para rutinas, incluidas las que Claude crea desde un proyecto594* [Automatiza trabajo con rutinas](/docs/es/routines): horarios, disparadores, y administración para rutinas, incluidas las que Claude crea desde un proyecto

595* [Administra múltiples agentes con vista de agente](/docs/es/agent-view): ejecuta y rastrea varias sesiones en tu propia máquina cuando el trabajo necesita herramientas o servicios que solo tu máquina puede alcanzar595* [Administra múltiples agentes con vista de agente](/docs/es/agent-view): ejecuta y rastrea varias sesiones en tu propia máquina cuando el trabajo necesita herramientas o servicios que solo tu máquina puede alcanzar

596* [Proyectos rediseñados: de carpeta a conversación](https://claude.com/blog/projects-redesigned): el anuncio de lanzamiento, con el pensamiento detrás de hacer que un proyecto sea una conversación con Claude596* [Proyectos rediseñados: de carpeta a conversación](https://claude.com/blog/projects-redesigned): el anuncio de lanzamiento, con el pensamiento detrás de hacer que un proyecto sea una conversación con Claude

Details

31| `claude attach <id\|name>` | Adjuntarse a una [sesión en segundo plano](/docs/es/agent-view#manage-sessions-from-the-shell) en esta terminal. Pasar parte del nombre de una sesión en ejecución en lugar del ID requiere Claude Code v2.1.290 o posterior | `claude attach 7c5dcf5d` |31| `claude attach <id\|name>` | Adjuntarse a una [sesión en segundo plano](/docs/es/agent-view#manage-sessions-from-the-shell) en esta terminal. Pasar parte del nombre de una sesión en ejecución en lugar del ID requiere Claude Code v2.1.290 o posterior | `claude attach 7c5dcf5d` |

32| `claude auto-mode defaults` | Imprimir las reglas integradas del clasificador del [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode) como JSON. Usa `claude auto-mode config` para ver tu configuración efectiva con los ajustes aplicados. `--label <prefix>` imprime solo las reglas cuya etiqueta comienza con ese prefijo, sin distinguir mayúsculas y minúsculas. Requiere Claude Code v2.1.208 o posterior | `claude auto-mode defaults --label 'Git Destructive'` |32| `claude auto-mode defaults` | Imprimir las reglas integradas del clasificador del [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode) como JSON. Usa `claude auto-mode config` para ver tu configuración efectiva con los ajustes aplicados. `--label <prefix>` imprime solo las reglas cuya etiqueta comienza con ese prefijo, sin distinguir mayúsculas y minúsculas. Requiere Claude Code v2.1.208 o posterior | `claude auto-mode defaults --label 'Git Destructive'` |

33| `claude auto-mode reset` | Restaurar la configuración predeterminada del [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode) eliminando la sección `autoMode` de tu archivo de configuración de usuario. Solicita confirmación antes de escribir; pasa `-y`/`--yes` para omitir la solicitud. Las reglas de la [configuración administrada](/docs/es/server-managed-settings) o del flag `--settings` siguen aplicándose. Requiere Claude Code v2.1.212 o posterior. Consulta [Inspeccionar los valores predeterminados y tu configuración efectiva](/docs/es/auto-mode-config#inspect-the-defaults-and-your-effective-config) | `claude auto-mode reset --yes` |33| `claude auto-mode reset` | Restaurar la configuración predeterminada del [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode) eliminando la sección `autoMode` de tu archivo de configuración de usuario. Solicita confirmación antes de escribir; pasa `-y`/`--yes` para omitir la solicitud. Las reglas de la [configuración administrada](/docs/es/server-managed-settings) o del flag `--settings` siguen aplicándose. Requiere Claude Code v2.1.212 o posterior. Consulta [Inspeccionar los valores predeterminados y tu configuración efectiva](/docs/es/auto-mode-config#inspect-the-defaults-and-your-effective-config) | `claude auto-mode reset --yes` |

34| `claude daemon logs` | Seguir el archivo de registro del [supervisor](/docs/es/agent-view#the-supervisor-process) de sesiones en segundo plano, `~/.claude/daemon.log`, imprimiendo las líneas nuevas a medida que llegan hasta que presiones `Ctrl+C` | `claude daemon logs` |

35| `claude daemon run` | Ejecutar el [supervisor](/docs/es/agent-view#the-supervisor-process) de sesiones en segundo plano en primer plano en esta terminal, imprimiendo su registro | `claude daemon run` |

34| `claude daemon status` | Imprimir el estado del [supervisor](/docs/es/agent-view#the-supervisor-process) de sesiones en segundo plano, su versión, directorio de socket y recuento de trabajadores para diagnósticos. Sale con 1 si el supervisor no se está ejecutando | `claude daemon status` |36| `claude daemon status` | Imprimir el estado del [supervisor](/docs/es/agent-view#the-supervisor-process) de sesiones en segundo plano, su versión, directorio de socket y recuento de trabajadores para diagnósticos. Sale con 1 si el supervisor no se está ejecutando | `claude daemon status` |

35| `claude daemon stop --any` | Detener el [supervisor](/docs/es/agent-view#the-supervisor-process) de sesiones en segundo plano y las sesiones que aloja. Pasa `--keep-workers` para dejar las sesiones en segundo plano en ejecución para que el próximo supervisor se reconecte a ellas. `--any` confirma la detención de un supervisor bajo demanda, que es el predeterminado. Usa esto para recuperarte de un [supervisor que no responde](/docs/es/agent-view#agent-view-says-the-background-service-did-not-respond) | `claude daemon stop --any --keep-workers` |37| `claude daemon stop --any` | Detener el [supervisor](/docs/es/agent-view#the-supervisor-process) de sesiones en segundo plano y las sesiones que aloja. Pasa `--keep-workers` para dejar las sesiones en segundo plano en ejecución para que el próximo supervisor se reconecte a ellas. `--any` confirma la detención de un supervisor bajo demanda, que es el predeterminado. Usa esto para recuperarte de un [supervisor que no responde](/docs/es/agent-view#agent-view-says-the-background-service-did-not-respond) | `claude daemon stop --any --keep-workers` |

36| `claude doctor` | Imprimir diagnósticos de solo lectura de instalación y configuración desde la terminal sin iniciar una sesión, incluida la salud de la instalación, los errores de validación de archivos de configuración y la idoneidad para Remote Control. Para la verificación de configuración dentro de la sesión que también puede aplicar correcciones, ejecuta [`/doctor`](/docs/es/commands#all-commands) | `claude doctor` |38| `claude doctor` | Imprimir diagnósticos de solo lectura de instalación y configuración desde la terminal sin iniciar una sesión, incluida la salud de la instalación, los errores de validación de archivos de configuración y la idoneidad para Remote Control. Para la verificación de configuración dentro de la sesión que también puede aplicar correcciones, ejecuta [`/doctor`](/docs/es/commands#all-commands) | `claude doctor` |


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

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

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

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

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

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

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

Details

10 Los entornos en la nube se aplican a [sesiones en la nube](/docs/es/claude-code-on-the-web), que están disponibles en planes Pro, Max y Team, y para usuarios de Enterprise con [asientos premium o asientos de Chat + Claude Code](https://support.claude.com/en/articles/11845131-use-claude-code-with-your-team-or-enterprise-plan).10 Los entornos en la nube se aplican a [sesiones en la nube](/docs/es/claude-code-on-the-web), que están disponibles en planes Pro, Max y Team, y para usuarios de Enterprise con [asientos premium o asientos de Chat + Claude Code](https://support.claude.com/en/articles/11845131-use-claude-code-with-your-team-or-enterprise-plan).

11</Note>11</Note>

12 12 

13Cada [sesión en la nube](/docs/es/claude-code-on-the-web) se ejecuta en un entorno en la nube. Puede configurar un entorno para permitir o denegar [acceso a la red](#access-levels), [establecer variables de entorno](#set-environment-variables) para la sesión, en planes Pro y Max almacenar [credenciales de API](#add-api-credentials) que las sesiones utilizan sin verlas, y ejecutar un [script de configuración](#setup-scripts) antes de que Claude comience a trabajar.13Cada [sesión en la nube](/docs/es/claude-code-on-the-web) se ejecuta en un entorno en la nube. Puedes configurar un entorno para permitir o denegar [acceso a la red](#access-levels), [establecer variables de entorno](#set-environment-variables) para la sesión, en planes Pro y Max almacenar [secretos de red](#add-api-credentials) que las sesiones utilizan sin verlos, y ejecutar un [script de configuración](#setup-scripts) antes de que Claude comience a trabajar.

14 14 

15Los mismos entornos se aplican dondequiera que inicie una sesión en la nube: la [aplicación de escritorio](/docs/es/desktop), la [aplicación móvil de Claude](/docs/es/mobile), su navegador en [claude.ai/code](https://claude.ai/code), la terminal con [`claude --cloud`](/docs/es/claude-code-on-the-web#from-terminal-to-cloud), [routines](/docs/es/routines) y [Claude Tag](https://claude.com/docs/claude-tag/overview). Cada una de estas superficies también puede enrutar a un [entorno autohospedado](/docs/es/self-hosted-environments). [Disponibilidad y limitaciones](/docs/es/self-hosted-environments#availability-and-limitations) cubre lo que Claude aún no puede usar cuando una sesión de Claude Tag se ejecuta en uno.15Los mismos entornos se aplican dondequiera que inicie una sesión en la nube: la [aplicación de escritorio](/docs/es/desktop), la [aplicación móvil de Claude](/docs/es/mobile), su navegador en [claude.ai/code](https://claude.ai/code), la terminal con [`claude --cloud`](/docs/es/claude-code-on-the-web#from-terminal-to-cloud), [routines](/docs/es/routines) y [Claude Tag](https://claude.com/docs/claude-tag/overview). Cada una de estas superficies también puede enrutar a un [entorno autohospedado](/docs/es/self-hosted-environments). [Disponibilidad y limitaciones](/docs/es/self-hosted-environments#availability-and-limitations) cubre lo que Claude aún no puede usar cuando una sesión de Claude Tag se ejecuta en uno.

16 16 


58 <Step title="Agregar o editar un entorno">58 <Step title="Agregar o editar un entorno">

59 Seleccione **Cloud** para enumerar sus entornos. Luego seleccione **Agregar entorno en la nube**, o pase el ratón sobre un entorno existente y seleccione el icono de configuración que aparece a la derecha.59 Seleccione **Cloud** para enumerar sus entornos. Luego seleccione **Agregar entorno en la nube**, o pase el ratón sobre un entorno existente y seleccione el icono de configuración que aparece a la derecha.

60 60 

61 El diálogo incluye el nombre, nivel de acceso a la red, variables de entorno y script de configuración. Cuando edita un entorno en la nube existente en un plan Pro o Max, el diálogo también incluye [credenciales de API](#add-api-credentials).61 El diálogo incluye el nombre, nivel de acceso a la red, variables de entorno y script de configuración. Cuando editas un entorno en la nube existente en un plan Pro o Max, el diálogo también incluye [secretos de red](#add-api-credentials).

62 62 

63 <Frame>63 <Frame>

64 <img src="https://mintcdn.com/claude-code/ZFId6l95856c5LSw/images/cloud-environment-dialog.png?fit=max&auto=format&n=ZFId6l95856c5LSw&q=85&s=30d4478b31d1f879f7ee287ddab32505" alt="El diálogo Nuevo entorno en la nube. Un campo Nombre con el texto de marcador de posición Default, un selector de Acceso a la red establecido en Trusted con enlaces a la política de red y niveles de acceso, un cuadro Variables de entorno que muestra texto de marcador de posición en formato .env con una nota de que los valores son visibles para cualquiera que use el entorno, un cuadro Script de configuración descrito como un script Bash que se ejecuta cuando comienza una nueva sesión antes de que se lance Claude Code, y botones Cancelar y Crear entorno." width="874" height="1372" data-path="images/cloud-environment-dialog.png" />64 <img src="https://mintcdn.com/claude-code/ZFId6l95856c5LSw/images/cloud-environment-dialog.png?fit=max&auto=format&n=ZFId6l95856c5LSw&q=85&s=30d4478b31d1f879f7ee287ddab32505" alt="El diálogo Nuevo entorno en la nube. Un campo Nombre con el texto de marcador de posición Default, un selector de Acceso a la red establecido en Trusted con enlaces a la política de red y niveles de acceso, un cuadro Variables de entorno que muestra texto de marcador de posición en formato .env con una nota de que los valores son visibles para cualquiera que use el entorno, un cuadro Script de configuración descrito como un script Bash que se ejecuta cuando comienza una nueva sesión antes de que se lance Claude Code, y botones Cancelar y Crear entorno." width="874" height="1372" data-path="images/cloud-environment-dialog.png" />


91 91 

92Una sesión en la nube también establece algunas variables por sí misma cuando inicia. Para [`CLAUDE_AUTOCOMPACT_PCT_OVERRIDE`](/docs/es/claude-code-on-the-web#manage-context), el valor que la sesión establece anula uno que agregue aquí, por lo que agregar esa clave aquí no tiene efecto.92Una sesión en la nube también establece algunas variables por sí misma cuando inicia. Para [`CLAUDE_AUTOCOMPACT_PCT_OVERRIDE`](/docs/es/claude-code-on-the-web#manage-context), el valor que la sesión establece anula uno que agregue aquí, por lo que agregar esa clave aquí no tiene efecto.

93 93 

94Cualquiera que use el entorno puede leer los valores. En planes Pro y Max, use una [credencial de API](#add-api-credentials) en su lugar para una clave que el proxy del agente pueda adjuntar a una solicitud. Las [solicitudes que nunca obtienen una credencial](#requests-that-never-get-the-credential) se enumeran allí.94Cualquiera que use el entorno puede leer los valores. En planes Pro y Max, usa en su lugar un [secreto de red](#add-api-credentials) para una clave que el proxy del agente pueda adjuntar a una solicitud. Las [solicitudes que nunca obtienen un secreto](#requests-that-never-get-the-credential) se enumeran allí.

95 95 

96<h3 id="add-api-credentials">96<h3 id="add-api-credentials">

97 Agregar credenciales de API97 Agregar secretos de red

98</h3>98</h3>

99 99 

100Una credencial de API es una clave de API o token que almacena en un entorno en la nube para que Claude pueda llamar a esa API desde cualquier sesión en el entorno sin ver la clave. El proxy del agente de Anthropic agrega la clave a las solicitudes de los hosts que enumera, después de que cada solicitud sale de la VM de la sesión. La clave nunca llega a Claude, los comandos que ejecuta, o las variables de entorno de la sesión.100Un secreto de red es una clave de API o token que almacenas en un entorno en la nube para que Claude pueda llamar a esa API desde cualquier sesión en el entorno sin ver la clave. El proxy del agente de Anthropic agrega la clave a las solicitudes de los hosts que enumeras, después de que cada solicitud sale de la VM de la sesión, por lo que la clave misma permanece fuera de la VM.

101 101 

102Las credenciales de API están disponibles en planes Pro y Max. No están disponibles en planes Team o Enterprise aún, por lo que la sección **Credenciales de API** no aparece en el diálogo de entorno en esos planes.102Los secretos de red están disponibles en planes Pro y Max. Aún no están disponibles en planes Team o Enterprise, por lo que la sección **Secretos de red** no aparece en el diálogo de entorno en esos planes.

103 103 

104<h4 id="requirements">104<h4 id="requirements">

105 Requisitos105 Requisitos

106</h4>106</h4>

107 107 

108Dos de estos deciden si puede agregar una credencial, y dos deciden si el proxy del agente puede usarla una vez agregada:108Estos requisitos deciden si puedes agregar un secreto y si el proxy del agente puede usarlo una vez agregado:

109 109 

110* **Rol**: un rol de administrador de la organización en su organización claude.ai110* **Rol**: un rol de administrador de la organización en su organización claude.ai

111 * En Team y Enterprise, los Propietarios lo tienen y los Administradores no111 * En Team y Enterprise, los Propietarios lo tienen y los Administradores no

112 * En Pro y Max, lo tiene en su propia organización112 * En Pro y Max, lo tiene en su propia organización

113* **Tipo de entorno**: un entorno en la nube alojado por Anthropic que ya existe. Un [entorno autohospedado](/docs/es/self-hosted-environments) no tiene credenciales de API113* **Tipo de entorno**: un entorno en la nube alojado por Anthropic que ya existe. Un [entorno autohospedado](/docs/es/self-hosted-environments) no tiene secretos de red

114* **Accesibilidad de API**: la API acepta conexiones desde internet, porque las solicitudes salen de la red de Anthropic114* **Accesibilidad de API**: la API acepta conexiones desde internet, porque las solicitudes salen de la red de Anthropic

115* **Claves de cifrado**: si su organización utiliza claves de cifrado administradas por el cliente, no puede guardar credenciales115* **Claves de cifrado**: si tu organización utiliza claves de cifrado administradas por el cliente, no puedes guardar secretos de red

116 116 

117<h4 id="add-a-credential">117<h4 id="add-a-credential">

118 Agregar una credencial118 Agregar un secreto

119</h4>119</h4>

120 120 

121Agregas credenciales una a la vez, y no puedes editar una credencial después de agregarla. Para cambiar los hosts o el valor de una credencial, elimínala y agrégala de nuevo.121Agregas secretos uno a la vez, y no puedes editar un secreto después de agregarlo. Para cambiar los hosts o el valor de un secreto, elimínalo y agrégalo de nuevo.

122 122 

123<Steps>123<Steps>

124 <Step title="Abrir las credenciales de API del entorno">124 <Step title="Abrir los secretos de red del entorno">

125 [Abre el entorno para editar](#configure-your-environment) en [claude.ai/code](https://claude.ai/code). En el diálogo **Editar entorno**, busca la sección **Credenciales de API**. Ves las credenciales que ya están en el entorno, cada una con los hosts a los que se aplica.125 [Abre el entorno para editar](#configure-your-environment) en [claude.ai/code](https://claude.ai/code). En el diálogo **Editar entorno**, busca la sección **Secretos de red**. Ves los secretos que ya están en el entorno, cada uno con los hosts a los que se aplica.

126 </Step>126 </Step>

127 127 

128 <Step title="Agregar la credencial">128 <Step title="Agregar el secreto">

129 Selecciona **Agregar credencial** y completa el formulario. Mantén el **Tipo de credencial** predeterminado, **Bearer**, para una clave de API que viaja en un encabezado de solicitud, y completa estos campos:129 Selecciona **Agregar secreto** y completa el formulario. Mantén el **Tipo de credencial** predeterminado, **Bearer**, para una clave de API que viaja en un encabezado de solicitud, y completa estos campos:

130 130 

131 * **Nombre**: una etiqueta para la credencial, como `API de facturación interna`131 * **Nombre**: una etiqueta para el secreto, como `Internal billing API`

132 * **Sitios web permitidos**: los hosts de la API, como `api.example.com`. Un `*.` inicial coincide con cada subdominio132 * **Sitios web permitidos**: los hosts de la API, como `api.example.com`. Un `*.` inicial coincide con cada subdominio

133 * **Encabezados personalizados**: una fila para el encabezado que lleva la clave. La fila comienza con `Authorization` como el **Nombre** del encabezado y `Bearer` como su **Prefijo**; pegue la clave misma como el **Valor**. Para un encabezado como `X-Api-Key` que toma el valor desnudo, cambie el nombre y borre el prefijo133 * **Encabezados personalizados**: una fila para el encabezado que lleva la clave. La fila comienza con `Authorization` como el **Nombre** del encabezado y `Bearer` como su **Prefijo**; pega la clave misma como el **Valor**. Para un encabezado como `X-Api-Key` que toma el valor sin prefijo, cambia el nombre y borra el prefijo

134 134 

135 Para una API que se autentica de otra manera, elija un **Tipo de credencial** diferente. La lista es la misma que [Claude Tag](https://claude.com/docs/claude-tag/overview), la integración de Slack para planes Team y Enterprise, ofrece para [conexiones](https://claude.com/docs/claude-tag/admins/add-connections).135 Para una API que se autentica de otra manera, elige un **Tipo de credencial** diferente. La lista es la misma que [Claude Tag](https://claude.com/docs/claude-tag/overview), la integración de Slack para planes Team y Enterprise, ofrece para [conexiones](https://claude.com/docs/claude-tag/admins/add-connections).

136 </Step>136 </Step>

137 137 

138 <Step title="Guardar la credencial">138 <Step title="Guardar el secreto">

139 Seleccione **Conectar**. La credencial aparece en la lista con sus hosts, guardada sin el botón **Guardar cambios** del diálogo. No puede ver el valor nuevamente después de guardar.139 Selecciona **Conectar**. El secreto aparece en la lista con sus hosts, guardado sin el botón **Guardar cambios** del diálogo. No puedes ver el valor nuevamente después de guardar.

140 </Step>140 </Step>

141</Steps>141</Steps>

142 142 

143Para confirmar que la credencial funciona, inicie una sesión en el entorno y pida a Claude que llame a la API, por ejemplo con `curl`. La API responde como si la clave estuviera en la solicitud, y la clave no aparece en las variables de entorno de la sesión ni en ningún archivo. Si la lista marca una credencial **No enviada** en su lugar, la nota debajo dice por qué y qué hacer. Dos credenciales cuyos hosts se superponen sin coincidir exactamente no obtienen marcador, y el proxy del agente envía solo una de ellas.143Para confirmar que el secreto funciona, inicia una sesión en el entorno y pide a Claude que llame a la API, por ejemplo con `curl`. La API responde como si la clave estuviera en la solicitud, y la clave no aparece en las variables de entorno de la sesión ni en ningún archivo. Si en cambio la lista marca un secreto como **No enviado**, la nota debajo dice por qué y qué hacer. Dos secretos cuyos hosts se superponen sin coincidir exactamente no obtienen marcador, y el proxy del agente envía solo uno de ellos.

144 144 

145<h4 id="which-requests-get-the-credential">145<h4 id="which-requests-get-the-credential">

146 Qué solicitudes obtienen la credencial146 Qué solicitudes obtienen el secreto

147</h4>147</h4>

148 148 

149El proxy del agente adjunta una credencial a una solicitud cuando el host de la solicitud coincide con uno que enumera en esa credencial. Las sesiones pueden alcanzar esos hosts incluso cuando el [nivel de acceso a la red](#access-levels) del entorno no lo permitiría de otra manera, excepto los [hosts que nunca obtienen la credencial](#requests-that-never-get-the-credential). La credencial se aplica en cada sesión que se ejecuta en el entorno, quienquiera que la haya iniciado, hasta que la elimine.149El proxy del agente adjunta un secreto a una solicitud cuando el host de la solicitud coincide con uno que enumeraste en ese secreto. Las sesiones pueden alcanzar esos hosts incluso cuando el [nivel de acceso a la red](#access-levels) del entorno no lo permitiría de otra manera, excepto los [hosts que nunca obtienen el secreto](#requests-that-never-get-the-credential). El secreto se aplica en cada sesión que se ejecuta en el entorno, quienquiera que la haya iniciado, hasta que lo elimines.

150 150 

151<h4 id="requests-that-never-get-the-credential">151<h4 id="requests-that-never-get-the-credential">

152 Solicitudes que nunca obtienen la credencial152 Solicitudes que nunca obtienen el secreto

153</h4>153</h4>

154 154 

155El proxy del agente nunca adjunta una credencial que agregue a estas solicitudes:155El proxy del agente nunca adjunta un secreto que agregues a estas solicitudes:

156 156 

157* **GitHub**: el [proxy de GitHub](#github-proxy) autentica las solicitudes a GitHub en su lugar, por lo que no necesita una credencial de API para él157* **GitHub**: el [proxy de GitHub](#github-proxy) autentica en su lugar las solicitudes a GitHub, por lo que no necesitas un secreto de red para él

158* **La API de Anthropic y registros de paquetes públicos**: `api.anthropic.com`, `registry.npmjs.org`, `jsr.io`, `npm.jsr.io`, `pypi.org`, `files.pythonhosted.org`, `index.crates.io` y `proxy.golang.org`158* **La API de Anthropic y registros de paquetes públicos**: `api.anthropic.com`, `registry.npmjs.org`, `jsr.io`, `npm.jsr.io`, `pypi.org`, `files.pythonhosted.org`, `index.crates.io` y `proxy.golang.org`

159* **Solicitudes de script de configuración**: Claude Code se conecta al proxy del agente cuando se lanza, después de que el [script de configuración](#setup-scripts) ha ejecutado159* **Solicitudes de script de configuración**: Claude Code se conecta al proxy del agente cuando se lanza, después de que el [script de configuración](#setup-scripts) ha ejecutado

160* **Exportación de telemetría de Claude Code**: Claude Code envía su propia [exportación de telemetría](/docs/es/monitoring-usage#telemetry-from-cloud-sessions-and-claude-tag) en lugar de a través de un comando que ejecuta, y esa solicitud no pasa por el proxy del agente160* **Exportación de telemetría de Claude Code**: Claude Code envía su propia [exportación de telemetría](/docs/es/monitoring-usage#telemetry-from-cloud-sessions-and-claude-tag) en lugar de a través de un comando que ejecuta, y esa solicitud no pasa por el proxy del agente


179 179 

180* Las sesiones ya en ejecución en el entorno continúan funcionando.180* Las sesiones ya en ejecución en el entorno continúan funcionando.

181* El entorno desaparece del selector y de `/remote-env`, por lo que no puede elegirlo para nuevas sesiones.181* El entorno desaparece del selector y de `/remote-env`, por lo que no puede elegirlo para nuevas sesiones.

182* Las credenciales de API en el entorno permanecen adjuntas en sus sesiones en ejecución. Elimine las que ya no desee antes de archivar.182* Los secretos de red del entorno permanecen adjuntos en sus sesiones en ejecución. Elimina los que ya no desees antes de archivar.

183* Ninguna sesión nueva puede iniciarse en un entorno archivado, en ninguna superficie. Si el entorno era su [valor predeterminado de CLI](#select-an-environment-from-the-cli) guardado, Claude Code inicia sesiones en la nube de CLI en el entorno alojado por Anthropic cuando su lista tiene uno, y de lo contrario en el primer entorno en su lista que no sea un [entorno puente de Remote Control](#the-default-environment). Cualquier cosa configurada con el entorno explícitamente, como una [routine](/docs/es/routines#environments-and-network-access), no puede iniciar nuevas sesiones en él. Apúntela a otro entorno.183* Ninguna sesión nueva puede iniciarse en un entorno archivado, en ninguna superficie. Si el entorno era su [valor predeterminado de CLI](#select-an-environment-from-the-cli) guardado, Claude Code inicia sesiones en la nube de CLI en el entorno alojado por Anthropic cuando su lista tiene uno, y de lo contrario en el primer entorno en su lista que no sea un [entorno puente de Remote Control](#the-default-environment). Cualquier cosa configurada con el entorno explícitamente, como una [routine](/docs/es/routines#environments-and-network-access), no puede iniciar nuevas sesiones en él. Apúntela a otro entorno.

184 184 

185<h3 id="organization-shared-environments">185<h3 id="organization-shared-environments">


197 197 

198Los Propietarios eligen el [entorno predeterminado](#the-default-environment) de la organización por separado, en [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code).198Los Propietarios eligen el [entorno predeterminado](#the-default-environment) de la organización por separado, en [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code).

199 199 

200Cada sesión de miembro en un entorno compartido lee sus variables, por lo que no incluya secretos en ellas. Las [credenciales de API](#add-api-credentials), que dan a las sesiones una clave que no pueden leer, aún no están disponibles en planes Team o Enterprise.200Las sesiones de cada miembro en un entorno compartido leen sus variables, por lo que no incluyas secretos en ellas. Los [secretos de red](#add-api-credentials), que dan a las sesiones una clave que no pueden leer, aún no están disponibles en planes Team o Enterprise.

201 201 

202<h3 id="set-the-environment-a-claude-tag-channel-uses">202<h3 id="set-the-environment-a-claude-tag-channel-uses">

203 Establecer el entorno que usa un canal de Claude Tag203 Establecer el entorno que usa un canal de Claude Tag


239 239 

240* GitHub, a través de su [proxy separado](#github-proxy)240* GitHub, a través de su [proxy separado](#github-proxy)

241* [Conectores MCP](#network-access) que habilita, cuyo tráfico viaja a través de los servidores de Anthropic241* [Conectores MCP](#network-access) que habilita, cuyo tráfico viaja a través de los servidores de Anthropic

242* Los hosts que enumera en las [credenciales de API](#add-api-credentials) del entorno, excepto los [hosts que nunca reciben la credencial](#requests-that-never-get-the-credential)242* Los hosts que indicaste en los [secretos de red](#add-api-credentials) del entorno, excepto los [hosts que nunca reciben el secreto](#requests-that-never-get-the-credential)

243* La API de Anthropic, para las propias solicitudes de Claude Code, incluso en **None**, como se señala bajo [Seguridad y aislamiento](/docs/es/claude-code-on-the-web#security-and-isolation)243* La API de Anthropic, para las propias solicitudes de Claude Code, incluso en **None**, como se señala bajo [Seguridad y aislamiento](/docs/es/claude-code-on-the-web#security-and-isolation)

244 244 

245<h3 id="allow-specific-domains">245<h3 id="allow-specific-domains">


254registry.example.com254registry.example.com

255```255```

256 256 

257Las sesiones en este entorno ahora pueden alcanzar `api.example.com`, cualquier subdominio de `internal.example.com` y `registry.example.com`, y ningún otro dominio a través de la red de la sesión. El [tráfico de GitHub](#github-proxy), el [tráfico del conector MCP](#network-access) y las solicitudes a los hosts de las [credenciales de API](#add-api-credentials) del entorno, excepto los [hosts que nunca reciben la credencial](#requests-that-never-get-the-credential), no pasan por esta lista permitida. Un `*.` inicial coincide con cada subdominio. Para mantener también los [dominios Trusted](#default-allowed-domains), marque **Also include default list of common package managers**; déjelo sin marcar para permitir solo lo que enumera.257Las sesiones en este entorno ahora pueden alcanzar `api.example.com`, cualquier subdominio de `internal.example.com` y `registry.example.com`, y ningún otro dominio a través de la red de la sesión. El [tráfico de GitHub](#github-proxy), el [tráfico de conectores MCP](#network-access) y las solicitudes a los hosts de los [secretos de red](#add-api-credentials) del entorno, excepto los [hosts que nunca reciben el secreto](#requests-that-never-get-the-credential), no pasan por esta lista de permitidos. Un `*.` inicial coincide con cada subdominio. Para mantener también los [dominios Trusted](#default-allowed-domains), marca **Also include default list of common package managers**; déjalo sin marcar para permitir solo lo que enumeras.

258 258 

259Si su organización utiliza [artefactos](/docs/es/artifacts#availability), no necesita `*.frame.claudeusercontent.com` en la lista para que las sesiones los lean. Cuando la lista deja ese host fuera, Claude Code lee el contenido del artefacto a través de la conexión de la sesión a Anthropic en su lugar. Mantenga el host en una lista permitida en dos situaciones:259Si su organización utiliza [artefactos](/docs/es/artifacts#availability), no necesita `*.frame.claudeusercontent.com` en la lista para que las sesiones los lean. Cuando la lista deja ese host fuera, Claude Code lee el contenido del artefacto a través de la conexión de la sesión a Anthropic en su lugar. Mantenga el host en una lista permitida en dos situaciones:

260 260 


272* **Credenciales de Git**: el cliente git dentro de la VM utiliza una credencial con alcance, que el proxy verifica e intercambia por su token real de GitHub.272* **Credenciales de Git**: el cliente git dentro de la VM utiliza una credencial con alcance, que el proxy verifica e intercambia por su token real de GitHub.

273* **Solicitudes de API**: las solicitudes de las herramientas integradas de GitHub y de `gh` bajo el [marcador de posición `proxy-injected`](#work-with-github-issues-and-pull-requests), se envían con sus credenciales reales sustituidas.273* **Solicitudes de API**: las solicitudes de las herramientas integradas de GitHub y de `gh` bajo el [marcador de posición `proxy-injected`](#work-with-github-issues-and-pull-requests), se envían con sus credenciales reales sustituidas.

274* **Restricciones de push**: el proxy rechaza las eliminaciones de ramas y los pushes de cualquier cosa que no sea una rama, como una etiqueta. No limita qué ramas puede actualizar un push. Para eso, usa reglas de protección de ramas o rulesets en GitHub.274* **Restricciones de push**: el proxy rechaza las eliminaciones de ramas y los pushes de cualquier cosa que no sea una rama, como una etiqueta. No limita qué ramas puede actualizar un push. Para eso, usa reglas de protección de ramas o rulesets en GitHub.

275* **Alcance del repositorio**: las solicitudes de API de GitHub y de activos de lanzamiento alcanzan solo repositorios adjuntos a la sesión, por lo que un script de configuración que descarga activos de lanzamiento de un repositorio no adjunto obtiene un 403.275* **Alcance del repositorio**: el proxy atiende las solicitudes de API de GitHub para los repositorios adjuntos a la sesión. Una solicitud de API para otro repositorio obtiene un 403 cuyo mensaje comienza con `GitHub access to` y contiene `is not enabled for this session`.

276* **Restricciones de GraphQL**: el proxy sirve solo un conjunto fijado de operaciones de GraphQL para flujos de trabajo de solicitud de extracción. El proxy rechaza todo lo demás en el punto final de GraphQL con un 403 que dice `This GraphQL query is not enabled for this session` y nombra el respaldo de REST, `gh api repos/{owner}/{repo}/...`. La restricción se aplica a cada solicitud a través del proxy independientemente de las credenciales que suministre, por lo que un `GH_TOKEN` que establezca obtiene el mismo 403. Claude no puede alcanzar APIs de GitHub que existen solo en GraphQL, como Projects v2, a través del proxy.276* **Restricciones de GraphQL**: el proxy rechaza las solicitudes al endpoint de GraphQL de GitHub con un 403 cuyo mensaje comienza con `GitHub GraphQL is not available from Claude Code sessions` y nombra el respaldo de REST, `gh api repos/{owner}/{repo}/...`. Los subcomandos de `gh` que usan GraphQL, como `gh pr` y `gh issue`, obtienen el mismo 403. La restricción se aplica a cada solicitud a través del proxy independientemente de las credenciales que proporciones, por lo que un `GH_TOKEN` que establezcas obtiene el mismo 403. Claude no puede alcanzar APIs de GitHub que existen solo en GraphQL, como Projects v2, a través del proxy.

277 277 

278Los archivos confirmados de repositorios públicos llegan a través de `raw.githubusercontent.com`, que el [proxy de seguridad](#security-proxy) maneja en su lugar. Ese dominio está en la [lista Trusted](#default-allowed-domains) predeterminada, por lo que esos archivos permanecen accesibles a menos que el [nivel de acceso](#access-levels) del entorno los excluya.278Los archivos confirmados de repositorios públicos llegan a través de `raw.githubusercontent.com`, que el [proxy de seguridad](#security-proxy) maneja en su lugar. Ese dominio está en la [lista Trusted](#default-allowed-domains) predeterminada, por lo que esos archivos permanecen accesibles a menos que el [nivel de acceso](#access-levels) del entorno los excluya.

279 279 


285 285 

286* Protección contra solicitudes maliciosas286* Protección contra solicitudes maliciosas

287* Limitación de velocidad y prevención de abuso287* Limitación de velocidad y prevención de abuso

288* Filtrado de contenido para mayor seguridad

289* Un registro de auditoría a nivel de DNS de nombres de host solicitados

290 288 

291<h2 id="what’s-available-in-cloud-sessions">289<h2 id="what’s-available-in-cloud-sessions">

292 Qué está disponible en sesiones en la nube290 Qué está disponible en sesiones en la nube

293</h2>291</h2>

294 292 

295En entornos alojados por Anthropic, cada sesión obtiene una máquina virtual (VM) nueva ejecutando Ubuntu 24.04 en x86\_64, independientemente de su propio sistema operativo y arquitectura de CPU, con su repositorio clonado y cadenas de herramientas comunes preinstaladas. Cuando una dependencia proporciona binarios precompilados, como gemas de Ruby con extensiones nativas o ruedas de Python precompiladas, use su compilación de Linux x86\_64 para coincidir con la VM. Esta sección cubre los valores predeterminados alojados por Anthropic, las herramientas integradas de GitHub, cómo [ejecutar pruebas y servicios](#run-tests-start-services-and-add-packages), los [límites de recursos](#resource-limits) que obtiene cada VM, y los [límites de tiempo](#time-limits) en trabajos de larga duración.293En entornos alojados por Anthropic, cada sesión obtiene una máquina virtual (VM) nueva que ejecuta Ubuntu 24.04 en x86\_64, independientemente de tu propio sistema operativo y arquitectura de CPU, con tu repositorio clonado y cadenas de herramientas comunes preinstaladas. Cuando una dependencia proporciona binarios precompilados, como gemas de Ruby con extensiones nativas o wheels de Python precompilados, usa su compilación de Linux x86\_64 para que coincida con la VM. Esta sección cubre los valores predeterminados alojados por Anthropic, las herramientas integradas de GitHub, cómo [ejecutar pruebas y servicios](#run-tests-start-services-and-add-packages), los [límites de recursos](#resource-limits) que obtiene cada VM y los [límites de tiempo](#time-limits) en trabajos de larga duración.

296 294 

297<Note>295<Note>

298 Las sesiones que su organización enruta a un [entorno autohospedado](/docs/es/self-hosted-environments) se ejecutan en sus propios ejecutores en su lugar, con las herramientas que proporciona su imagen de ejecutor.296 Las sesiones que tu organización enruta a un [entorno autohospedado](/docs/es/self-hosted-environments) se ejecutan en tus propios ejecutores en su lugar, con las herramientas que proporciona tu imagen de ejecutor.

299</Note>297</Note>

300 298 

301<h3 id="what-carries-over-from-your-setup">299<h3 id="what-carries-over-from-your-setup">

302 Qué se transfiere de su configuración300 Qué se transfiere de tu configuración

303</h3>301</h3>

304 302 

305Las sesiones en la nube comienzan desde un clon nuevo de su repositorio. Cualquier cosa que confirme en el repositorio está disponible. Cualquier cosa que haya instalado o configurado solo en su propia máquina no está disponible en la sesión. La política de su organización llega por separado a través de [configuración administrada por servidor](/docs/es/server-managed-settings).303Las sesiones en la nube comienzan desde un clon nuevo de tu repositorio. Todo lo que confirmes en el repositorio está disponible. Todo lo que hayas instalado o configurado solo en tu propia máquina no está disponible en la sesión. La política de tu organización llega por separado a través de la [configuración administrada por servidor](/docs/es/server-managed-settings).

306 304 

307| | Disponible en sesiones en la nube | Por qué |305| | Disponible en sesiones en la nube | Por qué |

308| :- | :- | :- |306| :- | :- | :- |

309| Su `CLAUDE.md` del repositorio | Sí | Parte del clon |307| El `CLAUDE.md` de tu repositorio | Sí | Parte del clon |

310| Sus hooks `.claude/settings.json` del repositorio y reglas de permisos | Sí, en una sesión con un repositorio | Parte del clon. Una sesión con varios repositorios, incluido un hilo de [proyecto](/docs/es/claude-projects#what-threads-pick-up-from-your-repositories), comienza por encima de los clones y no los lee |308| Los hooks y reglas de permisos de `.claude/settings.json` de tu repositorio | Sí, en una sesión con un repositorio | Parte del clon. Una sesión con varios repositorios, incluido un hilo de [proyecto](/docs/es/claude-projects#what-threads-pick-up-from-your-repositories), comienza por encima de los clones y no los lee |

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

312| Su `.claude/rules/` del repositorio | Sí | Parte del clon |310| El `.claude/rules/` de tu repositorio | Sí | Parte del clon |

313| Su `.claude/skills/`, `.claude/agents/`, `.claude/commands/` del repositorio | Sí | Parte del clon |311| Los `.claude/skills/`, `.claude/agents/`, `.claude/commands/` de tu repositorio | Sí | Parte del clon |

314| Plugins y marketplaces declarados en el `.claude/settings.json` de su repositorio | No | Una sesión en la nube no instala los plugins que un repositorio activa bajo [`enabledPlugins`](/docs/es/settings-reference#enabledplugins), incluidos los de los marketplaces que enumera bajo [`extraKnownMarketplaces`](/docs/es/settings-reference#extraknownmarketplaces) |312| Plugins y marketplaces declarados en el `.claude/settings.json` de tu repositorio | No | Una sesión en la nube no instala los plugins que un repositorio activa bajo [`enabledPlugins`](/docs/es/settings-reference#enabledplugins), incluidos los de los marketplaces que enumera bajo [`extraKnownMarketplaces`](/docs/es/settings-reference#extraknownmarketplaces) |

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

316| Su `~/.claude/CLAUDE.md` de usuario | No | Vive en su máquina, no en el repositorio |314| Tu `~/.claude/CLAUDE.md` de usuario | No | Vive en tu máquina, no en el repositorio. Consulta [Agregar preferencias personales sin hacer commit en el repositorio](#add-personal-preferences-without-committing-to-the-repo) |

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

318| Plugins habilitados solo en su configuración de usuario | No | El `enabledPlugins` con alcance de usuario vive en `~/.claude/settings.json` en su máquina |316| Plugins habilitados solo en tu configuración de usuario | No | El `enabledPlugins` con alcance de usuario vive en `~/.claude/settings.json` en tu máquina |

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

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

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

322| Autenticación interactiva como AWS SSO | No | No compatible. SSO requiere inicio de sesión basado en navegador que no puede ejecutarse en una sesión en la nube |320| Autenticación interactiva como AWS SSO | No | No compatible. SSO requiere un inicio de sesión basado en navegador que no puede ejecutarse en una sesión en la nube |

323 321 

324Para que su propia configuración esté disponible en sesiones en la nube, confirme la en el repositorio.322Para que tu propia configuración esté disponible en sesiones en la nube, haz commit de ella en el repositorio.

325 323 

326Cualquiera que use el entorno puede leer sus variables de entorno y script de configuración. La nota del diálogo bajo **Variables de entorno** lo dice y advierte contra poner secretos allí. En planes Pro y Max, almacene una clave que el proxy del agente pueda adjuntar como una [credencial de API](#add-api-credentials) en su lugar.324Cualquiera que use el entorno puede leer sus variables de entorno y su script de configuración. La nota del diálogo en **Variables de entorno** lo indica y advierte que no pongas secretos allí. En planes Pro y Max, almacena una clave que el proxy del agente pueda adjuntar como un [secreto de red](#add-api-credentials) en su lugar.

325 

326<h4 id="add-personal-preferences-without-committing-to-the-repo">

327 Agregar preferencias personales sin hacer commit en el repositorio

328</h4>

329 

330En un entorno alojado por Anthropic, agrega un [script de configuración](#setup-scripts) que escriba `~/.claude/CLAUDE.md` para las preferencias que prefieras no poner en un repositorio compartido. Claude Code carga ese archivo como [instrucciones de usuario](/docs/es/memory#choose-where-to-put-claude-md-files) en la sesión. Este ejemplo establece una preferencia de mensajes de commit:

331 

332```bash theme={null}

333#!/bin/bash

334mkdir -p ~/.claude

335cat > ~/.claude/CLAUDE.md <<'EOF'

336Use conventional commit messages.

337EOF

338```

339 

340Pon el script en uno de tus propios entornos en lugar de en uno [compartido](#organization-shared-environments).

341 

342Ejecuta `/context` en tu próxima sesión en la nube y confirma que `/root/.claude/CLAUDE.md` aparece en **Memory files**.

327 343 

328<h3 id="installed-tools">344<h3 id="installed-tools">

329 Herramientas instaladas345 Herramientas instaladas


345| **Bases de datos** | PostgreSQL 16, Redis 7.0 |361| **Bases de datos** | PostgreSQL 16, Redis 7.0 |

346| **Utilidades** | git, gh, jq, yq, ripgrep, tmux, vim, nano |362| **Utilidades** | git, gh, jq, yq, ripgrep, tmux, vim, nano |

347 363 

348¹ Bun está instalado pero tiene [problemas de compatibilidad](#install-dependencies-with-a-sessionstart-hook) conocidos con proxy para obtención de paquetes.364¹ Bun está instalado pero tiene [problemas de compatibilidad con el proxy](#install-dependencies-with-a-sessionstart-hook) conocidos para la obtención de paquetes.

349 365 

350Para obtener las versiones de la mayoría de las herramientas en esta tabla, pida a Claude que ejecute `check-tools` en una sesión en la nube. Es un comando de shell instalado en la VM de la sesión, no un comando que escriba con `/`; pide a Claude porque [Claude ejecuta todos los comandos de VM para usted](#run-tests-start-services-and-add-packages). Para una herramienta que no reporta, como Ruby, PHP, bun, PostgreSQL o Redis, pida a Claude que ejecute el comando de versión propia de la herramienta, por ejemplo `psql --version`.366Para obtener las versiones de la mayoría de las herramientas de esta tabla, pide a Claude que ejecute `check-tools` en una sesión en la nube. Es un comando de shell instalado en la VM de la sesión, no un comando que escribas con `/`; se lo pides a Claude porque [Claude ejecuta todos los comandos de la VM por ti](#run-tests-start-services-and-add-packages). Para una herramienta que no reporta, como Ruby, PHP, bun, PostgreSQL o Redis, pide a Claude que ejecute el comando de versión propio de la herramienta, por ejemplo `psql --version`.

351 367 

352Las versiones de Node.js se instalan en `/opt/node20`, `/opt/node21` y `/opt/node22`, con 22 en `PATH` de forma predeterminada. Para trabajar con una versión diferente, pida a Claude que anteponga el directorio `bin` de esa versión, como `/opt/node20/bin`, a `PATH`.368Las versiones de Node.js se instalan en `/opt/node20`, `/opt/node21` y `/opt/node22`, con 22 en `PATH` de forma predeterminada. Para trabajar con una versión diferente, pide a Claude que anteponga el directorio `bin` de esa versión, como `/opt/node20/bin`, a `PATH`.

353 369 

354Las cadenas de herramientas fuera de esta lista, como el SDK de .NET, no están preinstaladas incluso cuando sus registros de paquetes están en la [lista permitida predeterminada](#default-allowed-domains). Instálelas con un [script de configuración](#setup-scripts).370Las cadenas de herramientas fuera de esta lista, como el SDK de .NET, no están preinstaladas incluso cuando sus registros de paquetes están en la [lista de dominios permitidos predeterminada](#default-allowed-domains). Instálalas con un [script de configuración](#setup-scripts).

355 371 

356<h3 id="work-with-github-issues-and-pull-requests">372<h3 id="work-with-github-issues-and-pull-requests">

357 Trabajar con problemas y solicitudes de extracción de GitHub373 Trabajar con issues y pull requests de GitHub

358</h3>374</h3>

359 375 

360Las sesiones en la nube incluyen herramientas integradas de GitHub que permiten a Claude leer problemas, enumerar solicitudes de extracción, obtener diffs y publicar comentarios sin ninguna configuración. Estas herramientas se autentican a través del [proxy de GitHub](#github-proxy) utilizando cualquier método que configuró bajo [Opciones de autenticación de GitHub](/docs/es/claude-code-on-the-web#github-authentication-options), por lo que su token nunca entra en el contenedor.376Las sesiones en la nube incluyen herramientas integradas de GitHub que permiten a Claude leer issues, enumerar pull requests, obtener diffs y publicar comentarios sin ninguna configuración. Estas herramientas se autentican a través del [proxy de GitHub](#github-proxy) utilizando el método que configuraste en [Opciones de autenticación de GitHub](/docs/es/claude-code-on-the-web#github-authentication-options), por lo que tu token nunca entra en el contenedor.

361 377 

362Puede establecer `GH_TOKEN` o `GITHUB_TOKEN` usted mismo en [configuración de entorno](#set-environment-variables), o dejar ambos sin establecer y dejar que el [proxy de GitHub](#github-proxy) se autentique por usted:378Puedes establecer `GH_TOKEN` o `GITHUB_TOKEN` tú mismo en la [configuración del entorno](#set-environment-variables), o dejar ambos sin establecer y dejar que el [proxy de GitHub](#github-proxy) se autentique por ti:

363 379 

364* Si establece un token, pasa al contenedor sin cambios, por lo que sus scripts y el [`gh` CLI](https://cli.github.com) de GitHub lo usan directamente.380* Si estableces un token, pasa al contenedor sin cambios, por lo que tus scripts y la [CLI `gh`](https://cli.github.com) de GitHub lo usan directamente.

365* Si no establece ninguno y el [proxy de GitHub](#github-proxy) está manejando la autenticación para su sesión, ambas variables se leen como la cadena de marcador de posición `proxy-injected` en los comandos que ejecuta Claude, y el proxy sustituye sus credenciales reales en solicitudes salientes de GitHub. `gh` funciona sin un token propio, pero un script que lee `GITHUB_TOKEN` directamente obtiene el marcador de posición, no un token utilizable.381* Si no estableces ninguno y el [proxy de GitHub](#github-proxy) está manejando la autenticación de tu sesión, ambas variables se leen como la cadena de marcador de posición `proxy-injected` en los comandos que ejecuta Claude, y el proxy sustituye tus credenciales reales en las solicitudes salientes a GitHub. Las llamadas a `gh api` para los repositorios adjuntos funcionan sin un token propio, pero un script que lee `GITHUB_TOKEN` directamente obtiene el marcador de posición, no un token utilizable.

366 382 

367Un token que establece es una variable de entorno ordinaria, por lo que cualquiera que use el entorno puede leerlo; la ruta del proxy mantiene la credencial fuera de la configuración del entorno y la VM de la sesión.383Un token que establezcas es una variable de entorno ordinaria, por lo que cualquiera que use el entorno puede leerlo; la ruta del proxy mantiene la credencial fuera de la configuración del entorno y de la VM de la sesión.

368 384 

369Para verificar qué caso se aplica a su sesión, pida a Claude que ejecute `echo $GH_TOKEN`.385Para verificar qué caso se aplica a tu sesión, pide a Claude que ejecute `echo $GH_TOKEN`.

370 386 

371El [`gh` CLI](https://cli.github.com) de GitHub está preinstalado. Si necesita un comando `gh` que las herramientas integradas no cubran, como `gh release` o `gh workflow run`, pida a Claude que lo ejecute. `gh` lee `GH_TOKEN` automáticamente, por lo que no necesita ejecutar `gh auth login`.387La [CLI `gh`](https://cli.github.com) de GitHub está preinstalada. Si necesitas una operación de GitHub que las herramientas integradas no cubran, pide a Claude que llame a la API REST con `gh api`. Los subcomandos de `gh` que usan la API REST, como `gh workflow list`, también funcionan. El proxy [rechaza los subcomandos que usan GraphQL](#github-proxy), como `gh pr` y `gh issue`. `gh` lee `GH_TOKEN` automáticamente, por lo que no necesitas ejecutar `gh auth login`.

372 388 

373<h3 id="link-output-back-to-the-session">389<h3 id="link-output-back-to-the-session">

374 Vincular salida de nuevo a la sesión390 Vincular la salida con la sesión

375</h3>391</h3>

376 392 

377Cada sesión en la nube tiene una URL de transcripción en claude.ai, y la sesión puede leer su propio ID desde la variable de entorno `CLAUDE_CODE_REMOTE_SESSION_ID`. Úselo para poner un enlace rastreable en cuerpos de PR, mensajes de confirmación, publicaciones de Slack o informes generados para que un revisor pueda abrir la ejecución que los produjo.393Cada sesión en la nube tiene una URL de transcripción en claude.ai, y la sesión puede leer su propio ID desde la variable de entorno `CLAUDE_CODE_REMOTE_SESSION_ID`. Úsala para poner un enlace rastreable en cuerpos de PR, mensajes de commit, publicaciones de Slack o informes generados para que un revisor pueda abrir la ejecución que los produjo.

378 394 

379Las confirmaciones que Claude crea en una sesión en la nube incluyen un remolque de git `Claude-Session: <url>`, y los cuerpos de PR incluyen la URL de la sesión en su propia línea. Para omitir el remolque y el enlace del cuerpo de PR, establezca [`attribution.sessionUrl`](/docs/es/settings-reference#attribution-sessionurl) en `false`.395Los commits que Claude crea en una sesión en la nube incluyen un trailer de git `Claude-Session: <url>`, y los cuerpos de PR incluyen la URL de la sesión en su propia línea. Para omitir el trailer y el enlace del cuerpo del PR, establece [`attribution.sessionUrl`](/docs/es/settings-reference#attribution-sessionurl) en `false`.

380 396 

381Para incluir el enlace de la sesión en algo que no sea una confirmación o PR, como un mensaje de Slack que Claude publica o un archivo de informe que escribe, pida a Claude que ejecute el siguiente comando y use su salida. El comando convierte el prefijo `cse_` en el valor de la variable de entorno al prefijo `session_` que espera la URL de transcripción:397Para incluir el enlace de la sesión en algo que no sea un commit o un PR, como un mensaje de Slack que Claude publica o un archivo de informe que escribe, pide a Claude que ejecute el siguiente comando y use su salida. El comando convierte el prefijo `cse_` del valor de la variable de entorno al prefijo `session_` que espera la URL de transcripción:

382 398 

383```bash theme={null}399```bash theme={null}

384echo "https://claude.ai/code/${CLAUDE_CODE_REMOTE_SESSION_ID/#cse_/session_}"400echo "https://claude.ai/code/${CLAUDE_CODE_REMOTE_SESSION_ID/#cse_/session_}"


388 Ejecutar pruebas, iniciar servicios y agregar paquetes404 Ejecutar pruebas, iniciar servicios y agregar paquetes

389</h3>405</h3>

390 406 

391No obtiene un shell en la VM de la sesión. Claude ejecuta cada comando para usted, por lo que exprese las tareas en esta sección como solicitudes en su indicación.407No obtienes un shell en la VM de la sesión. Claude ejecuta cada comando por ti, así que formula las tareas de esta sección como solicitudes en tu prompt.

392 408 

393<h4 id="run-tests">409<h4 id="run-tests">

394 Ejecutar pruebas410 Ejecutar pruebas

395</h4>411</h4>

396 412 

397Claude ejecuta pruebas como parte del trabajo en una tarea. Solicítelo en su indicación, como "corregir las pruebas fallidas en `tests/`" o "ejecutar pytest después de cada cambio". Los ejecutores de pruebas que vienen con las [cadenas de herramientas preinstaladas](#installed-tools), como pytest y cargo test, funcionan sin configuración adicional. Un ejecutor que su proyecto declara como una dependencia, como jest, se instala con sus dependencias.413Claude ejecuta pruebas como parte del trabajo en una tarea. Pídelo en tu prompt, por ejemplo "corrige las pruebas fallidas en `tests/`" o "ejecuta pytest después de cada cambio". Los ejecutores de pruebas que vienen con las [cadenas de herramientas preinstaladas](#installed-tools), como pytest y cargo test, funcionan sin configuración adicional. Un ejecutor que tu proyecto declara como dependencia, como jest, se instala con tus dependencias.

398 414 

399<h4 id="start-services">415<h4 id="start-services">

400 Iniciar servicios416 Iniciar servicios

401</h4>417</h4>

402 418 

403PostgreSQL y Redis están preinstalados pero no se ejecutan de forma predeterminada. Pida a Claude que inicie el que necesite; los comandos que ejecuta son:419PostgreSQL y Redis están preinstalados pero no se ejecutan de forma predeterminada. Pide a Claude que inicie el que necesites; los comandos que ejecuta son:

404 420 

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

406service postgresql start422service postgresql start


410service redis-server start426service redis-server start

411```427```

412 428 

413Docker está disponible para ejecutar servicios en contenedores. Pida a Claude que ejecute `docker compose up` para iniciar los servicios de su proyecto. El acceso a la red para extraer imágenes sigue su [nivel de acceso](#access-levels) del entorno, y los [valores predeterminados Trusted](#default-allowed-domains) incluyen Docker Hub y otros registros comunes.429Docker está disponible para ejecutar servicios en contenedores. Pide a Claude que ejecute `docker compose up` para iniciar los servicios de tu proyecto. El acceso a la red para extraer imágenes sigue el [nivel de acceso](#access-levels) de tu entorno, y los [valores predeterminados Trusted](#default-allowed-domains) incluyen Docker Hub y otros registros comunes.

414 430 

415Si sus imágenes son grandes o lentas de extraer, agregue `docker compose pull` o `docker compose build` a su [script de configuración](#setup-scripts). El [almacenamiento en caché del entorno](#environment-caching) mantiene las imágenes extraídas, por lo que cada sesión nueva las tiene en el disco. El caché almacena solo archivos, no procesos en ejecución, por lo que Claude aún inicia los contenedores cada sesión.431Si tus imágenes son grandes o lentas de extraer, agrega `docker compose pull` o `docker compose build` a tu [script de configuración](#setup-scripts). La [caché del entorno](#environment-caching) conserva las imágenes extraídas, por lo que cada sesión nueva las tiene en el disco. La caché almacena solo archivos, no procesos en ejecución, por lo que Claude aún inicia los contenedores en cada sesión.

416 432 

417<h4 id="add-packages">433<h4 id="add-packages">

418 Agregar paquetes434 Agregar paquetes

419</h4>435</h4>

420 436 

421Para agregar paquetes que no están preinstalados, use un [script de configuración](#setup-scripts). El [almacenamiento en caché del entorno](#environment-caching) mantiene lo que instala el script, por lo que los paquetes que instala allí están disponibles al inicio de cada sesión sin reinstalar cada vez. También puede pedir a Claude que instale paquetes a mitad de sesión, pero esas instalaciones no se transfieren a otras sesiones.437Para agregar paquetes que no están preinstalados, usa un [script de configuración](#setup-scripts). La [caché del entorno](#environment-caching) conserva lo que instala el script, por lo que los paquetes que instales allí están disponibles al inicio de cada sesión sin reinstalarlos cada vez. También puedes pedir a Claude que instale paquetes a mitad de sesión, pero esas instalaciones no se transfieren a otras sesiones.

422 438 

423<h3 id="resource-limits">439<h3 id="resource-limits">

424 Límites de recursos440 Límites de recursos


430* 16 GB de RAM446* 16 GB de RAM

431* 30 GB de disco447* 30 GB de disco

432 448 

433La VM puede detener tareas que necesitan significativamente más memoria, como trabajos de compilación grandes o pruebas que consumen mucha memoria. Para cargas de trabajo más allá de estos límites, use [Remote Control](/docs/es/remote-control) para ejecutar Claude Code en su propio hardware, o ejecute sesiones en la nube en un [entorno autohospedado](/docs/es/self-hosted-environments) en computación que su organización opera.449La VM puede detener tareas que necesitan significativamente más memoria, como trabajos de compilación grandes o pruebas que consumen mucha memoria. Para cargas de trabajo que superen estos límites, usa [Remote Control](/docs/es/remote-control) para ejecutar Claude Code en tu propio hardware, o ejecuta sesiones en la nube en un [entorno autohospedado](/docs/es/self-hosted-environments) en infraestructura de cómputo que opere tu organización.

434 450 

435<h3 id="time-limits">451<h3 id="time-limits">

436 Límites de tiempo452 Límites de tiempo

437</h3>453</h3>

438 454 

439En entornos alojados por Anthropic, estos límites de tiempo se aplican a trabajos de larga duración en una sesión en la nube, como una compilación, una instalación o una ejecución de prueba. Cada entrada enlaza a la sección que define el límite.455En entornos alojados por Anthropic, estos límites de tiempo se aplican a trabajos de larga duración en una sesión en la nube, como una compilación, una instalación o una ejecución de pruebas. Cada entrada enlaza a la sección que define el límite.

440 456 

441* **Comandos que ejecuta Claude**: un entorno en la nube no establece su propio tiempo de espera de comando, por lo que se aplican los valores predeterminados de la herramienta Bash. Claude espera 2 minutos para un comando de primer plano de forma predeterminada y puede solicitar hasta 10 minutos.457* **Comandos que ejecuta Claude**: un entorno en la nube no establece su propio tiempo de espera de comandos, por lo que se aplican los valores predeterminados de la herramienta Bash. Claude espera 2 minutos por un comando en primer plano de forma predeterminada y puede solicitar hasta 10 minutos.

442 458 

443 Cuando un comando alcanza su [tiempo de espera](/docs/es/tools-reference#timeout-and-output-limits), Claude Code [lo mueve al fondo](/docs/es/tools-reference#foreground-commands-that-move-to-the-background) en lugar de detenerlo, a menos que el comando comience con `sleep`. Un comando movido de esta manera puede seguir ejecutándose hasta 30 minutos más antes de que Claude Code lo detenga en su [límite de tiempo de fondo](/docs/es/tools-reference#time-limit-for-background-commands). Establecer `BASH_DEFAULT_TIMEOUT_MS` por encima de `1800000` milisegundos alarga ese límite así como el valor predeterminado de primer plano.459 Cuando un comando alcanza su [tiempo de espera](/docs/es/tools-reference#timeout-and-output-limits), Claude Code [lo mueve a segundo plano](/docs/es/tools-reference#foreground-commands-that-move-to-the-background) en lugar de detenerlo, a menos que el comando comience con `sleep`. Un comando movido de esta manera puede seguir ejecutándose hasta 30 minutos más antes de que Claude Code lo detenga en su [límite de tiempo en segundo plano](/docs/es/tools-reference#time-limit-for-background-commands). Establecer `BASH_DEFAULT_TIMEOUT_MS` por encima de `1800000` milisegundos alarga ese límite, así como el valor predeterminado en primer plano.

444* **Hooks SessionStart**: Claude Code cancela un hook `command` después de 600 segundos a menos que establezca [`timeout`](/docs/es/hooks#common-fields), en segundos, en la entrada del hook. Claude Code no aplica el tiempo de espera en un hook que ejecuta con [`async: true`](/docs/es/hooks#run-hooks-in-the-background).460* **Hooks SessionStart**: Claude Code cancela un hook `command` después de 600 segundos a menos que establezcas [`timeout`](/docs/es/hooks#common-fields), en segundos, en la entrada del hook. Claude Code no aplica el tiempo de espera a un hook que ejecutes con [`async: true`](/docs/es/hooks#run-hooks-in-the-background).

445* **Script de configuración**: un script que tarda más de aproximadamente cinco minutos no se almacena en caché. [Requisitos de script](#script-requirements) cubre cómo mantenerse por debajo de eso.461* **Script de configuración**: un script que tarda más de aproximadamente cinco minutos no se almacena en caché. [Requisitos del script](#script-requirements) explica cómo mantenerte por debajo de ese límite.

446* **Sesiones inactivas**: después de unos minutos sin actividad, la VM de una sesión se pausa con sus archivos guardados, y una VM pausada puede reclamarse más tarde. [Establecer variables de entorno](#set-environment-variables) describe qué recoge una sesión en cada caso, y [Entorno expirado](/docs/es/claude-code-on-the-web#environment-expired) cubre cómo reabrir una sesión cuya VM fue reclamada.462* **Sesiones inactivas**: después de unos minutos sin actividad, la VM de una sesión se pausa con sus archivos guardados, y una VM pausada puede recuperarse más tarde. [Establecer variables de entorno](#set-environment-variables) describe qué recoge una sesión en cada caso, y [Entorno expirado](/docs/es/claude-code-on-the-web#environment-expired) explica cómo reabrir una sesión cuya VM fue recuperada.

447 463 

448Para aumentar los tiempos de espera de comando para las sesiones de un entorno, agregue [`BASH_DEFAULT_TIMEOUT_MS` y `BASH_MAX_TIMEOUT_MS`](/docs/es/env-vars#variables) a sus [variables de entorno](#set-environment-variables). Ambos toman milisegundos. Por ejemplo, `BASH_DEFAULT_TIMEOUT_MS=600000` hace que 10 minutos sea el valor predeterminado.464Para aumentar los tiempos de espera de comandos de las sesiones de un entorno, agrega [`BASH_DEFAULT_TIMEOUT_MS` y `BASH_MAX_TIMEOUT_MS`](/docs/es/env-vars#variables) a sus [variables de entorno](#set-environment-variables). Ambas toman milisegundos. Por ejemplo, `BASH_DEFAULT_TIMEOUT_MS=600000` hace que 10 minutos sea el valor predeterminado.

449 465 

450<h2 id="setup-scripts">466<h2 id="setup-scripts">

451 Scripts de configuración467 Scripts de configuración

code-review.md +1 −1

Details

384 Ajustar esfuerzo y argumentos384 Ajustar esfuerzo y argumentos

385</h3>385</h3>

386 386 

387Pase un [nivel de esfuerzo](/docs/es/model-config#adjust-effort-level) para intercambiar cobertura por confianza. En `low` y `medium`, la revisión reporta solo los hallazgos en los que tiene más confianza, por lo que ve menos falsos positivos; `high` hasta `max` amplían la cobertura y pueden incluir hallazgos en los que la revisión tiene menos certeza.387Pasa un [nivel de esfuerzo](/docs/es/model-config#adjust-effort-level) para intercambiar cobertura por confianza. En `low`, la revisión reporta los hallazgos en los que tiene más confianza, por lo que ves menos falsos positivos. De `medium` a `max`, la revisión amplía la cobertura.

388 388 

389Cuando no escribe un nivel, la revisión reutiliza el último nivel de `low` a `max` que escribió, incluso en una sesión anterior, y Claude Code muestra un aviso como `Reusing high effort, the level you typed last time`. Escriba un nivel, como `/code-review high`, para cambiar lo que reutilizan las ejecuciones posteriores; un nivel que pase en una ejecución `-p` no interactiva no lo actualiza. `ultra` ni actualiza ni utiliza el nivel recordado. Si nunca ha escrito un nivel, la revisión utiliza el esfuerzo actual de la sesión. Antes de v2.1.223, un `/code-review` sin un nivel siempre utilizaba el esfuerzo actual de la sesión.389Cuando no escribe un nivel, la revisión reutiliza el último nivel de `low` a `max` que escribió, incluso en una sesión anterior, y Claude Code muestra un aviso como `Reusing high effort, the level you typed last time`. Escriba un nivel, como `/code-review high`, para cambiar lo que reutilizan las ejecuciones posteriores; un nivel que pase en una ejecución `-p` no interactiva no lo actualiza. `ultra` ni actualiza ni utiliza el nivel recordado. Si nunca ha escrito un nivel, la revisión utiliza el esfuerzo actual de la sesión. Antes de v2.1.223, un `/code-review` sin un nivel siempre utilizaba el esfuerzo actual de la sesión.

390 390 

Details

1586 1586 

1587La sesión recorre un flujo realista con conteos de tokens representativos:1587La sesión recorre un flujo realista con conteos de tokens representativos:

1588 1588 

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

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

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

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


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

1596</h2>1596</h2>

1597 1597 

1598Cuando una sesión larga se compacta, Claude Code resume el historial de conversación para que quepa en la ventana de contexto. A partir de v2.1.198, la solicitud de resumen hereda la configuración de [pensamiento extendido](/docs/es/model-config#extended-thinking) de su sesión, por lo que razona con el pensamiento habilitado cuando su sesión lo tiene habilitado y se mantiene desactivado en caso contrario. El pensamiento afecta solo cómo se produce el resumen; la configuración de su sesión permanece sin cambios después. Lo que sucede con cada tipo de contenido depende de cómo se cargó:1598Cuando una sesión larga se compacta, Claude Code resume el historial de conversación para que quepa en la ventana de contexto. A partir de v2.1.198, la solicitud de resumen hereda la configuración de [pensamiento extendido](/docs/es/model-config#extended-thinking) de tu sesión, por lo que razona con el pensamiento habilitado cuando tu sesión lo tiene habilitado y se mantiene desactivado en caso contrario. El pensamiento afecta solo cómo se produce el resumen; la configuración de tu sesión permanece sin cambios después. Lo que sucede con cada tipo de contenido depende de cómo se cargó:

1599 1599 

1600| Mecanismo | Después de la compactación |1600| Mecanismo | Después de la compactación |

1601| :- | :- |1601| :- | :- |

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

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

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

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

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

1607| Reglas con frontmatter `paths:` | Claude Code las recarga [bajo demanda](/docs/es/memory#path-specific-rules) |1607| Reglas con frontmatter `paths:` | Claude Code las recarga [bajo demanda](/docs/es/memory#path-specific-rules) |

1608| CLAUDE.md anidado en subdirectorios | Claude Code los recarga [bajo demanda](/docs/es/memory#how-claude-md-files-load) |1608| CLAUDE.md anidado en subdirectorios | Claude Code los recarga [bajo demanda](/docs/es/memory#how-claude-md-files-load) |


1614 1614 

1615Justo después de la compactación, Claude Code re-lee hasta cinco de los archivos que Claude ha leído o editado en la sesión, eligiendo los modificados más recientemente. Un archivo de más de 5,000 tokens regresa como una referencia de ruta sin su contenido, mostrado como `Referenced file` en lugar de `Read`.1615Justo después de la compactación, Claude Code re-lee hasta cinco de los archivos que Claude ha leído o editado en la sesión, eligiendo los modificados más recientemente. Un archivo de más de 5,000 tokens regresa como una referencia de ruta sin su contenido, mostrado como `Referenced file` en lugar de `Read`.

1616 1616 

1617Las reglas con alcance de ruta y los archivos CLAUDE.md anidados se cargan en el historial de mensajes cuando se lee su archivo de activación, por lo que la compactación los resume junto con todo lo demás. Si una regla debe persistir a través de la compactación, elimine el frontmatter `paths:` o muévalo a CLAUDE.md de raíz del proyecto.1617Las reglas con alcance de ruta y los archivos CLAUDE.md anidados se cargan en el historial de mensajes cuando Claude lee, escribe o edita su archivo de activación, por lo que la compactación los resume junto con todo lo demás. Si una regla debe persistir a través de la compactación, elimina el frontmatter `paths:` o muévela a CLAUDE.md de raíz del proyecto.

1618 1618 

1619Los cuerpos de skills se re-inyectan después de la compactación, pero los skills grandes se truncan para ajustarse al límite por skill, y los skills invocados más antiguos se descartan una vez que se excede el presupuesto total. El truncamiento mantiene el inicio del archivo, por lo que coloque las instrucciones más importantes cerca de la parte superior de `SKILL.md`.1619Los cuerpos de skills se re-inyectan después de la compactación, pero los skills grandes se truncan para ajustarse al límite por skill, y los skills invocados más antiguos se descartan una vez que se excede el presupuesto total. El truncamiento mantiene el inicio del archivo, por lo que coloca las instrucciones más importantes cerca de la parte superior de `SKILL.md`.

1620 1620 

1621<h2 id="when-your-context-fills-up">1621<h2 id="when-your-context-fills-up">

1622 Cuando su contexto se llena1622 Cuando su contexto se llena


1632* **Limpiar entre tareas**: ejecute `/clear` cuando cambie a trabajo no relacionado. La conversación antigua desplaza los archivos que necesita a continuación y cuesta tokens en cada mensaje.1632* **Limpiar entre tareas**: ejecute `/clear` cuando cambie a trabajo no relacionado. La conversación antigua desplaza los archivos que necesita a continuación y cuesta tokens en cada mensaje.

1633* **Delegar lecturas grandes**: envíe investigación a un [subagent](/docs/es/sub-agents) para que el contenido del archivo permanezca en su ventana de contexto, no en la suya.1633* **Delegar lecturas grandes**: envíe investigación a un [subagent](/docs/es/sub-agents) para que el contenido del archivo permanezca en su ventana de contexto, no en la suya.

1634 1634 

1635Si necesita una ventana más grande en lugar de una conversación más pequeña, los modelos Fable, Sonnet 5 y posteriores, Opus 4.6 y posteriores, y Sonnet 4.6 admiten una ventana de contexto de 1 millón de tokens. Vea [Extended context](/docs/es/model-config#extended-context) para disponibilidad por plan y cómo seleccionar una variante de modelo `[1m]`. La compactación funciona de la misma manera en el límite más grande.1635Si necesitas una ventana más grande en lugar de una conversación más pequeña, los modelos Fable, Sonnet 5 y posteriores, Haiku 5.5, Opus 4.6 y posteriores, y Sonnet 4.6 admiten una ventana de contexto de 1 millón de tokens. Consulta [Contexto extendido](/docs/es/model-config#extended-context) para conocer la disponibilidad por plan y cómo seleccionar una variante de modelo `[1m]`. La compactación funciona de la misma manera en el límite más grande.

1636 1636 

1637Sonnet 5.5 y Sonnet 5 se ejecutan con la ventana de contexto de 1M y no tienen variante `[1m]` para seleccionar. Vea [Sonnet 5.5 and Sonnet 5 context window](/docs/es/model-config#sonnet-5-5-and-sonnet-5-context-window) para sus umbrales de compactación automática, y [the context window behind a gateway](/docs/es/model-config#context-window-behind-a-gateway) para cómo Claude Code dimensiona la ventana cuando establece `ANTHROPIC_BASE_URL` en una [LLM gateway](/docs/es/llm-gateway).1637Sonnet 5.5 y Sonnet 5 se ejecutan con la ventana de contexto de 1M y no tienen variante `[1m]` para seleccionar. Vea [Sonnet 5.5 and Sonnet 5 context window](/docs/es/model-config#sonnet-5-5-and-sonnet-5-context-window) para sus umbrales de compactación automática, y [the context window behind a gateway](/docs/es/model-config#context-window-behind-a-gateway) para cómo Claude Code dimensiona la ventana cuando establece `ANTHROPIC_BASE_URL` en una [LLM gateway](/docs/es/llm-gateway).

1638 1638 

costs.md +38 −38

Details

252 Reducir el uso de tokens252 Reducir el uso de tokens

253</h2>253</h2>

254 254 

255Los costos de tokens se escalan con el tamaño del contexto: cuanto más contexto procesa Claude, más tokens utiliza. Claude Code optimiza automáticamente los costos a través del [almacenamiento en caché de prompts](/docs/es/prompt-caching), que reduce costos para contenido repetido como prompts del sistema, y auto-compactación, que resume el historial de conversación cuando se acerca a los límites del contexto.255Los costos de tokens se escalan con el tamaño del contexto: cuanto más contexto procesa Claude, más tokens utilizas. Claude Code optimiza automáticamente los costos a través de la [caché de prompts](/docs/es/prompt-caching), que reduce costos para contenido repetido como prompts del sistema, y la compactación automática, que resume el historial de conversación cuando se acerca a los límites del contexto.

256 256 

257Las siguientes estrategias lo ayudan a mantener el contexto pequeño y reducir los costos por mensaje.257Las siguientes estrategias te ayudan a mantener el contexto pequeño y reducir los costos por mensaje.

258 258 

259<h3 id="manage-context-proactively">259<h3 id="manage-context-proactively">

260 Gestione el contexto de manera proactiva260 Gestiona el contexto de manera proactiva

261</h3>261</h3>

262 262 

263Use `/usage` para verificar su uso actual de tokens, o [configure su línea de estado](/docs/es/statusline#context-window-usage) para mostrarla continuamente.263Usa `/usage` para verificar tu uso actual de tokens, o [configura tu línea de estado](/docs/es/statusline#context-window-usage) para mostrarlo continuamente.

264 264 

265* **Limpia entre tareas**: Usa `/clear` para comenzar de nuevo cuando cambies a trabajo no relacionado. El contexto obsoleto desperdicia tokens en cada mensaje posterior. Usa `/rename` antes de limpiar para que puedas encontrar la sesión más tarde, luego `/resume` para volver a ella.265* **Limpia entre tareas**: Usa `/clear` para comenzar de nuevo cuando cambies a trabajo no relacionado. El contexto obsoleto desperdicia tokens en cada mensaje posterior. Usa `/rename` antes de limpiar para que puedas encontrar la sesión más tarde, luego `/resume` para volver a ella.

266* **Agregue instrucciones de compactación personalizadas**: `/compact Focus on code samples and API usage` le dice a Claude qué preservar durante la summarización.266* **Agrega instrucciones de compactación personalizadas**: `/compact Focus on code samples and API usage` le dice a Claude qué preservar durante el resumen.

267 267 

268También puede personalizar el comportamiento de compactación en su archivo CLAUDE.md en la raíz de su proyecto:268También puedes personalizar el comportamiento de compactación en tu archivo CLAUDE.md en la raíz de tu proyecto:

269 269 

270```markdown theme={null}270```markdown theme={null}

271# Compact instructions271# Compact instructions


274```274```

275 275 

276<h3 id="choose-the-right-model">276<h3 id="choose-the-right-model">

277 Elija el modelo correcto277 Elige el modelo correcto

278</h3>278</h3>

279 279 

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

281 281 

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

283 Reduzca la sobrecarga del servidor MCP283 Reduce la sobrecarga de los servidores MCP

284</h3>284</h3>

285 285 

286Las definiciones de herramientas MCP se [difieren por defecto](/docs/es/mcp#scale-with-mcp-tool-search), por lo que solo los nombres de herramientas y las instrucciones del servidor entran en contexto hasta que Claude usa una herramienta específica. Ejecute `/context` para ver qué está consumiendo espacio.286Las definiciones de herramientas MCP se [difieren por defecto](/docs/es/mcp#scale-with-mcp-tool-search), por lo que solo los nombres de herramientas y las instrucciones del servidor entran en contexto hasta que Claude usa una herramienta específica. Ejecuta `/context` para ver qué está consumiendo espacio.

287 287 

288* **Prefiera herramientas CLI cuando estén disponibles**: Herramientas como `gh`, `aws`, `gcloud` y `sentry-cli` son más eficientes en contexto que los servidores MCP porque no agregan ningún listado por herramienta. Claude puede ejecutar comandos CLI directamente.288* **Prefiere herramientas CLI cuando estén disponibles**: Herramientas como `gh`, `aws`, `gcloud` y `sentry-cli` siguen siendo más eficientes en contexto que los servidores MCP porque no agregan ningún listado por herramienta. Claude puede ejecutar comandos CLI directamente.

289* **Deshabilite servidores no utilizados**: Ejecute `/mcp` para ver servidores configurados y deshabilite cualquiera que no esté usando activamente.289* **Deshabilita servidores no utilizados**: Ejecuta `/mcp` para ver los servidores configurados y deshabilita cualquiera que no estés usando activamente.

290 290 

291<h3 id="install-code-intelligence-plugins-for-typed-languages">291<h3 id="install-code-intelligence-plugins-for-typed-languages">

292 Instale plugins de inteligencia de código para lenguajes tipados292 Instala plugins de inteligencia de código para lenguajes tipados

293</h3>293</h3>

294 294 

295[Los plugins de inteligencia de código](/docs/es/plugins/code-intelligence) le dan a Claude navegación de símbolos precisa en lugar de búsqueda basada en texto, reduciendo lecturas de archivos innecesarias al explorar código desconocido. Una única llamada "ir a definición" reemplaza lo que de otro modo sería un grep seguido de lectura de múltiples archivos candidatos. Los servidores de lenguaje instalados también reportan errores de tipo automáticamente después de ediciones, por lo que Claude detecta errores sin ejecutar un compilador.295[Los plugins de inteligencia de código](/docs/es/plugins/code-intelligence) le dan a Claude navegación de símbolos precisa en lugar de búsqueda basada en texto, reduciendo lecturas de archivos innecesarias al explorar código desconocido. Una única llamada "ir a definición" reemplaza lo que de otro modo sería un grep seguido de la lectura de múltiples archivos candidatos. Los servidores de lenguaje instalados también reportan errores de tipo automáticamente después de las ediciones, por lo que Claude detecta errores sin ejecutar un compilador.

296 296 

297<h3 id="offload-processing-to-hooks-and-skills">297<h3 id="offload-processing-to-hooks-and-skills">

298 Descargue el procesamiento en hooks y skills298 Descarga el procesamiento en hooks y skills

299</h3>299</h3>

300 300 

301Los [hooks](/docs/es/hooks) personalizados pueden preprocesar datos antes de que Claude los vea. En lugar de que Claude lea un archivo de registro de 10,000 líneas para encontrar errores, un hook puede buscar `ERROR` y devolver solo las líneas coincidentes, reduciendo el contexto de decenas de miles de tokens a cientos.301Los [hooks](/docs/es/hooks) personalizados pueden preprocesar datos antes de que Claude los vea. En lugar de que Claude lea un archivo de registro de 10,000 líneas para encontrar errores, un hook puede buscar `ERROR` y devolver solo las líneas coincidentes, reduciendo el contexto de decenas de miles de tokens a cientos.

302 302 

303Una [skill](/docs/es/skills) puede darle a Claude conocimiento de dominio para que no tenga que explorar. Por ejemplo, una skill "codebase-overview" podría describir la arquitectura de su proyecto, directorios clave y convenciones de nomenclatura. Cuando Claude invoca la skill, obtiene este contexto inmediatamente en lugar de gastar tokens leyendo múltiples archivos para entender la estructura.303Un [skill](/docs/es/skills) puede darle a Claude conocimiento de dominio para que no tenga que explorar. Por ejemplo, un skill "codebase-overview" podría describir la arquitectura de tu proyecto, los directorios clave y las convenciones de nomenclatura. Cuando Claude invoca el skill, obtiene este contexto inmediatamente en lugar de gastar tokens leyendo múltiples archivos para entender la estructura.

304 304 

305Por ejemplo, este hook PreToolUse filtra la salida de prueba para mostrar solo fallos:305Por ejemplo, este hook PreToolUse filtra la salida de las pruebas para mostrar solo los fallos:

306 306 

307<Tabs>307<Tabs>

308 <Tab title="settings.json">308 <Tab title="settings.json">

309 Agregue esto a su [settings.json](/docs/es/settings#where-settings-live) para ejecutar el hook antes de cada comando Bash:309 Agrega esto a tu [settings.json](/docs/es/settings#where-settings-live) para ejecutar el hook antes de cada comando Bash:

310 310 

311 ```json theme={null}311 ```json theme={null}

312 {312 {


328 </Tab>328 </Tab>

329 329 

330 <Tab title="filter-test-output.sh">330 <Tab title="filter-test-output.sh">

331 El hook llama a este script. Cree la carpeta con `mkdir -p ~/.claude/hooks`, guarde el script a continuación como `~/.claude/hooks/filter-test-output.sh` y hágalo ejecutable con `chmod +x ~/.claude/hooks/filter-test-output.sh`. Verifica si el comando es un ejecutor de pruebas y lo modifica para mostrar solo fallos:331 El hook llama a este script. Crea la carpeta con `mkdir -p ~/.claude/hooks`, guarda el script a continuación como `~/.claude/hooks/filter-test-output.sh` y hazlo ejecutable con `chmod +x ~/.claude/hooks/filter-test-output.sh`. Verifica si el comando es un ejecutor de pruebas y lo modifica para mostrar solo los fallos:

332 332 

333 ```bash theme={null}333 ```bash theme={null}

334 #!/bin/bash334 #!/bin/bash


347 </Tab>347 </Tab>

348</Tabs>348</Tabs>

349 349 

350Para verificar la configuración, ejecute `/hooks` y verifique que el hook aparezca bajo PreToolUse. También puede iniciar Claude Code con `claude --debug-file ./claude-debug.txt` y pedirle a Claude que ejecute `npm test`. Cuando el hook reescribe el comando, ese archivo de registro contiene una línea `modified tool input keys` que enumera `command` y los otros campos de entrada de Bash.350Para verificar la configuración, ejecuta `/hooks` y comprueba que el hook aparezca bajo PreToolUse. También puedes iniciar Claude Code con `claude --debug-file ./claude-debug.txt` y pedirle a Claude que ejecute `npm test`. Cuando el hook reescribe el comando, ese archivo de registro contiene una línea `modified tool input keys` que enumera `command` y los otros campos de entrada de Bash.

351 351 

352<h3 id="move-instructions-from-claude-md-to-skills">352<h3 id="move-instructions-from-claude-md-to-skills">

353 Mueva instrucciones de CLAUDE.md a skills353 Mueve instrucciones de CLAUDE.md a skills

354</h3>354</h3>

355 355 

356Su archivo [CLAUDE.md](/docs/es/memory) se carga en contexto al inicio de la sesión. Si contiene instrucciones detalladas para flujos de trabajo específicos (como revisiones de PR o migraciones de bases de datos), esos tokens están presentes incluso cuando está haciendo trabajo no relacionado. [Skills](/docs/es/skills) se cargan bajo demanda solo cuando se invocan, por lo que mover instrucciones especializadas a skills mantiene su contexto base más pequeño. Apunte a mantener CLAUDE.md bajo 200 líneas incluyendo solo lo esencial.356Tu archivo [CLAUDE.md](/docs/es/memory) se carga en contexto al inicio de la sesión. Si contiene instrucciones detalladas para flujos de trabajo específicos (como revisiones de PR o migraciones de bases de datos), esos tokens están presentes incluso cuando estás haciendo trabajo no relacionado. Los [skills](/docs/es/skills) se cargan bajo demanda solo cuando se invocan, por lo que mover instrucciones especializadas a skills mantiene tu contexto base más pequeño. Procura mantener CLAUDE.md por debajo de 200 líneas incluyendo solo lo esencial.

357 357 

358<h3 id="adjust-extended-thinking">358<h3 id="adjust-extended-thinking">

359 Ajuste el pensamiento extendido359 Ajusta el pensamiento extendido

360</h3>360</h3>

361 361 

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

363 363 

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

365 365 

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

367 367 

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

369 Delegue operaciones detalladas a subagentes369 Delega operaciones detalladas a subagentes

370</h3>370</h3>

371 371 

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

373 373 

374Las solicitudes del subagente aún se extraen de su uso. Para gastar menos en ellas, [elija un modelo más pequeño para un subagente](/docs/es/sub-agents#choose-a-model) o [ejecute cada subagente en un modelo](/docs/es/sub-agents#run-every-subagent-on-one-model).374Las solicitudes del propio subagente siguen consumiendo tu uso. Para gastar menos en ellas, [elige un modelo más pequeño para un subagente](/docs/es/sub-agents#choose-a-model) o [ejecuta todos los subagentes en un solo modelo](/docs/es/sub-agents#run-every-subagent-on-one-model).

375 375 

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

377 Gestione los costos del equipo de agentes377 Gestiona los costos de los equipos de agentes

378</h3>378</h3>

379 379 

380Los equipos de agentes usan aproximadamente 7 veces más tokens que sesiones estándar cuando los compañeros de equipo se ejecutan en plan mode, porque cada compañero de equipo mantiene su propia ventana de contexto y se ejecuta como una instancia separada de Claude. Mantenga las tareas del equipo pequeñas y autónomas para limitar el uso de tokens por compañero de equipo. Consulte [equipos de agentes](/docs/es/agent-teams) para obtener detalles.380Los equipos de agentes usan aproximadamente 7 veces más tokens que las sesiones estándar cuando los compañeros de equipo se ejecutan en modo plan, porque cada compañero de equipo mantiene su propia ventana de contexto y se ejecuta como una instancia separada de Claude. Mantén las tareas del equipo pequeñas y autónomas para limitar el uso de tokens por compañero de equipo. Consulta [equipos de agentes](/docs/es/agent-teams) para obtener detalles.

381 381 

382<h3 id="write-specific-prompts">382<h3 id="write-specific-prompts">

383 Escriba prompts específicos383 Escribe prompts específicos

384</h3>384</h3>

385 385 

386Solicitudes vagas como "mejorar esta base de código" desencadenan escaneo amplio. Solicitudes específicas como "agregar validación de entrada a la función de inicio de sesión en auth.ts" permiten que Claude trabaje eficientemente con lecturas de archivos mínimas.386Solicitudes vagas como "mejorar esta base de código" desencadenan un escaneo amplio. Solicitudes específicas como "agregar validación de entrada a la función de inicio de sesión en auth.ts" permiten que Claude trabaje eficientemente con lecturas de archivos mínimas.

387 387 

388<h3 id="work-efficiently-on-complex-tasks">388<h3 id="work-efficiently-on-complex-tasks">

389 Trabaje eficientemente en tareas complejas389 Trabaja eficientemente en tareas complejas

390</h3>390</h3>

391 391 

392Para trabajo más largo o más complejo, estos hábitos ayudan a evitar tokens desperdiciados por tomar el camino equivocado:392Para trabajo más largo o más complejo, estos hábitos ayudan a evitar tokens desperdiciados por tomar el camino equivocado:

393 393 

394* **Use plan mode para tareas complejas**: Presione Shift+Tab para entrar en [plan mode](/docs/es/permission-modes#analyze-before-you-edit-with-plan-mode) antes de la implementación. Claude explora la base de código y propone un enfoque para su aprobación, previniendo re-trabajo costoso cuando la dirección inicial es incorrecta.394* **Usa el modo plan para tareas complejas**: Presiona Shift+Tab para pasar al [modo plan](/docs/es/permission-modes#analyze-before-you-edit-with-plan-mode) antes de la implementación. Claude explora la base de código y propone un enfoque para tu aprobación, evitando retrabajo costoso cuando la dirección inicial es incorrecta.

395* **Corrija el curso temprano**: Si Claude comienza a ir en la dirección equivocada, presione Escape para detener inmediatamente. Use `/rewind` o presione Escape dos veces para restaurar la conversación y el código a un checkpoint anterior.395* **Corrige el rumbo temprano**: Si Claude comienza a ir en la dirección equivocada, presiona Escape para detenerlo inmediatamente. Usa `/rewind` o presiona Escape dos veces para restaurar la conversación y el código a un checkpoint anterior.

396* **Proporcione objetivos de verificación**: Incluya casos de prueba, pegue capturas de pantalla o defina la salida esperada en su prompt. Cuando Claude puede verificar su propio trabajo, detecta problemas antes de que necesite solicitar correcciones.396* **Proporciona objetivos de verificación**: Incluye casos de prueba, pega capturas de pantalla o define la salida esperada en tu prompt. Cuando Claude puede verificar su propio trabajo, detecta problemas antes de que necesites solicitar correcciones.

397* **Pruebe incrementalmente**: Escriba un archivo, pruébelo, luego continúe. Esto detecta problemas temprano cuando son baratos de arreglar.397* **Prueba incrementalmente**: Escribe un archivo, pruébalo y luego continúa. Esto detecta problemas temprano.

398 398 

399<h2 id="background-token-usage">399<h2 id="background-token-usage">

400 Uso de tokens en segundo plano400 Uso de tokens en segundo plano

desktop.md +59 −8

Details

108 Disponibilidad del modo automático108 Disponibilidad del modo automático

109</h4>109</h4>

110 110 

111El modo automático está disponible para todos los usuarios en la API de Anthropic y requiere Claude Opus 4.6 o posterior, Sonnet 4.6 o posterior, o un [modelo Fable](/docs/es/model-config#work-with-fable). Los administradores de la organización pueden desactivar el modo automático con la clave `disableAutoMode` en la [configuración administrada](#managed-settings).111El modo automático está disponible para todos los usuarios en la API de Anthropic y requiere Claude Opus 4.6 o posterior, Sonnet 4.6 o posterior, Haiku 5.5 o un [modelo Fable](/docs/es/model-config#work-with-fable). Los administradores de la organización pueden desactivar el modo automático con la clave `disableAutoMode` en la [configuración administrada](#managed-settings).

112 112 

113En los despliegues de Enterprise que enrutan Desktop a Agent Platform de Google Cloud, el modo automático también está disponible de forma predeterminada; consulta [Modo automático en Bedrock, Agent Platform o Foundry](/docs/es/permission-modes#enable-auto-mode-on-bedrock-agent-platform-or-foundry) para ver los modelos compatibles.113En los despliegues de Enterprise que enrutan Desktop a Agent Platform de Google Cloud, el modo automático también está disponible de forma predeterminada; consulta [Modo automático en Bedrock, Agent Platform o Foundry](/docs/es/permission-modes#enable-auto-mode-on-bedrock-agent-platform-or-foundry) para ver los modelos compatibles.

114 114 


225 Ejecutar comandos en la terminal225 Ejecutar comandos en la terminal

226</h3>226</h3>

227 227 

228La terminal integrada te permite ejecutar comandos junto a tu sesión sin cambiar a otra aplicación. Haz clic en **Terminal** en la barra de título de la sesión o presiona **Ctrl+\`** en macOS o Windows. La terminal se abre en el directorio de trabajo de tu sesión y comparte el mismo entorno que Claude, por lo que comandos como `npm test` o `git status` ven los mismos archivos que Claude está editando. Para abrir una segunda pestaña de terminal, haz clic en **+** en el encabezado del panel de terminal o haz clic con el botón derecho en una carpeta en el chat para elegir **Open in terminal**. La terminal está disponible solo en sesiones locales.228La terminal integrada te permite ejecutar comandos junto a tu sesión sin cambiar a otra aplicación. Haz clic en **Terminal** en la barra de título de la sesión o presiona **Ctrl+\`** en macOS o Windows. La terminal se abre en el directorio de trabajo de tu sesión y comparte el mismo entorno que Claude, por lo que comandos como `npm test` o `git status` ven los mismos archivos que Claude está editando. Para abrir una segunda pestaña de terminal, haz clic en **+** en el encabezado del panel de terminal o haz clic con el botón derecho en una carpeta en el chat para elegir **Open in terminal**. La terminal está disponible en sesiones locales y [SSH](#ssh-sessions).

229 229 

230<h3 id="open-and-edit-files">230<h3 id="open-and-edit-files">

231 Abrir y editar archivos231 Abrir y editar archivos


743 743 

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

745 745 

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

747 747 

748En modelos con [razonamiento adaptativo](/docs/es/model-config#adjust-effort-level), Claude Code ignora el número en sí de un valor positivo de `MAX_THINKING_TOKENS` porque el razonamiento adaptativo controla la profundidad del pensamiento en su lugar. En Opus 4.6 y Sonnet 4.6, establece `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` en `1` para usar un presupuesto de pensamiento fijo; los modelos Fable, Sonnet 5 y posteriores, y Opus 4.7 y posteriores siempre usan razonamiento adaptativo y no tienen modo de presupuesto fijo.748En modelos con [razonamiento adaptativo](/docs/es/model-config#adjust-effort-level), Claude Code ignora el número en sí de un valor positivo de `MAX_THINKING_TOKENS` porque el razonamiento adaptativo controla la profundidad del pensamiento en su lugar. En Opus 4.6 y Sonnet 4.6, establece `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` en `1` para usar un presupuesto de pensamiento fijo; los modelos Fable, Sonnet 5 y posteriores, Haiku 5.5, y Opus 4.7 y posteriores siempre usan razonamiento adaptativo y no tienen modo de presupuesto fijo.

749 749 

750<h4 id="local-sessions-on-managed-devices">750<h4 id="local-sessions-on-managed-devices">

751 Sesiones locales en dispositivos administrados751 Sesiones locales en dispositivos administrados


783 783 

784La máquina remota debe ejecutar Linux o macOS. La aplicación de escritorio instala Claude Code en la máquina remota automáticamente la primera vez que se conecta. Una vez conectado, las sesiones SSH admiten modos de permisos, conectores, plugins y servidores MCP.784La máquina remota debe ejecutar Linux o macOS. La aplicación de escritorio instala Claude Code en la máquina remota automáticamente la primera vez que se conecta. Una vez conectado, las sesiones SSH admiten modos de permisos, conectores, plugins y servidores MCP.

785 785 

786<h4 id="open-an-ssh-session-from-a-link">

787 Abrir una sesión SSH desde un enlace

788</h4>

789 

790Un enlace `claude://code/new` abre la página de nueva sesión de Desktop y puede indicar una conexión SSH. Coloca un enlace así en un runbook, un panel o una página wiki para abrir Desktop configurado para la máquina y la carpeta correctas. Para las plataformas que eliminan este tipo de enlaces, consulta [El enlace se muestra como texto sin formato en lugar de ser clicable](/docs/es/deep-links#the-link-renders-as-plain-text-instead-of-being-clickable).

791 

792Los enlaces SSH requieren Claude Desktop v2.110.0 o posterior.

793 

794El siguiente enlace indica el usuario `dev` en `build.example.com`, el puerto 2222 y la carpeta `/srv/payments`, y completa un prompt:

795 

796```text theme={null}

797claude://code/new?ssh_host=dev%40build.example.com&ssh_port=2222&ssh_folder=/srv/payments&q=Investigate%20the%20failed%20deploy

798```

799 

800Un enlace SSH acepta estos parámetros, y solo `ssh_host` es obligatorio:

801 

802| Parámetro | Valor |

803| :- | :- |

804| `ssh_host` | `host` o `user@host`, escrito como en el campo **SSH host**. El valor no puede comenzar con `-`, y la parte del host solo admite letras, dígitos, `.`, `_`, `:` y `-` |

805| `ssh_port` | Un número de puerto de 1 a 65535 |

806| `ssh_folder` | Una carpeta en la máquina remota. Comiénzala con `/` o `~/`, o usa `~` |

807| `q` | Texto codificado para URL para el cuadro de prompt |

808 

809Un alias de `~/.ssh/config` funciona como `ssh_host` solo para las personas que tienen esa entrada. Para que coincida con una conexión que las personas ya tienen, indica en el enlace el mismo usuario, host y puerto que esa conexión.

810 

811Cuando abres el enlace, Desktop te pide que confirmes antes de seleccionar la conexión:

812 

813* **Una conexión que ya tienes**: si el host, el usuario y el puerto coinciden con una de tus conexiones, Desktop te pregunta si quieres usarla y te muestra el nombre y el host de la conexión, y la carpeta si el enlace indica una.

814* **Una conexión nueva**: de lo contrario, Desktop abre el diálogo para agregar una conexión SSH. Cuando agregas la conexión, Desktop te pregunta si quieres conectarte antes de guardar nada y te muestra el host del enlace, y el puerto y la carpeta si el enlace los indica.

815 

816Hasta que confirmes, Desktop no guarda el host, el puerto ni la carpeta del enlace, y no selecciona ni abre una conexión con ellos. Si ya hay una conexión SSH seleccionada, la página de nueva sesión aún puede conectarse a ella por sí sola, como lo hace sin un enlace, incluso cuando el enlace indica el mismo host. Un enlace no puede incluir un archivo de clave, una contraseña ni un comando.

817 

818Cualquiera puede escribir un enlace, así que revisa lo que completó:

819 

820* **Antes de confirmar**: revisa el host y la carpeta.

821* **Antes de enviar**: revisa el prompt y el entorno seleccionado.

822 

823Desktop completa el prompt cuando se abre el enlace, en lugar de cualquier texto que no hayas enviado, y nunca lo envía por ti. Trata el prompt como texto sin formato, por lo que un `/` o `!` inicial y una mención de archivo con `@` no actúan como comando ni como mención. Si cancelas, el prompt permanece en el cuadro y el entorno que tenías seleccionado no cambia.

824 

825Un enlace no omite [`sshHostAllowlist`](#restrict-which-ssh-hosts-users-can-connect-to). Desktop verifica la lista de permitidos cuando se conecta.

826 

827Si el enlace abre Desktop sin un diálogo sobre la conexión, busca una de estas causas:

828 

829* **Cerraste sesión**: inicia sesión y luego vuelve a abrir el enlace.

830* **Hay otro diálogo abierto**: ciérralo y luego vuelve a abrir el enlace.

831* **El enlace no es válido**: Desktop muestra un mensaje que indica qué corregir y no completa el prompt.

832* **Desktop es anterior a v2.110.0**: las versiones anteriores ignoran los parámetros SSH y abren la página de nueva sesión solo con el prompt.

833* **Las sesiones SSH están desactivadas**: si tu administrador establece la lista de permitidos en una matriz vacía, Desktop rechaza los enlaces SSH.

834 

786<h4 id="pre-configure-ssh-connections-for-your-team">835<h4 id="pre-configure-ssh-connections-for-your-team">

787 Pre-configurar conexiones SSH para su equipo836 Pre-configurar conexiones SSH para su equipo

788</h4>837</h4>


805}854}

806```855```

807 856 

808Cada entrada requiere `id`, `name` y `sshHost`. Los campos `sshPort` e `sshIdentityFile` son opcionales. Los usuarios también pueden agregar `sshConfigs` a su propio `~/.claude/settings.json`, que es donde se almacenan las conexiones agregadas a través del diálogo.857Cada entrada requiere `id`, `name` y `sshHost`. Los campos `sshPort` e `sshIdentityFile` son opcionales. Los usuarios también pueden agregar `sshConfigs` a su propio `~/.claude/settings.json`.

809 858 

810<h4 id="restrict-which-ssh-hosts-users-can-connect-to">859<h4 id="restrict-which-ssh-hosts-users-can-connect-to">

811 Restringir a qué hosts SSH pueden conectarse los usuarios860 Restringir a qué hosts SSH pueden conectarse los usuarios


866| `sshConfigs` | preconfigura [conexiones SSH](#pre-configure-ssh-connections-for-your-team) que aparecen en el menú desplegable de entorno. Los usuarios no pueden editar ni eliminar conexiones administradas. |915| `sshConfigs` | preconfigura [conexiones SSH](#pre-configure-ssh-connections-for-your-team) que aparecen en el menú desplegable de entorno. Los usuarios no pueden editar ni eliminar conexiones administradas. |

867| `sshHostAllowlist` | restringe las [sesiones SSH](#restrict-which-ssh-hosts-users-can-connect-to) a hosts cuyo nombre de host resuelto coincida con uno de estos patrones. Una matriz vacía deshabilita las sesiones SSH. Se lee solo desde la configuración administrada. |916| `sshHostAllowlist` | restringe las [sesiones SSH](#restrict-which-ssh-hosts-users-can-connect-to) a hosts cuyo nombre de host resuelto coincida con uno de estos patrones. Una matriz vacía deshabilita las sesiones SSH. Se lee solo desde la configuración administrada. |

868| `disableDesktopLocalSessions` | establécelo en `true` para desactivar las [sesiones de Code que se ejecutan en el dispositivo](#local-sessions-on-managed-devices), dejando disponibles las sesiones SSH a otros hosts y las sesiones en la nube. El valor debe ser el booleano JSON `true`. Se lee solo desde la configuración administrada. Requiere Claude Desktop v1.37937.0 o posterior. |917| `disableDesktopLocalSessions` | establécelo en `true` para desactivar las [sesiones de Code que se ejecutan en el dispositivo](#local-sessions-on-managed-devices), dejando disponibles las sesiones SSH a otros hosts y las sesiones en la nube. El valor debe ser el booleano JSON `true`. Se lee solo desde la configuración administrada. Requiere Claude Desktop v1.37937.0 o posterior. |

918| `disableSshSavedPasswords` | establécelo en `true` para que Desktop deje de ofrecer recordar las contraseñas SSH y deje de usar o mostrar las que guardó anteriormente. Activarlo no las elimina. Se lee solo desde la configuración administrada. Requiere Claude Desktop v1.49585.0 o posterior. |

869| `managedMcpServers` | envía configuraciones de servidores MCP a todos los usuarios. Disponible solo en despliegues de Desktop de terceros (3P). En cada entrada, establece un transporte `"http"`, `"sse"` o `"stdio"`, los detalles de conexión y, opcionalmente, un mapa `toolPolicy` para restringir qué herramientas de ese servidor pueden invocar los usuarios. Entrégalo a través del archivo de configuración administrada, MDM o el [bloque `desktop`](/docs/es/claude-apps-gateway-config#claude-desktop-overlay) de la política de un gateway de aplicaciones Claude, ya que los despliegues de terceros no reciben la configuración de la consola de administración. Para entregarlo a través del gateway, necesitas Claude Code v2.1.232 o posterior en el servidor del gateway. Esta es la clave propia de la aplicación de escritorio; Claude Code lee un [ajuste de configuración administrada con el mismo nombre](/docs/es/managed-mcp#provide-servers-through-managed-settings) propio, con una forma de entrada diferente. |919| `managedMcpServers` | envía configuraciones de servidores MCP a todos los usuarios. Disponible solo en despliegues de Desktop de terceros (3P). En cada entrada, establece un transporte `"http"`, `"sse"` o `"stdio"`, los detalles de conexión y, opcionalmente, un mapa `toolPolicy` para restringir qué herramientas de ese servidor pueden invocar los usuarios. Entrégalo a través del archivo de configuración administrada, MDM o el [bloque `desktop`](/docs/es/claude-apps-gateway-config#claude-desktop-overlay) de la política de un gateway de aplicaciones Claude, ya que los despliegues de terceros no reciben la configuración de la consola de administración. Para entregarlo a través del gateway, necesitas Claude Code v2.1.232 o posterior en el servidor del gateway. Esta es la clave propia de la aplicación de escritorio; Claude Code lee un [ajuste de configuración administrada con el mismo nombre](/docs/es/managed-mcp#provide-servers-through-managed-settings) propio, con una forma de entrada diferente. |

870 920 

871Qué configuración administrada llega a una sesión de Desktop depende de dónde se ejecute esa sesión. Las restricciones de modelo como [`availableModels`](/docs/es/model-config#restrict-model-selection) se aplican en las sesiones de Claude Code de Desktop de la misma manera que en la CLI de la terminal; consulta [cobertura de superficie](/docs/es/model-config#surface-coverage).921Qué configuración administrada llega a una sesión de Desktop depende de dónde se ejecute esa sesión. Las restricciones de modelo como [`availableModels`](/docs/es/model-config#restrict-model-selection) se aplican en las sesiones de Claude Code de Desktop de la misma manera que en la CLI de la terminal; consulta [cobertura de superficie](/docs/es/model-config#surface-coverage).

872 922 

873* **Sesiones locales en esta máquina**: se aplica un archivo de configuración administrada desplegado en disco. La configuración administrada enviada de forma remota a través de la consola de administración también llega a estas sesiones en la API de Anthropic cuando la sesión se autentica con un [inicio de sesión o clave elegible](/docs/es/server-managed-settings#platform-availability), siguiendo la misma [precedencia de configuración](/docs/es/settings#settings-precedence) que la CLI de la terminal.923* **Sesiones locales en esta máquina**: se aplica un archivo de configuración administrada desplegado en disco. La configuración administrada enviada de forma remota a través de la consola de administración también llega a estas sesiones en la API de Anthropic cuando la sesión se autentica con un [inicio de sesión o clave elegible](/docs/es/server-managed-settings#platform-availability), siguiendo la misma [precedencia de configuración](/docs/es/settings#settings-precedence) que la CLI de la terminal.

874* **[Sesiones en la nube](#cloud-sessions)**: reciben [configuración administrada por servidor](/docs/es/server-managed-settings); los archivos desplegados en dispositivos no llegan a ellas, porque se ejecutan en máquinas virtuales administradas por Anthropic. Las sesiones enrutadas a un [entorno autohospedado](/docs/es/self-hosted-environments) también leen el archivo de configuración administrada en la imagen del ejecutor. [Cómo Claude Code combina fuentes administradas](/docs/es/managed-settings#how-claude-code-combines-managed-sources) indica cuándo se aplica ese archivo.924* **[Sesiones en la nube](#cloud-sessions)**: reciben [configuración administrada por servidor](/docs/es/server-managed-settings); los archivos desplegados en dispositivos no llegan a ellas, porque se ejecutan en máquinas virtuales administradas por Anthropic. Las sesiones enrutadas a un [entorno autohospedado](/docs/es/self-hosted-environments) también leen el archivo de configuración administrada en la imagen del ejecutor. [Cómo Claude Code combina fuentes administradas](/docs/es/managed-settings#how-claude-code-combines-managed-sources) indica cuándo se aplica ese archivo.

875* **[Sesiones SSH](#ssh-sessions)**: la sesión lee el archivo de configuración administrada desde el host remoto. Desktop mismo lee `sshConfigs`, `sshHostAllowlist` y `disableDesktopLocalSessions` desde la configuración administrada de la máquina local.925* **[Sesiones SSH](#ssh-sessions)**: la sesión lee el archivo de configuración administrada desde el host remoto. Desktop mismo lee `sshConfigs`, `sshHostAllowlist`, `disableSshSavedPasswords` y `disableDesktopLocalSessions` desde la configuración administrada de la máquina local.

876* **Sesiones de [Cowork](https://claude.com/docs/cowork/overview)**: en una sesión de Cowork en esta máquina, Claude Code nunca obtiene la configuración de la consola de administración, incluso cuando el usuario inicia sesión con una cuenta de Team o Enterprise, y lee la política desplegada en la máquina a menos que tu configuración de Claude Desktop establezca `requireCoworkFullVmSandbox`. Las sesiones remotas de Cowork no reciben ninguna de las dos. Consulta [dónde y cuándo se aplica una política](/docs/es/managed-settings#where-and-when-a-policy-applies) para saber qué archivos de dispositivo llegan a Cowork, y [reglas de permisos de MCP](/docs/es/permissions#mcp) para saber cómo se aplican las reglas de `Bash` y `WebFetch` a las herramientas de Cowork.926* **Sesiones de [Cowork](https://claude.com/docs/cowork/overview)**: en una sesión de Cowork en esta máquina, Claude Code nunca obtiene la configuración de la consola de administración, incluso cuando el usuario inicia sesión con una cuenta de Team o Enterprise, y lee la política desplegada en la máquina a menos que tu configuración de Claude Desktop establezca `requireCoworkFullVmSandbox`. Las sesiones remotas de Cowork no reciben ninguna de las dos. Consulta [dónde y cuándo se aplica una política](/docs/es/managed-settings#where-and-when-a-policy-applies) para saber qué archivos de dispositivo llegan a Cowork, y [reglas de permisos de MCP](/docs/es/permissions#mcp) para saber cómo se aplican las reglas de `Bash` y `WebFetch` a las herramientas de Cowork.

877 927 

878En sesiones locales y SSH, la aplicación de escritorio entrega directamente a Claude Code los conectores de claude.ai conectados de cada usuario. Ningún ajuste de MCP ni `managed-mcp.json` llega a esos conectores, cualquiera que sea la fuente de configuración o ubicación de archivo que uses. Para bloquear las herramientas de un conector en estas sesiones, usa los [controles de herramientas de conectores](/docs/es/mcp#organization-controls-on-connector-tools) de tu organización. [Cómo los conectores llegan a Claude Code](/docs/es/mcp#how-connectors-reach-claude-code) muestra qué configuración rige los conectores en cada tipo de sesión.928En sesiones locales y SSH, la aplicación de escritorio entrega directamente a Claude Code los conectores de claude.ai conectados de cada usuario. Ningún ajuste de MCP ni `managed-mcp.json` llega a esos conectores, cualquiera que sea la fuente de configuración o ubicación de archivo que uses. Para bloquear las herramientas de un conector en estas sesiones, usa los [controles de herramientas de conectores](/docs/es/mcp#organization-controls-on-connector-tools) de tu organización. [Cómo los conectores llegan a Claude Code](/docs/es/mcp#how-connectors-reach-claude-code) muestra qué configuración rige los conectores en cada tipo de sesión.


885 Políticas de gestión de dispositivos935 Políticas de gestión de dispositivos

886</h3>936</h3>

887 937 

888Los equipos de TI pueden gestionar la aplicación de escritorio a través de MDM en macOS o de directivas de grupo en Windows. Las políticas disponibles incluyen habilitar o deshabilitar la función Claude Code, controlar las actualizaciones automáticas y establecer una URL de despliegue personalizada.938Los equipos de TI pueden gestionar la aplicación de escritorio a través de MDM en macOS, directivas de grupo en Windows o un archivo de políticas en Linux. Las políticas disponibles incluyen habilitar o deshabilitar la función Claude Code, controlar las actualizaciones automáticas en macOS y Windows, y establecer una URL de despliegue personalizada.

889 939 

890* **macOS**: configura a través del dominio de preferencias `com.anthropic.claudefordesktop` usando herramientas como Jamf o Kandji940* **macOS**: configura a través del dominio de preferencias `com.anthropic.claudefordesktop` usando herramientas como Jamf o Kandji

891* **Windows**: configura a través del registro en `SOFTWARE\Policies\Claude`941* **Windows**: configura a través del registro en `SOFTWARE\Policies\Claude`

942* **Linux**: configura a través de un archivo propiedad de root en `/etc/claude-desktop/managed-settings.json`, que contiene las claves de políticas como un objeto JSON. Desktop rechaza el archivo si alguien que no sea root puede escribir en él o en su carpeta. Es un archivo distinto del [archivo de configuración administrada](/docs/es/managed-settings) de Claude Code.

892 943 

893<h3 id="network-access-requirements">944<h3 id="network-access-requirements">

894 Requisitos de acceso a la red945 Requisitos de acceso a la red


1092Para ver qué versión de la aplicación de escritorio está ejecutando:1143Para ver qué versión de la aplicación de escritorio está ejecutando:

1093 1144 

1094* **macOS**: haga clic en **Claude** en la barra de menú, luego **About Claude**1145* **macOS**: haga clic en **Claude** en la barra de menú, luego **About Claude**

1095* **Windows**: haga clic en **Help**, luego **About**1146* **Windows**: haz clic en **Help**, luego en **About Claude**

1096 1147 

1097Haga clic en el número de versión para copiarlo a su portapapeles.1148Haga clic en el número de versión para copiarlo a su portapapeles.

1098 1149 

Details

92* Guardar una captura de pantalla con **Cmd+S** o una grabación de pantalla con **Cmd+R**, usando los botones de captura del panel o los atajos; los archivos se guardan en tu Escritorio92* Guardar una captura de pantalla con **Cmd+S** o una grabación de pantalla con **Cmd+R**, usando los botones de captura del panel o los atajos; los archivos se guardan en tu Escritorio

93* Detener la transmisión de un dispositivo sin apagarlo haciendo clic en **Detach simulator**, que devuelve el panel a su estado **Attach simulator**93* Detener la transmisión de un dispositivo sin apagarlo haciendo clic en **Detach simulator**, que devuelve el panel a su estado **Attach simulator**

94 94 

95Para ajustar el streaming de video desde el simulador, abre el menú **Display** del panel. Reduce la **Frame rate** o **Resolution** si el panel sobrecarga tu Mac. Ambos ajustes cambian cómo el panel muestra el dispositivo, no cómo se ejecuta la aplicación.95Si el panel muestra un menú **Display**, úsalo para ajustar el streaming de video desde el simulador. Reduce la **Frame rate** o **Resolution** si el panel sobrecarga tu Mac. Ambos ajustes cambian cómo el panel muestra el dispositivo, no cómo se ejecuta la aplicación.

96 96 

97Tú y Claude controlan el mismo dispositivo, por lo que tus toques cambian el estado de la aplicación que Claude ve. Para que Claude verifique una pantalla específica, navega a ella tocando, luego pregunta. Mientras Claude controla el dispositivo, el panel muestra una insignia **Claude is using this device** encima de la pantalla; espera a tocar hasta que la insignia desaparezca, para que el resultado refleje la aplicación en lugar de tu entrada.97Tú y Claude controlan el mismo dispositivo, por lo que tus toques cambian el estado de la aplicación que Claude ve. Para que Claude verifique una pantalla específica, navega a ella tocando, luego pregunta. Mientras Claude controla el dispositivo, el panel muestra una insignia **Claude is using this device** encima de la pantalla; espera a tocar hasta que la insignia desaparezca, para que el resultado refleje la aplicación en lugar de tu entrada.

98 98 

env-vars.md +308 −304

Details

19 Establecer variables de entorno19 Establecer variables de entorno

20</h2>20</h2>

21 21 

22Una variable que establezca en su shell dura durante esa sesión de terminal, mientras que una variable en un archivo de configuración se aplica cada vez que se ejecuta `claude`.22Una variable que estableces en tu shell dura durante esa sesión de terminal, mientras que una variable en un archivo de configuración se aplica cada vez que se ejecuta `claude`.

23 23 

24<h3 id="in-your-shell">24<h3 id="in-your-shell">

25 En su shell25 En tu shell

26</h3>26</h3>

27 27 

28Establezca la variable antes de lanzar `claude`:28Establece la variable antes de lanzar `claude`:

29 29 

30<Tabs>30<Tabs>

31 <Tab title="macOS, Linux, WSL">31 <Tab title="macOS, Linux, WSL">


34 claude34 claude

35 ```35 ```

36 36 

37 Para establecerla para cada sesión, agregue la línea `export` a `~/.bashrc`, `~/.zshrc`, o el archivo de perfil de su shell.37 Para establecerla para cada sesión, agrega la línea `export` a `~/.bashrc`, `~/.zshrc`, o el archivo de perfil de tu shell.

38 </Tab>38 </Tab>

39 39 

40 <Tab title="Windows PowerShell">40 <Tab title="Windows PowerShell">


43 claude43 claude

44 ```44 ```

45 45 

46 Para establecerla para cada sesión, ejecute `[Environment]::SetEnvironmentVariable("API_TIMEOUT_MS", "1200000", "User")` y abra una nueva terminal.46 Para establecerla para cada sesión, ejecuta `[Environment]::SetEnvironmentVariable("API_TIMEOUT_MS", "1200000", "User")` y abre una nueva terminal.

47 </Tab>47 </Tab>

48 48 

49 <Tab title="Windows CMD">49 <Tab title="Windows CMD">


52 claude52 claude

53 ```53 ```

54 54 

55 Para establecerla para cada sesión, ejecute `setx API_TIMEOUT_MS "1200000"` y abra una nueva terminal.55 Para establecerla para cada sesión, ejecuta `setx API_TIMEOUT_MS "1200000"` y abre una nueva terminal.

56 </Tab>56 </Tab>

57</Tabs>57</Tabs>

58 58 

59La línea de asignación no imprime nada en caso de éxito. Para confirmar que la variable está establecida, imprímala en el mismo shell:59La línea de asignación no imprime nada en caso de éxito. Para confirmar que la variable está establecida, imprímela en el mismo shell:

60 60 

61<Tabs>61<Tabs>

62 <Tab title="macOS, Linux, WSL">62 <Tab title="macOS, Linux, WSL">


82 En archivos de configuración82 En archivos de configuración

83</h3>83</h3>

84 84 

85Agregue variables bajo la clave `env` en un archivo `settings.json`, creando el archivo si no existe. Claude Code las lee directamente del archivo, por lo que surten efecto sin importar cómo se haya lanzado `claude`. Una sesión en ejecución aplica valores nuevos y modificados a su entorno cuando guarda el archivo, pero una característica que lee sus variables una sola vez al inicio, como [monitoreo de OpenTelemetry](/docs/es/monitoring-usage), mantiene sus valores de inicio hasta que relance. Eliminar una variable del archivo no la desestablece en una sesión en ejecución; la eliminación surte efecto la próxima vez que lance `claude`.85Agrega variables bajo la clave `env` en un archivo `settings.json`, creando el archivo si no existe. Claude Code las lee directamente del archivo, por lo que surten efecto sin importar cómo se haya lanzado `claude`. Una sesión en ejecución aplica valores nuevos y modificados a su entorno cuando guardas el archivo, pero una característica que lee sus variables una sola vez al inicio, como [monitoreo de OpenTelemetry](/docs/es/monitoring-usage), mantiene sus valores de inicio hasta que relances. Eliminar una variable del archivo no la desestablece en una sesión en ejecución; la eliminación surte efecto la próxima vez que lances `claude`.

86 86 

87```json ~/.claude/settings.json theme={null}87```json ~/.claude/settings.json theme={null}

88{88{


93}93}

94```94```

95 95 

96El archivo que elija controla a quién se aplican las variables:96Claude Code copia estos valores en su entorno tal como están escritos. Ningún shell los procesa, por lo que abreviaturas como `~` o `$HOME` se mantienen tal como se escribieron. Para una variable que recibe una ruta, como `CLAUDE_CONFIG_DIR`, escribe la ruta absoluta: `"CLAUDE_CONFIG_DIR": "/home/you/.claude-work"`.

97 

98El archivo que elijas controla a quién se aplican las variables:

97 99 

98| Archivo | Se aplica a |100| Archivo | Se aplica a |

99| :- | :- |101| :- | :- |

100| `~/.claude/settings.json` | Usted, en cada proyecto |102| `~/.claude/settings.json` | Tú, en cada proyecto |

101| `.claude/settings.json` | Todos los que trabajan en el proyecto, registrado en el control de fuente |103| `.claude/settings.json` | Todos los que trabajan en el proyecto, registrado en el control de fuente |

102| `.claude/settings.local.json` | Usted, solo en este proyecto, ignorado por git cuando Claude Code guarda una configuración en él; agréguelo a su gitignore si lo crea manualmente |104| `.claude/settings.local.json` | Tú, solo en este proyecto, ignorado por git cuando Claude Code guarda un ajuste en él; agrégalo a tu gitignore si lo creas manualmente |

103| Configuración administrada | Todos en su organización, implementado por un administrador |105| Configuración administrada | Todos en tu organización, implementado por un administrador |

104 106 

105Consulte [Archivos de configuración](/docs/es/settings#where-settings-live) para saber dónde vive cada archivo y [Precedencia de configuración](/docs/es/settings#settings-precedence) para saber cómo se combinan cuando más de uno establece la misma variable.107Consulta [Archivos de configuración](/docs/es/settings#where-settings-live) para saber dónde vive cada archivo y [Precedencia de configuración](/docs/es/settings#settings-precedence) para saber cómo se combinan cuando más de uno establece la misma variable.

106 108 

107<h2 id="precedence">109<h2 id="precedence">

108 Precedencia110 Precedencia


124 Variables126 Variables

125</h2>127</h2>

126 128 

127Las variables numéricas, como los tiempos de espera, los presupuestos de tokens y los recuentos de reintentos, aceptan notación científica y escrituras con separador de dígitos además de dígitos simples, excepto cuando la fila de una variable indica que solo admite dígitos simples. Por ejemplo, Claude Code lee `2e3` como 2000 y `64_000` como 64000. Antes de v2.1.211, estas escrituras podían establecer silenciosamente un valor mucho menor, como `1e6`, que establecía un tiempo de espera de 1.129Las variables numéricas, como los tiempos de espera, los presupuestos de tokens y los conteos de reintentos, aceptan notación científica y grafías con separadores de dígitos además de dígitos simples, excepto cuando la fila de una variable indica que solo acepta dígitos simples. Por ejemplo, Claude Code lee `2e3` como 2000 y `64_000` como 64000. Antes de v2.1.211, estas grafías podían establecer silenciosamente un valor mucho menor, como `1e6`, que establecía un tiempo de espera de 1.

128 130 

129<Note>131<Note>

130 Para las variables que activan o desactivan un comportamiento, establece `1`, `true`, `yes` u `on` para activarlo y `0`, `false`, `no` u `off` para desactivarlo, con cualquier combinación de mayúsculas y minúsculas.132 Para las variables que activan o desactivan un comportamiento, establece `1`, `true`, `yes` u `on` para activarlo y `0`, `false`, `no` u `off` para desactivarlo, con cualquier combinación de mayúsculas y minúsculas.

131 133 

132 Algunas variables solo comprueban si las estableciste o no, por lo que cualquier valor no vacío, incluido `0`, activa el comportamiento, y para desactivarlo debes eliminar la variable o establecerla en un valor vacío. Estas variables funcionan de esa manera:134 Algunas variables solo comprueban si las estableces o no, por lo que cualquier valor no vacío, incluido `0`, activa el comportamiento, y lo desactivas quitando la variable o estableciéndola en un valor vacío. Estas variables funcionan así:

133 135 

134 * `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`136 * `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`

135 * `DISABLE_TELEMETRY`137 * `DISABLE_TELEMETRY`


143 145 

144| Variable | Propósito |146| Variable | Propósito |

145| :- | :- |147| :- | :- |

146| `ANTHROPIC_API_KEY` | Clave de API enviada como encabezado `X-Api-Key`. Cuando está establecida, esta clave se usa en lugar de tu suscripción a Claude Pro, Max, Team o Enterprise, incluso si iniciaste sesión. En modo no interactivo (`-p`), la clave siempre se usa cuando está presente. En modo interactivo, se te pide que apruebes la clave una vez antes de que tenga prioridad sobre tu suscripción. Para usar tu suscripción en su lugar, ejecuta `unset ANTHROPIC_API_KEY` |148| `ANTHROPIC_API_KEY` | Clave de API enviada como encabezado `X-Api-Key`. Cuando está establecida, esta clave se usa en lugar de tu suscripción Claude Pro, Max, Team o Enterprise, incluso si iniciaste sesión. En modo no interactivo (`-p`), la clave siempre se usa cuando está presente. En modo interactivo, se te pide que apruebes la clave una vez antes de que sustituya a tu suscripción. Para usar tu suscripción en su lugar, ejecuta `unset ANTHROPIC_API_KEY` |

147| `ANTHROPIC_AUTH_TOKEN` | Valor personalizado para el encabezado `Authorization` (el valor que establezcas aquí llevará el prefijo `Bearer `) |149| `ANTHROPIC_AUTH_TOKEN` | Valor personalizado para el encabezado `Authorization` (el valor que establezcas aquí llevará el prefijo `Bearer `) |

148| `ANTHROPIC_AWS_API_KEY` | Clave de API del espacio de trabajo para [Claude Platform on AWS](/docs/es/claude-platform-on-aws), generada en la consola de AWS. Se envía como `x-api-key` y tiene precedencia sobre AWS SigV4 |150| `ANTHROPIC_AWS_API_KEY` | Clave de API del espacio de trabajo para [Claude Platform on AWS](/docs/es/claude-platform-on-aws), generada en la AWS Console. Se envía como `x-api-key` y tiene precedencia sobre AWS SigV4 |

149| `ANTHROPIC_AWS_BASE_URL` | Sobrescribe la URL del endpoint de [Claude Platform on AWS](/docs/es/claude-platform-on-aws). Úsala para regiones personalizadas o al enrutar a través de un [gateway de LLM](/docs/es/llm-gateway). El valor predeterminado es `https://aws-external-anthropic.{region}.api.aws`. Claude Code resuelve la región con la [misma precedencia que en Amazon Bedrock](/docs/es/amazon-bedrock#3-configure-claude-code) |151| `ANTHROPIC_AWS_BASE_URL` | Sobrescribe la URL del endpoint de [Claude Platform on AWS](/docs/es/claude-platform-on-aws). Úsala para regiones personalizadas o al enrutar a través de un [LLM gateway](/docs/es/llm-gateway). El valor predeterminado es `https://aws-external-anthropic.{region}.api.aws`. Claude Code resuelve la región con la [misma precedencia que en Amazon Bedrock](/docs/es/amazon-bedrock#3-configure-claude-code) |

150| `ANTHROPIC_AWS_WORKSPACE_ID` | Obligatoria para [Claude Platform on AWS](/docs/es/claude-platform-on-aws). Se envía en cada solicitud como el encabezado `anthropic-workspace-id` |152| `ANTHROPIC_AWS_WORKSPACE_ID` | Obligatoria para [Claude Platform on AWS](/docs/es/claude-platform-on-aws). Se envía en cada solicitud como el encabezado `anthropic-workspace-id` |

151| `ANTHROPIC_BASE_URL` | Sobrescribe el endpoint de la API para enrutar las solicitudes a través de un proxy o gateway. Cuando se establece en un host que no es de Anthropic, [MCP Tool Search](/docs/es/mcp#scale-with-mcp-tool-search) se desactiva de forma predeterminada. Establece `ENABLE_TOOL_SEARCH=true` si tu proxy reenvía bloques `tool_reference`. A partir de v2.1.196, [Remote Control](/docs/es/remote-control#requirements) se desactiva cuando esta variable apunta a un host distinto de `api.anthropic.com`, igual que su comportamiento en Amazon Bedrock, Google Cloud's Agent Platform y Microsoft Foundry |153| `ANTHROPIC_BASE_URL` | Sobrescribe el endpoint de la API para enrutar las solicitudes a través de un proxy o gateway. Cuando se establece en un host que no es de primera parte, [MCP Tool Search](/docs/es/mcp#scale-with-mcp-tool-search) se desactiva de forma predeterminada. Establece `ENABLE_TOOL_SEARCH=true` si tu proxy reenvía bloques `tool_reference`. A partir de v2.1.196, [Remote Control](/docs/es/remote-control#requirements) se desactiva cuando apunta a un host distinto de `api.anthropic.com`, igual que su comportamiento en Amazon Bedrock, Google Cloud's Agent Platform y Microsoft Foundry |

152| `ANTHROPIC_BEDROCK_BASE_URL` | Sobrescribe la URL del endpoint de Amazon Bedrock. Úsala para endpoints personalizados de Amazon Bedrock o al enrutar a través de un [gateway de LLM](/docs/es/llm-gateway). Consulta [Amazon Bedrock](/docs/es/amazon-bedrock) |154| `ANTHROPIC_BEDROCK_BASE_URL` | Sobrescribe la URL del endpoint de Amazon Bedrock. Úsala para endpoints personalizados de Amazon Bedrock o al enrutar a través de un [LLM gateway](/docs/es/llm-gateway). Consulta [Amazon Bedrock](/docs/es/amazon-bedrock) |

153| `ANTHROPIC_BEDROCK_MANTLE_BASE_URL` | Sobrescribe la URL del endpoint de Amazon Bedrock Mantle. Consulta [Endpoint de Mantle](/docs/es/amazon-bedrock#use-the-mantle-endpoint) |155| `ANTHROPIC_BEDROCK_MANTLE_BASE_URL` | Sobrescribe la URL del endpoint de Amazon Bedrock Mantle. Consulta [Endpoint de Mantle](/docs/es/amazon-bedrock#use-the-mantle-endpoint) |

154| `ANTHROPIC_BEDROCK_REGION_PREFIX` | Prefijo del perfil de inferencia entre regiones (`us`, `eu`, `apac`, `jp`, `au` o `global`) que Claude Code prueba primero en lugar del derivado de la región de AWS. Se ignora en las regiones de AWS GovCloud. Requiere Claude Code v2.1.224 o posterior. Consulta [Amazon Bedrock](/docs/es/amazon-bedrock#cross-region-inference-profile-prefixes) |156| `ANTHROPIC_BEDROCK_REGION_PREFIX` | Prefijo del perfil de inferencia entre regiones (`us`, `eu`, `apac`, `jp`, `au` o `global`) que Claude Code intenta primero en lugar del derivado de la región de AWS. Se ignora en las regiones de AWS GovCloud. Requiere Claude Code v2.1.224 o posterior. Consulta [Amazon Bedrock](/docs/es/amazon-bedrock#cross-region-inference-profile-prefixes) |

155| `ANTHROPIC_BEDROCK_SERVICE_TIER` | [Nivel de servicio](https://docs.aws.amazon.com/bedrock/latest/userguide/service-tiers-inference.html) de Amazon Bedrock (`default`, `flex` o `priority`). Se envía como el encabezado `X-Amzn-Bedrock-Service-Tier`. Consulta [Amazon Bedrock](/docs/es/amazon-bedrock#service-tiers) |157| `ANTHROPIC_BEDROCK_SERVICE_TIER` | [Nivel de servicio](https://docs.aws.amazon.com/bedrock/latest/userguide/service-tiers-inference.html) de Amazon Bedrock (`default`, `flex` o `priority`). Se envía como el encabezado `X-Amzn-Bedrock-Service-Tier`. Consulta [Amazon Bedrock](/docs/es/amazon-bedrock#service-tiers) |

156| `ANTHROPIC_BETAS` | Lista separada por comas de valores adicionales del encabezado `anthropic-beta` que se incluirán en las solicitudes a la API. Claude Code ya envía los encabezados beta que necesita; usa esta variable para optar por una [beta de la API de Anthropic](https://platform.claude.com/docs/en/api/beta-headers) antes de que Claude Code añada compatibilidad nativa. A diferencia del [flag `--betas`](/docs/es/cli-reference#cli-flags), que requiere autenticación con clave de API, esta variable funciona con todos los métodos de autenticación, incluida la suscripción a Claude.ai |158| `ANTHROPIC_BETAS` | Lista separada por comas de valores adicionales del encabezado `anthropic-beta` que se incluirán en las solicitudes a la API. Claude Code ya envía los encabezados beta que necesita; usa esto para optar por una [beta de la API de Anthropic](https://platform.claude.com/docs/en/api/beta-headers) antes de que Claude Code agregue compatibilidad nativa. A diferencia del [flag `--betas`](/docs/es/cli-reference#cli-flags), que requiere autenticación con clave de API, esta variable funciona con todos los métodos de autenticación, incluida la suscripción de Claude.ai |

157| `ANTHROPIC_CUSTOM_HEADERS` | Encabezados personalizados que se añaden a las solicitudes (formato `Name: Value`, separados por saltos de línea para varios encabezados). Si un nombre o valor contiene un carácter que un encabezado HTTP no puede transportar, como una comilla tipográfica o un espacio de ancho cero, la solicitud falla con un error que identifica el par por su posición. Requiere Claude Code v2.1.227 o posterior. [Invalid request header value](/docs/es/errors#invalid-request-header-value) enumera el conjunto exacto de caracteres y dónde se ejecuta la comprobación. Un valor que establece un encabezado de credenciales, organización o tenant, enrutamiento o comportamiento de la API, como `Authorization` o `Host`, cuenta como un [ajuste que necesita aprobación](/docs/es/server-managed-settings#environment-variables-and-the-approval-dialog) cuando lo entrega la configuración administrada por el servidor. Desde la configuración de proyecto o local, dicho valor sigue las [reglas sobre cuándo se aplican los valores de `env`](/docs/es/settings-reference#when-claude-code-applies-env-values) |159| `ANTHROPIC_CUSTOM_HEADERS` | Encabezados personalizados que se agregarán a las solicitudes (formato `Name: Value`, separados por saltos de línea para varios encabezados). Si un nombre o valor contiene un carácter que un encabezado HTTP no puede transportar, como una comilla tipográfica o un espacio de ancho cero, la solicitud falla con un error que identifica el par por su posición. Requiere Claude Code v2.1.227 o posterior. [Invalid request header value](/docs/es/errors#invalid-request-header-value) enumera el conjunto exacto de caracteres y dónde se ejecuta la comprobación. Un valor que establece un encabezado de credenciales, de organización o tenant, de enrutamiento o de comportamiento de la API, como `Authorization` o `Host`, cuenta como un [ajuste que necesita aprobación](/docs/es/server-managed-settings#environment-variables-and-the-approval-dialog) cuando lo entrega la configuración administrada por el servidor. Desde la configuración del proyecto o local, dicho valor sigue las [reglas sobre cuándo se aplican los valores de `env`](/docs/es/settings-reference#when-claude-code-applies-env-values) |

158| `ANTHROPIC_CUSTOM_MODEL_OPTION` | ID de modelo que se añade como entrada personalizada en el selector de `/model`. Úsala para que un modelo no estándar o específico de un gateway se pueda seleccionar sin reemplazar los alias integrados. Consulta [Configuración del modelo](/docs/es/model-config#add-a-custom-model-option) |160| `ANTHROPIC_CUSTOM_MODEL_OPTION` | ID de modelo que se agregará como entrada personalizada en el selector `/model`. Úsala para que un modelo no estándar o específico de un gateway se pueda seleccionar sin reemplazar los alias integrados. Consulta [Configuración del modelo](/docs/es/model-config#add-a-custom-model-option) |

159| `ANTHROPIC_CUSTOM_MODEL_OPTION_DESCRIPTION` | Descripción que se muestra para la entrada del modelo personalizado en el selector de `/model`. Si no está establecida, el valor predeterminado es `Custom model (<model-id>)` |161| `ANTHROPIC_CUSTOM_MODEL_OPTION_DESCRIPTION` | Descripción que se muestra para la entrada de modelo personalizado en el selector `/model`. El valor predeterminado es `Custom model (<model-id>)` cuando no está establecida |

160| `ANTHROPIC_CUSTOM_MODEL_OPTION_NAME` | Nombre que se muestra para la entrada del modelo personalizado en el selector de `/model`. Si no está establecida, la entrada muestra el nombre del modelo si Claude Code [reconoce el ID](/docs/es/model-config#customize-pinned-model-display-and-capabilities), y el ID del modelo en caso contrario |162| `ANTHROPIC_CUSTOM_MODEL_OPTION_NAME` | Nombre que se muestra para la entrada de modelo personalizado en el selector `/model`. Cuando no está establecida, la entrada muestra el nombre del modelo si Claude Code [reconoce el ID](/docs/es/model-config#customize-pinned-model-display-and-capabilities), y el ID del modelo en caso contrario |

161| `ANTHROPIC_CUSTOM_MODEL_OPTION_SUPPORTED_CAPABILITIES` | Lista separada por comas de [capacidades](/docs/es/model-config#customize-pinned-model-display-and-capabilities) que admite el modelo personalizado, por ejemplo `effort,thinking`. Consulta [Configuración del modelo](/docs/es/model-config#customize-pinned-model-display-and-capabilities) |163| `ANTHROPIC_CUSTOM_MODEL_OPTION_SUPPORTED_CAPABILITIES` | Lista separada por comas de las [capacidades](/docs/es/model-config#customize-pinned-model-display-and-capabilities) que admite el modelo personalizado, por ejemplo `effort,thinking`. Consulta [Configuración del modelo](/docs/es/model-config#customize-pinned-model-display-and-capabilities) |

162| `ANTHROPIC_DEFAULT_FABLE_MODEL` | ID de modelo al que se resuelve el alias `fable`, y el ID que Claude Code reconoce como modelo Fable para el [respaldo automático de modelo](/docs/es/model-config#automatic-model-fallback) en proveedores externos. Consulta [Configuración del modelo](/docs/es/model-config#environment-variables) |164| `ANTHROPIC_DEFAULT_FABLE_MODEL` | ID de modelo al que se resuelve el alias `fable`, y el ID que Claude Code reconoce como un modelo Fable para el [respaldo automático de modelo](/docs/es/model-config#automatic-model-fallback) en proveedores de terceros. Consulta [Configuración del modelo](/docs/es/model-config#environment-variables) |

163| `ANTHROPIC_DEFAULT_FABLE_MODEL_DESCRIPTION` | Descripción que se muestra para el modelo Fable fijado en el selector de `/model`. Si no está establecida, la fila muestra una descripción predeterminada que comienza con `Custom Fable model`. Consulta [Configuración del modelo](/docs/es/model-config#customize-pinned-model-display-and-capabilities) |165| `ANTHROPIC_DEFAULT_FABLE_MODEL_DESCRIPTION` | Descripción que se muestra para el modelo Fable fijado en el selector `/model`. Cuando no está establecida, la fila muestra una descripción predeterminada que comienza con `Custom Fable model`. Consulta [Configuración del modelo](/docs/es/model-config#customize-pinned-model-display-and-capabilities) |

164| `ANTHROPIC_DEFAULT_FABLE_MODEL_NAME` | Nombre que se muestra para el modelo Fable fijado en el selector de `/model`. Si no está establecida, la fila muestra el nombre del modelo si Claude Code reconoce el ID fijado, y el ID fijado en caso contrario. Consulta [Configuración del modelo](/docs/es/model-config#customize-pinned-model-display-and-capabilities) |166| `ANTHROPIC_DEFAULT_FABLE_MODEL_NAME` | Nombre que se muestra para el modelo Fable fijado en el selector `/model`. Cuando no está establecida, la fila muestra el nombre del modelo si Claude Code reconoce el ID fijado, y el ID fijado en caso contrario. Consulta [Configuración del modelo](/docs/es/model-config#customize-pinned-model-display-and-capabilities) |

165| `ANTHROPIC_DEFAULT_FABLE_MODEL_SUPPORTED_CAPABILITIES` | Lista separada por comas de [capacidades](/docs/es/model-config#customize-pinned-model-display-and-capabilities) que admite el modelo Fable fijado, por ejemplo `effort,thinking`. Consulta [Configuración del modelo](/docs/es/model-config#customize-pinned-model-display-and-capabilities) |167| `ANTHROPIC_DEFAULT_FABLE_MODEL_SUPPORTED_CAPABILITIES` | Lista separada por comas de las [capacidades](/docs/es/model-config#customize-pinned-model-display-and-capabilities) que admite el modelo Fable fijado, por ejemplo `effort,thinking`. Consulta [Configuración del modelo](/docs/es/model-config#customize-pinned-model-display-and-capabilities) |

166| `ANTHROPIC_DEFAULT_HAIKU_MODEL` | ID de modelo al que se resuelve el alias `haiku`, que también se usa para la [funcionalidad en segundo plano](/docs/es/costs#background-token-usage). Consulta [Configuración del modelo](/docs/es/model-config#environment-variables) |168| `ANTHROPIC_DEFAULT_HAIKU_MODEL` | ID de modelo al que se resuelve el alias `haiku`, que también se usa para la [funcionalidad en segundo plano](/docs/es/costs#background-token-usage). Consulta [Configuración del modelo](/docs/es/model-config#environment-variables) |

167| `ANTHROPIC_DEFAULT_HAIKU_MODEL_DESCRIPTION` | Descripción que se muestra para el modelo Haiku fijado en el selector de `/model`. Si no está establecida, la fila muestra una descripción predeterminada que comienza con `Custom Haiku model`. Consulta [Configuración del modelo](/docs/es/model-config#customize-pinned-model-display-and-capabilities) |169| `ANTHROPIC_DEFAULT_HAIKU_MODEL_DESCRIPTION` | Descripción que se muestra para el modelo Haiku fijado en el selector `/model`. Cuando no está establecida, la fila muestra una descripción predeterminada que comienza con `Custom Haiku model`. Consulta [Configuración del modelo](/docs/es/model-config#customize-pinned-model-display-and-capabilities) |

168| `ANTHROPIC_DEFAULT_HAIKU_MODEL_NAME` | Nombre que se muestra para el modelo Haiku fijado en el selector de `/model`. Si no está establecida, la fila muestra el nombre del modelo si Claude Code reconoce el ID fijado, y el ID fijado en caso contrario. Consulta [Configuración del modelo](/docs/es/model-config#customize-pinned-model-display-and-capabilities) |170| `ANTHROPIC_DEFAULT_HAIKU_MODEL_NAME` | Nombre que se muestra para el modelo Haiku fijado en el selector `/model`. Cuando no está establecida, la fila muestra el nombre del modelo si Claude Code reconoce el ID fijado, y el ID fijado en caso contrario. Consulta [Configuración del modelo](/docs/es/model-config#customize-pinned-model-display-and-capabilities) |

169| `ANTHROPIC_DEFAULT_HAIKU_MODEL_SUPPORTED_CAPABILITIES` | Lista separada por comas de [capacidades](/docs/es/model-config#customize-pinned-model-display-and-capabilities) que admite el modelo Haiku fijado, por ejemplo `effort,thinking`. Consulta [Configuración del modelo](/docs/es/model-config#customize-pinned-model-display-and-capabilities) |171| `ANTHROPIC_DEFAULT_HAIKU_MODEL_SUPPORTED_CAPABILITIES` | Lista separada por comas de las [capacidades](/docs/es/model-config#customize-pinned-model-display-and-capabilities) que admite el modelo Haiku fijado, por ejemplo `effort,thinking`. Consulta [Configuración del modelo](/docs/es/model-config#customize-pinned-model-display-and-capabilities) |

170| `ANTHROPIC_DEFAULT_MODEL` | Modelo con el que comienzan las sesiones nuevas de forma predeterminada. Requiere Claude Code v2.1.236 o posterior. Consulta [Establecer un modelo predeterminado para las sesiones nuevas](/docs/es/model-config#set-a-default-model-for-new-sessions) |172| `ANTHROPIC_DEFAULT_MODEL` | Modelo con el que comienzan las sesiones nuevas de forma predeterminada. Requiere Claude Code v2.1.236 o posterior. Consulta [Establecer un modelo predeterminado para sesiones nuevas](/docs/es/model-config#set-a-default-model-for-new-sessions) |

171| `ANTHROPIC_DEFAULT_OPUS_MODEL` | ID de modelo al que se resuelve el alias `opus`, y que `opusplan` usa mientras el modo plan está activo. Consulta [Configuración del modelo](/docs/es/model-config#environment-variables) |173| `ANTHROPIC_DEFAULT_OPUS_MODEL` | ID de modelo al que se resuelve el alias `opus`, y que `opusplan` usa mientras el modo plan está activo. Consulta [Configuración del modelo](/docs/es/model-config#environment-variables) |

172| `ANTHROPIC_DEFAULT_OPUS_MODEL_DESCRIPTION` | Descripción que se muestra para el modelo Opus fijado en el selector de `/model`. Si no está establecida, la fila muestra una descripción predeterminada que comienza con `Custom Opus model`. Consulta [Configuración del modelo](/docs/es/model-config#customize-pinned-model-display-and-capabilities) |174| `ANTHROPIC_DEFAULT_OPUS_MODEL_DESCRIPTION` | Descripción que se muestra para el modelo Opus fijado en el selector `/model`. Cuando no está establecida, la fila muestra una descripción predeterminada que comienza con `Custom Opus model`. Consulta [Configuración del modelo](/docs/es/model-config#customize-pinned-model-display-and-capabilities) |

173| `ANTHROPIC_DEFAULT_OPUS_MODEL_NAME` | Nombre que se muestra para el modelo Opus fijado en el selector de `/model`. Si no está establecida, la fila muestra el nombre del modelo si Claude Code reconoce el ID fijado, y el ID fijado en caso contrario. Consulta [Configuración del modelo](/docs/es/model-config#customize-pinned-model-display-and-capabilities) |175| `ANTHROPIC_DEFAULT_OPUS_MODEL_NAME` | Nombre que se muestra para el modelo Opus fijado en el selector `/model`. Cuando no está establecida, la fila muestra el nombre del modelo si Claude Code reconoce el ID fijado, y el ID fijado en caso contrario. Consulta [Configuración del modelo](/docs/es/model-config#customize-pinned-model-display-and-capabilities) |

174| `ANTHROPIC_DEFAULT_OPUS_MODEL_SUPPORTED_CAPABILITIES` | Lista separada por comas de [capacidades](/docs/es/model-config#customize-pinned-model-display-and-capabilities) que admite el modelo Opus fijado, por ejemplo `effort,thinking`. Consulta [Configuración del modelo](/docs/es/model-config#customize-pinned-model-display-and-capabilities) |176| `ANTHROPIC_DEFAULT_OPUS_MODEL_SUPPORTED_CAPABILITIES` | Lista separada por comas de las [capacidades](/docs/es/model-config#customize-pinned-model-display-and-capabilities) que admite el modelo Opus fijado, por ejemplo `effort,thinking`. Consulta [Configuración del modelo](/docs/es/model-config#customize-pinned-model-display-and-capabilities) |

175| `ANTHROPIC_DEFAULT_SONNET_MODEL` | ID de modelo al que se resuelve el alias `sonnet`, y que `opusplan` usa cuando el modo plan no está activo. Consulta [Configuración del modelo](/docs/es/model-config#environment-variables) |177| `ANTHROPIC_DEFAULT_SONNET_MODEL` | ID de modelo al que se resuelve el alias `sonnet`, y que `opusplan` usa cuando el modo plan no está activo. Consulta [Configuración del modelo](/docs/es/model-config#environment-variables) |

176| `ANTHROPIC_DEFAULT_SONNET_MODEL_DESCRIPTION` | Descripción que se muestra para el modelo Sonnet fijado en el selector de `/model`. Si no está establecida, la fila muestra una descripción predeterminada que comienza con `Custom Sonnet model`. Consulta [Configuración del modelo](/docs/es/model-config#customize-pinned-model-display-and-capabilities) |178| `ANTHROPIC_DEFAULT_SONNET_MODEL_DESCRIPTION` | Descripción que se muestra para el modelo Sonnet fijado en el selector `/model`. Cuando no está establecida, la fila muestra una descripción predeterminada que comienza con `Custom Sonnet model`. Consulta [Configuración del modelo](/docs/es/model-config#customize-pinned-model-display-and-capabilities) |

177| `ANTHROPIC_DEFAULT_SONNET_MODEL_NAME` | Nombre que se muestra para el modelo Sonnet fijado en el selector de `/model`. Si no está establecida, la fila muestra el nombre del modelo si Claude Code reconoce el ID fijado, y el ID fijado en caso contrario. Consulta [Configuración del modelo](/docs/es/model-config#customize-pinned-model-display-and-capabilities) |179| `ANTHROPIC_DEFAULT_SONNET_MODEL_NAME` | Nombre que se muestra para el modelo Sonnet fijado en el selector `/model`. Cuando no está establecida, la fila muestra el nombre del modelo si Claude Code reconoce el ID fijado, y el ID fijado en caso contrario. Consulta [Configuración del modelo](/docs/es/model-config#customize-pinned-model-display-and-capabilities) |

178| `ANTHROPIC_DEFAULT_SONNET_MODEL_SUPPORTED_CAPABILITIES` | Lista separada por comas de [capacidades](/docs/es/model-config#customize-pinned-model-display-and-capabilities) que admite el modelo Sonnet fijado, por ejemplo `effort,thinking`. Consulta [Configuración del modelo](/docs/es/model-config#customize-pinned-model-display-and-capabilities) |180| `ANTHROPIC_DEFAULT_SONNET_MODEL_SUPPORTED_CAPABILITIES` | Lista separada por comas de las [capacidades](/docs/es/model-config#customize-pinned-model-display-and-capabilities) que admite el modelo Sonnet fijado, por ejemplo `effort,thinking`. Consulta [Configuración del modelo](/docs/es/model-config#customize-pinned-model-display-and-capabilities) |

179| `ANTHROPIC_FEDERATION_RULE_ID` | ID de la regla de federación para [Workload Identity Federation](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation). Cuando la estableces junto con `ANTHROPIC_ORGANIZATION_ID`, Claude Code selecciona las credenciales de federación, que tienen prioridad sobre tu credencial de `/login`. Consulta [precedencia de autenticación](/docs/es/authentication#authentication-precedence) |181| `ANTHROPIC_FEDERATION_RULE_ID` | ID de la regla de federación para [Workload Identity Federation](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation). Cuando la estableces junto con `ANTHROPIC_ORGANIZATION_ID`, Claude Code selecciona las credenciales de federación, que tienen mayor prioridad que tu credencial de `/login`. Consulta [precedencia de autenticación](/docs/es/authentication#authentication-precedence) |

180| `ANTHROPIC_FOUNDRY_API_KEY` | Clave de API para la autenticación en Microsoft Foundry (consulta [Microsoft Foundry](/docs/es/microsoft-foundry)) |182| `ANTHROPIC_FOUNDRY_API_KEY` | Clave de API para la autenticación de Microsoft Foundry (consulta [Microsoft Foundry](/docs/es/microsoft-foundry)) |

181| `ANTHROPIC_FOUNDRY_AUTH_TOKEN` | Token de portador para la autenticación en Microsoft Foundry, como un token de acceso de Microsoft Entra. Claude Code lo envía como el encabezado `Authorization: Bearer`. Tiene precedencia sobre `ANTHROPIC_FOUNDRY_API_KEY` y sobre la cadena de credenciales predeterminada de Azure. Consulta [Microsoft Foundry](/docs/es/microsoft-foundry). Requiere Claude Code v2.1.203 o posterior |183| `ANTHROPIC_FOUNDRY_AUTH_TOKEN` | Token bearer para la autenticación de Microsoft Foundry, como un token de acceso de Microsoft Entra. Claude Code lo envía como el encabezado `Authorization: Bearer`. Tiene precedencia sobre `ANTHROPIC_FOUNDRY_API_KEY` y sobre la cadena de credenciales predeterminada de Azure. Consulta [Microsoft Foundry](/docs/es/microsoft-foundry). Requiere Claude Code v2.1.203 o posterior |

182| `ANTHROPIC_FOUNDRY_BASE_URL` | URL base completa del recurso de Microsoft Foundry (por ejemplo, `https://my-resource.services.ai.azure.com/anthropic`). Alternativa a `ANTHROPIC_FOUNDRY_RESOURCE` (consulta [Microsoft Foundry](/docs/es/microsoft-foundry)) |184| `ANTHROPIC_FOUNDRY_BASE_URL` | URL base completa del recurso de Microsoft Foundry (por ejemplo, `https://my-resource.services.ai.azure.com/anthropic`). Alternativa a `ANTHROPIC_FOUNDRY_RESOURCE` (consulta [Microsoft Foundry](/docs/es/microsoft-foundry)) |

183| `ANTHROPIC_FOUNDRY_RESOURCE` | Nombre del recurso de Microsoft Foundry (por ejemplo, `my-resource`). Claude Code [rechaza una URL o un nombre de host](/docs/es/errors#anthropic-foundry-resource-must-be-a-foundry-resource-name). Obligatoria si `ANTHROPIC_FOUNDRY_BASE_URL` no está establecida (consulta [Microsoft Foundry](/docs/es/microsoft-foundry)) |185| `ANTHROPIC_FOUNDRY_RESOURCE` | Nombre del recurso de Microsoft Foundry (por ejemplo, `my-resource`). Claude Code [rechaza una URL o un nombre de host](/docs/es/errors#anthropic-foundry-resource-must-be-a-foundry-resource-name). Obligatoria si `ANTHROPIC_FOUNDRY_BASE_URL` no está establecida (consulta [Microsoft Foundry](/docs/es/microsoft-foundry)) |

184| `ANTHROPIC_MODEL` | Nombre del ajuste de modelo que se usará (consulta [Configuración del modelo](/docs/es/model-config#environment-variables)) |186| `ANTHROPIC_MODEL` | Nombre del ajuste de modelo que se usará (consulta [Configuración del modelo](/docs/es/model-config#environment-variables)) |

185| `ANTHROPIC_ORGANIZATION_ID` | ID de organización para [Workload Identity Federation](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation). Establécela junto con `ANTHROPIC_FEDERATION_RULE_ID`. Consulta [precedencia de autenticación](/docs/es/authentication#authentication-precedence) |187| `ANTHROPIC_ORGANIZATION_ID` | ID de organización para [Workload Identity Federation](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation). Establécela junto con `ANTHROPIC_FEDERATION_RULE_ID`. Consulta [precedencia de autenticación](/docs/es/authentication#authentication-precedence) |

186| `ANTHROPIC_PROFILE` | Nombre del perfil de Anthropic con el que autenticarse, como uno creado por [`ant auth login`](https://platform.claude.com/docs/en/cli-sdks-libraries/cli/authentication) o al [iniciar sesión en una cuenta de Console sin clave de API](/docs/es/authentication#sign-in-without-an-api-key). Consulta [precedencia de autenticación](/docs/es/authentication#authentication-precedence) |188| `ANTHROPIC_PROFILE` | Nombre del perfil de Anthropic con el que autenticarse, como uno creado con [`ant auth login`](https://platform.claude.com/docs/en/cli-sdks-libraries/cli/authentication) o al [iniciar sesión en una cuenta de Console sin una clave de API](/docs/es/authentication#sign-in-without-an-api-key). Consulta [precedencia de autenticación](/docs/es/authentication#authentication-precedence) |

187| `ANTHROPIC_SMALL_FAST_MODEL` | \[OBSOLETO] Nombre del [modelo de clase Haiku para tareas en segundo plano](/docs/es/costs) |189| `ANTHROPIC_SMALL_FAST_MODEL` | \[OBSOLETA] Nombre del [modelo de clase Haiku para tareas en segundo plano](/docs/es/costs) |

188| `ANTHROPIC_SMALL_FAST_MODEL_AWS_REGION` | Sobrescribe la región de AWS para el modelo de clase Haiku al usar Amazon Bedrock o Amazon Bedrock Mantle. En Amazon Bedrock, solo tiene efecto cuando también está establecida `ANTHROPIC_DEFAULT_HAIKU_MODEL` o la obsoleta `ANTHROPIC_SMALL_FAST_MODEL`, ya que de lo contrario Amazon Bedrock ejecuta las tareas en segundo plano en el [modelo Sonnet predeterminado o el modelo principal](/docs/es/amazon-bedrock#4-pin-model-versions) en la región de la sesión |190| `ANTHROPIC_SMALL_FAST_MODEL_AWS_REGION` | Sobrescribe la región de AWS para el modelo de clase Haiku al usar Amazon Bedrock o Amazon Bedrock Mantle. En Amazon Bedrock, esto solo tiene efecto cuando también está establecida `ANTHROPIC_DEFAULT_HAIKU_MODEL` o la obsoleta `ANTHROPIC_SMALL_FAST_MODEL`, ya que, de lo contrario, Amazon Bedrock ejecuta las tareas en segundo plano en el [modelo Sonnet predeterminado o el modelo principal](/docs/es/amazon-bedrock#4-pin-model-versions) en la región de la sesión |

189| `ANTHROPIC_VERTEX_BASE_URL` | Sobrescribe la URL del endpoint de Google Cloud's Agent Platform. Úsala para endpoints personalizados de Google Cloud's Agent Platform o al enrutar a través de un [gateway de LLM](/docs/es/llm-gateway). Consulta [Google Cloud's Agent Platform](/docs/es/google-vertex-ai) |191| `ANTHROPIC_VERTEX_BASE_URL` | Sobrescribe la URL del endpoint de Google Cloud's Agent Platform. Úsala para endpoints personalizados de Google Cloud's Agent Platform o al enrutar a través de un [LLM gateway](/docs/es/llm-gateway). Consulta [Google Cloud's Agent Platform](/docs/es/google-vertex-ai) |

190| `ANTHROPIC_VERTEX_PROJECT_ID` | ID del proyecto de GCP al que se dirigen las solicitudes de Google Cloud's Agent Platform. Consulta [Configurar las credenciales de GCP](/docs/es/google-vertex-ai#3-configure-gcp-credentials) |192| `ANTHROPIC_VERTEX_PROJECT_ID` | ID del proyecto de GCP al que se dirigen las solicitudes de Google Cloud's Agent Platform. Consulta [Configurar las credenciales de GCP](/docs/es/google-vertex-ai#3-configure-gcp-credentials) |

191| `ANTHROPIC_WORKSPACE_ID` | ID del espacio de trabajo para [workload identity federation](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation). Establécela cuando tu regla de federación abarque más de un espacio de trabajo, para que el intercambio de tokens sepa a qué espacio de trabajo dirigirse |193| `ANTHROPIC_WORKSPACE_ID` | ID del espacio de trabajo para [workload identity federation](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation). Establécela cuando tu regla de federación abarque más de un espacio de trabajo, para que el intercambio de tokens sepa a qué espacio de trabajo dirigirse |

192| `API_FORCE_IDLE_TIMEOUT` | Sobrescribe el tiempo de espera de inactividad del cuerpo de 5 minutos que aborta una respuesta del modelo en streaming cuando no llegan bytes. Establécela en `0` para desactivar el tiempo de espera, por ejemplo cuando un [gateway](/docs/es/llm-gateway) lento o un modelo local hace pausas de más de 5 minutos entre fragmentos, o en `1` para mantenerlo activo en todos los proveedores. Si no está establecida, el tiempo de espera está activo en los proveedores distintos de la API directa de Anthropic, [Claude Platform on AWS](/docs/es/claude-platform-on-aws) y Amazon Bedrock con `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1` establecida. Los [watchdogs de streaming](/docs/es/network-config#streaming-idle-watchdogs) se ejecutan de forma independiente y abortan una pausa silenciosa larga incluso cuando estableces `0` aquí |194| `API_FORCE_IDLE_TIMEOUT` | Sobrescribe el tiempo de espera de inactividad del cuerpo de 5 minutos que aborta una respuesta del modelo en streaming cuando no llegan bytes. Establécela en `0` para desactivar el tiempo de espera, por ejemplo cuando un [gateway](/docs/es/llm-gateway) lento o un modelo local hace pausas de más de 5 minutos entre fragmentos, o en `1` para mantenerlo activo para todos los proveedores. Cuando no está establecida, el tiempo de espera está activo en proveedores distintos de la API directa de Anthropic, [Claude Platform on AWS](/docs/es/claude-platform-on-aws) y Amazon Bedrock con `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1` establecida. Los [watchdogs de streaming](/docs/es/network-config#streaming-idle-watchdogs) se ejecutan de forma independiente y abortan una pausa silenciosa larga incluso cuando estableces `0` aquí |

193| `API_TIMEOUT_MS` | Tiempo de espera para las solicitudes a la API en milisegundos (predeterminado: 600000, o 10 minutos; máximo: 2147483647). Auméntalo cuando se agote el tiempo de espera de las solicitudes en redes lentas o al enrutar a través de un proxy. Los valores superiores al máximo desbordan el temporizador subyacente y hacen que las solicitudes fallen de inmediato |195| `API_TIMEOUT_MS` | Tiempo de espera para las solicitudes a la API en milisegundos (predeterminado: 600000, o 10 minutos; máximo: 2147483647). Auméntalo cuando se agote el tiempo de espera de las solicitudes en redes lentas o al enrutar a través de un proxy. Los valores por encima del máximo desbordan el temporizador subyacente y hacen que las solicitudes fallen de inmediato |

194| `AWS_BEARER_TOKEN_BEDROCK` | Clave de API de Amazon Bedrock para la autenticación (consulta [Claves de API de Amazon Bedrock](https://aws.amazon.com/blogs/machine-learning/accelerate-ai-development-with-amazon-bedrock-api-keys/)) |196| `AWS_BEARER_TOKEN_BEDROCK` | Clave de API de Amazon Bedrock para la autenticación (consulta [Claves de API de Amazon Bedrock](https://aws.amazon.com/blogs/machine-learning/accelerate-ai-development-with-amazon-bedrock-api-keys/)) |

195| `BASH_DEFAULT_TIMEOUT_MS` | Tiempo de espera predeterminado para un comando en primer plano de la herramienta Bash o PowerShell, en milisegundos (predeterminado: 120000, o 2 minutos). Un valor predeterminado superior a 30 minutos también se convierte en el [límite de tiempo predeterminado para los comandos en segundo plano](/docs/es/tools-reference#time-limit-for-background-commands) en sesiones desatendidas. El límite de tiempo en segundo plano requiere Claude Code v2.1.285 o posterior |197| `BASH_DEFAULT_TIMEOUT_MS` | Tiempo de espera predeterminado para un comando de la herramienta Bash o PowerShell en primer plano, en milisegundos (predeterminado: 120000, o 2 minutos). Un valor predeterminado mayor de 30 minutos también se convierte en el [límite de tiempo predeterminado para comandos en segundo plano](/docs/es/tools-reference#time-limit-for-background-commands) en sesiones desatendidas. El límite de tiempo en segundo plano requiere Claude Code v2.1.285 o posterior |

196| `BASH_MAX_OUTPUT_LENGTH` | Número máximo de caracteres de la salida de bash que Claude Code vuelve a leer en el resultado de un comando (predeterminado: 30000; máximo: 150000). Si estableces el ajuste [`bashOutputMaxChars`](/docs/es/settings-reference#bashoutputmaxchars), Claude Code ignora esta variable. Consulta [Límites de salida](/docs/es/tools-reference#output-limits) |198| `BASH_MAX_OUTPUT_LENGTH` | Número máximo de caracteres de la salida de bash que Claude Code vuelve a leer en el resultado de un comando (predeterminado: 30000; máximo: 150000). Si estableces el ajuste [`bashOutputMaxChars`](/docs/es/settings-reference#bashoutputmaxchars), Claude Code ignora esta variable. Consulta [Límites de salida](/docs/es/tools-reference#output-limits) |

197| `BASH_MAX_TIMEOUT_MS` | Tiempo de espera máximo que el modelo puede establecer para un comando en primer plano de la herramienta Bash o PowerShell, en milisegundos (predeterminado: 600000, o 10 minutos). El límite efectivo es el mayor entre este valor y `BASH_DEFAULT_TIMEOUT_MS`. Un límite efectivo superior a 2 horas también se convierte en el [límite de tiempo máximo para los comandos en segundo plano](/docs/es/tools-reference#time-limit-for-background-commands) en sesiones desatendidas. El límite de tiempo en segundo plano requiere Claude Code v2.1.285 o posterior |199| `BASH_MAX_TIMEOUT_MS` | Tiempo de espera máximo que el modelo puede establecer para un comando de la herramienta Bash o PowerShell en primer plano, en milisegundos (predeterminado: 600000, o 10 minutos). El límite efectivo es el mayor entre este valor y `BASH_DEFAULT_TIMEOUT_MS`. Un límite efectivo mayor de 2 horas también se convierte en el [límite de tiempo máximo para comandos en segundo plano](/docs/es/tools-reference#time-limit-for-background-commands) en sesiones desatendidas. El límite de tiempo en segundo plano requiere Claude Code v2.1.285 o posterior |

198| `BETA_TRACING_ENDPOINT` | Endpoint OTLP/HTTP para el [rastreo beta detallado](/docs/es/monitoring-usage#traces-beta): con `ENABLE_BETA_TRACING_DETAILED=1`, los registros y las trazas van allí en lugar de a los exportadores configurados. Establécela en tu shell, en la configuración de usuario o en la configuración administrada. Se ignora en la [configuración del proyecto y local](/docs/es/settings-reference#variables-claude-code-ignores-in-env) |200| `BETA_TRACING_ENDPOINT` | Endpoint OTLP/HTTP para el [tracing beta detallado](/docs/es/monitoring-usage#traces-beta): con `ENABLE_BETA_TRACING_DETAILED=1`, los registros y las trazas van allí en lugar de a los exportadores configurados. Establécela en tu shell, en la configuración de usuario o en la configuración administrada. Se ignora en la [configuración del proyecto y local](/docs/es/settings-reference#variables-claude-code-ignores-in-env) |

199| `CCR_FORCE_BUNDLE` | Establécela en `1` para forzar que [`claude --cloud`](/docs/es/claude-code-on-the-web#send-local-repositories-without-github) empaquete y suba tu repositorio local en lugar de clonarlo desde su remoto |201| `CCR_FORCE_BUNDLE` | Establécela en `1` para forzar que [`claude --cloud`](/docs/es/claude-code-on-the-web#send-local-repositories-without-github) empaquete y suba tu repositorio local en lugar de clonarlo desde su remoto |

200| `CLAUDECODE` | Se establece en `1` en los subprocesos que genera Claude Code (herramientas Bash y PowerShell, sesiones de tmux, comandos de [hooks](/docs/es/hooks), comandos de la [línea de estado](/docs/es/statusline), subprocesos de [servidores MCP](/docs/es/mcp) stdio). Las extensiones de IDE también la establecen en sus terminales integradas. Úsala para detectar cuándo un script se ejecuta dentro de un subproceso generado por Claude Code. Para comprobar si el proceso actual fue generado directamente por una llamada a herramienta o un hook, y no dentro de un servidor MCP stdio que Claude Code inició, usa `CLAUDE_CODE_CHILD_SESSION` en su lugar |202| `CLAUDECODE` | Se establece en `1` en los subprocesos que genera Claude Code (herramientas Bash y PowerShell, sesiones de tmux, comandos de [hook](/docs/es/hooks), comandos de [línea de estado](/docs/es/statusline), subprocesos de [servidor MCP](/docs/es/mcp) stdio). Las extensiones de IDE también la establecen en sus terminales integradas. Úsala para detectar cuándo un script se ejecuta dentro de un subproceso generado por Claude Code. Para comprobar si el proceso actual fue generado directamente por una llamada a herramienta o un hook, y no dentro de un servidor MCP stdio que Claude Code inició, usa `CLAUDE_CODE_CHILD_SESSION` en su lugar |

201| `CLAUDE_AFK_COUNTDOWN_MS` | Cuántos milisegundos antes de la continuación automática aparece la cuenta regresiva en pantalla en un cuadro de diálogo de [`AskUserQuestion`](/docs/es/tools-reference) sin responder. Predeterminado `20000` (20 segundos), limitado al tiempo de espera de la continuación automática. No tiene efecto a menos que la continuación automática esté activada; consulta el ajuste [`askUserQuestionTimeout`](/docs/es/settings-reference#askuserquestiontimeout) y `CLAUDE_AFK_TIMEOUT_MS`. Requiere Claude Code v2.1.198 o posterior |203| `CLAUDE_AFK_COUNTDOWN_MS` | Cuántos milisegundos antes de la continuación automática aparece la cuenta regresiva en pantalla en un diálogo [`AskUserQuestion`](/docs/es/tools-reference) sin responder. Predeterminado `20000` (20 segundos), limitado al tiempo de espera de continuación automática. No tiene efecto a menos que la continuación automática esté activada; consulta el ajuste [`askUserQuestionTimeout`](/docs/es/settings-reference#askuserquestiontimeout) y `CLAUDE_AFK_TIMEOUT_MS`. Requiere Claude Code v2.1.198 o posterior |

202| `CLAUDE_AFK_TIMEOUT_MS` | Cuántos milisegundos de inactividad deben pasar antes de que un cuadro de diálogo de [`AskUserQuestion`](/docs/es/tools-reference) sin responder continúe automáticamente sin ti. La continuación automática está desactivada de forma predeterminada; actívala con el ajuste [`askUserQuestionTimeout`](/docs/es/settings-reference#askuserquestiontimeout). Esta variable es una sobrescritura para demostraciones y pruebas automatizadas: cuando está establecida, tiene precedencia sobre ese ajuste y activa la continuación automática incluso cuando el ajuste no está establecido o es `never`. Establecer `0` no desactiva el tiempo de espera; cierra el cuadro de diálogo de inmediato. En v2.1.198 y v2.1.199, la continuación automática estaba activada de forma predeterminada con un tiempo de espera de `60000` (60 segundos). Requiere Claude Code v2.1.198 o posterior |204| `CLAUDE_AFK_TIMEOUT_MS` | Cuántos milisegundos de inactividad deben transcurrir antes de que un diálogo [`AskUserQuestion`](/docs/es/tools-reference) sin responder continúe automáticamente sin ti. La continuación automática está desactivada de forma predeterminada; actívala con el ajuste [`askUserQuestionTimeout`](/docs/es/settings-reference#askuserquestiontimeout). Esta variable es una sobrescritura para demos y pruebas automatizadas: cuando está establecida, tiene precedencia sobre ese ajuste y activa la continuación automática incluso cuando el ajuste no está establecido o es `never`. Establecer `0` no desactiva el tiempo de espera; cierra el diálogo de inmediato. En v2.1.198 y v2.1.199, la continuación automática estaba activada de forma predeterminada con un tiempo de espera de `60000` (60 segundos). Requiere Claude Code v2.1.198 o posterior |

203| `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS` | Establécela en `1` para desactivar todos los tipos de [subagentes](/docs/es/sub-agents) integrados, como Explore y Plan. Solo se aplica en modo no interactivo (el flag `-p`). Útil para usuarios del SDK que quieren empezar desde cero. Esto también elimina `general-purpose`, el subagente que Claude Code ejecuta cuando una llamada a la herramienta Agent omite `subagent_type`. Dicha llamada falla entonces con [`subagent_type is required`](/docs/es/errors#subagent-type-is-required) |205| `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS` | Establécela en `1` para desactivar todos los tipos de [subagente](/docs/es/sub-agents) integrados, como Explore y Plan. Solo se aplica en modo no interactivo (el flag `-p`). Útil para usuarios del SDK que quieren empezar desde cero. Esto también elimina `general-purpose`, el subagente que Claude Code ejecuta cuando una llamada a la herramienta Agent omite `subagent_type`. Esa llamada entonces falla con [`subagent_type is required`](/docs/es/errors#subagent-type-is-required) |

204| `CLAUDE_AGENT_SDK_MCP_NO_PREFIX` | Establécela en `1` para omitir el prefijo `mcp__<server>__` en los nombres de las herramientas de los servidores MCP creados por el SDK. Las herramientas usan sus nombres originales. Solo para uso con el SDK |206| `CLAUDE_AGENT_SDK_MCP_NO_PREFIX` | Establécela en `1` para omitir el prefijo `mcp__<server>__` en los nombres de las herramientas de servidores MCP creados con el SDK. Las herramientas usan sus nombres originales. Solo para uso del SDK |

205| `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS` | Tiempo de espera por bloqueo en milisegundos para los subagentes. Predeterminado `600000` (10 minutos); si aumentas `CLAUDE_STREAM_IDLE_TIMEOUT_MS` mientras el watchdog de streaming está activado, el valor predeterminado aumenta con él, como se describe en [Gestionar respuestas de la API lentas o bloqueadas](/docs/es/agent-sdk/typescript#handle-slow-or-stalled-api-responses). El temporizador se reinicia con cada evento de progreso del streaming; si no llega ningún progreso dentro del intervalo, Claude Code aborta el subagente e informa el bloqueo al agente principal |207| `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS` | Tiempo de espera por bloqueo en milisegundos para subagentes. Predeterminado `600000` (10 minutos); si aumentas `CLAUDE_STREAM_IDLE_TIMEOUT_MS` mientras el watchdog de streaming está activado, el valor predeterminado aumenta con él, como se describe en [Manejar respuestas de la API lentas o bloqueadas](/docs/es/agent-sdk/typescript#handle-slow-or-stalled-api-responses). El temporizador se reinicia con cada evento de progreso del streaming; si no llega ningún progreso dentro de la ventana, Claude Code aborta el subagente e informa el bloqueo al padre |

206| `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` | Establece el porcentaje (1-100) de la ventana de compactación automática en el que se activa la compactación automática. Usa valores más bajos, como `50`, para compactar antes; la variable no puede elevar el umbral, por lo que se ignoran los valores superiores al porcentaje predeterminado. Solo se aplica en sesiones que [compactan antes del límite de contexto del modelo](/docs/es/model-config#context-window-and-auto-compaction). Se aplica tanto a las conversaciones principales como a los subagentes |208| `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` | Establece el porcentaje (1-100) de la ventana de compactación automática en el que se activa la compactación automática. Usa valores más bajos, como `50`, para compactar antes; la variable no puede elevar el umbral, por lo que se ignoran los valores por encima del porcentaje predeterminado. Solo se aplica en sesiones que [compactan antes del límite de contexto del modelo](/docs/es/model-config#context-window-and-auto-compaction). Se aplica tanto a las conversaciones principales como a los subagentes |

207| `CLAUDE_AUTO_BACKGROUND_TASKS` | Establécela en `1` para forzar la activación del envío automático a segundo plano de las tareas de agente de larga duración. Cuando está activada, los subagentes se mueven a segundo plano después de ejecutarse durante aproximadamente dos minutos. También activa el [envío automático a segundo plano de las llamadas largas a herramientas MCP](/docs/es/mcp#automatic-backgrounding-of-long-tool-calls) en modo no interactivo en Claude Code v2.1.212 o posterior |209| `CLAUDE_AUTO_BACKGROUND_TASKS` | Establécela en `1` para forzar la activación del paso automático a segundo plano de tareas de agente de larga duración. Cuando está activado, los subagentes se mueven a segundo plano después de ejecutarse durante aproximadamente dos minutos. También activa el [paso automático a segundo plano de llamadas largas a herramientas MCP](/docs/es/mcp#automatic-backgrounding-of-long-tool-calls) en modo no interactivo en Claude Code v2.1.212 o posterior |

208| `CLAUDE_AX_PREPARK_MS` | En el [modo de lector de pantalla](/docs/es/accessibility), cuántos milisegundos espera Claude Code antes de escribir una línea nueva o modificada. Predeterminado `0`, por lo que Claude Code no espera. Antes de v2.1.287, el valor predeterminado era `50`. Claude Code limita la espera a `5000`. Requiere Claude Code v2.1.233 o posterior |210| `CLAUDE_AX_PREPARK_MS` | En el [modo de lector de pantalla](/docs/es/accessibility), cuántos milisegundos espera Claude Code antes de escribir una línea nueva o modificada. Predeterminado `0`, por lo que Claude Code no espera. Antes de v2.1.287, el valor predeterminado era `50`. Claude Code limita la espera a `5000`. Requiere Claude Code v2.1.233 o posterior |

209| `CLAUDE_AX_SCREEN_READER` | Establécela en `1` para generar una salida adaptada a lectores de pantalla: texto plano sin bordes decorativos ni animaciones. Establécela en `0` para forzar la desactivación del modo de lector de pantalla incluso cuando [`axScreenReader`](/docs/es/settings-reference#axscreenreader) es `true`. El flag [`--ax-screen-reader`](/docs/es/cli-reference#cli-flags) tiene precedencia. Requiere Claude Code v2.1.181 o posterior |211| `CLAUDE_AX_SCREEN_READER` | Establécela en `1` para mostrar una salida adaptada a lectores de pantalla: texto plano sin bordes decorativos ni animaciones. Establécela en `0` para forzar la desactivación del modo de lector de pantalla incluso cuando [`axScreenReader`](/docs/es/settings-reference#axscreenreader) es `true`. El flag [`--ax-screen-reader`](/docs/es/cli-reference#cli-flags) tiene precedencia. Requiere Claude Code v2.1.181 o posterior |

210| `CLAUDE_AX_STARTUP_QUIET_MS` | En el [modo de lector de pantalla](/docs/es/accessibility), cuántos milisegundos retiene Claude Code el primer renderizado de la interfaz después de la línea de confirmación de inicio, para que tu lector de pantalla pueda leer la línea completa antes de que una nueva salida la interrumpa. Predeterminado `3000`. Establece `0` para renderizar de inmediato. Claude Code limita la retención a `600000` (10 minutos). Tu primera pulsación de tecla termina la retención antes de tiempo. Requiere Claude Code v2.1.217 o posterior |212| `CLAUDE_AX_STARTUP_QUIET_MS` | En el [modo de lector de pantalla](/docs/es/accessibility), cuántos milisegundos retiene Claude Code la primera representación de la interfaz después de la línea de confirmación de inicio, para que tu lector de pantalla pueda leer la línea completa antes de que una nueva salida la interrumpa. Predeterminado `3000`. Establece `0` para mostrarla de inmediato. Claude Code limita la retención a `600000` (10 minutos). Tu primera pulsación de tecla termina la retención antes de tiempo. Requiere Claude Code v2.1.217 o posterior |

211| `CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR` | Vuelve al directorio de trabajo original después de cada comando de Bash o PowerShell en la sesión principal |213| `CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR` | Vuelve al directorio de trabajo original después de cada comando de Bash o PowerShell en la sesión principal |

212| `CLAUDE_BYTE_STREAM_IDLE_TIMEOUT_MS` | Tiempo de espera en milisegundos para el watchdog de inactividad del streaming a nivel de bytes; cuando está establecida, tiene precedencia sobre `CLAUDE_STREAM_IDLE_TIMEOUT_MS` para ese watchdog y deja sin cambios el watchdog a nivel de eventos. Claude Code limita esta variable a un valor entre 10 segundos y 30 minutos. Requiere Claude Code v2.1.210 o posterior |214| `CLAUDE_BYTE_STREAM_IDLE_TIMEOUT_MS` | Tiempo de espera en milisegundos para el watchdog de inactividad de streaming a nivel de bytes; cuando está establecida, tiene precedencia sobre `CLAUDE_STREAM_IDLE_TIMEOUT_MS` para ese watchdog y deja sin cambios el watchdog a nivel de eventos. Claude Code limita esta variable a un valor entre 10 segundos y 30 minutos. Requiere Claude Code v2.1.210 o posterior |

213| `CLAUDE_CLIENT_PRESENCE_FILE` | Ruta a un archivo que una herramienta externa, como un detector de bloqueo de pantalla, crea cuando desbloqueas la pantalla y elimina cuando la bloqueas. Mientras el archivo existe, Claude Code omite las [notificaciones push móviles de Remote Control](/docs/es/remote-control#mobile-push-notifications), para que dejes de recibir notificaciones mientras usas activamente la computadora. Cuando el archivo no existe o no se puede leer, las notificaciones se envían con normalidad. Claude Code comprueba el archivo una vez por cada evento que desencadena una notificación push, en lugar de consultarlo periódicamente. Requiere Claude Code v2.1.181 o posterior |215| `CLAUDE_CLIENT_PRESENCE_FILE` | Ruta a un archivo que una herramienta externa, como un detector de bloqueo de pantalla, crea cuando desbloqueas la pantalla y elimina cuando la bloqueas. Mientras el archivo existe, Claude Code omite las [notificaciones push móviles de Remote Control](/docs/es/remote-control#mobile-push-notifications), para que dejes de recibir notificaciones push mientras usas activamente la computadora. Cuando el archivo no existe o no se puede leer, las notificaciones se envían con normalidad. Claude Code comprueba el archivo una vez por cada evento que desencadena una notificación push, en lugar de consultarlo periódicamente. Requiere Claude Code v2.1.181 o posterior |

214| `CLAUDE_CODE_ACCESSIBILITY` | Establécela en `1` para mantener visible el cursor nativo de la terminal y desactivar el indicador de cursor de texto invertido. Permite que las lupas de pantalla, como el Zoom de macOS, sigan la posición del cursor |216| `CLAUDE_CODE_ACCESSIBILITY` | Establécela en `1` para mantener visible el cursor nativo de la terminal y desactivar el indicador de cursor de texto invertido. Permite que los ampliadores de pantalla como el Zoom de macOS sigan la posición del cursor |

215| `CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD` | Establécela en `1` para cargar archivos de memoria desde los directorios especificados con `--add-dir`. Carga `CLAUDE.md`, `.claude/CLAUDE.md`, `.claude/rules/*.md` y `CLAUDE.local.md`. De forma predeterminada, los directorios adicionales no cargan archivos de memoria |217| `CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD` | Establécela en `1` para cargar archivos de memoria desde los directorios especificados con `--add-dir`. Carga `CLAUDE.md`, `.claude/CLAUDE.md`, `.claude/rules/*.md` y `CLAUDE.local.md`. De forma predeterminada, los directorios adicionales no cargan archivos de memoria |

216| `CLAUDE_CODE_ALT_SCREEN_FULL_REPAINT` | Establécela en `1` para volver a dibujar toda la pantalla en cada fotograma en el [renderizado a pantalla completa](/docs/es/fullscreen) en lugar de enviar actualizaciones incrementales. Úsala si el modo de pantalla completa muestra fragmentos de texto obsoletos o mal ubicados. Claude Code la activa automáticamente para las sesiones en segundo plano y la [vista de agentes](/docs/es/agent-view) en Windows |218| `CLAUDE_CODE_ALT_SCREEN_FULL_REPAINT` | Establécela en `1` para volver a dibujar toda la pantalla en cada fotograma en la [representación a pantalla completa](/docs/es/fullscreen) en lugar de enviar actualizaciones incrementales. Úsala si el modo de pantalla completa muestra fragmentos de texto obsoletos o mal ubicados. Claude Code la activa automáticamente para las sesiones en segundo plano y la [vista de agentes](/docs/es/agent-view) en Windows |

217| `CLAUDE_CODE_ALWAYS_ENABLE_EFFORT` | Establécela en `1` para enviar el parámetro de [esfuerzo](/docs/es/model-config#adjust-effort-level) con cada solicitud, incluso cuando Claude Code no reconoce el ID del modelo como compatible con el esfuerzo. Úsala al enrutar a través de un [gateway de LLM](/docs/es/llm-gateway) o un proveedor externo que sirve modelos con identificadores personalizados. Los modelos que rechazan el parámetro de esfuerzo en la API, incluidos los modelos Claude 3, Sonnet 4.0 y 4.5, Opus 4.0 y 4.1 y Haiku 4.5, siguen excluidos para que las solicitudes no fallen |219| `CLAUDE_CODE_ALWAYS_ENABLE_EFFORT` | Establécela en `1` para enviar el parámetro [effort](/docs/es/model-config#adjust-effort-level) con cada solicitud, incluso cuando Claude Code no reconoce el ID del modelo como compatible con effort. Úsala al enrutar a través de un [LLM gateway](/docs/es/llm-gateway) o un proveedor de terceros que sirve modelos con identificadores personalizados. Los modelos que rechazan el parámetro effort en la API, incluidos los modelos Claude 3, Sonnet 4.0 y 4.5, Opus 4.0 y 4.1, y Haiku 4.5, siguen excluidos para que las solicitudes no fallen |

218| `CLAUDE_CODE_API_KEY_HELPER_TTL_MS` | Intervalo en milisegundos con el que se deben actualizar las credenciales (al usar [`apiKeyHelper`](/docs/es/settings-reference#apikeyhelper)) |220| `CLAUDE_CODE_API_KEY_HELPER_TTL_MS` | Intervalo en milisegundos en el que se deben actualizar las credenciales (al usar [`apiKeyHelper`](/docs/es/settings-reference#apikeyhelper)) |

219| `CLAUDE_CODE_ARTIFACT_AUTO_OPEN` | Establécela en `0` para evitar que Claude Code abra el navegador automáticamente cuando se publica un nuevo [artefacto](/docs/es/artifacts#create-an-artifact) |221| `CLAUDE_CODE_ARTIFACT_AUTO_OPEN` | Establécela en `0` para que Claude Code no abra el navegador automáticamente cuando se publica un nuevo [artefacto](/docs/es/artifacts#create-an-artifact) |

220| `CLAUDE_CODE_ARTIFACT_COMMENTS` | Establécela en `0` para que Claude deje de leer y responder a los [comentarios en un artefacto](/docs/es/artifacts#collect-comments-on-an-artifact). No tiene efecto cuando `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` [desactivó los artefactos](/docs/es/artifacts#availability). Requiere Claude Code v2.1.221 o posterior |222| `CLAUDE_CODE_ARTIFACT_COMMENTS` | Establécela en `0` para que Claude deje de leer y responder a los [comentarios en un artefacto](/docs/es/artifacts#collect-comments-on-an-artifact). No tiene efecto cuando `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` ha [desactivado los artefactos](/docs/es/artifacts#availability). Requiere Claude Code v2.1.221 o posterior |

221| `CLAUDE_CODE_ARTIFACT_COMMENTS_AUTOREACT` | Establécela en `0` para que Claude deje de [responder por su cuenta a los comentarios que se le envían](/docs/es/artifacts#let-claude-reply-to-comments-on-its-own). Requiere Claude Code v2.1.228 o posterior |223| `CLAUDE_CODE_ARTIFACT_COMMENTS_AUTOREACT` | Establécela en `0` para que Claude deje de [responder por su cuenta a los comentarios que se le envían](/docs/es/artifacts#let-claude-reply-to-comments-on-its-own). Requiere Claude Code v2.1.228 o posterior |

222| `CLAUDE_CODE_ATTRIBUTION_HEADER` | Establécela en `0` para omitir el [bloque de atribución](/docs/es/llm-gateway-protocol#system-prompt-attribution-block), que contiene la versión del cliente y una huella del prompt, del inicio del prompt del sistema. El almacenamiento en caché en una conexión directa a la API de Anthropic no se ve afectado en ningún caso. En algunas configuraciones de conexión directa, Claude Code mantiene el bloque en las solicitudes al clasificador del [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode) incluso cuando estableces `0`. En [Bloque de atribución del prompt del sistema](/docs/es/llm-gateway-protocol#system-prompt-attribution-block), comprueba qué conexiones y credenciales abarca esto. Antes de v2.1.181, el bloque incluía un token por solicitud en las URL base personalizadas y las conexiones de Microsoft Foundry, así que en esas versiones establécela en `0` cuando tu gateway de LLM almacene en caché según el cuerpo de la solicitud o reenvíe las solicitudes a un proveedor externo, o cuando te conectes directamente a Microsoft Foundry |224| `CLAUDE_CODE_ATTRIBUTION_HEADER` | Establécela en `0` para omitir el [bloque de atribución](/docs/es/llm-gateway-protocol#system-prompt-attribution-block), que contiene la versión del cliente y una huella del prompt, del inicio del prompt del sistema. El almacenamiento en caché en una conexión directa a la API de Anthropic no se ve afectado en ningún caso. En algunas configuraciones de conexión directa, Claude Code mantiene el bloque en las solicitudes al clasificador del [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode) incluso cuando estableces `0`. En [Bloque de atribución del prompt del sistema](/docs/es/llm-gateway-protocol#system-prompt-attribution-block), comprueba qué conexiones y credenciales abarca esto. Antes de v2.1.181, el bloque incluía un token por solicitud en las URL base personalizadas y en las conexiones de Microsoft Foundry, por lo que en esas versiones establécela en `0` cuando tu LLM gateway almacene en caché según el cuerpo de la solicitud o reenvíe solicitudes a un proveedor de terceros, o cuando te conectes directamente a Microsoft Foundry |

223| `CLAUDE_CODE_AUTO_BACKGROUND_WORKER_CHECKIN_SECONDS` | Eliminada en v2.1.283. Usa `CLAUDE_CODE_WORKER_CHECKIN_SCHEDULE` en su lugar |225| `CLAUDE_CODE_AUTO_BACKGROUND_WORKER_CHECKIN_SECONDS` | Eliminada en v2.1.283. Usa `CLAUDE_CODE_WORKER_CHECKIN_SCHEDULE` en su lugar |

224| `CLAUDE_CODE_AUTO_COMPACT_WINDOW` | Establece la [ventana de compactación automática](/docs/es/model-config#set-the-auto-compact-window) en tokens, de `100000` a `1000000`. Solo acepta un entero simple como `500000`: un valor como `500k` se lee como `500` y se ajusta al mínimo de 100K. La ventana efectiva también está limitada a la ventana de contexto del modelo. Tiene precedencia sobre el comando `/autocompact`, el flag `--autocompact` y el ajuste `autoCompactWindow`. El `used_percentage` de la línea de estado siempre se mide respecto a la ventana de contexto completa del modelo, por lo que, una vez establecida esta variable, ese porcentaje ya no indica cuándo se ejecutará la compactación |226| `CLAUDE_CODE_AUTO_COMPACT_WINDOW` | Establece la [ventana de compactación automática](/docs/es/model-config#set-the-auto-compact-window) en tokens, de `100000` a `1000000`. Solo acepta un entero simple como `500000`: un valor como `500k` se lee como `500` y se ajusta al mínimo de 100K. La ventana efectiva también está limitada a la ventana de contexto del modelo. Tiene precedencia sobre el comando `/autocompact`, el flag `--autocompact` y el ajuste `autoCompactWindow`. El `used_percentage` de la línea de estado siempre se mide respecto a la ventana de contexto completa del modelo, por lo que, una vez establecida esta variable, ese porcentaje ya no indica cuándo se ejecutará la compactación |

225| `CLAUDE_CODE_AUTO_CONNECT_IDE` | Sobrescribe la [conexión automática con el IDE](/docs/es/vs-code). De forma predeterminada, Claude Code se conecta automáticamente cuando se inicia dentro de la terminal integrada de un IDE compatible. Establécela en `false` para evitarlo. Establécela en `true` para forzar un intento de conexión cuando falla la detección automática, por ejemplo cuando tmux oculta la terminal principal. Tiene precedencia sobre el ajuste de configuración global [`autoConnectIde`](/docs/es/settings-reference#autoconnectide) |227| `CLAUDE_CODE_AUTO_CONNECT_IDE` | Sobrescribe la [conexión automática al IDE](/docs/es/vs-code). De forma predeterminada, Claude Code se conecta automáticamente cuando se inicia dentro de la terminal integrada de un IDE compatible. Establécela en `false` para evitarlo. Establécela en `true` para forzar un intento de conexión cuando falla la detección automática, como cuando tmux oculta la terminal principal. Tiene precedencia sobre el ajuste de configuración global [`autoConnectIde`](/docs/es/settings-reference#autoconnectide) |

226| `CLAUDE_CODE_AUTO_MODE_SERVER` | Controla si Claude Code pide al servidor que [revise las acciones del modo automático](/docs/es/permission-modes#server-side-classifier-review). Establécela en `0` para usar en su lugar las solicitudes al clasificador propias de Claude Code. En una conexión directa a la API de Anthropic, requiere v2.1.281 o posterior. La sección enlazada indica qué sesiones consultan al servidor cuando la variable no está establecida, y a partir de qué versión. Requiere Claude Code v2.1.271 o posterior |228| `CLAUDE_CODE_AUTO_MODE_SERVER` | Controla si Claude Code pide al servidor que [revise las acciones del modo automático](/docs/es/permission-modes#server-side-classifier-review). Establécela en `0` para usar en su lugar las propias solicitudes al clasificador de Claude Code. En una conexión directa a la API de Anthropic, requiere v2.1.281 o posterior. La sección enlazada indica qué sesiones consultan al servidor cuando la variable no está establecida, y a partir de qué versión. Requiere Claude Code v2.1.271 o posterior |

227| `CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS` | Tiempo en milisegundos que Claude Code espera a que la cadena predeterminada de proveedores de credenciales de AWS produzca credenciales antes de que la solicitud falle con [`AWS default-chain credential resolve timed out`](/docs/es/errors#aws-default-chain-credential-resolve-timed-out) (predeterminado: `60000`). Auméntalo cuando un paso de tu cadena necesite legítimamente más tiempo, como un inicio de sesión SSO en el navegador con MFA mediante un contenedor como `aws-vault`. Se aplica siempre que Claude Code firma con la cadena predeterminada: [Amazon Bedrock](/docs/es/amazon-bedrock#credential-caching-and-resolution-timeout), [Claude Platform on AWS](/docs/es/claude-platform-on-aws) y el [endpoint de Mantle](/docs/es/amazon-bedrock#use-the-mantle-endpoint). Requiere Claude Code v2.1.207 o posterior |229| `CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS` | Tiempo en milisegundos que Claude Code espera a que la cadena predeterminada de proveedores de credenciales de AWS produzca credenciales antes de que la solicitud falle con [`AWS default-chain credential resolve timed out`](/docs/es/errors#aws-default-chain-credential-resolve-timed-out) (predeterminado: `60000`). Auméntalo cuando un paso de tu cadena necesite legítimamente más tiempo, como un inicio de sesión SSO basado en navegador con MFA a través de un wrapper como `aws-vault`. Se aplica en Amazon Bedrock, [Claude Platform on AWS](/docs/es/claude-platform-on-aws) y el [endpoint de Mantle](/docs/es/amazon-bedrock#use-the-mantle-endpoint). Consulta [almacenamiento en caché de credenciales y tiempo de espera de resolución](/docs/es/amazon-bedrock#credential-caching-and-resolution-timeout). Requiere Claude Code v2.1.207 o posterior |

228| `CLAUDE_CODE_BASH_EDIT_DIFF` | Establécela en `0` para desactivar el [diff de los archivos que cambiaron mientras se ejecutaba un comando de Bash](/docs/es/hooks#bash), o en `1` para registrarlo en todos los modos de permisos. Tiene precedencia sobre el ajuste [`bashEditDiffEnabled`](/docs/es/settings-reference#basheditdiffenabled). Requiere Claude Code v2.1.269 o posterior |230| `CLAUDE_CODE_BASH_EDIT_DIFF` | Establécela en `0` para desactivar el [diff de los archivos que cambiaron mientras se ejecutaba un comando de Bash](/docs/es/hooks#bash), o en `1` para registrarlo en todos los modos de permisos. Tiene precedencia sobre el ajuste [`bashEditDiffEnabled`](/docs/es/settings-reference#basheditdiffenabled). Requiere Claude Code v2.1.269 o posterior |

229| `CLAUDE_CODE_BG_TASKS_REPORT_RUNNING` | Establécela en `0` para que una sesión no interactiva informe un estado inactivo a su host al final de cada turno, incluso mientras sigue en ejecución trabajo en segundo plano. De forma predeterminada, la sesión sigue informando un estado de ejecución después del final del turno mientras sigue activo trabajo en segundo plano, como un agente en segundo plano o la ejecución de un [flujo de trabajo](/docs/es/workflows). Esto evita que un host que supervisa el estado, como una lista de sesiones remotas, anuncie que Claude está esperando tu entrada a mitad del trabajo. Los comandos de shell en segundo plano, como un servidor de desarrollo, no mantienen el estado de ejecución. El estado de ejecución predeterminado y la desactivación con `0` requieren Claude Code v2.1.269 o posterior; en versiones anteriores, establece `1` para mantener el estado de ejecución |231| `CLAUDE_CODE_BG_TASKS_REPORT_RUNNING` | Establécela en `0` para que una sesión no interactiva informe un estado inactivo a su host al final de cada turno, incluso mientras todavía se ejecuta trabajo en segundo plano. De forma predeterminada, la sesión sigue informando un estado de ejecución después del final del turno mientras sigue activo trabajo en segundo plano, como un agente en segundo plano o una ejecución de un [flujo de trabajo](/docs/es/workflows). Esto evita que un host que observa el estado, como una lista de sesiones remotas, anuncie que Claude está esperando tu entrada en mitad del trabajo. Los comandos de shell en segundo plano, como un servidor de desarrollo, no mantienen el estado de ejecución. El valor predeterminado del estado de ejecución y la exclusión con `0` requieren Claude Code v2.1.269 o posterior; en versiones anteriores, establece `1` para mantener el estado de ejecución |

230| `CLAUDE_CODE_BRIDGE_SESSION_ID` | Se establece automáticamente en los subprocesos de la herramienta Bash y de los [comandos de hooks](/docs/es/hooks) mientras la sesión tiene una conexión activa de [Remote Control](/docs/es/remote-control), y se elimina cuando la conexión termina. El valor es el ID de la sesión en formato `session_`, el mismo identificador que aparece en la URL `claude.ai/code` de la sesión, para que un script pueda enlazar de vuelta a la sesión que lo ejecutó. Requiere Claude Code v2.1.199 o posterior. En las [sesiones en la nube](/docs/es/claude-code-on-the-web), lee `CLAUDE_CODE_REMOTE_SESSION_ID` en su lugar |232| `CLAUDE_CODE_BRIDGE_SESSION_ID` | Se establece automáticamente en los subprocesos de la herramienta Bash y de los [comandos de hook](/docs/es/hooks) mientras la sesión tiene una conexión activa de [Remote Control](/docs/es/remote-control), y se elimina cuando la conexión termina. El valor es el ID de la sesión en formato `session_`, el mismo identificador que aparece en la URL `claude.ai/code` de la sesión, para que un script pueda enlazar de vuelta a la sesión que lo ejecutó. Requiere Claude Code v2.1.199 o posterior. En las [sesiones en la nube](/docs/es/claude-code-on-the-web), lee `CLAUDE_CODE_REMOTE_SESSION_ID` en su lugar |

231| `CLAUDE_CODE_BS_AS_CTRL_BACKSPACE` | Establécela en `0` para que Claude Code lea el byte `0x08`, también escrito `^H`, como Backspace simple, o en `1` para leerlo como Ctrl+Backspace. Cualquiera de los dos valores reemplaza el valor predeterminado de la plataforma. De forma predeterminada, Claude Code lo lee como Ctrl+Backspace en Windows, excepto cuando `TERM_PROGRAM` es `mintty` o `TERM` es `cygwin`, y como Backspace simple en macOS y Linux. Establece `0` en una terminal de Windows donde [Backspace borra una palabra completa](/docs/es/terminal-config#fix-backspace-deleting-a-whole-word-on-windows) |233| `CLAUDE_CODE_BS_AS_CTRL_BACKSPACE` | Establécela en `0` para que Claude Code lea el byte `0x08`, también escrito `^H`, como Backspace simple, o en `1` para leerlo como Ctrl+Backspace. Cualquiera de los dos valores reemplaza el valor predeterminado de la plataforma. De forma predeterminada, Claude Code lo lee como Ctrl+Backspace en Windows, excepto cuando `TERM_PROGRAM` es `mintty` o `TERM` es `cygwin`, y como Backspace simple en macOS y Linux. Establece `0` en una terminal de Windows donde [Backspace elimina una palabra completa](/docs/es/terminal-config#fix-backspace-deleting-a-whole-word-on-windows) |

232| `CLAUDE_CODE_CERT_STORE` | Lista separada por comas de orígenes de certificados de CA para las conexiones TLS. `bundled` es el conjunto de CA de Mozilla incluido con Claude Code. `system` es el almacén de confianza del sistema operativo, que solo se lee en entornos de ejecución con `tls.getCACertificates`: el binario nativo, o Node 22.15 o posterior para instalaciones con npm. Consulta [Almacén de certificados de CA](/docs/es/network-config#ca-certificate-store). El valor predeterminado es `bundled,system` |234| `CLAUDE_CODE_CERT_STORE` | Lista separada por comas de fuentes de certificados CA para las conexiones TLS. `bundled` es el conjunto de CA de Mozilla incluido con Claude Code. `system` es el almacén de confianza del sistema operativo, que solo se lee en entornos de ejecución con `tls.getCACertificates`: el binario nativo, o Node 22.15 o posterior para instalaciones con npm. Consulta [Almacén de certificados CA](/docs/es/network-config#ca-certificate-store). El valor predeterminado es `bundled,system` |

233| `CLAUDE_CODE_CHILD_SESSION` | Se establece en `1` en los subprocesos que Claude Code genera mediante las herramientas Bash, PowerShell y Monitor, los comandos de [hooks](/docs/es/hooks) y los comandos de la [línea de estado](/docs/es/statusline). No se establece para los subprocesos de [servidores MCP](/docs/es/mcp) stdio, que son de larga duración y sobreviven a la sesión que los generó. A diferencia de `CLAUDECODE`, solo la establece el propio Claude Code cuando inicia un subproceso y no las extensiones de IDE, por lo que distingue de forma fiable una sesión anidada de un `claude` de nivel superior iniciado en una terminal integrada de un IDE. Una TUI interactiva de `claude` anidada iniciada de esta forma se excluye automáticamente de `--resume`, `--continue`, del historial con la flecha hacia arriba y de la lista de `claude agents`. Las sesiones no interactivas de `claude -p` siguen persistiendo. Establece `CLAUDE_CODE_FORCE_SESSION_PERSISTENCE=1` para anular esta exclusión. Requiere Claude Code v2.1.172 o posterior |235| `CLAUDE_CODE_CHILD_SESSION` | Se establece en `1` en los subprocesos que Claude Code genera mediante las herramientas Bash, PowerShell y Monitor, los comandos de [hook](/docs/es/hooks) y los comandos de [línea de estado](/docs/es/statusline). No se establece para los subprocesos de [servidor MCP](/docs/es/mcp) stdio, que son de larga duración y sobreviven a la sesión que los generó. A diferencia de `CLAUDECODE`, solo la establece el propio Claude Code cuando inicia un subproceso y no las extensiones de IDE, por lo que distingue de forma fiable una sesión anidada de un `claude` de nivel superior iniciado en una terminal integrada del IDE. Una TUI interactiva de `claude` anidada iniciada de esta forma se excluye automáticamente de `--resume`, `--continue`, el historial de la flecha hacia arriba y la lista de `claude agents`. Las sesiones no interactivas de `claude -p` siguen persistiendo. Establece `CLAUDE_CODE_FORCE_SESSION_PERSISTENCE=1` para sobrescribir esta exclusión. Requiere Claude Code v2.1.172 o posterior |

234| `CLAUDE_CODE_CLIENT_CERT` | Ruta al archivo del certificado de cliente para la autenticación mTLS |236| `CLAUDE_CODE_CLIENT_CERT` | Ruta al archivo de certificado de cliente para la autenticación mTLS |

235| `CLAUDE_CODE_CLIENT_KEY` | Ruta al archivo de la clave privada del cliente para la autenticación mTLS |237| `CLAUDE_CODE_CLIENT_KEY` | Ruta al archivo de clave privada del cliente para la autenticación mTLS |

236| `CLAUDE_CODE_CLIENT_KEY_PASSPHRASE` | Frase de contraseña para la CLAUDE\_CODE\_CLIENT\_KEY cifrada (opcional) |238| `CLAUDE_CODE_CLIENT_KEY_PASSPHRASE` | Frase de contraseña para la CLAUDE\_CODE\_CLIENT\_KEY cifrada (opcional) |

237| `CLAUDE_CODE_CONNECT_TIMEOUT_MS` | Eliminada en v2.1.186 y ahora no tiene efecto. Anteriormente establecía un tiempo de espera separado para la fase de conexión, TLS y encabezados de respuesta de una solicitud a la API en streaming. Usa `API_TIMEOUT_MS` para el tiempo de espera por solicitud. Para la fase de encabezados de respuesta de una solicitud en streaming, consulta `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS` |239| `CLAUDE_CODE_CONNECT_TIMEOUT_MS` | Eliminada en v2.1.186 y ahora no tiene efecto. Antes establecía un tiempo de espera independiente para la fase de conexión, TLS y encabezados de respuesta de una solicitud a la API en streaming. Usa `API_TIMEOUT_MS` para el tiempo de espera por solicitud. Para la fase de encabezados de respuesta de una solicitud en streaming, consulta `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS` |

238| `CLAUDE_CODE_DEBUG_LOGS_DIR` | Sobrescribe la ruta del archivo de registro de depuración. A pesar del nombre, es una ruta de archivo, no un directorio. Requiere que el modo de depuración se active por separado mediante `--debug`, `/debug` o la variable de entorno `DEBUG`: establecer solo esta variable no activa el registro. El flag [`--debug-file`](/docs/es/cli-reference#cli-flags) hace ambas cosas a la vez. El valor predeterminado es `~/.claude/debug/<session-id>.txt` |240| `CLAUDE_CODE_DEBUG_LOGS_DIR` | Sobrescribe la ruta del archivo de registro de depuración. A pesar del nombre, es una ruta de archivo, no un directorio. Requiere que el modo de depuración se active por separado mediante `--debug`, `/debug` o la variable de entorno `DEBUG`: establecer solo esta variable no activa el registro. El flag [`--debug-file`](/docs/es/cli-reference#cli-flags) hace ambas cosas a la vez. El valor predeterminado es `~/.claude/debug/<session-id>.txt` |

239| `CLAUDE_CODE_DEBUG_LOG_LEVEL` | Nivel mínimo de registro que se escribe en el archivo de registro de depuración. Valores: `verbose`, `debug` (predeterminado), `info`, `warn`, `error`. Establécela en `verbose` para incluir diagnósticos de alto volumen, como la salida completa del comando de la línea de estado, o súbela a `error` para reducir el ruido |241| `CLAUDE_CODE_DEBUG_LOG_LEVEL` | Nivel mínimo de registro que se escribe en el archivo de registro de depuración. Valores: `verbose`, `debug` (predeterminado), `info`, `warn`, `error`. Establécela en `verbose` para incluir diagnósticos de gran volumen, como la salida completa del comando de la línea de estado, o súbela a `error` para reducir el ruido |

240| `CLAUDE_CODE_DISABLE_1M_CONTEXT` | Establécela en `1` para desactivar la compatibilidad con la [ventana de contexto de 1M](/docs/es/model-config#extended-context). Cuando está establecida, las variantes de modelos de 1M no están disponibles en el selector de modelos y Claude Code limita a una ventana de 200K las sesiones en modelos con una ventana nativa de 1M, como [Sonnet 5.5](/docs/es/model-config#sonnet-5-5-and-sonnet-5-context-window) y los modelos Fable; consulta [Contexto extendido](/docs/es/model-config#extended-context) para ver cómo se aplica ese límite. Útil para entornos empresariales con requisitos de cumplimiento normativo. Para conocer su papel en la corrección de la ventana para un ID de modelo `[1m]` no reconocido, consulta [Corregir la ventana para un ID de modelo de gateway o personalizado](/docs/es/model-config#correct-the-window-for-a-gateway-or-custom-model-id) |242| `CLAUDE_CODE_DISABLE_1M_CONTEXT` | Establécela en `1` para desactivar la compatibilidad con la [ventana de contexto de 1M](/docs/es/model-config#extended-context). Cuando está establecida, las variantes de modelo de 1M no están disponibles en el selector de modelos, y Claude Code limita las sesiones en modelos con una ventana nativa de 1M, como [Sonnet 5.5](/docs/es/model-config#sonnet-5-5-and-sonnet-5-context-window) y los modelos Fable, a una ventana de 200K; consulta [Contexto extendido](/docs/es/model-config#extended-context) para ver cómo se aplica este límite. Útil para entornos empresariales con requisitos de cumplimiento. Para conocer su función en la corrección de la ventana para un ID de modelo `[1m]` no reconocido, consulta [Corregir la ventana para un gateway o ID de modelo personalizado](/docs/es/model-config#correct-the-window-for-a-gateway-or-custom-model-id) |

241| `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` | Establécela en `1` para desactivar el [razonamiento adaptativo](/docs/es/model-config#adjust-effort-level) en Opus 4.6 y Sonnet 4.6 y recurrir al presupuesto de pensamiento fijo controlado por `MAX_THINKING_TOKENS`. No tiene efecto en los [modelos Fable](/docs/es/model-config#extended-thinking), Sonnet 5 y posteriores, ni Opus 4.7 y posteriores, que siempre usan razonamiento adaptativo |243| `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` | Establécela en `1` para desactivar el [razonamiento adaptativo](/docs/es/model-config#adjust-effort-level) en Opus 4.6 y Sonnet 4.6 y recurrir al presupuesto fijo de pensamiento controlado por `MAX_THINKING_TOKENS`. No tiene efecto en los [modelos Fable](/docs/es/model-config#extended-thinking), Sonnet 5 y posteriores, Haiku 5.5, ni Opus 4.7 y posteriores, que siempre usan razonamiento adaptativo |

242| `CLAUDE_CODE_DISABLE_ADMIN_ENV_UNION` | Establécela en `1` para evitar que Claude Code combine clave por clave los bloques `env` de la [configuración administrada](/docs/es/managed-settings#precedence-within-the-managed-tier) entre los orígenes de administración, de modo que solo se aplique el bloque `env` completo del origen de mayor prioridad, como antes de v2.1.223. Establécela en el entorno que inicia Claude Code, ya que Claude Code ignora una copia entregada a través de un bloque `env` de la configuración. Requiere Claude Code v2.1.223 o posterior |244| `CLAUDE_CODE_DISABLE_ADMIN_ENV_UNION` | Establécela en `1` para que Claude Code deje de combinar por clave los bloques `env` de la [configuración administrada](/docs/es/managed-settings#precedence-within-the-managed-tier) entre las fuentes de administración, de modo que solo se aplique el bloque `env` completo de la fuente de mayor prioridad, como antes de v2.1.223. Establécela en el entorno que inicia Claude Code, ya que Claude Code ignora una copia entregada a través de un bloque `env` de la configuración. Requiere Claude Code v2.1.223 o posterior |

243| `CLAUDE_CODE_DISABLE_ADVISOR_TOOL` | Establécela en `1` para desactivar la [herramienta advisor](/docs/es/advisor). El comando `/advisor` deja de estar disponible, cualquier `advisorModel` configurado se ignora y el flag `--advisor` se acepta pero no tiene efecto, por lo que los scripts existentes que lo pasan siguen funcionando sin errores |245| `CLAUDE_CODE_DISABLE_ADVISOR_TOOL` | Establécela en `1` para desactivar la [herramienta advisor](/docs/es/advisor). El comando `/advisor` deja de estar disponible, se ignora cualquier `advisorModel` configurado, y el flag `--advisor` se acepta pero no tiene efecto, de modo que los scripts existentes que lo pasan siguen funcionando sin errores |

244| `CLAUDE_CODE_DISABLE_AGENT_VIEW` | Establécela en `1` para desactivar los [agentes en segundo plano y la vista de agentes](/docs/es/agent-view): `claude agents`, `--bg`, `/background` y el supervisor bajo demanda. Equivale al ajuste [`disableAgentView`](/docs/es/settings-reference#disableagentview) |246| `CLAUDE_CODE_DISABLE_AGENT_VIEW` | Establécela en `1` para desactivar los [agentes en segundo plano y la vista de agentes](/docs/es/agent-view): `claude agents`, `--bg`, `/background` y el supervisor bajo demanda. Equivalente al ajuste [`disableAgentView`](/docs/es/settings-reference#disableagentview) |

245| `CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN` | Establécela en `1` para desactivar el [renderizado a pantalla completa](/docs/es/fullscreen) y usar el renderizador clásico de pantalla principal. La conversación permanece en el historial de desplazamiento nativo de tu terminal, por lo que `Cmd+f` y el modo de copia de tmux funcionan como de costumbre. Tiene precedencia sobre `CLAUDE_CODE_NO_FLICKER` y el ajuste [`tui`](/docs/es/settings-reference#tui). También puedes cambiar con `/tui default`. No se aplica a las sesiones en segundo plano abiertas desde la [vista de agentes](/docs/es/agent-view), que siempre usan el renderizado a pantalla completa |247| `CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN` | Establécela en `1` para desactivar la [representación a pantalla completa](/docs/es/fullscreen) y usar el renderizador clásico de pantalla principal. La conversación permanece en el historial de desplazamiento nativo de tu terminal, por lo que `Cmd+f` y el modo de copia de tmux funcionan como de costumbre. Tiene precedencia sobre `CLAUDE_CODE_NO_FLICKER` y el ajuste [`tui`](/docs/es/settings-reference#tui). También puedes cambiar con `/tui default`. No se aplica a las sesiones en segundo plano abiertas desde la [vista de agentes](/docs/es/agent-view), que siempre usan la representación a pantalla completa |

246| `CLAUDE_CODE_DISABLE_ARTIFACT` | Establécela en `1` para desactivar la herramienta [Artifact](/docs/es/artifacts), que publica la salida de la sesión como una página web privada en claude.ai. Una vez que la estableces, ningún archivo de configuración vuelve a activar la herramienta. Para desactivar la herramienta desde un archivo de configuración, establece [`enableArtifact`](/docs/es/settings-reference#enableartifact) en `false`; la clave obsoleta [`disableArtifact`](/docs/es/settings-reference#disableartifact) también la desactiva |248| `CLAUDE_CODE_DISABLE_ARTIFACT` | Establécela en `1` para desactivar la herramienta [Artifact](/docs/es/artifacts), que publica la salida de la sesión como una página web privada en claude.ai. Una vez establecida, ningún archivo de configuración vuelve a activar la herramienta. Para desactivar la herramienta desde un archivo de configuración, establece [`enableArtifact`](/docs/es/settings-reference#enableartifact) en `false`; la clave obsoleta [`disableArtifact`](/docs/es/settings-reference#disableartifact) también la desactiva |

247| `CLAUDE_CODE_DISABLE_ATTACHMENTS` | Establécela en `1` para desactivar el procesamiento de archivos adjuntos. Las menciones de archivos con la sintaxis `@` se envían como texto sin formato en lugar de expandirse al contenido del archivo |249| `CLAUDE_CODE_DISABLE_ATTACHMENTS` | Establécela en `1` para desactivar el procesamiento de adjuntos. Las menciones de archivos con la sintaxis `@` se envían como texto plano en lugar de expandirse al contenido del archivo |

248| `CLAUDE_CODE_DISABLE_AUTH_REFRESH_LOCK` | Establécela en `1` para que un proceso de Claude Code ejecute por sí mismo su comando [`gcpAuthRefresh`](/docs/es/settings-reference#gcpauthrefresh) o [`awsAuthRefresh`](/docs/es/settings-reference#awsauthrefresh) en lugar de esperar mientras otro proceso lo ejecuta. Requiere Claude Code v2.1.286 o posterior |250| `CLAUDE_CODE_DISABLE_AUTH_REFRESH_LOCK` | Establécela en `1` para que un proceso de Claude Code ejecute por sí mismo su comando [`gcpAuthRefresh`](/docs/es/settings-reference#gcpauthrefresh) o [`awsAuthRefresh`](/docs/es/settings-reference#awsauthrefresh) en lugar de esperar mientras otro proceso lo ejecuta. Requiere Claude Code v2.1.286 o posterior |

249| `CLAUDE_CODE_DISABLE_AUTO_MEMORY` | Establécela en `1` para desactivar la [memoria automática](/docs/es/memory#auto-memory). Establécela en `0` para forzar la activación de la memoria automática incluso cuando el modo `--bare` o [`autoMemoryEnabled: false`](/docs/es/settings-reference#automemoryenabled) la desactivarían. Cuando está desactivada, Claude no crea ni carga archivos de memoria automática |251| `CLAUDE_CODE_DISABLE_AUTO_MEMORY` | Establécela en `1` para desactivar la [memoria automática](/docs/es/memory#auto-memory). Establécela en `0` para forzar la activación de la memoria automática incluso cuando el modo `--bare` o [`autoMemoryEnabled: false`](/docs/es/settings-reference#automemoryenabled) la desactivarían. Cuando está desactivada, Claude no crea ni carga archivos de memoria automática |

250| `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` | Establécela en `1` para desactivar toda la funcionalidad de tareas en segundo plano, incluido el parámetro `run_in_background` en las herramientas Bash y de subagentes, el envío automático a segundo plano y el atajo Ctrl+B |252| `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` | Establécela en `1` para desactivar toda la funcionalidad de tareas en segundo plano, incluido el parámetro `run_in_background` en las herramientas Bash y de subagentes, el paso automático a segundo plano y el atajo Ctrl+B |

251| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_DEFAULT` | Establécela en `1` para evitar que Claude Code trate una respuesta en streaming de [Amazon Bedrock](/docs/es/amazon-bedrock) con un encabezado `Content-Type` ausente o vacío como el flujo de eventos binario de Amazon Bedrock. De forma predeterminada, Claude Code asume que un gateway eliminó el encabezado de una respuesta que por lo demás no se modificó, por lo que decodifica el cuerpo y el streaming sigue funcionando. Establécela solo para un gateway que además vuelva a emitir el stream como eventos enviados por el servidor; Claude Code lee entonces el cuerpo sin encabezado como eventos enviados por el servidor. Requiere Claude Code v2.1.239 o posterior |253| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_DEFAULT` | Establécela en `1` para que Claude Code deje de tratar una respuesta en streaming de [Amazon Bedrock](/docs/es/amazon-bedrock) con un encabezado `Content-Type` ausente o vacío como el flujo de eventos binario de Amazon Bedrock. De forma predeterminada, Claude Code asume que un gateway eliminó el encabezado de una respuesta que, por lo demás, no se modificó, así que decodifica el cuerpo y el streaming sigue funcionando. Establécela solo para un gateway que también vuelve a emitir el stream como server-sent events; Claude Code entonces lee el cuerpo sin encabezado como server-sent events. Requiere Claude Code v2.1.239 o posterior |

252| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_GUARD` | Establécela en `1` para omitir la comprobación de que una respuesta en streaming de [Amazon Bedrock](/docs/es/amazon-bedrock) lleva el content-type `application/vnd.amazon.eventstream`. Sin esta variable, cuando una respuesta lleva un content-type diferente, Claude Code hace fallar la solicitud con un error que indica ese tipo, lo que significa que un [gateway o proxy está transformando la respuesta](/docs/es/amazon-bedrock#streaming-errors-behind-a-gateway-or-proxy). Configura el gateway para que reenvíe el encabezado `Content-Type` y el cuerpo sin modificar en lugar de establecer esta variable. Requiere Claude Code v2.1.208 o posterior |254| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_GUARD` | Establécela en `1` para omitir la comprobación de que una respuesta en streaming de [Amazon Bedrock](/docs/es/amazon-bedrock) lleva el content-type `application/vnd.amazon.eventstream`. Sin esta variable, cuando una respuesta lleva un content-type distinto, Claude Code hace fallar la solicitud con un error que nombra ese tipo, lo que significa que un [gateway o proxy está transformando la respuesta](/docs/es/amazon-bedrock#streaming-errors-behind-a-gateway-or-proxy). Configura el gateway para que reenvíe el encabezado `Content-Type` y el cuerpo sin modificar en lugar de establecer esta variable. Requiere Claude Code v2.1.208 o posterior |

253| `CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF` | Establécela en `1` para detener los comandos de shell en segundo plano en ejecución, los flujos de trabajo dinámicos y, a partir de v2.1.198, los subagentes en segundo plano de una [sesión en segundo plano](/docs/es/agent-view) cuando el [supervisor](/docs/es/agent-view#the-supervisor-process) detiene, reinicia o actualiza el proceso de esa sesión, en lugar de transferirlos al siguiente proceso de la sesión. Solo afecta a esa transferencia: enviar una sesión a segundo plano con `←` o [`/background`](/docs/es/agent-view#from-inside-a-session) sigue trasladando el trabajo en curso, y `CLAUDE_DISABLE_ADOPT` desactiva ambas cosas. Requiere Claude Code v2.1.196 o posterior |255| `CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF` | Establécela en `1` para detener los comandos de shell en segundo plano en ejecución, los flujos de trabajo dinámicos y, a partir de v2.1.198, los subagentes en segundo plano de una [sesión en segundo plano](/docs/es/agent-view) cuando el [supervisor](/docs/es/agent-view#the-supervisor-process) detiene, reinicia o actualiza el proceso de esa sesión, en lugar de transferirlos al siguiente proceso de la sesión. Solo afecta a esa transferencia: pasar una sesión a segundo plano con `←` o [`/background`](/docs/es/agent-view#from-inside-a-session) sigue trasladando el trabajo en curso, y `CLAUDE_DISABLE_ADOPT` desactiva ambas cosas. Requiere Claude Code v2.1.196 o posterior |

254| `CLAUDE_CODE_DISABLE_BG_SHELL_PRESSURE_REAP` | Establécela en `1` para evitar que Claude Code termine los [comandos de shell en segundo plano](/docs/es/interactive-mode#background-bash-commands) bajo presión de memoria. De forma predeterminada, en macOS y Linux, Claude Code termina los shells en segundo plano cuando el sistema operativo informa una presión de memoria crítica y la sesión ha estado inactiva durante 30 minutos sin ningún turno ni subagente en ejecución. Windows no tiene señal de presión de memoria, por lo que esta variable no tiene efecto allí. Requiere Claude Code v2.1.193 o posterior |256| `CLAUDE_CODE_DISABLE_BG_SHELL_PRESSURE_REAP` | Establécela en `1` para que Claude Code deje de terminar los [comandos de shell en segundo plano](/docs/es/interactive-mode#background-bash-commands) bajo presión de memoria. De forma predeterminada, en macOS y Linux, Claude Code termina los shells en segundo plano cuando el sistema operativo informa una presión de memoria crítica y la sesión ha estado inactiva durante 30 minutos sin ningún turno ni subagente en ejecución. Windows no tiene una señal de presión de memoria, por lo que esta variable no tiene efecto allí. Requiere Claude Code v2.1.193 o posterior |

255| `CLAUDE_CODE_DISABLE_BUNDLED_SKILLS` | Establécela en `1` para desactivar los [skills](/docs/es/skills) y flujos de trabajo incluidos con Claude Code: los skills y flujos de trabajo incluidos se eliminan por completo, mientras que los comandos integrados como `/init` se pueden seguir escribiendo pero se ocultan al modelo. `/doctor` se puede seguir escribiendo como los comandos integrados; para ocultarlo, usa `DISABLE_DOCTOR_COMMAND`. Los skills de plugins, `.claude/skills/` y `.claude/commands/` no se ven afectados. Equivale al ajuste [`disableBundledSkills`](/docs/es/settings-reference#disablebundledskills) |257| `CLAUDE_CODE_DISABLE_BUNDLED_SKILLS` | Establécela en `1` para desactivar los [skills](/docs/es/skills) y flujos de trabajo incluidos con Claude Code: los skills y flujos de trabajo incluidos se eliminan por completo, mientras que los comandos integrados como `/init` se pueden seguir escribiendo pero se ocultan al modelo. `/doctor` se puede seguir escribiendo como los comandos integrados; ocúltalo con `DISABLE_DOCTOR_COMMAND` en su lugar. Los skills de plugins, `.claude/skills/` y `.claude/commands/` no se ven afectados. Equivalente al ajuste [`disableBundledSkills`](/docs/es/settings-reference#disablebundledskills) |

256| `CLAUDE_CODE_DISABLE_CFC_PROMPT` | Establécela en `1` para mantener disponibles las herramientas de navegador de [Claude in Chrome](/docs/es/chrome) mientras se omite la sección de Chrome del prompt del sistema y el [skill incluido](/docs/es/skills#bundled-skills) `/claude-in-chrome`. Pensada para hosts que integran Claude Code y proporcionan sus propias indicaciones sobre el navegador. Requiere Claude Code v2.1.257 o posterior |258| `CLAUDE_CODE_DISABLE_CFC_PROMPT` | Establécela en `1` para mantener disponibles las herramientas de navegador de [Claude in Chrome](/docs/es/chrome) mientras se omiten la sección de Chrome del prompt del sistema y el [skill incluido](/docs/es/skills#bundled-skills) `/claude-in-chrome`. Para hosts que integran Claude Code y proporcionan su propia orientación sobre el navegador. Requiere Claude Code v2.1.257 o posterior |

257| `CLAUDE_CODE_DISABLE_CLAUDE_MDS` | Establécela en `1` para evitar que se cargue en el contexto cualquier archivo de memoria CLAUDE.md, incluidos los archivos de memoria de usuario, de proyecto y de memoria automática |259| `CLAUDE_CODE_DISABLE_CLAUDE_MDS` | Establécela en `1` para evitar que se cargue en el contexto cualquier archivo de memoria CLAUDE.md, incluidos los archivos de memoria de usuario, de proyecto y automática |

258| `CLAUDE_CODE_DISABLE_CRON` | Establécela en `1` para desactivar las [tareas programadas](/docs/es/scheduled-tasks). El skill `/loop` y las herramientas de cron dejan de estar disponibles, y las tareas ya programadas dejan de ejecutarse, incluidas las que ya están en ejecución a mitad de la sesión |260| `CLAUDE_CODE_DISABLE_CRON` | Establécela en `1` para desactivar las [tareas programadas](/docs/es/scheduled-tasks). El skill `/loop` y las herramientas cron dejan de estar disponibles y las tareas ya programadas dejan de ejecutarse, incluidas las tareas que ya se están ejecutando a mitad de la sesión |

259| `CLAUDE_CODE_DISABLE_DANGEROUS_RM_TIMEOUT` | Establécela en `1` para desactivar el límite de tiempo en las solicitudes de confirmación de [eliminación en rutas críticas](/docs/es/permission-modes#critical-paths). En el modo `auto`, Claude Code envía entonces estas eliminaciones al clasificador, y en el modo `bypassPermissions` la solicitud espera tu respuesta. Establécela en el entorno que inicia Claude Code, ya que Claude Code ignora una copia entregada a través de un bloque `env` de la configuración. Requiere Claude Code v2.1.281 o posterior |261| `CLAUDE_CODE_DISABLE_DANGEROUS_RM_TIMEOUT` | Establécela en `1` para desactivar el límite de tiempo en las solicitudes de confirmación de [eliminación de rutas críticas](/docs/es/permission-modes#critical-paths). En el modo `auto`, Claude Code envía entonces estas eliminaciones al clasificador, y en el modo `bypassPermissions` la solicitud espera tu respuesta. Establécela en el entorno que inicia Claude Code, ya que Claude Code ignora una copia entregada a través de un bloque `env` de la configuración. Requiere Claude Code v2.1.281 o posterior |

260| `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` | Establécela en `1` para eliminar de las solicitudes a la API los encabezados de solicitud `anthropic-beta` de versiones preliminares, los campos del cuerpo que los acompañan y los campos beta del esquema de herramientas, como `defer_loading` y `eager_input_streaming`. Úsala cuando un gateway proxy rechaza las solicitudes con un error `Unexpected value(s)` para el encabezado `anthropic-beta` o un error `Extra inputs are not permitted`. [Desactivar las capacidades de versiones preliminares](/docs/es/llm-gateway-protocol#disable-pre-release-capabilities) enumera lo que elimina la variable, incluido [MCP Tool Search](/docs/es/mcp#scale-with-mcp-tool-search), y lo que Claude Code sigue enviando |262| `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` | Establécela en `1` para eliminar de las solicitudes a la API los encabezados de solicitud `anthropic-beta` de versiones preliminares, los campos del cuerpo que los acompañan y los campos beta del esquema de herramientas, como `defer_loading` y `eager_input_streaming`. Úsala cuando un gateway proxy rechace las solicitudes con un error `Unexpected value(s)` para el encabezado `anthropic-beta` o con un error `Extra inputs are not permitted`. [Desactivar las capacidades de versiones preliminares](/docs/es/llm-gateway-protocol#disable-pre-release-capabilities) enumera lo que elimina la variable, incluido [MCP Tool Search](/docs/es/mcp#scale-with-mcp-tool-search), y lo que Claude Code sigue enviando |

261| `CLAUDE_CODE_DISABLE_EXPLORE_PLAN_AGENTS` | Establécela en `1` para desactivar los [subagentes Explore y Plan](/docs/es/sub-agents#built-in-subagents) integrados. Claude explora con sus herramientas de búsqueda o con el subagente de propósito general, y el [modo plan](/docs/es/permission-modes#analyze-before-you-edit-with-plan-mode) lee los archivos directamente en lugar de iniciar los agentes Explore y Plan. Los subagentes personalizados llamados `Explore` o `Plan` no se ven afectados. Para eliminar todos los tipos de subagentes integrados en el Agent SDK o en modo no interactivo, usa `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS` en su lugar. Requiere Claude Code v2.1.198 o posterior |263| `CLAUDE_CODE_DISABLE_EXPLORE_PLAN_AGENTS` | Establécela en `1` para desactivar los [subagentes Explore y Plan](/docs/es/sub-agents#built-in-subagents) integrados. En su lugar, Claude explora con sus herramientas de búsqueda o con el subagente de propósito general, y el [modo plan](/docs/es/permission-modes#analyze-before-you-edit-with-plan-mode) lee los archivos directamente en lugar de iniciar agentes Explore y Plan. Los subagentes personalizados llamados `Explore` o `Plan` no se ven afectados. Para eliminar todos los tipos de subagentes integrados en el Agent SDK o en modo no interactivo, usa `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS` en su lugar. Requiere Claude Code v2.1.198 o posterior |

262| `CLAUDE_CODE_DISABLE_FAST_MODE` | Establécela en `1` para desactivar el [modo rápido](/docs/es/fast-mode) |264| `CLAUDE_CODE_DISABLE_FAST_MODE` | Establécela en `1` para desactivar el [modo rápido](/docs/es/fast-mode) |

263| `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY` | Establécela en `1` para desactivar las encuestas de calidad de sesión "How is Claude doing?". Las encuestas también se desactivan cuando está establecida `DISABLE_TELEMETRY`, `DO_NOT_TRACK` o `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`, a menos que `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL` las vuelva a activar. Para establecer una tasa de muestreo en lugar de desactivarlas por completo, usa el ajuste [`feedbackSurveyRate`](/docs/es/settings-reference#feedbacksurveyrate). Consulta [Encuestas de calidad de sesión](/docs/es/data-usage#session-quality-surveys) |265| `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY` | Establécela en `1` para desactivar las encuestas de calidad de sesión "How is Claude doing?". Las encuestas también se desactivan cuando se establece `DISABLE_TELEMETRY`, `DO_NOT_TRACK` o `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`, a menos que `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL` vuelva a activarlas. Para establecer una tasa de muestreo en lugar de desactivarlas por completo, usa el ajuste [`feedbackSurveyRate`](/docs/es/settings-reference#feedbacksurveyrate). Consulta [Encuestas de calidad de sesión](/docs/es/data-usage#session-quality-surveys) |

264| `CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING` | Establécela en `1` para desactivar el [checkpointing](/docs/es/checkpointing) de archivos. El comando `/rewind` no podrá restaurar los cambios de código. Tiene prioridad sobre el ajuste [`fileCheckpointingEnabled`](/docs/es/settings-reference#filecheckpointingenabled) |266| `CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING` | Establécela en `1` para desactivar el [checkpointing](/docs/es/checkpointing) de archivos. El comando `/rewind` no podrá restaurar los cambios de código. Sobrescribe el ajuste [`fileCheckpointingEnabled`](/docs/es/settings-reference#filecheckpointingenabled) |

265| `CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS` | Establécela en `1` para eliminar del contexto de Claude las instrucciones integradas de flujo de trabajo de commits y PR, así como la instantánea del estado de git. Útil cuando usas tus propios skills de flujo de trabajo de git. Tiene precedencia sobre el ajuste [`includeGitInstructions`](/docs/es/settings-reference#includegitinstructions) cuando está establecida |267| `CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS` | Establécela en `1` para eliminar del contexto de Claude las instrucciones integradas del flujo de trabajo de commits y PR, y la instantánea del estado de git. Útil cuando usas tus propios skills de flujo de trabajo de git. Tiene precedencia sobre el ajuste [`includeGitInstructions`](/docs/es/settings-reference#includegitinstructions) cuando está establecida |

266| `CLAUDE_CODE_DISABLE_INLINE_SHELL_RM_PROMPT` | Establécela en `1` para evitar que Claude Code lea los scripts que se pasan a un shell con `-c`, como `bash -c 'rm -rf ~'`, en busca de eliminaciones en [rutas críticas](/docs/es/permission-modes#removals-inside-nested-commands-and-inline-scripts). Claude Code sigue comprobando los destinos que son variables del shell y parámetros posicionales en esos scripts, y las demás comprobaciones de rutas críticas siguen ejecutándose. Establécela en el entorno que inicia Claude Code, ya que Claude Code ignora una copia entregada a través de un bloque `env` de la configuración. Requiere Claude Code v2.1.288 o posterior |268| `CLAUDE_CODE_DISABLE_INLINE_SHELL_RM_PROMPT` | Establécela en `1` para que Claude Code deje de leer los scripts pasados a un shell con `-c`, como `bash -c 'rm -rf ~'`, en busca de eliminaciones de [rutas críticas](/docs/es/permission-modes#removals-inside-nested-commands-and-inline-scripts). Claude Code sigue comprobando los destinos de variables de shell y de parámetros posicionales en esos scripts, y las demás comprobaciones de rutas críticas siguen ejecutándose. Establécela en el entorno que inicia Claude Code, ya que Claude Code ignora una copia entregada a través de un bloque `env` de la configuración. Requiere Claude Code v2.1.288 o posterior |

267| `CLAUDE_CODE_DISABLE_LEGACY_MODEL_REMAP` | Establécela en `1` para evitar la reasignación automática de Opus 4.0 y 4.1 a la versión actual de Opus en la API de Anthropic. Úsala cuando quieras fijar intencionalmente un modelo anterior. La reasignación no se ejecuta en Amazon Bedrock, Google Cloud's Agent Platform ni Microsoft Foundry |269| `CLAUDE_CODE_DISABLE_LEGACY_MODEL_REMAP` | Establécela en `1` para evitar la reasignación automática de Opus 4.0 y 4.1 a la versión actual de Opus en la API de Anthropic. Úsala cuando quieras fijar intencionadamente un modelo anterior. La reasignación no se ejecuta en Amazon Bedrock, Google Cloud's Agent Platform ni Microsoft Foundry |

268| `CLAUDE_CODE_DISABLE_MODEL_ACCESS_FALLBACK` | Establécela en `1` para evitar que Claude Code en [Amazon Bedrock](/docs/es/amazon-bedrock#when-a-model-is-disabled-mid-session) y [Google Cloud's Agent Platform](/docs/es/google-vertex-ai#when-a-model-is-disabled-mid-session) cambie a un modelo anterior cuando tu cuenta pierde el acceso al modelo de una sesión a mitad de la sesión; en su lugar, la solicitud rechazada falla de inmediato. Una [cadena de modelos de respaldo](/docs/es/model-config#fallback-model-chains) que configures sigue cambiando ante ese rechazo, y las [comprobaciones de modelo al inicio](/docs/es/amazon-bedrock#startup-model-checks) siguen recurriendo a un respaldo al iniciar. Requiere Claude Code v2.1.285 o posterior |270| `CLAUDE_CODE_DISABLE_MODEL_ACCESS_FALLBACK` | Establécela en `1` para que Claude Code en [Amazon Bedrock](/docs/es/amazon-bedrock#when-a-model-is-disabled-mid-session) y [Google Cloud's Agent Platform](/docs/es/google-vertex-ai#when-a-model-is-disabled-mid-session) no cambie a un modelo anterior cuando tu cuenta pierde el acceso al modelo de una sesión a mitad de la sesión; en su lugar, la solicitud rechazada falla de inmediato. Una [cadena de modelos de respaldo](/docs/es/model-config#fallback-model-chains) que configures sigue cambiando ante ese rechazo, y las [comprobaciones de modelo al inicio](/docs/es/amazon-bedrock#startup-model-checks) siguen recurriendo a un respaldo al iniciar. Requiere Claude Code v2.1.285 o posterior |

269| `CLAUDE_CODE_DISABLE_MOUSE` | Establécela en `1` para desactivar el seguimiento del mouse en el [renderizado a pantalla completa](/docs/es/fullscreen). El desplazamiento con el teclado mediante `PgUp` y `PgDn` sigue funcionando. Úsala para conservar el comportamiento nativo de copiar al seleccionar de tu terminal |271| `CLAUDE_CODE_DISABLE_MOUSE` | Establécela en `1` para desactivar el seguimiento del mouse en la [representación a pantalla completa](/docs/es/fullscreen). El desplazamiento con el teclado mediante `PgUp` y `PgDn` sigue funcionando. Úsala para conservar el comportamiento nativo de copiar al seleccionar de tu terminal |

270| `CLAUDE_CODE_DISABLE_MOUSE_CLICKS` | Establécela en `1` para desactivar la gestión de clics, arrastres y desplazamiento del puntero en el [renderizado a pantalla completa](/docs/es/fullscreen) manteniendo el desplazamiento con la rueda del mouse. Úsala cuando quieras que el desplazamiento con la rueda funcione dentro de Claude Code, pero no quieras que los clics posicionen el cursor, expandan la salida de las herramientas o abran enlaces. `CLAUDE_CODE_DISABLE_MOUSE` tiene precedencia cuando ambas están establecidas. Requiere Claude Code v2.1.195 o posterior |272| `CLAUDE_CODE_DISABLE_MOUSE_CLICKS` | Establécela en `1` para desactivar el manejo de clics, arrastres y hover en la [representación a pantalla completa](/docs/es/fullscreen) y mantener el desplazamiento con la rueda del mouse. Úsala cuando quieras que el desplazamiento con la rueda funcione dentro de Claude Code pero no quieras que los clics posicionen el cursor, expandan la salida de las herramientas o abran enlaces. `CLAUDE_CODE_DISABLE_MOUSE` tiene precedencia cuando ambas están establecidas. Requiere Claude Code v2.1.195 o posterior |

271| `CLAUDE_CODE_DISABLE_MTLS_RELOAD_ON_STALE_CONNECTION` | Establécela en `1` para evitar que Claude Code vuelva a leer el [certificado y la clave de cliente mTLS](/docs/es/network-config#mtls-authentication) cuando una solicitud a la API falla con un error a nivel de conexión, como un restablecimiento de la conexión o un error en el protocolo de enlace TLS. Con la recarga desactivada, Claude Code carga los archivos rotados solo la próxima vez que aplica la configuración o en el siguiente inicio. Requiere Claude Code v2.1.232 o posterior |273| `CLAUDE_CODE_DISABLE_MTLS_RELOAD_ON_STALE_CONNECTION` | Establécela en `1` para que Claude Code deje de volver a leer el [certificado y la clave de cliente mTLS](/docs/es/network-config#mtls-authentication) cuando una solicitud a la API falla con un error a nivel de conexión, como un restablecimiento de la conexión o un error del handshake TLS. Con la recarga desactivada, Claude Code carga los archivos rotados solo cuando vuelve a aplicar la configuración o en el siguiente inicio. Requiere Claude Code v2.1.232 o posterior |

272| `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` | Establécela en cualquier valor no vacío, como `1`, para desactivar el tráfico de red no esencial: actualizaciones automáticas, telemetría, informes de errores, el comando `/feedback`, los [comentarios redactados por Claude](/docs/es/tools-reference#sendfeedback-tool-behavior), las notas de la versión, las comprobaciones de la [insignia de estado de PR y MR](/docs/es/interactive-mode#pr-review-status) y las comprobaciones de disponibilidad, como la comprobación del [modo rápido](/docs/es/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways). También detiene las [ejecuciones en segundo plano de los orígenes `command` de plugins](/docs/es/plugins/loading#when-a-command-source-re-runs), que son comandos locales y no tráfico de red, porque pueden desencadenar instalaciones de dependencias. **Establecerla en `0` o `false` sigue desactivando este tráfico**, a diferencia de la mayoría de las variables de activación y desactivación; elimina la variable para volver a permitirlo. También desactiva la obtención de feature flags, lo que hace que [Remote Control](/docs/es/remote-control#requirements) y las demás [funciones que necesitan la obtención de feature flags](#features-that-need-feature-flag-fetching) no estén disponibles. La instalación automática del marketplace oficial de plugins no está incluida; desactívala con `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL`. No afecta al [descubrimiento de modelos del gateway](/docs/es/llm-gateway-connect#add-gateway-models-to-the-model-picker), que tiene su propia activación opcional |274| `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` | Establécela en cualquier valor no vacío, como `1`, para desactivar el tráfico de red no esencial: actualizaciones automáticas, telemetría, informes de errores, el comando `/feedback`, los [comentarios redactados por Claude](/docs/es/tools-reference#sendfeedback-tool-behavior), las notas de la versión, las comprobaciones del [indicador de estado de PR y MR](/docs/es/interactive-mode#pr-review-status) y las comprobaciones de disponibilidad, como la comprobación del [modo rápido](/docs/es/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways). También detiene las [ejecuciones en segundo plano de las fuentes `command` de los plugins](/docs/es/plugins/loading#when-a-command-source-re-runs), que son comandos locales y no tráfico de red, porque pueden desencadenar instalaciones de dependencias. **Establecerla en `0` o `false` sigue desactivando este tráfico**, a diferencia de la mayoría de las variables de activación y desactivación; quita la variable para volver a permitirlo. También desactiva la obtención de feature flags, lo que hace que [Remote Control](/docs/es/remote-control#requirements) y las demás [funciones que necesitan la obtención de feature flags](#features-that-need-feature-flag-fetching) no estén disponibles. La instalación automática del marketplace oficial de plugins no está incluida; desactívala con `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL`. No afecta al [descubrimiento de modelos del gateway](/docs/es/llm-gateway-connect#add-gateway-models-to-the-model-picker), que tiene su propia activación opcional |

273| `CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK` | Establécela en `1` para desactivar el respaldo sin streaming cuando una solicitud en streaming falla a mitad del stream. En su lugar, los errores de streaming se propagan a la capa de reintentos. Útil cuando un proxy o gateway hace que el respaldo produzca ejecuciones duplicadas de herramientas |275| `CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK` | Establécela en `1` para desactivar el respaldo sin streaming cuando una solicitud en streaming falla a mitad del stream. En su lugar, los errores de streaming se propagan a la capa de reintentos. Útil cuando un proxy o gateway hace que el respaldo produzca una ejecución duplicada de herramientas |

274| `CLAUDE_CODE_DISABLE_NOTIFICATION_PRESENCE_CHECK` | Establécela en `1` para enviar la notificación de escritorio de la herramienta `PushNotification` incluso mientras escribes en la terminal o esta tiene el foco. De forma predeterminada, la herramienta omite tanto la notificación de escritorio como la [notificación push móvil](/docs/es/remote-control#mobile-push-notifications) cuando detecta actividad reciente del teclado o que la terminal tiene el foco. Esta variable solo desactiva esa comprobación local, por lo que el servidor aún puede suprimir la notificación push móvil cuando detecta que estás activo. Requiere Claude Code v2.1.193 o posterior |276| `CLAUDE_CODE_DISABLE_NOTIFICATION_PRESENCE_CHECK` | Establécela en `1` para enviar la notificación de escritorio de la herramienta `PushNotification` incluso mientras escribes en la terminal o esta tiene el foco. De forma predeterminada, la herramienta omite tanto la notificación de escritorio como la [notificación push móvil](/docs/es/remote-control#mobile-push-notifications) cuando detecta actividad reciente del teclado o foco en la terminal. Esta variable desactiva solo esa comprobación local, por lo que el servidor aún puede suprimir la notificación push móvil cuando detecta que estás activo. Requiere Claude Code v2.1.193 o posterior |

275| `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL` | Establécela en `1` para desactivar el registro automático del marketplace oficial de plugins. Claude Code lee la variable cuando está a punto de registrar el marketplace, normalmente durante el primer inicio interactivo en una máquina. Si la variable está establecida en ese momento, Claude Code omite el registro de forma permanente. Eliminar la variable más tarde no deshace la omisión. Ejecuta `claude plugin marketplace add anthropics/claude-plugins-official` para registrar el marketplace en cualquier momento |277| `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL` | Establécela en `1` para desactivar el registro automático del marketplace oficial de plugins. Claude Code lee la variable cuando está a punto de registrar el marketplace, normalmente durante el primer inicio interactivo en una máquina. Si la variable está establecida en ese momento, Claude Code omite el registro de forma permanente. Quitar la variable más tarde no deshace la omisión. Ejecuta `claude plugin marketplace add anthropics/claude-plugins-official` para registrar el marketplace en cualquier momento |

276| `CLAUDE_CODE_DISABLE_PERMISSION_PROMPT_NOTIFY_HOOKS` | Establécela en `1` para evitar que Claude Code ejecute tus [hooks `Notification` para solicitudes de permiso sin responder](/docs/es/hooks#notification) en las sesiones en las que Claude Code las envía al callback `canUseTool` del Agent SDK, que es como Claude Desktop y la extensión de VS Code alojan Claude Code. No tiene efecto en las sesiones de terminal. Requiere Claude Code v2.1.233 o posterior |278| `CLAUDE_CODE_DISABLE_PERMISSION_PROMPT_NOTIFY_HOOKS` | Establécela en `1` para que Claude Code deje de ejecutar tus [hooks `Notification` para solicitudes de permiso sin responder](/docs/es/hooks#notification) en las sesiones en las que Claude Code las envía al callback `canUseTool` del Agent SDK, que es la forma en que Claude Desktop y la extensión de VS Code alojan Claude Code. No tiene efecto en las sesiones de terminal. Requiere Claude Code v2.1.233 o posterior |

277| `CLAUDE_CODE_DISABLE_POLICY_SKILLS` | Establécela en `1` para omitir la carga de skills desde el directorio de skills administrados de todo el sistema. Útil para sesiones en contenedores o de CI que no deben cargar skills aprovisionados por el operador |279| `CLAUDE_CODE_DISABLE_POLICY_SKILLS` | Establécela en `1` para omitir la carga de skills desde el directorio de skills administrados de todo el sistema. Útil para sesiones de contenedor o de CI que no deben cargar skills aprovisionados por el operador |

278| `CLAUDE_CODE_DISABLE_POWERSHELL_CMD_RM_DENY` | Establécela en `1` para desactivar la comprobación de la [herramienta PowerShell](/docs/es/tools-reference#powershell-tool) que deniega los comandos integrados de `cmd` `rd`, `rmdir`, `del` y `erase` en una [ruta del sistema](/docs/es/permission-modes#remove-item-in-powershell), como la raíz de una unidad o tu directorio home. Claude Code ignora esta variable en el bloque `env` de un archivo de configuración. Requiere Claude Code v2.1.283 o posterior |280| `CLAUDE_CODE_DISABLE_POWERSHELL_CMD_RM_DENY` | Establécela en `1` para desactivar la comprobación de la [herramienta PowerShell](/docs/es/tools-reference#powershell-tool) que deniega los comandos integrados de `cmd` `rd`, `rmdir`, `del` y `erase` en una [ruta del sistema](/docs/es/permission-modes#remove-item-in-powershell), como la raíz de una unidad o tu directorio home. Claude Code ignora esta variable en el bloque `env` de un archivo de configuración. Requiere Claude Code v2.1.283 o posterior |

279| `CLAUDE_CODE_DISABLE_REFUSAL_FALLBACK` | Establécela en `1` para desactivar el [cambio automático de modelo cuando un clasificador de seguridad marca una solicitud](/docs/es/model-config#automatic-model-fallback), el comportamiento que controla el ajuste [`switchModelsOnFlag`](/docs/es/settings-reference#switchmodelsonflag) |281| `CLAUDE_CODE_DISABLE_REFUSAL_FALLBACK` | Establécela en `1` para desactivar el [cambio automático de modelo cuando un clasificador de seguridad marca una solicitud](/docs/es/model-config#automatic-model-fallback), el comportamiento que controla el ajuste [`switchModelsOnFlag`](/docs/es/settings-reference#switchmodelsonflag) |

280| `CLAUDE_CODE_DISABLE_STRUCTURED_OUTPUTS` | Establécela en `1` para evitar que Claude Code envíe el campo de salida estructurada `output_config.format` y el valor de `anthropic-beta` que lo acompaña, para un [gateway de LLM](/docs/es/llm-gateway-protocol#feature-pass-through) cuyo servicio de origen los rechaza. Esto deja activadas las demás capacidades de versiones preliminares que [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`](/docs/es/llm-gateway-protocol#disable-pre-release-capabilities) desactiva. Requiere Claude Code v2.1.288 o posterior |282| `CLAUDE_CODE_DISABLE_STRUCTURED_OUTPUTS` | Establécela en `1` para que Claude Code deje de enviar el campo de salida estructurada `output_config.format` y el valor de `anthropic-beta` que lo acompaña, para un [LLM gateway](/docs/es/llm-gateway-protocol#feature-pass-through) cuyo upstream los rechaza. Esto deja activadas las demás capacidades de versiones preliminares que [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`](/docs/es/llm-gateway-protocol#disable-pre-release-capabilities) desactiva. Requiere Claude Code v2.1.288 o posterior |

281| `CLAUDE_CODE_DISABLE_SUBSTITUTION_RM_PROMPT` | Establécela en `1` para desactivar la comprobación de [rutas críticas](/docs/es/permission-modes#critical-paths) para un `rm` recursivo cuyo destino es íntegramente la salida de una sustitución de comandos, como `rm -rf "$(pwd)"`. Las demás comprobaciones de rutas críticas siguen ejecutándose. Establécela en el entorno que inicia Claude Code, ya que Claude Code ignora una copia entregada a través de un bloque `env` de la configuración. Requiere Claude Code v2.1.281 o posterior |283| `CLAUDE_CODE_DISABLE_SUBSTITUTION_RM_PROMPT` | Establécela en `1` para desactivar la comprobación de [rutas críticas](/docs/es/permission-modes#critical-paths) para un `rm` recursivo cuyo destino es por completo la salida de una sustitución de comandos, como `rm -rf "$(pwd)"`. Las demás comprobaciones de rutas críticas siguen ejecutándose. Establécela en el entorno que inicia Claude Code, ya que Claude Code ignora una copia entregada a través de un bloque `env` de la configuración. Requiere Claude Code v2.1.281 o posterior |

282| `CLAUDE_CODE_DISABLE_TERMINAL_TITLE` | Establécela en `1` para desactivar las actualizaciones automáticas del título de la terminal basadas en el contexto de la conversación. Esto también omite la solicitud en segundo plano al modelo pequeño y rápido que [genera un título de sesión](/docs/es/sessions#name-your-sessions) |284| `CLAUDE_CODE_DISABLE_TERMINAL_TITLE` | Establécela en `1` para desactivar las actualizaciones automáticas del título de la terminal basadas en el contexto de la conversación. Esto también omite la solicitud en segundo plano al modelo pequeño y rápido que [genera un título de sesión](/docs/es/sessions#name-your-sessions) |

283| `CLAUDE_CODE_DISABLE_THINKING` | Establécela en `1` para omitir por completo el parámetro `thinking` de las solicitudes a la API. Es una opción de compatibilidad para proxies y gateways que rechazan el parámetro. En los modelos que piensan de forma predeterminada, omitir el parámetro significa que el modelo aún puede pensar. Para desactivar explícitamente el [pensamiento extendido](https://platform.claude.com/docs/en/build-with-claude/extended-thinking) en la API de Anthropic, usa `MAX_THINKING_TOKENS=0` en su lugar. Ninguna de las dos variables desactiva el pensamiento en Opus 5.5, Sonnet 5.5 ni los modelos Fable, en los que el pensamiento no se puede desactivar. En [proveedores externos](/docs/es/third-party-integrations), `MAX_THINKING_TOKENS=0` también omite el parámetro, por lo que ambas variables se comportan igual allí |285| `CLAUDE_CODE_DISABLE_THINKING` | Establécela en `1` para omitir por completo el parámetro `thinking` de las solicitudes a la API. Es una opción de compatibilidad para proxies y gateways que rechazan el parámetro. En los modelos que piensan de forma predeterminada, omitir el parámetro significa que el modelo aún puede pensar. Para desactivar explícitamente el [pensamiento extendido](https://platform.claude.com/docs/en/build-with-claude/extended-thinking) en la API de Anthropic, usa `MAX_THINKING_TOKENS=0` en su lugar. Ninguna de las dos variables desactiva el pensamiento en Opus 5.5, Sonnet 5.5, Haiku 5.5 ni en los modelos Fable, en los que no se puede desactivar el pensamiento. En [proveedores de terceros](/docs/es/third-party-integrations), `MAX_THINKING_TOKENS=0` también omite el parámetro, por lo que ambas variables se comportan igual allí |

284| `CLAUDE_CODE_DISABLE_UNKNOWN_MODEL_WINDOW_ENFORCEMENT` | Establécela en `1` para omitir la [compactación automática](/docs/es/costs#reduce-token-usage) proactiva cuando Claude Code no reconoce el ID del modelo, como un alias de un [gateway de LLM](/docs/es/llm-gateway). Sin esta variable, Claude Code compacta según la ventana de contexto que asume para el ID. `CLAUDE_CODE_MAX_CONTEXT_TOKENS` puede corregir en su lugar la ventana asumida; consulta [Corregir la ventana para un ID de modelo de gateway o personalizado](/docs/es/model-config#correct-the-window-for-a-gateway-or-custom-model-id) para saber cuándo se aplica cada variable. Requiere Claude Code v2.1.223 o posterior |286| `CLAUDE_CODE_DISABLE_UNKNOWN_MODEL_WINDOW_ENFORCEMENT` | Establécela en `1` para omitir la [compactación automática](/docs/es/costs#reduce-token-usage) proactiva cuando Claude Code no reconoce el ID del modelo, como un alias de un [LLM gateway](/docs/es/llm-gateway). Sin esta variable, Claude Code compacta en la ventana de contexto que asume para el ID. `CLAUDE_CODE_MAX_CONTEXT_TOKENS` puede corregir la ventana asumida en su lugar; consulta [Corregir la ventana para un gateway o ID de modelo personalizado](/docs/es/model-config#correct-the-window-for-a-gateway-or-custom-model-id) para saber cuándo se aplica cada variable. Requiere Claude Code v2.1.223 o posterior |

285| `CLAUDE_CODE_DISABLE_VIRTUAL_SCROLL` | Establécela en `1` para desactivar el desplazamiento virtual en el [renderizado a pantalla completa](/docs/es/fullscreen) y renderizar todos los mensajes de la transcripción. Úsala si al desplazarte en el modo de pantalla completa aparecen regiones en blanco donde deberían aparecer mensajes |287| `CLAUDE_CODE_DISABLE_VIRTUAL_SCROLL` | Establécela en `1` para desactivar el desplazamiento virtual en la [representación a pantalla completa](/docs/es/fullscreen) y mostrar todos los mensajes de la transcripción. Úsala si al desplazarte en el modo de pantalla completa aparecen regiones en blanco donde deberían aparecer mensajes |

286| `CLAUDE_CODE_DISABLE_WEB_FETCH` | Establécela en `1` para desactivar la herramienta [WebFetch](/docs/es/tools-reference#webfetch-tool-behavior). La herramienta [WebSearch](/docs/es/tools-reference#websearch-tool-behavior) sigue disponible. Requiere Claude Code v2.1.285 o posterior |288| `CLAUDE_CODE_DISABLE_WEB_FETCH` | Establécela en `1` para desactivar la herramienta [WebFetch](/docs/es/tools-reference#webfetch-tool-behavior). La herramienta [WebSearch](/docs/es/tools-reference#websearch-tool-behavior) sigue disponible. Requiere Claude Code v2.1.285 o posterior |

287| `CLAUDE_CODE_DISABLE_WINDOWS_SHELL_LAUNCHER` | Establécela en `1` para iniciar los comandos de la [herramienta PowerShell](/docs/es/tools-reference#powershell-tool) en Windows directamente en lugar de a través del lanzador `cmd.exe`. De forma predeterminada, el lanzador permite que un comando de PowerShell [que se ejecuta en segundo plano](/docs/es/tools-reference#background-commands) [se traslade al siguiente proceso de la sesión](/docs/es/agent-view#the-supervisor-process), como cuando [envías la sesión a segundo plano](/docs/es/agent-view#from-inside-a-session). Si estableces la variable, un comando de PowerShell en segundo plano se detiene cuando el proceso de la sesión termina. Los comandos de Bash no se ven afectados. Requiere Claude Code v2.1.269 o posterior |289| `CLAUDE_CODE_DISABLE_WINDOWS_SHELL_LAUNCHER` | Establécela en `1` para iniciar los comandos de la [herramienta PowerShell](/docs/es/tools-reference#powershell-tool) en Windows directamente en lugar de a través del lanzador `cmd.exe`. De forma predeterminada, el lanzador permite que un comando de PowerShell [que se ejecuta en segundo plano](/docs/es/tools-reference#background-commands) [se traslade al siguiente proceso de la sesión](/docs/es/agent-view#the-supervisor-process), como cuando [pasas la sesión a segundo plano](/docs/es/agent-view#from-inside-a-session). Si estableces la variable, un comando de PowerShell en segundo plano se detiene cuando termina el proceso de la sesión. Los comandos de Bash no se ven afectados. Requiere Claude Code v2.1.269 o posterior |

288| `CLAUDE_CODE_DISABLE_WORKFLOWS` | Establécela en `1` para desactivar los [flujos de trabajo](/docs/es/workflows#turn-workflows-off). Equivale al ajuste [`disableWorkflows`](/docs/es/settings-reference#disableworkflows) |290| `CLAUDE_CODE_DISABLE_WORKFLOWS` | Establécela en `1` para desactivar los [flujos de trabajo](/docs/es/workflows#turn-workflows-off). Equivalente al ajuste [`disableWorkflows`](/docs/es/settings-reference#disableworkflows) |

289| `CLAUDE_CODE_EFFORT_LEVEL` | Establece el nivel de esfuerzo para los 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`, `/effort` y los ajustes `modelSettings` y `effortLevel`. Un límite de [`maxEffortLevel`](/docs/es/settings-reference#maxeffortlevel) sigue aplicándose. Consulta [Ajustar el nivel de esfuerzo](/docs/es/model-config#adjust-effort-level) |291| `CLAUDE_CODE_EFFORT_LEVEL` | Establece el nivel de esfuerzo para los 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`, `/effort` y los ajustes `modelSettings` y `effortLevel`. Un límite de [`maxEffortLevel`](/docs/es/settings-reference#maxeffortlevel) sigue aplicándose. Consulta [Ajustar el nivel de esfuerzo](/docs/es/model-config#adjust-effort-level) |

290| `CLAUDE_CODE_EMIT_SESSION_STATE_EVENTS` | Establécela en `1` para agregar al stream de mensajes los mensajes [`session_state_changed`](/docs/es/agent-sdk/typescript#sdksessionstatechangedmessage), que contienen el estado de la sesión. Requiere el [Agent SDK](/docs/es/agent-sdk/overview) o bien `--print`, `--output-format stream-json` y `--verbose` |292| `CLAUDE_CODE_EMIT_SESSION_STATE_EVENTS` | Establécela en `1` para agregar al flujo de mensajes los mensajes [`session_state_changed`](/docs/es/agent-sdk/typescript#sdksessionstatechangedmessage), que contienen el estado de la sesión. Requiere el [Agent SDK](/docs/es/agent-sdk/overview) o bien `--print`, `--output-format stream-json` y `--verbose` |

291| `CLAUDE_CODE_ENABLE_AUTO_MODE` | Se acepta por compatibilidad con versiones anteriores y no tiene ningún efecto. El modo automático está disponible de forma predeterminada en todos los proveedores, incluidos Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry y las sesiones con sesión iniciada del [Claude apps gateway](/docs/es/claude-apps-gateway). De la v2.1.158 a la v2.1.206, era necesario establecer esta variable en `1` para que el [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode) estuviera disponible en esos proveedores |293| `CLAUDE_CODE_ENABLE_AUTO_MODE` | Se acepta por compatibilidad con versiones anteriores y no tiene efecto. El modo automático está disponible de forma predeterminada en todos los proveedores, incluidos Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry y las sesiones de [Claude apps gateway](/docs/es/claude-apps-gateway) con sesión iniciada. Desde v2.1.158 hasta v2.1.206, era necesario establecerla en `1` para que el [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode) estuviera disponible en esos proveedores |

292| `CLAUDE_CODE_ENABLE_AWAY_SUMMARY` | Sobrescribe la disponibilidad del [resumen de sesión](/docs/es/interactive-mode#session-recap). Establécela en `0` para forzar la desactivación de los resúmenes independientemente del interruptor de `/config`. Establécela en `1` para forzar su activación cuando [`awaySummaryEnabled`](/docs/es/settings-reference#awaysummaryenabled) es `false`. Tiene precedencia sobre el ajuste y el interruptor de `/config` |294| `CLAUDE_CODE_ENABLE_AWAY_SUMMARY` | Sobrescribe la disponibilidad del [resumen de sesión](/docs/es/interactive-mode#session-recap). Establécela en `0` para forzar la desactivación de los resúmenes independientemente del interruptor de `/config`. Establécela en `1` para forzar su activación cuando [`awaySummaryEnabled`](/docs/es/settings-reference#awaysummaryenabled) es `false`. Tiene precedencia sobre el ajuste y el interruptor de `/config` |

293| `CLAUDE_CODE_ENABLE_BACKGROUND_PLUGIN_REFRESH` | Establécela en `1` para actualizar el estado de los plugins entre turnos en el [modo no interactivo](/docs/es/headless) después de que finalice una instalación en segundo plano. Está desactivada de forma predeterminada porque la actualización cambia el prompt del sistema a mitad de la sesión, lo que invalida la [caché de prompts](/docs/es/prompt-caching) para ese turno |295| `CLAUDE_CODE_ENABLE_BACKGROUND_PLUGIN_REFRESH` | Establécela en `1` para actualizar el estado de los plugins en los límites de turno en [modo no interactivo](/docs/es/headless) después de que se complete una instalación en segundo plano. Desactivada de forma predeterminada porque la actualización cambia el prompt del sistema a mitad de la sesión, lo que invalida la [caché de prompts](/docs/es/prompt-caching) para ese turno |

294| `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL` | Establécela en `1` para enviar la encuesta de calidad de sesión "How is Claude doing?" a tu propio [recopilador de OpenTelemetry](/docs/es/monitoring-usage) cuando el tráfico no esencial dirigido a Anthropic está bloqueado. Las calificaciones de la encuesta se emiten solo como eventos OTEL a tu recopilador configurado. En este modo no se envía ningún dato de la encuesta a Anthropic. Se aplica cuando `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`, `DISABLE_TELEMETRY` o `DO_NOT_TRACK` está establecida, y no tiene efecto en caso contrario. `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY` y la política de comentarios sobre el producto de la organización tienen precedencia |296| `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL` | Establécela en `1` para enviar la encuesta de calidad de sesión "How is Claude doing?" a tu propio [recopilador de OpenTelemetry](/docs/es/monitoring-usage) cuando el tráfico no esencial destinado a Anthropic está bloqueado. Las calificaciones de la encuesta se emiten solo como eventos OTEL a tu recopilador configurado. En este modo no se envían datos de la encuesta a Anthropic. Se aplica cuando se establece `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`, `DISABLE_TELEMETRY` o `DO_NOT_TRACK`, y no tiene efecto en caso contrario. `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY` y la política de comentarios sobre el producto de la organización tienen precedencia |

295| `CLAUDE_CODE_ENABLE_FINE_GRAINED_TOOL_STREAMING` | Controla si las entradas de las llamadas a herramientas se transmiten desde la API a medida que Claude las genera. Si está desactivada, una entrada de herramienta grande, como la escritura de un archivo largo, llega solo después de que Claude termina de generarla, lo que puede parecer que se quedó colgado. Está activada de forma predeterminada en la API de Anthropic. En Amazon Bedrock y Google Cloud's Agent Platform, se activa por modelo cuando el contenedor desplegado lo admite. Establécela en `0` para desactivarla. Establécela en `1` para forzar su activación al enrutar a través de un proxy mediante `ANTHROPIC_BASE_URL`, `ANTHROPIC_VERTEX_BASE_URL` o `ANTHROPIC_BEDROCK_BASE_URL`. Está desactivada de forma predeterminada en Microsoft Foundry y en las conexiones a través de un [gateway](/docs/es/llm-gateway) |297| `CLAUDE_CODE_ENABLE_FINE_GRAINED_TOOL_STREAMING` | Controla si las entradas de las llamadas a herramientas se transmiten desde la API a medida que Claude las genera. Con esto desactivado, una entrada de herramienta grande, como la escritura de un archivo largo, llega solo después de que Claude termina de generarla, lo que puede dar la impresión de que se ha colgado. Activada de forma predeterminada en la API de Anthropic. En Amazon Bedrock y Google Cloud's Agent Platform, se activa por modelo donde el contenedor desplegado lo admite. Establécela en `0` para desactivarla. Establécela en `1` para forzar su activación al enrutar a través de un proxy mediante `ANTHROPIC_BASE_URL`, `ANTHROPIC_VERTEX_BASE_URL` o `ANTHROPIC_BEDROCK_BASE_URL`. Desactivada de forma predeterminada en Microsoft Foundry y en las conexiones de [gateway](/docs/es/llm-gateway) |

296| `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY` | Establécela en `1` para llenar el selector de `/model` con el endpoint `/v1/models` de tu gateway cuando `ANTHROPIC_BASE_URL` apunta a un gateway compatible con Anthropic, como LiteLLM, Kong o un proxy interno. Está desactivada de forma predeterminada porque, de lo contrario, los gateways respaldados por una clave de API compartida mostrarían a cada usuario todos los modelos a los que puede acceder la clave. Los modelos descubiertos se siguen filtrando mediante una lista de modelos permitidos [`availableModels`](/docs/es/settings-reference#availablemodels) que recibe la sesión; entrega la lista mediante [MDM o un archivo de configuración administrada](/docs/es/managed-settings#delivery-mechanisms), ya que [la entrega administrada por el servidor no está disponible en configuraciones con gateway](/docs/es/server-managed-settings#platform-availability) |298| `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY` | Establécela en `1` para completar el selector de `/model` a partir del endpoint `/v1/models` de tu gateway cuando `ANTHROPIC_BASE_URL` apunta a un gateway compatible con Anthropic, como LiteLLM, Kong o un proxy interno. Desactivada de forma predeterminada porque, de lo contrario, los gateways respaldados por una clave de API compartida mostrarían a cada usuario todos los modelos a los que la clave puede acceder. Los modelos descubiertos se siguen filtrando mediante una lista de permitidos [`availableModels`](/docs/es/settings-reference#availablemodels) que recibe la sesión; entrega la lista mediante [MDM o un archivo de configuración administrada](/docs/es/managed-settings#delivery-mechanisms), ya que [la entrega administrada por el servidor no está disponible en configuraciones de gateway](/docs/es/server-managed-settings#platform-availability) |

297| `CLAUDE_CODE_ENABLE_OPUS_4_7_FAST_MODE` | Se eliminó en la v2.1.142, cuando el valor predeterminado del [modo rápido](/docs/es/fast-mode) pasó de Opus 4.6 a Opus 4.7 |299| `CLAUDE_CODE_ENABLE_OPUS_4_7_FAST_MODE` | Se eliminó en v2.1.142, cuando el valor predeterminado del [modo rápido](/docs/es/fast-mode) pasó de Opus 4.6 a Opus 4.7 |

298| `CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION` | Establécela en `false` para desactivar las sugerencias de prompts, las predicciones en gris que aparecen en la entrada del prompt. Tiene precedencia sobre el ajuste [`promptSuggestionEnabled`](/docs/es/settings-reference#promptsuggestionenabled), que es el que escribe el interruptor **Prompt suggestions** de `/config`. Claude Code también [pausa las sugerencias cuando tu cuenta está cerca de su límite de uso o lo alcanzó](/docs/es/interactive-mode#when-claude-code-skips-suggestions). Establécela en `true` para mantenerlas activas hasta que alcances el límite. Requiere Claude Code v2.1.238 o posterior. Consulta [Sugerencias de prompts](/docs/es/interactive-mode#prompt-suggestions) |300| `CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION` | Establécela en `false` para desactivar las sugerencias de prompts, las predicciones en gris que aparecen en tu entrada de prompt. Tiene precedencia sobre el ajuste [`promptSuggestionEnabled`](/docs/es/settings-reference#promptsuggestionenabled), que es lo que escribe el interruptor **Prompt suggestions** en `/config`. Claude Code también [pausa las sugerencias mientras tu cuenta está cerca de su límite de uso o lo ha alcanzado](/docs/es/interactive-mode#when-claude-code-skips-suggestions). Establécela en `true` para mantenerlas activadas hasta que alcances el límite. Requiere Claude Code v2.1.238 o posterior. Consulta [Sugerencias de prompts](/docs/es/interactive-mode#prompt-suggestions) |

299| `CLAUDE_CODE_ENABLE_TASKS` | Selecciona qué herramientas de seguimiento de tareas proporciona Claude Code en las [sesiones que las tienen](/docs/es/tools-reference#task-tool-availability). De forma predeterminada, Claude Code proporciona las herramientas Task `TaskCreate`, `TaskUpdate`, `TaskGet` y `TaskList`. Establécela en `0` para obtener en su lugar la herramienta heredada `TodoWrite`. Consulta [Lista de tareas](/docs/es/interactive-mode#task-list) |301| `CLAUDE_CODE_ENABLE_TASKS` | Selecciona qué herramientas de seguimiento de tareas proporciona Claude Code en [las sesiones que las tienen](/docs/es/tools-reference#task-tool-availability). De forma predeterminada, Claude Code proporciona las herramientas Task `TaskCreate`, `TaskUpdate`, `TaskGet` y `TaskList`. Establécela en `0` para obtener en su lugar la herramienta heredada `TodoWrite`. Consulta [Lista de tareas](/docs/es/interactive-mode#task-list) |

300| `CLAUDE_CODE_ENABLE_TELEMETRY` | Establécela en `1` para activar la recopilación de datos de OpenTelemetry para métricas y registros. Es obligatoria antes de configurar los exportadores de OTel. Establécela en tu shell, en la configuración de usuario o en la configuración administrada. Se ignora en la [configuración de proyecto y local](/docs/es/settings-reference#variables-claude-code-ignores-in-env). Consulta [Monitoreo](/docs/es/monitoring-usage) |302| `CLAUDE_CODE_ENABLE_TELEMETRY` | Establécela en `1` para habilitar la recopilación de datos de OpenTelemetry para métricas y registros. Es necesaria antes de configurar los exportadores de OTel. Establécela en tu shell, en la configuración de usuario o en la configuración administrada. Se ignora en la [configuración de proyecto y local](/docs/es/settings-reference#variables-claude-code-ignores-in-env). Consulta [Monitoreo](/docs/es/monitoring-usage) |

301| `CLAUDE_CODE_ENABLE_TODO_TOOLS` | Establécela en `1` para obtener las herramientas de seguimiento de tareas en todos los modelos. Sin ella, Claude Code las proporciona de forma predeterminada solo en los modelos indicados en [Disponibilidad de la herramienta Task](/docs/es/tools-reference#task-tool-availability). `CLAUDE_CODE_ENABLE_TASKS` sigue seleccionando entre las herramientas Task o `TodoWrite`. Requiere Claude Code v2.1.233 o posterior |303| `CLAUDE_CODE_ENABLE_TODO_TOOLS` | Establécela en `1` para obtener las herramientas de seguimiento de tareas en todos los modelos. Sin ella, Claude Code las proporciona de forma predeterminada solo en los modelos enumerados en [Disponibilidad de la herramienta Task](/docs/es/tools-reference#task-tool-availability). `CLAUDE_CODE_ENABLE_TASKS` sigue seleccionando las herramientas Task o `TodoWrite`. Requiere Claude Code v2.1.233 o posterior |

302| `CLAUDE_CODE_EXIT_AFTER_STOP_DELAY` | Tiempo en milisegundos que se espera después de que el bucle de consultas queda inactivo antes de salir automáticamente. Es útil para flujos de trabajo automatizados y scripts que usan el modo SDK |304| `CLAUDE_CODE_EXIT_AFTER_STOP_DELAY` | Tiempo en milisegundos que se espera después de que el bucle de consultas queda inactivo antes de salir automáticamente. Útil para flujos de trabajo automatizados y scripts que usan el modo SDK |

303| `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` | Establécela en `1` para activar los [equipos de agentes](/docs/es/agent-teams). Los equipos de agentes son experimentales y están desactivados de forma predeterminada |305| `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` | Establécela en `1` para habilitar los [equipos de agentes](/docs/es/agent-teams). Los equipos de agentes son experimentales y están deshabilitados de forma predeterminada |

304| `CLAUDE_CODE_EXTRA_BODY` | Objeto JSON que se combina en el nivel superior del cuerpo de cada solicitud a la API. Es útil para pasar parámetros específicos del proveedor que Claude Code no expone directamente. Un valor exportado en tu shell también se aplica a las [sesiones en segundo plano](/docs/es/agent-view) que lanzas con `claude agents` o `--bg`. Antes de la v2.1.206, las sesiones en segundo plano ignoraban un valor exportado en el shell y usaban la copia que hubiera heredado el proceso supervisor en segundo plano |306| `CLAUDE_CODE_EXTRA_BODY` | Objeto JSON que se combina en el nivel superior del cuerpo de cada solicitud a la API. Útil para pasar parámetros específicos del proveedor que Claude Code no expone directamente. Un valor exportado en tu shell también se aplica a las [sesiones en segundo plano](/docs/es/agent-view) que lanzas con `claude agents` o `--bg`. Antes de v2.1.206, las sesiones en segundo plano ignoraban un valor exportado desde el shell y usaban la copia que hubiera heredado el proceso supervisor en segundo plano |

305| `CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS` | Sobrescribe el límite de tokens predeterminado para la lectura de archivos. Es útil cuando necesitas leer archivos más grandes completos |307| `CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS` | Sobrescribe el límite de tokens predeterminado para la lectura de archivos. Útil cuando necesitas leer archivos más grandes por completo |

306| `CLAUDE_CODE_FORCE_SESSION_PERSISTENCE` | Establécela en `1` para forzar la persistencia de la transcripción, el historial de prompts y el registro en `claude agents` incluso cuando este `claude` se inició desde dentro de otra sesión de Claude Code. Úsala cuando un valor heredado de `CLAUDE_CODE_CHILD_SESSION`, por ejemplo de una sesión de `screen` o de un lanzador en segundo plano iniciado por primera vez por la herramienta Bash de Claude Code, provoca que una sesión genuina de nivel superior se clasifique erróneamente como anidada. A partir de la v2.1.178, Claude Code detecta automáticamente el caso de tmux e ignora el marcador heredado, por lo que tmux ya no necesita esta variable. También se respeta en la v2.1.169 y anteriores; no tiene efecto en la v2.1.170 ni en la v2.1.171, donde se eliminó la detección de sesiones anidadas que sobrescribe |308| `CLAUDE_CODE_FORCE_SESSION_PERSISTENCE` | Establécela en `1` para forzar la persistencia de la transcripción, el historial de prompts y el registro en `claude agents` incluso cuando este `claude` se inició desde dentro de otra sesión de Claude Code. Úsala cuando un valor heredado de `CLAUDE_CODE_CHILD_SESSION`, por ejemplo de una sesión de `screen` o de un lanzador en segundo plano iniciado por primera vez por la herramienta Bash de Claude Code, hace que una sesión de nivel superior genuina se clasifique erróneamente como anidada. A partir de v2.1.178, Claude Code detecta automáticamente el caso de tmux e ignora el marcador heredado, por lo que tmux ya no necesita esta variable. También se respeta en v2.1.169 y anteriores; no tiene efecto en v2.1.170 y v2.1.171, donde se eliminó la detección de sesiones anidadas que sobrescribe |

307| `CLAUDE_CODE_FORCE_STRIKETHROUGH` | Establécela en `1` para forzar la representación tachada de `~~text~~` en las respuestas de Claude cuando tu terminal lo admite pero no se detecta automáticamente, como a través de SSH sin reenviar `TERM_PROGRAM`. Sin ella, las terminales no detectadas muestran los marcadores `~~` literales en lugar de representar el texto como tachado. Requiere Claude Code v2.1.186 o posterior |309| `CLAUDE_CODE_FORCE_STRIKETHROUGH` | Establécela en `1` para forzar la representación tachada de `~~text~~` en las respuestas de Claude cuando tu terminal lo admite pero no se detecta automáticamente, como a través de SSH sin reenviar `TERM_PROGRAM`. Sin ella, las terminales no detectadas muestran los marcadores `~~` literales en lugar de representar el texto como tachado. Requiere Claude Code v2.1.186 o posterior |

308| `CLAUDE_CODE_FORCE_SYNC_OUTPUT` | Establécela en `1` para forzar la activación de la [salida sincronizada](https://gist.github.com/christianparpart/d8a62cc1ab659194337d73e399004036) del modo privado DEC 2026 cuando tu terminal la admite pero no se detecta automáticamente. Es útil para emuladores como `eat` de Emacs, que implementan BSU/ESU pero no responden a la consulta de capacidades. No tiene efecto dentro de tmux. A diferencia de `CLAUDE_CODE_NO_FLICKER`, que cambia a la [representación en pantalla completa](/docs/es/fullscreen), esta variable no cambia el renderizador |310| `CLAUDE_CODE_FORCE_SYNC_OUTPUT` | Establécela en `1` para forzar la activación de la [salida sincronizada](https://gist.github.com/christianparpart/d8a62cc1ab659194337d73e399004036) del modo privado DEC 2026 cuando tu terminal la admite pero no se detecta automáticamente. Útil para emuladores como `eat` de Emacs que implementan BSU/ESU pero no responden a la sonda de capacidades. No tiene efecto en tmux. A diferencia de `CLAUDE_CODE_NO_FLICKER`, que cambia a la [representación en pantalla completa](/docs/es/fullscreen), esta no cambia el renderizador |

309| `CLAUDE_CODE_FORK_SUBAGENT` | Controla el [modo de bifurcación](/docs/es/sub-agents#turn-fork-mode-on-or-off), que permite a Claude generar por sí mismo [subagentes bifurcados](/docs/es/sub-agents#fork-the-current-conversation) y está activado de forma predeterminada solo en sesiones interactivas. Establécela en `1` para activarlo también en `claude -p` y el Agent SDK, o en `0` para desactivarlo en todos los tipos de sesión. Puedes ejecutar `/subtask` tanto si el modo de bifurcación está activado como si no. El valor predeterminado interactivo requiere Claude Code v2.1.232 o posterior; en versiones anteriores, establece la variable en `1` para activar el modo de bifurcación |311| `CLAUDE_CODE_FORK_SUBAGENT` | Controla el [modo fork](/docs/es/sub-agents#turn-fork-mode-on-or-off), que permite a Claude generar [subagentes bifurcados](/docs/es/sub-agents#fork-the-current-conversation) por sí mismo y está activado de forma predeterminada solo en sesiones interactivas. Establécela en `1` para activarlo también en `claude -p` y en el Agent SDK, o en `0` para desactivarlo en todo tipo de sesión. Puedes ejecutar `/subtask` tanto si el modo fork está activado como si no. El valor predeterminado interactivo requiere Claude Code v2.1.232 o posterior; en versiones anteriores, establece la variable en `1` para activar el modo fork |

310| `CLAUDE_CODE_FORWARD_SUBAGENT_TEXT` | Establécela en `1` para emitir los bloques de texto y de pensamiento de los [subagentes](/docs/es/sub-agents) en la salida de `claude -p --output-format stream-json`, el mismo comportamiento que el flag [`--forward-subagent-text`](/docs/es/cli-reference#cli-flags). Usa la variable cuando un arnés invoca `claude` y no puede pasar el flag por sí mismo. A diferencia del flag, que termina con un error fuera del modo no interactivo con salida stream-json, la variable se ignora en ese caso para que las invocaciones anidadas sigan funcionando cuando está establecida para todo el proceso. Requiere Claude Code v2.1.211 o posterior |312| `CLAUDE_CODE_FORWARD_SUBAGENT_TEXT` | Establécela en `1` para emitir bloques de texto y de pensamiento de [subagentes](/docs/es/sub-agents) en la salida de `claude -p --output-format stream-json`, el mismo comportamiento que el flag [`--forward-subagent-text`](/docs/es/cli-reference#cli-flags). Usa la variable cuando un harness invoca `claude` y no puede pasar el flag por sí mismo. A diferencia del flag, que termina con un error fuera del modo no interactivo con salida stream-json, la variable se ignora allí para que las invocaciones anidadas sigan funcionando cuando se establece para todo el proceso. Requiere Claude Code v2.1.211 o posterior |

311| `CLAUDE_CODE_GATEWAY_HINT_HEADERS` | Establécela en `1` para enviar los [encabezados de indicación para gateways](/docs/es/llm-gateway-protocol#gateway-hint-headers), como `x-claude-code-request-class` y `x-claude-code-compaction`, en un proxy personalizado o un proveedor externo como Amazon Bedrock o Claude Platform on AWS. Establécela en `0` para dejar de enviarlos en todas las conexiones, incluida una conexión directa a la API de Anthropic, donde Claude Code los envía de forma predeterminada. Requiere Claude Code v2.1.273 o posterior |313| `CLAUDE_CODE_GATEWAY_HINT_HEADERS` | Establécela en `1` para enviar los [encabezados de sugerencia del gateway](/docs/es/llm-gateway-protocol#gateway-hint-headers), como `x-claude-code-request-class` y `x-claude-code-compaction`, en un proxy personalizado o un proveedor externo como Amazon Bedrock o Claude Platform on AWS. Establécela en `0` para dejar de enviarlos en todas las conexiones, incluida una conexión directa a la API de Anthropic, donde Claude Code los envía de forma predeterminada. Requiere Claude Code v2.1.273 o posterior |

312| `CLAUDE_CODE_GATEWAY_MODEL_DISCOVERY_TIMEOUT_MS` | Tiempo de espera en milisegundos para la solicitud de [descubrimiento de modelos del gateway](/docs/es/llm-gateway-protocol#model-discovery) que activa `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY` (predeterminado: `3000`). Auméntalo cuando tu gateway necesite más de tres segundos para responder a `/v1/models` al iniciar. Solo acepta dígitos simples; `0`, los valores negativos y otras formas de escritura mantienen el valor predeterminado. Requiere Claude Code v2.1.269 o posterior |314| `CLAUDE_CODE_GATEWAY_MODEL_DISCOVERY_TIMEOUT_MS` | Tiempo de espera en milisegundos para la solicitud de [descubrimiento de modelos del gateway](/docs/es/llm-gateway-protocol#model-discovery) que activa `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY` (predeterminado: `3000`). Auméntalo cuando tu gateway necesite más de tres segundos para responder a `/v1/models` al inicio. Solo acepta dígitos simples; `0`, los valores negativos y otras formas de escribirlo mantienen el valor predeterminado. Requiere Claude Code v2.1.269 o posterior |

313| `CLAUDE_CODE_GIT_BASH_PATH` | Solo Windows: ruta al ejecutable de Git Bash (`bash.exe`). Úsala cuando Git Bash está instalado pero no está en tu PATH. Si la ruta no existe o el archivo no se llama `bash.exe`, `sh.exe`, `bash` o `sh`, Claude Code ignora la variable y detecta automáticamente Git Bash como si no estuviera establecida, y registra una advertencia visible con `--debug`. Antes de la v2.1.219, Claude Code salía al iniciar cuando la ruta no existía, y usaba cualquier archivo existente como shell sin comprobar que fuera bash o sh. Consulta [Configuración en Windows](/docs/es/setup#set-up-on-windows) |315| `CLAUDE_CODE_GIT_BASH_PATH` | Solo Windows: ruta al ejecutable de Git Bash (`bash.exe`). Úsala cuando Git Bash está instalado pero no está en tu PATH. Si la ruta no existe o el archivo no se llama `bash.exe`, `sh.exe`, `bash` o `sh`, Claude Code ignora la variable y detecta automáticamente Git Bash como si no estuviera establecida, y registra una advertencia visible con `--debug`. Antes de v2.1.219, Claude Code salía al inicio cuando la ruta no existía y usaba cualquier archivo existente como shell sin comprobar que fuera bash o sh. Consulta [Configuración en Windows](/docs/es/setup#set-up-on-windows) |

314| `CLAUDE_CODE_GLOB_HIDDEN` | Establécela en `false` para excluir los archivos ocultos (dotfiles) de los resultados cuando Claude invoca la [herramienta Glob](/docs/es/tools-reference#glob-tool-behavior). Se incluyen de forma predeterminada. No afecta al autocompletado de archivos con `@`, `ls`, Grep ni Read |316| `CLAUDE_CODE_GLOB_HIDDEN` | Establécela en `false` para excluir los dotfiles de los resultados cuando Claude invoca la [herramienta Glob](/docs/es/tools-reference#glob-tool-behavior). Se incluyen de forma predeterminada. No afecta al autocompletado de archivos con `@`, a `ls`, a Grep ni a Read |

315| `CLAUDE_CODE_GLOB_NO_IGNORE` | Establécela en `false` para que la [herramienta Glob](/docs/es/tools-reference#glob-tool-behavior) respete los patrones de `.gitignore`. De forma predeterminada, Glob devuelve todos los archivos coincidentes, incluidos los ignorados por git. No afecta al autocompletado de archivos con `@`, que tiene su propio [ajuste `respectGitignore`](/docs/es/settings-reference#respectgitignore) |317| `CLAUDE_CODE_GLOB_NO_IGNORE` | Establécela en `false` para que la [herramienta Glob](/docs/es/tools-reference#glob-tool-behavior) respete los patrones de `.gitignore`. De forma predeterminada, Glob devuelve todos los archivos coincidentes, incluidos los ignorados por git. No afecta al autocompletado de archivos con `@`, que tiene su propio [ajuste `respectGitignore`](/docs/es/settings-reference#respectgitignore) |

316| `CLAUDE_CODE_GLOB_TIMEOUT_SECONDS` | Tiempo de espera en segundos para el descubrimiento de archivos de la herramienta Glob. El valor predeterminado es de 20 segundos en la mayoría de las plataformas y de 60 segundos en WSL |318| `CLAUDE_CODE_GLOB_TIMEOUT_SECONDS` | Tiempo de espera en segundos para el descubrimiento de archivos de la herramienta Glob. El valor predeterminado es de 20 segundos en la mayoría de las plataformas y de 60 segundos en WSL |

317| `CLAUDE_CODE_GOAL_CHECKIN_MINUTES` | Cuántos minutos puede el trabajo en segundo plano mantener en espera un objetivo activo antes de que Claude Code [le pida a Claude que lo revise](/docs/es/goal#background-work-defers-evaluation). Predeterminado: `30`. Establécela en `0` para desactivar las revisiones. Indica minutos enteros en dígitos simples, como máximo `10080`, que equivale a una semana. Claude Code trata cualquier otro valor como no establecido y usa el predeterminado. Requiere Claude Code v2.1.234 o posterior |319| `CLAUDE_CODE_GOAL_CHECKIN_MINUTES` | Cuántos minutos puede el trabajo en segundo plano mantener en espera un objetivo activo antes de que Claude Code [le pida a Claude que lo revise](/docs/es/goal#background-work-defers-evaluation). Predeterminado: `30`. Establece `0` para desactivar las revisiones. Indica minutos enteros en dígitos simples, como máximo `10080`, que equivale a una semana. Claude Code trata cualquier otro valor como no establecido y usa el predeterminado. Requiere Claude Code v2.1.234 o posterior |

318| `CLAUDE_CODE_GZIP_REQUEST_BODIES` | Establécela en `0` para desactivar la compresión gzip de los cuerpos de las solicitudes de la API de Claude, de telemetría y de publicación de [artefactos](/docs/es/artifacts) enviadas a `api.anthropic.com`. De forma predeterminada, Claude Code comprime los cuerpos de solicitud grandes en conexiones directas y omite la compresión cuando envías solicitudes a través de un proxy, configuras un certificado de cliente o estableces `NODE_EXTRA_CA_CERTS`. Usa `0` si un [proxy de inspección TLS](/docs/es/network-config#ca-certificate-store) que Claude Code no puede detectar maneja mal las solicitudes comprimidas |320| `CLAUDE_CODE_GZIP_REQUEST_BODIES` | Establécela en `0` para desactivar la compresión gzip de los cuerpos de las solicitudes de la API de Claude, de telemetría y de publicación de [artefactos](/docs/es/artifacts) enviadas a `api.anthropic.com`. De forma predeterminada, Claude Code comprime los cuerpos de solicitud grandes en conexiones directas y omite la compresión cuando envías solicitudes a través de un proxy, configuras un certificado de cliente o estableces `NODE_EXTRA_CA_CERTS`. Usa `0` si un [proxy con inspección de TLS](/docs/es/network-config#ca-certificate-store) que Claude Code no puede detectar maneja incorrectamente las solicitudes comprimidas |

319| `CLAUDE_CODE_HIDE_CWD` | Establécela en `1` para ocultar el directorio de trabajo en el logotipo de inicio. Es útil al compartir pantalla o en grabaciones donde la ruta expone tu nombre de usuario del sistema operativo |321| `CLAUDE_CODE_HIDE_CWD` | Establécela en `1` para ocultar el directorio de trabajo en el logotipo de inicio. Útil para pantallas compartidas o grabaciones donde la ruta expone tu nombre de usuario del sistema operativo |

320| `CLAUDE_CODE_IDE_HOST_OVERRIDE` | Sobrescribe la dirección del host que se usa para conectarse a la extensión del IDE. De forma predeterminada, Claude Code detecta automáticamente la dirección correcta, incluido el enrutamiento de WSL a Windows |322| `CLAUDE_CODE_IDE_HOST_OVERRIDE` | Sobrescribe la dirección del host que se usa para conectarse a la extensión del IDE. De forma predeterminada, Claude Code detecta automáticamente la dirección correcta, incluido el enrutamiento de WSL a Windows |

321| `CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL` | Establécela en `1` para omitir la instalación automática de las extensiones del IDE. Equivale a establecer [`autoInstallIdeExtension`](/docs/es/settings-reference#autoinstallideextension) en `false` |323| `CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL` | Establécela en `1` para omitir la instalación automática de extensiones de IDE. Equivale a establecer [`autoInstallIdeExtension`](/docs/es/settings-reference#autoinstallideextension) en `false` |

322| `CLAUDE_CODE_IDE_SKIP_VALID_CHECK` | Establécela en `1` para omitir la validación de las entradas del archivo de bloqueo del IDE durante la conexión. Úsala cuando la conexión automática no encuentra tu IDE a pesar de que se está ejecutando |324| `CLAUDE_CODE_IDE_SKIP_VALID_CHECK` | Establécela en `1` para omitir la validación de las entradas del archivo de bloqueo del IDE durante la conexión. Úsala cuando la conexión automática no encuentra tu IDE aunque se esté ejecutando |

323| `CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS` | Cuántos [subagentes](/docs/es/sub-agents#concurrent-subagent-limit) pueden estar en ejecución en una sesión antes de que la herramienta Agent se niegue a generar otro (predeterminado: 20). Acepta un número entero positivo en dígitos simples; cualquier otro valor se ignora, por lo que la variable puede ajustar el límite pero no desactivarlo. Requiere Claude Code v2.1.217 o posterior |325| `CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS` | Cuántos [subagentes](/docs/es/sub-agents#concurrent-subagent-limit) pueden estar en ejecución en una sesión antes de que la herramienta Agent se niegue a generar otro (predeterminado: 20). Acepta un número entero positivo en dígitos simples; cualquier otro valor se ignora, por lo que la variable puede ajustar el límite pero no desactivarlo. Requiere Claude Code v2.1.217 o posterior |

324| `CLAUDE_CODE_MAX_CONTEXT_TOKENS` | Sobrescribe el tamaño de la ventana de contexto que Claude Code asume para el modelo activo. A partir de la v2.1.193, la forma en que se aplica depende de cómo Claude Code resuelve el ID del modelo; consulta [Corregir la ventana para un gateway o un ID de modelo personalizado](/docs/es/model-config#correct-the-window-for-a-gateway-or-custom-model-id). Úsala cuando enrutas a un modelo a través de `ANTHROPIC_BASE_URL` cuya ventana de contexto no coincide con el tamaño integrado para su nombre |326| `CLAUDE_CODE_MAX_CONTEXT_TOKENS` | Sobrescribe el tamaño de la ventana de contexto que Claude Code asume para el modelo activo. A partir de v2.1.193, cómo se aplica depende de cómo Claude Code resuelve el ID del modelo; consulta [Corregir la ventana para un gateway o un ID de modelo personalizado](/docs/es/model-config#correct-the-window-for-a-gateway-or-custom-model-id). Úsala cuando enrutes a un modelo a través de `ANTHROPIC_BASE_URL` cuya ventana de contexto no coincide con el tamaño integrado para su nombre |

325| `CLAUDE_CODE_MAX_MCP_DESCRIPTION_LENGTH` | Longitud máxima en caracteres de cada descripción de herramienta MCP y de las instrucciones de cada servidor MCP que Claude Code envía al modelo (predeterminado: 2048). Claude Code [trunca el texto más largo](/docs/es/mcp#for-mcp-server-authors). Acepta un número entero positivo en dígitos simples. Cualquier otro valor se ignora y se aplica el predeterminado. Requiere Claude Code v2.1.280 o posterior |327| `CLAUDE_CODE_MAX_MCP_DESCRIPTION_LENGTH` | Longitud máxima en caracteres de cada descripción de herramienta MCP y de las instrucciones de cada servidor MCP que Claude Code envía al modelo (predeterminado: 2048). Claude Code [trunca el texto más largo](/docs/es/mcp#for-mcp-server-authors). Acepta un número entero positivo en dígitos simples. Cualquier otro valor se ignora y se aplica el predeterminado. Requiere Claude Code v2.1.280 o posterior |

326| `CLAUDE_CODE_MAX_OUTPUT_TOKENS` | Establece el número máximo de tokens de salida para la mayoría de las solicitudes. Los valores predeterminados y los límites varían según el modelo; consulta [tokens de salida máximos](https://platform.claude.com/docs/en/about-claude/models/overview#latest-models-comparison). Claude Code reduce al límite un valor que supera el límite de un modelo. Para un ID de modelo que Claude Code no puede resolver a un modelo conocido, el valor predeterminado es 32000 y el límite es 128000. Aumentar este valor reduce la ventana de contexto efectiva disponible antes de que se active la [compactación automática](/docs/es/costs#reduce-token-usage) |328| `CLAUDE_CODE_MAX_OUTPUT_TOKENS` | Establece el número máximo de tokens de salida para la mayoría de las solicitudes. Los valores predeterminados y los límites varían según el modelo; consulta [máximo de tokens de salida](https://platform.claude.com/docs/en/about-claude/models/overview#latest-models-comparison). Claude Code reduce un valor superior al límite de un modelo a dicho límite. Para un ID de modelo que Claude Code no puede resolver a un modelo que conozca, el predeterminado es 32000 y el límite es 128000. Aumentar este valor reduce la ventana de contexto efectiva disponible antes de que se active la [compactación automática](/docs/es/costs#reduce-token-usage) |

327| `CLAUDE_CODE_MAX_RETRIES` | Sobrescribe el número de veces que se reintentan las solicitudes a la API fallidas (predeterminado: 10). Limitado a 15 a partir de la v2.1.186; a partir de la v2.1.199, `CLAUDE_CODE_RETRY_WATCHDOG` aumenta el valor predeterminado y elimina el límite. Para sesiones desatendidas que necesitan esperar a que pasen interrupciones más largas, establece `CLAUDE_CODE_RETRY_WATCHDOG` en su lugar |329| `CLAUDE_CODE_MAX_RETRIES` | Sobrescribe el número de veces que se reintentan las solicitudes a la API fallidas (predeterminado: 10). Limitado a 15 a partir de v2.1.186; a partir de v2.1.199, `CLAUDE_CODE_RETRY_WATCHDOG` aumenta el predeterminado y elimina el límite. Para sesiones desatendidas que necesitan esperar durante interrupciones más largas, establece `CLAUDE_CODE_RETRY_WATCHDOG` en su lugar |

328| `CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION` | Se eliminó en la v2.1.224 y ahora no tiene ningún efecto. Anteriormente limitaba el número total de [subagentes](/docs/es/sub-agents) que Claude podía generar con la herramienta Agent en una sesión (predeterminado: 200); generar más allá del límite fallaba con `Subagent spawn limit reached`. El [límite de subagentes simultáneos](/docs/es/sub-agents#concurrent-subagent-limit) y el [límite de profundidad](/docs/es/sub-agents#let-subagents-spawn-their-own-subagents) siguen aplicándose |330| `CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION` | Se eliminó en v2.1.224 y ahora no tiene efecto. Anteriormente limitaba el número total de [subagentes](/docs/es/sub-agents) que Claude podía generar con la herramienta Agent en una sesión (predeterminado: 200); generar más allá del límite fallaba con `Subagent spawn limit reached`. El [límite de subagentes concurrentes](/docs/es/sub-agents#concurrent-subagent-limit) y el [límite de profundidad](/docs/es/sub-agents#let-subagents-spawn-their-own-subagents) siguen aplicándose |

329| `CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH` | Número de [capas de subagentes](/docs/es/sub-agents#let-subagents-spawn-their-own-subagents) permitidas por debajo de la conversación principal (predeterminado: 3). Con el valor predeterminado, los subagentes pueden generar sus propios subagentes, y un subagente en la tercera capa no puede generar más; establécela en `1` para desactivar el anidamiento. De la v2.1.217 a la v2.1.218, el valor predeterminado era 1, por lo que un subagente no podía generar los suyos a menos que aumentaras el límite; la v2.1.219 aumentó el valor predeterminado a 3. Acepta un número entero positivo en dígitos simples; cualquier otro valor se ignora, por lo que el límite se puede ajustar pero no eliminar. Requiere Claude Code v2.1.217 o posterior |331| `CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH` | Número de [capas de subagentes](/docs/es/sub-agents#let-subagents-spawn-their-own-subagents) permitidas por debajo de la conversación principal (predeterminado: 3). Con el predeterminado, los subagentes pueden generar sus propios subagentes, y un subagente en la tercera capa no puede generar más; establece `1` para desactivar el anidamiento. Desde v2.1.217 hasta v2.1.218, el predeterminado era 1, por lo que un subagente no podía generar los suyos a menos que aumentaras el límite; v2.1.219 aumentó el predeterminado a 3. Acepta un número entero positivo en dígitos simples; cualquier otro valor se ignora, por lo que el límite se puede ajustar pero no eliminar. Requiere Claude Code v2.1.217 o posterior |

330| `CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY` | Número máximo de herramientas de solo lectura y subagentes que se pueden ejecutar en paralelo (predeterminado: 10). Los valores más altos aumentan el paralelismo pero consumen más recursos |332| `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 |

331| `CLAUDE_CODE_MAX_TURNS` | Limita el número de turnos agénticos cuando no se pasa un límite explícito. Equivale a pasar [`--max-turns`](/docs/es/cli-reference#cli-flags), que tiene precedencia cuando ambos están establecidos. Un valor que no es un entero positivo se rechaza al iniciar con un error, en lugar de tratarse como sin límite |333| `CLAUDE_CODE_MAX_TURNS` | Limita el número de turnos agénticos cuando no se pasa un límite explícito. Equivale a pasar [`--max-turns`](/docs/es/cli-reference#cli-flags), que tiene precedencia cuando ambos están establecidos. Un valor que no es un entero positivo se rechaza al inicio con un error en lugar de tratarse como sin límite |

332| `CLAUDE_CODE_MAX_WEB_SEARCHES_PER_SESSION` | Límite del número total de llamadas a [WebSearch](/docs/es/tools-reference#websearch-tool-behavior) que puede hacer una sesión (predeterminado: 200). Cuando Claude alcanza el límite, las siguientes llamadas a WebSearch devuelven un aviso que le indica que continúe con la información que ya recopiló. Acepta un número entero positivo sin límite superior. Cualquier otro valor se ignora y se aplica el predeterminado, por lo que el límite se puede aumentar pero no desactivar. Requiere Claude Code v2.1.212 o posterior |334| `CLAUDE_CODE_MAX_WEB_SEARCHES_PER_SESSION` | Límite del número total de llamadas a [WebSearch](/docs/es/tools-reference#websearch-tool-behavior) que puede hacer una sesión (predeterminado: 200). Cuando Claude alcanza el límite, las llamadas posteriores a WebSearch devuelven un aviso que le indica que continúe con la información que ya reunió. Acepta un número entero positivo sin límite superior. Cualquier otro valor se ignora y se aplica el predeterminado, por lo que el límite se puede aumentar pero no desactivar. Requiere Claude Code v2.1.212 o posterior |

333| `CLAUDE_CODE_MCP_ALLOWLIST_ENV` | Establécela en `1` para iniciar los servidores MCP stdio solo con un entorno base seguro más el `env` configurado del servidor, en lugar de heredar el entorno de tu shell |335| `CLAUDE_CODE_MCP_ALLOWLIST_ENV` | Establécela en `1` para iniciar los servidores MCP stdio solo con un entorno base seguro más el `env` configurado del servidor, en lugar de heredar el entorno de tu shell |

334| `CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS` | Tiempo transcurrido en milisegundos antes de que una llamada a herramienta MCP que sigue en ejecución [pase a una tarea en segundo plano](/docs/es/mcp#automatic-backgrounding-of-long-tool-calls) (predeterminado: 120000, o 2 minutos). Establécela en `0` para desactivar el paso automático a segundo plano. Requiere Claude Code v2.1.212 o posterior |336| `CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS` | Tiempo transcurrido en milisegundos antes de que una llamada a herramienta MCP que sigue en ejecución [pase a una tarea en segundo plano](/docs/es/mcp#automatic-backgrounding-of-long-tool-calls) (predeterminado: 120000, o 2 minutos). Establécela en `0` para desactivar el paso automático a segundo plano. Requiere Claude Code v2.1.212 o posterior |

335| `CLAUDE_CODE_MCP_STARTUP_WAIT_MS` | Cuánto tiempo en milisegundos espera el primer turno de una sesión [no interactiva](/docs/es/headless) a los servidores MCP que todavía se están conectando, en lugar de la [espera del primer turno](/docs/es/agent-sdk/mcp#connection-timing) predeterminada. Cuando está establecida, la espera cubre todos los servidores pendientes. Establécela en `0` para omitir la espera. Un servidor de [`--permission-prompt-tool`](/docs/es/cli-reference#cli-flags) mantiene su propia espera de `MCP_TIMEOUT` independientemente del valor. Requiere Claude Code v2.1.274 o posterior |337| `CLAUDE_CODE_MCP_STARTUP_WAIT_MS` | Cuánto tiempo en milisegundos espera el primer turno de una sesión [no interactiva](/docs/es/headless) a los servidores MCP que todavía se están conectando, en lugar de la [espera del primer turno](/docs/es/agent-sdk/mcp#connection-timing) predeterminada. Cuando se establece, la espera cubre todos los servidores pendientes. Establécela en `0` para omitir la espera. Un servidor de [`--permission-prompt-tool`](/docs/es/cli-reference#cli-flags) mantiene su propia espera de `MCP_TIMEOUT` independientemente del valor. Requiere Claude Code v2.1.274 o posterior |

336| `CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT` | Tiempo de espera por inactividad en milisegundos para las llamadas a herramientas MCP. Cuando un servidor MCP stdio, HTTP, SSE, WebSocket o de un [conector de claude.ai](/docs/es/mcp#use-mcp-servers-from-claude-ai) no envía ninguna respuesta ni ninguna notificación de progreso durante este tiempo, la llamada a herramienta se aborta con un error en lugar de esperar al `MCP_TOOL_TIMEOUT` general. Sobrescribe los valores predeterminados por transporte de 300000 (5 minutos) para servidores de red y de 1800000 (30 minutos) para servidores stdio. Establécela en `0` para desactivar la comprobación de inactividad. Los valores inferiores a 1000 se elevan a un segundo, y el valor se limita al `MCP_TOOL_TIMEOUT` efectivo. Un `timeout` por servidor de al menos 1000 en `.mcp.json` eleva la ventana de inactividad de ese servidor al menos al valor de `timeout`. No se aplica a los servidores del IDE ni a los servidores en proceso del SDK. Requiere Claude Code v2.1.187 o posterior. Antes de la v2.1.203, los servidores stdio estaban exentos del tiempo de espera por inactividad |338| `CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT` | Tiempo de espera por inactividad en milisegundos para las llamadas a herramientas MCP. Cuando un servidor MCP stdio, HTTP, SSE, WebSocket o de [conector de claude.ai](/docs/es/mcp#use-mcp-servers-from-claude-ai) no envía ninguna respuesta ni notificación de progreso durante este tiempo, la llamada a herramienta se cancela con un error en lugar de esperar al `MCP_TOOL_TIMEOUT` general. Sobrescribe los predeterminados por transporte de 300000 (5 minutos) para servidores de red y 1800000 (30 minutos) para servidores stdio. Establécela en `0` para deshabilitar la comprobación de inactividad. Los valores inferiores a 1000 se elevan a un segundo, y el valor se limita al `MCP_TOOL_TIMEOUT` efectivo. Un `timeout` por servidor en `.mcp.json` de al menos 1000 eleva la ventana de inactividad de ese servidor al menos hasta el valor de `timeout`. No se aplica a servidores del IDE ni a servidores en proceso del SDK. Requiere Claude Code v2.1.187 o posterior. Antes de v2.1.203, los servidores stdio estaban exentos del tiempo de espera por inactividad |

337| `CLAUDE_CODE_MESSAGING_SOCKET` | La establece Claude Code, no tú: en las sesiones que vinculan un [socket de bandeja de entrada](/docs/es/cross-session-messaging#the-sessions-inbox-socket), Claude Code exporta la ruta de ese socket a los hooks y comandos de Bash cuando vincula el socket. En una sesión que se inicia con la mensajería activada, Claude Code vincula el socket antes de que se ejecute cualquier hook. Otras sesiones de la máquina entregan mensajes a esta ruta. Cada sesión exporta su propio socket en lugar de uno heredado de una sesión principal, y los mensajes que llegan a él pasan por los [controles de entrada](/docs/es/cross-session-messaging#control-inbound-messages) de la sesión. Los bloques `env` de la configuración no pueden establecerla. Requiere Claude Code v2.1.224 o posterior |339| `CLAUDE_CODE_MESSAGING_SOCKET` | La establece Claude Code, no tú: en las sesiones que vinculan un [socket de bandeja de entrada](/docs/es/cross-session-messaging#the-sessions-inbox-socket), Claude Code exporta la ruta de ese socket a los hooks y comandos de Bash cuando vincula el socket. En una sesión que se inicia con la mensajería activada, Claude Code vincula el socket antes de que se ejecute cualquier hook. Otras sesiones de la máquina entregan mensajes a esta ruta. Cada sesión exporta su propio socket en lugar de uno heredado de una sesión principal, y los mensajes que llegan a él pasan por los [controles de entrada](/docs/es/cross-session-messaging#control-inbound-messages) de la sesión. Los bloques `env` de la configuración no pueden establecerla. Requiere Claude Code v2.1.224 o posterior |

338| `CLAUDE_CODE_MESSAGING_TOKEN` | La establece Claude Code, no tú: en las sesiones que vinculan un [socket de bandeja de entrada](/docs/es/cross-session-messaging#the-sessions-inbox-socket), Claude Code exporta este token por sesión a los hooks y comandos de Bash junto con `CLAUDE_CODE_MESSAGING_SOCKET`. Un script que publica en el socket puede enviar `{"type":"auth","token":"<token>"}` como primera línea para demostrar que pertenece a la sesión. En Windows nativo, Claude Code exige esta línea y cierra cualquier conexión que no comience con una válida. Las [reglas de procesos hijos propios](/docs/es/cross-session-messaging#the-sessions-inbox-socket) indican cuándo consulta Claude Code el token. Cada sesión exporta su propio token, nunca uno heredado de una sesión principal. Los bloques `env` de la configuración no pueden establecerla. Requiere Claude Code v2.1.228 o posterior |340| `CLAUDE_CODE_MESSAGING_TOKEN` | La establece Claude Code, no tú: en las sesiones que vinculan un [socket de bandeja de entrada](/docs/es/cross-session-messaging#the-sessions-inbox-socket), Claude Code exporta este token por sesión a los hooks y comandos de Bash junto con `CLAUDE_CODE_MESSAGING_SOCKET`. Un script que publica en el socket puede enviar `{"type":"auth","token":"<token>"}` como su primera línea para demostrar que pertenece a la sesión. En Windows nativo, Claude Code requiere esta línea y cierra cualquier conexión que no comience con una válida. Las [reglas de procesos hijos propios](/docs/es/cross-session-messaging#the-sessions-inbox-socket) indican cuándo Claude Code consulta el token. Cada sesión exporta su propio token, nunca uno heredado de una sesión principal. Los bloques `env` de la configuración no pueden establecerla. Requiere Claude Code v2.1.228 o posterior |

339| `CLAUDE_CODE_NATIVE_CURSOR` | Establécela en `1` para mostrar el propio cursor de la terminal en el punto de inserción en lugar de un bloque dibujado. El cursor respeta la configuración de parpadeo, forma y foco de la terminal |341| `CLAUDE_CODE_NATIVE_CURSOR` | Establécela en `1` para mostrar el cursor propio de la terminal en el punto de inserción de la entrada en lugar de un bloque dibujado. El cursor respeta la configuración de parpadeo, forma y foco de la terminal. Establecer `0` equivale a dejar la variable sin establecer, por lo que no recupera el bloque dibujado en una sesión donde el cursor propio de la terminal ya está activado |

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

341| `CLAUDE_CODE_NONBLOCKING_STDOUT` | Establécela en `1` para escribir la salida de la terminal a través de un segundo descriptor de archivo no bloqueante, de modo que una terminal que deja de leer, como un panel de tmux en modo de control en pausa o una conexión SSH detenida, no pueda congelar Claude Code a mitad de la sesión. Se aplica en macOS, Linux y WSL cuando stdout es una terminal. Requiere Claude Code v2.1.261 o posterior |343| `CLAUDE_CODE_NONBLOCKING_STDOUT` | Establécela en `1` para escribir la salida de la terminal a través de un segundo descriptor de archivo no bloqueante, de modo que una terminal que deja de leer, como un panel de tmux en modo de control en pausa o una conexión SSH detenida, no pueda congelar Claude Code a mitad de la sesión. Se aplica en macOS, Linux y WSL cuando stdout es una terminal. Requiere Claude Code v2.1.261 o posterior |

342| `CLAUDE_CODE_NONSTREAMING_TIMEOUT_RETRIES` | Limita cuántas veces Claude Code vuelve a enviar una [solicitud sin streaming](/docs/es/errors#streaming-response-ended-before-any-complete-data-was-received) cuyo tiempo de espera se agota. Con `0`, la solicitud falla en el primer tiempo de espera agotado. No está establecida de forma predeterminada, por lo que `CLAUDE_CODE_MAX_RETRIES` limita estos reenvíos. Consulta [Ajustar el comportamiento de reintentos](/docs/es/errors#tune-retry-behavior) para conocer el tiempo de espera. Requiere Claude Code v2.1.285 o posterior |344| `CLAUDE_CODE_NONSTREAMING_TIMEOUT_RETRIES` | Limita cuántas veces Claude Code vuelve a enviar una [solicitud sin streaming](/docs/es/errors#streaming-response-ended-before-any-complete-data-was-received) cuyo tiempo de espera se agota. Con `0`, la solicitud falla la primera vez que se agota el tiempo de espera. No está establecida de forma predeterminada, por lo que `CLAUDE_CODE_MAX_RETRIES` limita estos reenvíos. Consulta [Ajustar el comportamiento de reintento](/docs/es/errors#tune-retry-behavior) para conocer el tiempo de espera. Requiere Claude Code v2.1.285 o posterior |

343| `CLAUDE_CODE_NO_FLICKER` | Establécela en `1` para activar la [representación en pantalla completa](/docs/es/fullscreen), una vista previa de investigación que reduce el parpadeo y mantiene estable el uso de memoria en conversaciones largas. Sobrescribe el ajuste [`tui`](/docs/es/settings-reference#tui); también puedes cambiar con `/tui fullscreen` |345| `CLAUDE_CODE_NO_FLICKER` | Establécela en `1` para habilitar la [representación en pantalla completa](/docs/es/fullscreen), una vista previa de investigación que reduce el parpadeo y mantiene estable el uso de memoria en conversaciones largas. Sobrescribe el ajuste [`tui`](/docs/es/settings-reference#tui); también puedes cambiar con `/tui fullscreen` |

344| `CLAUDE_CODE_OAUTH_REFRESH_TOKEN` | Token de actualización de OAuth para la autenticación de Claude.ai. Cuando está establecida, `claude auth login` intercambia este token directamente en lugar de abrir un navegador. Requiere `CLAUDE_CODE_OAUTH_SCOPES`. Es útil para aprovisionar la autenticación en entornos automatizados |346| `CLAUDE_CODE_OAUTH_REFRESH_TOKEN` | Token de actualización de OAuth para la autenticación de Claude.ai. Cuando se establece, `claude auth login` intercambia este token directamente en lugar de abrir un navegador. Requiere `CLAUDE_CODE_OAUTH_SCOPES`. Útil para aprovisionar la autenticación en entornos automatizados |

345| `CLAUDE_CODE_OAUTH_SCOPES` | Alcances de OAuth separados por espacios con los que se emitió el token de actualización, como `"user:profile user:inference user:sessions:claude_code"`. Es obligatoria cuando `CLAUDE_CODE_OAUTH_REFRESH_TOKEN` está establecida |347| `CLAUDE_CODE_OAUTH_SCOPES` | Alcances de OAuth separados por espacios con los que se emitió el token de actualización, como `"user:profile user:inference user:sessions:claude_code"`. Obligatoria cuando se establece `CLAUDE_CODE_OAUTH_REFRESH_TOKEN` |

346| `CLAUDE_CODE_OAUTH_TOKEN` | Token de acceso de OAuth para la autenticación de claude.ai. Alternativa a `/login` para el SDK y entornos automatizados. Tiene precedencia sobre las credenciales almacenadas en el llavero. Genera uno con [`claude setup-token`](/docs/es/authentication#generate-a-long-lived-token). A menos que ejecutes [`/login`](/docs/es/authentication#authentication-precedence), Claude Code usa el token que estableces durante toda la sesión. Para reemplazar un token caducado, genera uno nuevo y reinicia |348| `CLAUDE_CODE_OAUTH_TOKEN` | Token de acceso de OAuth para la autenticación de claude.ai. Alternativa a `/login` para el SDK y entornos automatizados. Tiene precedencia sobre las credenciales almacenadas en el llavero. Genera uno con [`claude setup-token`](/docs/es/authentication#generate-a-long-lived-token). A menos que ejecutes [`/login`](/docs/es/authentication#authentication-precedence), Claude Code usa el token que estableces durante toda la sesión. Para reemplazar un token caducado, genera uno nuevo y reinicia |

347| `CLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE` | Se eliminó en la v2.1.160 y ahora no tiene ningún efecto. Anteriormente fijaba el [modo rápido](/docs/es/fast-mode) a Claude Opus 4.6 en lugar del predeterminado actual. Opus 4.6 ya no admite el modo rápido |349| `CLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE` | Se eliminó en v2.1.160 y ahora no tiene efecto. Anteriormente fijaba el [modo rápido](/docs/es/fast-mode) en Claude Opus 4.6 en lugar del predeterminado actual. Opus 4.6 ya no admite el modo rápido |

348| `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` | Longitud máxima de los atributos de OpenTelemetry que contienen contenido (respuestas del modelo, contenido de herramientas, prompts del sistema, cuerpos sin procesar de la API), incluido el marcador de truncamiento, en unidades de código UTF-16 (predeterminado: 61440, es decir, 60 KB). Auméntala solo si tu backend de telemetría acepta valores de atributos superiores a 64 KB, o redúcela para disminuir el volumen de telemetría. Requiere Claude Code v2.1.214 o posterior. Consulta [Monitoreo](/docs/es/monitoring-usage) |350| `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` | Longitud máxima de los atributos de OpenTelemetry que contienen contenido (respuestas del modelo, contenido de herramientas, prompts del sistema, cuerpos de API sin procesar), incluido el marcador de truncamiento, en unidades de código UTF-16 (predeterminado: 61440, es decir, 60 KB). Auméntala solo si tu backend de telemetría acepta valores de atributo de más de 64 KB, o redúcela para disminuir el volumen de telemetría. Requiere Claude Code v2.1.214 o posterior. Consulta [Monitoreo](/docs/es/monitoring-usage) |

349| `CLAUDE_CODE_OTEL_DIAG_STDERR` | Establécela en `1` para escribir en stderr los errores de diagnóstico del exportador de OpenTelemetry. De forma predeterminada, estos errores solo aparecen con `--debug`, por lo que un exportador mal configurado, como uno con una colisión de puertos de Prometheus, de otro modo falla silenciosamente. Requiere Claude Code v2.1.179 o posterior. Consulta [Monitoreo](/docs/es/monitoring-usage) |351| `CLAUDE_CODE_OTEL_DIAG_STDERR` | Establécela en `1` para escribir los errores de diagnóstico del exportador de OpenTelemetry en stderr. De forma predeterminada, estos errores solo aparecen con `--debug`, por lo que, de lo contrario, un exportador mal configurado, como una colisión de puertos de Prometheus, falla silenciosamente. Requiere Claude Code v2.1.179 o posterior. Consulta [Monitoreo](/docs/es/monitoring-usage) |

350| `CLAUDE_CODE_OTEL_FLUSH_TIMEOUT_MS` | Tiempo de espera en milisegundos para vaciar los spans pendientes de OpenTelemetry (predeterminado: 5000). Consulta [Monitoreo](/docs/es/monitoring-usage) |352| `CLAUDE_CODE_OTEL_FLUSH_TIMEOUT_MS` | Tiempo de espera en milisegundos para vaciar los spans pendientes de OpenTelemetry (predeterminado: 5000). Consulta [Monitoreo](/docs/es/monitoring-usage) |

351| `CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS` | Intervalo para actualizar los encabezados dinámicos de OpenTelemetry en milisegundos (predeterminado: 1740000 / 29 minutos). Consulta [Encabezados dinámicos](/docs/es/monitoring-usage#dynamic-headers) |353| `CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS` | Intervalo para actualizar los encabezados dinámicos de OpenTelemetry en milisegundos (predeterminado: 1740000 / 29 minutos). Consulta [Encabezados dinámicos](/docs/es/monitoring-usage#dynamic-headers) |

352| `CLAUDE_CODE_OTEL_SHUTDOWN_TIMEOUT_MS` | Tiempo de espera en milisegundos para que el exportador de OpenTelemetry termine al apagarse (predeterminado: 2000). Auméntalo si se pierden métricas al salir. Consulta [Monitoreo](/docs/es/monitoring-usage) |354| `CLAUDE_CODE_OTEL_SHUTDOWN_TIMEOUT_MS` | Tiempo de espera en milisegundos para que el exportador de OpenTelemetry termine al apagarse (predeterminado: 2000). Auméntalo si se pierden métricas al salir. Consulta [Monitoreo](/docs/es/monitoring-usage) |

353| `CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE` | Establécela en `1` para permitir que Claude Code ejecute el comando de actualización de tu gestor de paquetes en segundo plano cuando hay una nueva versión disponible. Se aplica a instalaciones con Homebrew y WinGet. Los demás gestores de paquetes siguen mostrando el comando de actualización sin ejecutarlo. Consulta [Actualizaciones automáticas](/docs/es/setup#auto-updates) |355| `CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE` | Establécela en `1` para permitir que Claude Code ejecute el comando de actualización de tu gestor de paquetes en segundo plano cuando haya una nueva versión disponible. Se aplica a instalaciones con Homebrew y WinGet. Otros gestores de paquetes siguen mostrando el comando de actualización sin ejecutarlo. Consulta [Actualizaciones automáticas](/docs/es/setup#auto-updates) |

354| `CLAUDE_CODE_PERFORCE_MODE` | Establécela en `1` para activar la protección contra escritura compatible con Perforce. Cuando está establecida, Edit, Write y NotebookEdit fallan con una sugerencia de `p4 edit <file>` si el archivo de destino no tiene el bit de escritura del propietario, que Perforce borra en los archivos sincronizados hasta que `p4 edit` los abre. Esto evita que Claude Code omita el seguimiento de cambios de Perforce |356| `CLAUDE_CODE_PERFORCE_MODE` | Establécela en `1` para habilitar la protección contra escritura compatible con Perforce. Cuando se establece, Edit, Write y NotebookEdit fallan con una sugerencia `p4 edit <file>` si el archivo de destino no tiene el bit de escritura del propietario, que Perforce borra en los archivos sincronizados hasta que `p4 edit` los abre. Esto evita que Claude Code eluda el seguimiento de cambios de Perforce |

355| `CLAUDE_CODE_PLUGIN_CACHE_DIR` | Sobrescribe el directorio raíz de los plugins. A pesar del nombre, establece el directorio principal, no la caché en sí: los marketplaces y la caché de plugins se encuentran en subdirectorios bajo esta ruta. El valor predeterminado es `~/.claude/plugins` |357| `CLAUDE_CODE_PLUGIN_CACHE_DIR` | Sobrescribe el directorio raíz de plugins. A pesar del nombre, establece el directorio principal, no la caché en sí: los marketplaces y la caché de plugins se encuentran en subdirectorios de esta ruta. El valor predeterminado es `~/.claude/plugins` |

356| `CLAUDE_CODE_PLUGIN_DIRS` | Directorios de plugins que se cargan para la sesión, cada uno de la misma forma en que lo carga un flag [`--plugin-dir`](/docs/es/plugins/cli-reference#flags-that-load-a-plugin-for-one-session). Separa varias rutas con `:` en Unix o con `;` en Windows. Indica cada ruta como una ruta absoluta o haz que empiece con `~`, porque Claude Code omite las rutas relativas. Requiere Claude Code v2.1.280 o posterior. Consulta [Cargar un plugin para una sesión](/docs/es/plugins/create#load-a-directory-or-archive-for-one-session) |358| `CLAUDE_CODE_PLUGIN_DIRS` | Directorios de plugins que se cargan para la sesión, cada uno cargado de la misma forma en que lo carga un flag [`--plugin-dir`](/docs/es/plugins/cli-reference#flags-that-load-a-plugin-for-one-session). Separa varias rutas con `:` en Unix o `;` en Windows. Indica cada ruta como una ruta absoluta o comiénzala con `~`, porque Claude Code omite las rutas relativas. Requiere Claude Code v2.1.280 o posterior. Consulta [Cargar un plugin para una sesión](/docs/es/plugins/create#load-a-directory-or-archive-for-one-session) |

357| `CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS` | Tiempo de espera en milisegundos para clonar o actualizar un marketplace de plugins (predeterminado: 120000). Aumenta este valor para repositorios grandes o conexiones de red lentas. Consulta [Se agotó el tiempo de espera de git clone](/docs/es/plugins/troubleshooting#git-clone-timed-out-after-120s) |359| `CLAUDE_CODE_PLUGIN_DIR_WATCH` | Controla si Claude Code recarga un [mod](/docs/es/plugins/mods/overview) cuando cambian los archivos del mod. La recarga se aplica a un mod que cargas desde un directorio con `--plugin-dir`, y está activada de forma predeterminada en sesiones interactivas. Establécela en `1` para activarla también en sesiones no interactivas, o en `0` para desactivarla en todas las sesiones. Requiere Claude Code v2.1.287 o posterior. Consulta [configuración y variables de entorno de los mods](/docs/es/plugins/mods/reference#settings-and-environment-variables) |

358| `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE` | Establécela en `1` para omitir el intento de volver a clonar y seguir usando la copia existente del marketplace cuando una actualización del marketplace no puede acceder al remoto o autenticarse en él. Es útil en entornos sin conexión o aislados (airgapped) donde volver a clonar fallaría de la misma forma. Consulta [Las actualizaciones del marketplace fallan en entornos sin conexión](/docs/es/plugins/troubleshooting#marketplace-updates-keep-failing-offline) |360| `CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS` | Tiempo de espera en milisegundos para clonar o actualizar un marketplace de plugins (predeterminado: 120000). Aumenta este valor para repositorios grandes o conexiones de red lentas. Consulta [Git clone timed out](/docs/es/plugins/troubleshooting#git-clone-timed-out-after-120s) |

359| `CLAUDE_CODE_PLUGIN_PREFER_HTTPS` | Establécela en `1` para clonar los orígenes abreviados `owner/repo` de GitHub a través de HTTPS en lugar de SSH. Se aplica a la instalación y actualización de plugins, y a `/plugin marketplace add` y `update`. Es útil en runners de CI, contenedores o cualquier entorno sin una clave SSH configurada para `github.com` |361| `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE` | Establécela en `1` para omitir el intento de volver a clonar y seguir usando la copia existente del marketplace cuando una actualización del marketplace no puede alcanzar el remoto o autenticarse en él. Útil en entornos sin conexión o aislados donde volver a clonar fallaría de la misma manera. Consulta [Las actualizaciones del marketplace fallan en entornos sin conexión](/docs/es/plugins/troubleshooting#marketplace-updates-keep-failing-offline) |

360| `CLAUDE_CODE_PLUGIN_SEED_DIR` | Ruta a uno o más directorios semilla de plugins de solo lectura, separados por `:` en Unix o por `;` en Windows. Úsala para incluir un directorio de plugins previamente llenado en una imagen de contenedor. Claude Code registra los marketplaces de estos directorios al iniciar y usa los plugins almacenados previamente en caché sin volver a clonarlos. Consulta [Llenar previamente los plugins para contenedores](/docs/es/plugins/org#seed-containers-and-ci) |362| `CLAUDE_CODE_PLUGIN_PREFER_HTTPS` | Establécela en `1` para clonar fuentes con la abreviatura `owner/repo` de GitHub mediante HTTPS en lugar de SSH. Se aplica a la instalación y actualización de plugins, y a `/plugin marketplace add` y `update`. Útil en runners de CI, contenedores o cualquier entorno sin una clave SSH configurada para `github.com` |

361| `CLAUDE_CODE_POWERSHELL_RESPECT_EXECUTION_POLICY` | Establécela en `1` para que Claude Code deje de pasar `-ExecutionPolicy Bypass` al iniciar PowerShell para llamadas a herramientas, hooks y comandos de la línea de estado, y respete en su lugar la directiva de ejecución efectiva de la máquina. De forma predeterminada, Claude Code omite la directiva de ejecución en el alcance del proceso para que los scripts `.ps1` y las importaciones de módulos funcionen en instalaciones de Windows con Restricted de forma predeterminada. La omisión en el alcance del proceso nunca sobrescribe las directivas de grupo `MachinePolicy` ni `UserPolicy`, independientemente de este ajuste |363| `CLAUDE_CODE_PLUGIN_SEED_DIR` | Ruta a uno o más directorios semilla de plugins de solo lectura, separados por `:` en Unix o `;` en Windows. Úsala para incluir un directorio de plugins prepoblado en una imagen de contenedor. Claude Code registra los marketplaces de estos directorios al inicio y usa los plugins almacenados previamente en caché sin volver a clonarlos. Consulta [Prepoblar plugins para contenedores](/docs/es/plugins/org#seed-containers-and-ci) |

362| `CLAUDE_CODE_PRINT_BG_WAIT_CEILING_MS` | Límite máximo en milisegundos de la espera inactiva del trabajo en segundo plano, como subagentes y flujos de trabajo, después del turno final en el [modo no interactivo](/docs/es/headless#background-tasks-at-exit) con el flag `-p`. La espera inactiva se reinicia cada vez que Claude toma un turno para gestionar un resultado en segundo plano. Predeterminado: `600000`, o 10 minutos. Cuando la espera inactiva alcanza el límite, Claude Code deja de esperar las tareas en segundo plano restantes y sale. Establécela en `0` para esperar indefinidamente. Este límite es independiente del período de gracia de cinco segundos que se aplica a los shells en segundo plano simples. Requiere Claude Code v2.1.182 o posterior |364| `CLAUDE_CODE_POWERSHELL_RESPECT_EXECUTION_POLICY` | Establécela en `1` para que Claude Code deje de pasar `-ExecutionPolicy Bypass` al iniciar PowerShell para llamadas a herramientas, hooks y comandos de la línea de estado, y respete en su lugar la directiva de ejecución efectiva de la máquina. De forma predeterminada, Claude Code omite la directiva de ejecución en el alcance del proceso para que los scripts `.ps1` y las importaciones de módulos funcionen en instalaciones de Windows con la directiva predeterminada Restricted. La omisión en el alcance del proceso nunca sobrescribe `MachinePolicy` ni `UserPolicy` de la directiva de grupo, independientemente de este ajuste |

363| `CLAUDE_CODE_PROCESS_WRAPPER` | Inicia los procesos que Claude Code lanza desde su propio binario, como el servicio en segundo plano que aloja las sesiones de [agent view](/docs/es/agent-view), a través de un lanzador corporativo indicado como prefijo argv, como `/opt/corp/launcher`. Establécela en el bloque `env` de la configuración de usuario o de la [configuración administrada](/docs/es/managed-settings), no como una exportación del shell, para que el servicio en segundo plano desvinculado la herede; la configuración de proyecto y local no puede establecerla. Equivale al [ajuste `processWrapper`](/docs/es/settings-reference#processwrapper), que requiere Claude Code v2.1.210 o posterior; esta variable tiene precedencia cuando ambos están establecidos. La extensión de VS Code configura su propio lanzador por separado mediante su ajuste `claudeProcessWrapper`. Se ignora en Windows. Consulta [Ejecutar Claude Code detrás de un lanzador corporativo](/docs/es/corporate-launcher) para conocer el formato del valor, qué cubre el lanzador y el contrato que debe cumplir el lanzador. Requiere Claude Code v2.1.208 o posterior |365| `CLAUDE_CODE_PRINT_BG_WAIT_CEILING_MS` | Límite máximo en milisegundos de la espera inactiva del trabajo en segundo plano, como subagentes y flujos de trabajo, después del turno final en [modo no interactivo](/docs/es/headless#background-tasks-at-exit) con el flag `-p`. La espera inactiva se reinicia cada vez que Claude toma un turno para manejar un resultado en segundo plano. Predeterminado: `600000`, o 10 minutos. Cuando la espera inactiva alcanza el límite máximo, Claude Code deja de esperar las tareas en segundo plano restantes y sale. Establécela en `0` para esperar indefinidamente. Este límite es independiente del período de gracia de cinco segundos que se aplica a los shells en segundo plano simples. Requiere Claude Code v2.1.182 o posterior |

364| `CLAUDE_CODE_PROJECT_DIR_NAME` | Establécela junto con `CLAUDE_CONFIG_DIR` para elegir el nombre del directorio de `projects/` bajo el cual Claude Code almacena las transcripciones y la memoria automática de esa sesión, en lugar de uno derivado de la ruta del directorio de trabajo. Por ejemplo, iniciar Claude Code con `CLAUDE_CONFIG_DIR=/srv/tenant-a CLAUDE_CODE_PROJECT_DIR_NAME=work claude` los almacena en `/srv/tenant-a/projects/work/`. Claude Code ignora esta variable cuando `CLAUDE_CONFIG_DIR` no está establecida, y solo la lee del entorno desde el que inicias `claude`, nunca de un [bloque `env` de un archivo de configuración](#in-settings-files). Consulta [Nombrar tú mismo el directorio del proyecto](/docs/es/sessions#name-the-project-directory-yourself). Requiere Claude Code v2.1.234 o posterior |366| `CLAUDE_CODE_PROCESS_WRAPPER` | Inicia los procesos que Claude Code lanza desde su propio binario, como el servicio en segundo plano que aloja las sesiones de la [vista de agentes](/docs/es/agent-view), a través de un lanzador corporativo indicado como prefijo de argv, como `/opt/corp/launcher`. Establécela en el bloque `env` de la configuración de usuario o de la [configuración administrada](/docs/es/managed-settings), no como una exportación del shell, para que el servicio en segundo plano desacoplado la herede; la configuración de proyecto y local no puede establecerla. Equivale al [ajuste `processWrapper`](/docs/es/settings-reference#processwrapper), que requiere Claude Code v2.1.210 o posterior; esta variable tiene precedencia cuando ambos están establecidos. La extensión de VS Code configura su propio lanzador por separado mediante su ajuste `claudeProcessWrapper`. Se ignora en Windows. Consulta [Ejecutar Claude Code detrás de un lanzador corporativo](/docs/es/corporate-launcher) para conocer el formato del valor, lo que cubre el lanzador y el contrato que debe cumplir el lanzador. Requiere Claude Code v2.1.208 o posterior |

365| `CLAUDE_CODE_PROMPT_CACHE_TTL` | Establécela en `5m` o `1h`, los únicos valores que acepta Claude Code, para elegir el [TTL de la caché de prompts](/docs/es/prompt-caching#cache-lifetime) de la conversación principal: tus turnos interactivos, con `-p` y del SDK, además de los asistentes que se ejecutan en línea con ellos. Tiene precedencia sobre el ajuste `promptCacheTtl` y sobre `ENABLE_PROMPT_CACHING_1H`, y `FORCE_PROMPT_CACHING_5M` la sobrescribe. La API factura las escrituras en caché de 1 hora a una tarifa más alta. Requiere Claude Code v2.1.242 o posterior |367| `CLAUDE_CODE_PROJECT_DIR_NAME` | Establécela junto con `CLAUDE_CONFIG_DIR` para elegir el nombre del directorio de `projects/` en el que Claude Code almacena las transcripciones y la memoria automática de esa sesión, en lugar de uno derivado de la ruta del directorio de trabajo. Por ejemplo, iniciar Claude Code con `CLAUDE_CONFIG_DIR=/srv/tenant-a CLAUDE_CODE_PROJECT_DIR_NAME=work claude` las almacena en `/srv/tenant-a/projects/work/`. Claude Code ignora esta variable cuando `CLAUDE_CONFIG_DIR` no está establecida, y solo la lee del entorno desde el que inicias `claude`, nunca del [bloque `env` de un archivo de configuración](#in-settings-files). Consulta [Nombrar tú mismo el directorio del proyecto](/docs/es/sessions#name-the-project-directory-yourself). Requiere Claude Code v2.1.234 o posterior |

366| `CLAUDE_CODE_PROPAGATE_TRACEPARENT` | Establécela en `1` para propagar el contexto de traza W3C cuando `ANTHROPIC_BASE_URL` apunta a un proxy personalizado. La propagación cubre el encabezado `traceparent` en las solicitudes al modelo y a MCP por HTTP, y la variable de entorno `TRACEPARENT` para los subprocesos de Bash, PowerShell y hooks. De forma predeterminada, la propagación solo está activada cuando hay una conexión directa a la API de Anthropic. Se agregó en la v2.1.152. Consulta [Trazas (beta)](/docs/es/monitoring-usage#traces-beta) |368| `CLAUDE_CODE_PROMPT_CACHE_TTL` | Establece `5m` o `1h`, los únicos valores que acepta Claude Code, para elegir el [TTL de la caché de prompts](/docs/es/prompt-caching#cache-lifetime) de la conversación principal: tus turnos interactivos, de `-p` y del SDK, además de los auxiliares que se ejecutan en línea con ellos. Tiene precedencia sobre el ajuste `promptCacheTtl` y sobre `ENABLE_PROMPT_CACHING_1H`, y `FORCE_PROMPT_CACHING_5M` la sobrescribe. La API factura las escrituras en caché de 1 hora a una tarifa más alta. Requiere Claude Code v2.1.242 o posterior |

367| `CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST` | La establecen las plataformas host que integran Claude Code y gestionan el enrutamiento del proveedor del modelo en su nombre. Cuando está establecida, Claude Code ignora en los archivos de configuración las variables de selección de proveedor, endpoint y autenticación, como `CLAUDE_CODE_USE_BEDROCK`, `ANTHROPIC_BASE_URL` y `ANTHROPIC_API_KEY`, de modo que la configuración de usuario no puede sobrescribir el enrutamiento del host. Claude Code también ignora las claves de selección de modelo, como `model`, `fallbackModel` y `modelOverrides`, en la [configuración administrada](/docs/es/managed-settings), sea cual sea el origen administrado que las entregue, de modo que la configuración de modelo del host tiene precedencia sobre una fijación de modelo administrada desactualizada. Claude Code también ignora las variables de selección de modelo, como `ANTHROPIC_MODEL` y la familia `ANTHROPIC_DEFAULT_*_MODEL`, en un bloque `env` administrado; una lista de modelos permitidos [`availableModels`](/docs/es/model-config#restrict-model-selection) en la configuración administrada se sigue aplicando, a menos que el host proporcione la suya. Claude Code también omite la exclusión automática de la telemetría que aplica en otros casos en proveedores externos como Amazon Bedrock, Claude Platform on AWS, Google Cloud's Agent Platform y Microsoft Foundry, de modo que la telemetría sigue la exclusión estándar con `DISABLE_TELEMETRY`. Consulta [Comportamientos predeterminados por proveedor de API](/docs/es/data-usage#default-behaviors-by-api-provider) |369| `CLAUDE_CODE_PROPAGATE_TRACEPARENT` | Establécela en `1` para propagar el contexto de traza W3C cuando `ANTHROPIC_BASE_URL` apunta a un proxy personalizado. La propagación cubre el encabezado `traceparent` en las solicitudes al modelo y a MCP por HTTP, y la variable de entorno `TRACEPARENT` para los subprocesos de Bash, PowerShell y hooks. De forma predeterminada, la propagación solo está habilitada cuando hay conexión directa a la API de Anthropic. Se agregó en v2.1.152. Consulta [Trazas (beta)](/docs/es/monitoring-usage#traces-beta) |

368| `CLAUDE_CODE_PROXY_RESOLVES_HOSTS` | Establécela en `1` para permitir que el proxy realice la resolución DNS en lugar del llamador. Es una opción para entornos en los que el proxy debe encargarse de la resolución de nombres de host |370| `CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST` | La establecen las plataformas host que integran Claude Code y administran el enrutamiento del proveedor de modelos en su nombre. Cuando se establece, Claude Code ignora las variables de selección de proveedor, endpoint y autenticación, como `CLAUDE_CODE_USE_BEDROCK`, `ANTHROPIC_BASE_URL` y `ANTHROPIC_API_KEY`, en los archivos de configuración, de modo que la configuración de usuario no puede sobrescribir el enrutamiento del host. Claude Code también ignora las claves de selección de modelo, como `model`, `fallbackModel` y `modelOverrides`, en la [configuración administrada](/docs/es/managed-settings), sea cual sea la fuente administrada que las entregue, de modo que la configuración de modelos del host tiene precedencia sobre una fijación de modelo administrada desactualizada. Claude Code también ignora las variables de selección de modelo, como `ANTHROPIC_MODEL` y la familia `ANTHROPIC_DEFAULT_*_MODEL`, en un bloque `env` administrado; una lista de permitidos [`availableModels`](/docs/es/model-config#restrict-model-selection) en la configuración administrada sigue aplicándose a menos que el host proporcione la suya. Claude Code también omite la exclusión automática de telemetría que de otro modo aplica en proveedores externos como Amazon Bedrock, Claude Platform on AWS, Google Cloud's Agent Platform y Microsoft Foundry, por lo que la telemetría sigue la exclusión estándar `DISABLE_TELEMETRY`. Consulta [Comportamientos predeterminados por proveedor de API](/docs/es/data-usage#default-behaviors-by-api-provider) |

371| `CLAUDE_CODE_PROXY_RESOLVES_HOSTS` | Establécela en `1` para permitir que el proxy realice la resolución DNS en lugar del llamador. Opción de activación voluntaria para entornos donde el proxy debe encargarse de la resolución de nombres de host |

369| `CLAUDE_CODE_REMOTE` | Se establece automáticamente en `true` cuando Claude Code se ejecuta como una [sesión en la nube](/docs/es/claude-code-on-the-web). Léela desde un hook o un script de configuración para detectar si estás en una sesión en la nube |372| `CLAUDE_CODE_REMOTE` | Se establece automáticamente en `true` cuando Claude Code se ejecuta como una [sesión en la nube](/docs/es/claude-code-on-the-web). Léela desde un hook o un script de configuración para detectar si estás en una sesión en la nube |

370| `CLAUDE_CODE_REMOTE_SESSION_ID` | Se establece automáticamente en las [sesiones en la nube](/docs/es/claude-code-on-the-web) con el ID de la sesión actual. Léela para construir un enlace de regreso a la transcripción de la sesión. Consulta [Enlazar la salida de vuelta a la sesión](/docs/es/cloud-environments#link-output-back-to-the-session) |373| `CLAUDE_CODE_REMOTE_SESSION_ID` | Se establece automáticamente en las [sesiones en la nube](/docs/es/claude-code-on-the-web) con el ID de la sesión actual. Léela para construir un enlace de vuelta a la transcripción de la sesión. Consulta [Enlazar la salida de vuelta a la sesión](/docs/es/cloud-environments#link-output-back-to-the-session) |

371| `CLAUDE_CODE_RESTRICTED` | Establécela en `1` para iniciar la sesión en modo restringido, lo mismo que pasar [`--restricted`](/docs/es/cli-reference#cli-flags). Claude Code ignora esta variable en el bloque `env` de un archivo de configuración. Requiere Claude Code v2.1.248 o posterior |374| `CLAUDE_CODE_RESTRICTED` | Establécela en `1` para iniciar la sesión en modo restringido, lo mismo que pasar [`--restricted`](/docs/es/cli-reference#cli-flags). Claude Code ignora esta variable en el bloque `env` de un archivo de configuración. Requiere Claude Code v2.1.248 o posterior |

372| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` | Establécela en `1` para reanudar automáticamente si la sesión anterior terminó a mitad de un turno. Se usa en el modo SDK para que el modelo continúe sin que el SDK tenga que volver a enviar el prompt. Para desactivarla, elimina la variable o establécela en `0`. Para el panel de chat de VS Code, consulta [Continuar conversaciones después de recargar](/docs/es/vs-code#continue-conversations-after-a-reload) |375| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` | Establécela en `1` para reanudar automáticamente si la sesión anterior terminó a mitad de un turno. Se usa en el modo SDK para que el modelo continúe sin que el SDK tenga que volver a enviar el prompt. Para desactivarla, elimina la variable o establécela en `0`. Para el panel de chat de VS Code, consulta [Continuar conversaciones después de recargar](/docs/es/vs-code#continue-conversations-after-a-reload) |

373| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN_MAX_AGE_MS` | Antigüedad máxima en milisegundos del último mensaje de la transcripción para que una sesión que terminó a mitad de un turno continúe automáticamente al reanudarse. Cuando el último mensaje es más antiguo que este límite, Claude Code omite la reanudación automática de `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` y su mensaje de continuación `CLAUDE_CODE_RESUME_PROMPT`, y la sesión se inicia inactiva para que continúes de forma explícita. Sin establecer o `0` significa sin límite, excepto que un turno cuya última solicitud falló con un error de la API solo se reanuda mientras ese error tenga menos de seis horas de antigüedad. Un valor positivo limita todos los turnos, incluidos esos; un valor negativo o no numérico aplica un límite de una hora. Los scripts que inician agentes de larga duración pueden establecerla para que un reinicio sobre una transcripción antigua no vuelva a ejecutar un prompt obsoleto. Claude Code establece por sí mismo un límite de una hora cuando reinicia una sesión de [agent view](/docs/es/agent-view) que falló y que heredó su conversación de una sesión interactiva. Requiere Claude Code v2.1.211 o posterior |376| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN_MAX_AGE_MS` | Antigüedad máxima en milisegundos del último mensaje de la transcripción para que una sesión que terminó a mitad de un turno continúe automáticamente al reanudarse. Cuando el último mensaje es más antiguo que este límite, Claude Code omite la reanudación automática de `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` y su mensaje de continuación `CLAUDE_CODE_RESUME_PROMPT`, y la sesión se inicia inactiva para que continúes explícitamente. Sin establecer o `0` significa sin límite, excepto que un turno cuya última solicitud falló con un error de API solo se reanuda mientras ese error tenga menos de seis horas de antigüedad. Un valor positivo limita todos los turnos, incluidos esos; un valor negativo o no numérico aplica un límite de una hora. Los scripts de inicio para agentes de larga duración pueden establecerla para que un reinicio sobre una transcripción antigua no vuelva a ejecutar un prompt obsoleto. Claude Code establece por sí mismo un límite de una hora cuando reinicia una sesión de la [vista de agentes](/docs/es/agent-view) que falló y que heredó su conversación de una sesión interactiva. Requiere Claude Code v2.1.211 o posterior |

374| `CLAUDE_CODE_RESUME_PROMPT` | Sobrescribe el mensaje de continuación que Claude Code envía a Claude cuando `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` continúa un turno interrumpido en lugar de volver a enviar su prompt, o cuando reanudas una [llamada a herramienta diferida](/docs/es/hooks#defer-a-tool-call-for-later) con `-p`. El valor predeterminado es `Continue from where you left off.`. Una cadena vacía usa el valor predeterminado |377| `CLAUDE_CODE_RESUME_PROMPT` | Sobrescribe el mensaje de continuación que Claude Code envía a Claude cuando `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` continúa un turno interrumpido en lugar de reenviar su prompt, o cuando reanudas una [llamada a herramienta diferida](/docs/es/hooks#defer-a-tool-call-for-later) con `-p`. El valor predeterminado es `Continue from where you left off.`. Una cadena vacía usa el predeterminado |

375| `CLAUDE_CODE_RETRY_WATCHDOG` | Establécela en `1` para sesiones desatendidas, como arneses de evaluación, trabajos de CI o trabajadores remotos. Reintenta indefinidamente los errores de capacidad `429` y `529` en lugar de fallar después de `CLAUDE_CODE_MAX_RETRIES` intentos. Claude Code falla de inmediato cuando una solicitud de velocidad estándar recibe un `429` que informa de un límite de gasto o de créditos de uso agotados, incluso uno procedente de un [límite de gasto del gateway](/docs/es/errors#spend-limit-reached) que se restablece según una programación. Antes de la v2.1.239, el watchdog los reintentaba indefinidamente. Para las solicitudes en modo rápido, consulta [Gestionar los rate limits](/docs/es/fast-mode#handle-rate-limits). El watchdog espera hasta 5 minutos entre intentos, o hasta que se restablezca el límite cuando la respuesta incluye una hora de restablecimiento del rate limit, de modo que una sesión que alcanza un límite de uso espera a que pase la ventana restante. En la v2.1.199 o posterior, también aumenta a 300 el número predeterminado de reintentos para otros errores transitorios, como errores del servidor, tiempos de espera agotados y conexiones interrumpidas, lo que equivale aproximadamente a tres horas de espera, y elimina el límite de 15 en `CLAUDE_CODE_MAX_RETRIES` si estableces esa variable explícitamente. Requiere Claude Code v2.1.186 o posterior |378| `CLAUDE_CODE_RETRY_WATCHDOG` | Establécela en `1` para sesiones desatendidas, como harnesses de evaluación, trabajos de CI o workers remotos. Reintenta indefinidamente los errores de capacidad `429` y `529` en lugar de fallar después de `CLAUDE_CODE_MAX_RETRIES` intentos. Claude Code falla de inmediato cuando una solicitud de velocidad estándar recibe un `429` que informa de un límite de gasto o de créditos de uso agotados, incluso uno de un [límite de gasto del gateway](/docs/es/errors#spend-limit-reached) que se restablece según un calendario. Antes de v2.1.239, el watchdog los reintentaba indefinidamente. Para las solicitudes en modo rápido, consulta [Gestionar los rate limits](/docs/es/fast-mode#handle-rate-limits). El watchdog espera hasta 5 minutos entre intentos, o hasta que se restablece el límite cuando la respuesta incluye una hora de restablecimiento del rate limit, de modo que una sesión que alcanza un límite de uso espera a que termine la ventana restante. En v2.1.199 o posterior, también aumenta a 300 el número predeterminado de reintentos para otros errores transitorios, como errores del servidor, tiempos de espera agotados y conexiones perdidas, lo que equivale aproximadamente a tres horas de espera, y elimina el límite de 15 en `CLAUDE_CODE_MAX_RETRIES` si estableces esa variable explícitamente. Requiere Claude Code v2.1.186 o posterior |

376| `CLAUDE_CODE_SAFE_MODE` | Establécela en `1` para iniciar en modo seguro: CLAUDE.md, skills, plugins, hooks, servidores MCP, comandos y agentes personalizados, estilos de salida, flujos de trabajo, temas personalizados, atajos de teclado personalizados, comandos de la línea de estado y de sugerencia de archivos, servidores LSP y memoria automática no se cargan, para solucionar problemas de una configuración dañada. La política de configuración administrada sigue aplicándose, incluidos los hooks, la línea de estado y los comandos de sugerencia de archivos configurados por la política; los plugins administrados, los skills administrados, el CLAUDE.md administrado y los servidores MCP configurados por la política no se cargan. Equivale a pasar [`--safe-mode`](/docs/es/cli-reference#cli-flags). Los procesos hijos iniciados directamente heredan la variable |379| `CLAUDE_CODE_SAFE_MODE` | Establécela en `1` para iniciar en modo seguro: CLAUDE.md, skills, plugins, hooks, servidores MCP, comandos y agentes personalizados, estilos de salida, flujos de trabajo, temas personalizados, atajos de teclado personalizados, comandos de línea de estado y de sugerencia de archivos, servidores LSP y memoria automática no se cargan, para solucionar problemas de una configuración defectuosa. La política de configuración administrada sigue aplicándose, incluidos los hooks, la línea de estado y los comandos de sugerencia de archivos configurados por la política; los plugins administrados, los skills administrados, el CLAUDE.md administrado y los servidores MCP configurados por la política no. Equivale a pasar [`--safe-mode`](/docs/es/cli-reference#cli-flags). Los procesos hijos generados directamente heredan la variable |

377| `CLAUDE_CODE_SCRIPT_CAPS` | Objeto JSON que limita cuántas veces se pueden invocar scripts específicos por sesión cuando `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` está establecida. Las claves son subcadenas que se comparan con el texto del comando; los valores son límites enteros de llamadas. Por ejemplo, `{"deploy.sh": 2}` permite llamar a `deploy.sh` como máximo dos veces. La coincidencia se basa en subcadenas, por lo que trucos de expansión del shell como `./scripts/deploy.sh $(evil)` siguen contando para el límite. La ramificación en tiempo de ejecución mediante `xargs` o `find -exec` no se detecta; este es un control de defensa en profundidad |380| `CLAUDE_CODE_SCRIPT_CAPS` | Objeto JSON que limita cuántas veces se pueden invocar scripts específicos por sesión cuando se establece `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB`. Las claves son subcadenas que se comparan con el texto del comando; los valores son límites enteros de llamadas. Por ejemplo, `{"deploy.sh": 2}` permite llamar a `deploy.sh` como máximo dos veces. La coincidencia se basa en subcadenas, por lo que los trucos de expansión del shell como `./scripts/deploy.sh $(evil)` siguen contando para el límite. La multiplicación en tiempo de ejecución mediante `xargs` o `find -exec` no se detecta; este es un control de defensa en profundidad |

378| `CLAUDE_CODE_SCROLL_SPEED` | Establece el multiplicador de desplazamiento de la rueda del mouse en la [representación en pantalla completa](/docs/es/fullscreen#mouse-wheel-scrolling). Acepta cualquier valor positivo de hasta 20, incluidos valores fraccionarios inferiores a 1, como `0.5`, para ralentizar el desplazamiento acelerado del trackpad y de la rueda en terminales que ya amplifican los eventos de la rueda. Establécela en `3` para igualar a `vim` si tu terminal envía un evento de rueda por muesca sin amplificación. Se ignora en la terminal del IDE de JetBrains, donde Claude Code usa su propio manejo del desplazamiento |381| `CLAUDE_CODE_SCROLL_SPEED` | Establece el multiplicador de desplazamiento de la rueda del mouse en la [representación en pantalla completa](/docs/es/fullscreen#mouse-wheel-scrolling). Acepta cualquier valor positivo hasta 20, incluidos valores fraccionarios inferiores a 1, como `0.5`, para ralentizar el desplazamiento acelerado del trackpad y de la rueda en terminales que ya amplifican los eventos de la rueda. Establécela en `3` para igualar a `vim` si tu terminal envía un evento de rueda por cada muesca sin amplificación. Se ignora en la terminal del IDE de JetBrains, donde Claude Code usa su propio manejo del desplazamiento |

379| `CLAUDE_CODE_SEND_FEEDBACK` | Establécela en `0` para desactivar los [comentarios redactados por Claude](/docs/es/tools-reference#sendfeedback-tool-behavior) en una sesión. Establécela en `1` para activarlos cuando tu cuenta ya tiene acceso; la variable no puede conceder el acceso por sí misma, y los demás interruptores que desactivan los comentarios, como `DISABLE_FEEDBACK_COMMAND` y el valor `off` del ajuste [`feedbackDrafts`](/docs/es/settings-reference#feedbackdrafts), siguen aplicándose |382| `CLAUDE_CODE_SEND_FEEDBACK` | Establécela en `0` para desactivar los [comentarios redactados por Claude](/docs/es/tools-reference#sendfeedback-tool-behavior) en una sesión. Establécela en `1` para activarlos donde tu cuenta ya tiene acceso; la variable no puede conceder acceso por sí misma, y los otros interruptores que desactivan los comentarios, como `DISABLE_FEEDBACK_COMMAND` y el valor `off` del ajuste [`feedbackDrafts`](/docs/es/settings-reference#feedbackdrafts), siguen aplicándose |

380| `CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS` | Sobrescribe el presupuesto de tiempo en milisegundos para los hooks [SessionEnd](/docs/es/hooks#sessionend). El valor también es el tiempo de espera de cada hook que no establece su propio `timeout`. Se aplica al salir de la sesión, a `/clear` y al cambiar de sesión mediante `/resume` interactivo. De forma predeterminada, el presupuesto es de 1,5 segundos y se eleva automáticamente al `timeout` por hook más alto configurado en los archivos de configuración, hasta 60 segundos. Los tiempos de espera de los hooks proporcionados por plugins no elevan el presupuesto |383| `CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS` | Sobrescribe el presupuesto de tiempo en milisegundos para los hooks [SessionEnd](/docs/es/hooks#sessionend). El valor también es el tiempo de espera para cada hook que no establece su propio `timeout`. Se aplica al salir de la sesión, a `/clear` y al cambiar de sesión mediante `/resume` interactivo. De forma predeterminada, el presupuesto es de 1.5 segundos, y se eleva automáticamente al `timeout` por hook más alto configurado en los archivos de configuración, hasta 60 segundos. Los tiempos de espera de los hooks proporcionados por plugins no elevan el presupuesto |

381| `CLAUDE_CODE_SESSION_ID` | Se establece automáticamente con el ID de la sesión actual en los subprocesos de las herramientas Bash y PowerShell, en los subprocesos de los [comandos de hooks](/docs/es/hooks) y en los subprocesos de los [servidores MCP](/docs/es/mcp) stdio. Para Bash, PowerShell y los hooks, coincide con el campo `session_id` de la entrada JSON del hook y se actualiza con `/clear`. Un subproceso de servidor MCP conserva el ID con el que se inició. Con `--resume <session-id>` recibe el ID reanudado, igual que los hooks y Bash. Con `--continue` o `--resume` sin un ID explícito, es posible que reciba en su lugar el ID inicial del arranque. Úsala para correlacionar scripts y herramientas externas con la sesión de Claude Code que los inició |384| `CLAUDE_CODE_SESSION_ID` | Se establece automáticamente con el ID de la sesión actual en los subprocesos de las herramientas Bash y PowerShell, los subprocesos de [comandos de hook](/docs/es/hooks) y los subprocesos de [servidores MCP](/docs/es/mcp) stdio. Para Bash, PowerShell y hooks, coincide con el campo `session_id` de la entrada JSON del hook y se actualiza con `/clear`. Un subproceso de servidor MCP conserva el ID con el que se generó. Con `--resume <session-id>` recibe el ID reanudado, igual que los hooks y Bash. Con `--continue` o `--resume` sin un ID explícito, puede recibir en su lugar el ID inicial de arranque. Úsala para correlacionar scripts y herramientas externas con la sesión de Claude Code que los inició |

382| `CLAUDE_CODE_SHELL` | Establece el shell que usa Claude Code para ejecutar los comandos de la herramienta Bash. Acepta una ruta a un binario de `bash` o `zsh`, por ejemplo `/opt/homebrew/bin/bash`. Otros shells, como `fish`, no son compatibles. Si el valor no es una ruta funcional de `bash` o `zsh`, Claude Code lo ignora y recurre a la detección automática. La detección automática usa tu `$SHELL` cuando apunta a `bash` o `zsh`; de lo contrario, elige el primer `zsh` funcional y luego `bash` que encuentre en tu `PATH` y en las ubicaciones de instalación estándar |385| `CLAUDE_CODE_SHELL` | Establece el shell que Claude Code usa para ejecutar los comandos de la herramienta Bash. Acepta una ruta a un binario de `bash` o `zsh`, por ejemplo `/opt/homebrew/bin/bash`. Otros shells como `fish` no son compatibles. Si el valor no es una ruta funcional de `bash` o `zsh`, Claude Code lo ignora y recurre a la detección automática. La detección automática usa tu `$SHELL` cuando apunta a `bash` o `zsh`; de lo contrario, elige el primer `zsh` y luego `bash` funcional que encuentre en tu `PATH` y en las ubicaciones de instalación estándar |

383| `CLAUDE_CODE_SHELL_PREFIX` | Prefijo de comando que envuelve los comandos de shell que inicia Claude Code: llamadas a la herramienta Bash, comandos de [hooks](/docs/es/hooks), comandos de la [línea de estado](/docs/es/statusline) y comandos de inicio de [servidores MCP](/docs/es/mcp) stdio. Los hooks de PowerShell y los hooks en formato exec se ejecutan sin el prefijo. Es útil para registro o auditoría. Establecer una ruta de ejecutable simple, como `/path/to/logger.sh`, ejecuta cada comando como `/path/to/logger.sh '<command>'`. El envoltorio recibe la línea de comandos como un único argumento entrecomillado para el shell en `$1`, por lo que el envoltorio debe volver a evaluar `$1` con un shell, por ejemplo `exec bash -c "$1"`. Tratar `$1` como una ruta de ejecutable simple rompe los servidores MCP stdio que pasan argumentos como `npx -y <package>`. Para las llamadas a la herramienta Bash, `$1` contiene la invocación completa del shell que arma Claude Code, incluida la configuración del entorno, no solo el comando que ejecutó Claude |386| `CLAUDE_CODE_SHELL_PREFIX` | Prefijo de comando que envuelve los comandos de shell que Claude Code genera: llamadas a la herramienta Bash, comandos de [hooks](/docs/es/hooks), comandos de la [línea de estado](/docs/es/statusline) y comandos de inicio de [servidores MCP](/docs/es/mcp) stdio. Los hooks de PowerShell y los hooks en forma exec se ejecutan sin el prefijo. Útil para registro o auditoría. Establecer una ruta de ejecutable simple como `/path/to/logger.sh` ejecuta cada comando como `/path/to/logger.sh '<command>'`. El wrapper recibe la línea de comandos como un único argumento entrecomillado para el shell en `$1`, por lo que el wrapper debe volver a evaluar `$1` con un shell, por ejemplo `exec bash -c "$1"`. Tratar `$1` como una ruta de ejecutable simple rompe los servidores MCP stdio que pasan argumentos como `npx -y <package>`. Para las llamadas a la herramienta Bash, `$1` contiene la invocación completa del shell que ensambla Claude Code, incluida la configuración del entorno, no solo el comando que ejecutó Claude |

384| `CLAUDE_CODE_SIMPLE` | Establécela en `1` para ejecutar con un prompt del sistema mínimo y solo las herramientas Bash, de lectura de archivos y de edición de archivos. Las herramientas MCP de `--mcp-config` siguen disponibles. Desactiva el descubrimiento automático de hooks, skills, comandos personalizados, subagentes, plugins instalados, servidores MCP, memoria automática y CLAUDE.md. Los skills de un directorio que pasas con `--add-dir` siguen cargándose. No se leen los tokens de OAuth ni las credenciales del llavero, por lo que la autenticación de Anthropic debe provenir de `ANTHROPIC_API_KEY` o de un `apiKeyHelper` en `--settings`. Equivale a pasar [`--bare`](/docs/es/headless#start-faster-with-bare-mode) |387| `CLAUDE_CODE_SIMPLE` | Establécela en `1` para ejecutar con un prompt del sistema mínimo y solo las herramientas Bash, de lectura de archivos y de edición de archivos. Las herramientas MCP de `--mcp-config` siguen disponibles. Deshabilita el descubrimiento automático de hooks, skills, comandos personalizados, subagentes, plugins instalados, servidores MCP, memoria automática y CLAUDE.md. Los skills de un directorio que pasas con `--add-dir` se siguen cargando. Los tokens de OAuth y las credenciales del llavero no se leen, por lo que la autenticación de Anthropic debe provenir de `ANTHROPIC_API_KEY` o de un `apiKeyHelper` en `--settings`. Equivale a pasar [`--bare`](/docs/es/headless#start-faster-with-bare-mode) |

385| `CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT` | Establécela en `1` para usar un prompt del sistema más corto y descripciones de herramientas abreviadas en cualquier modelo. Establécela en `0`, `false`, `no` u `off` para desactivarlo incluso en modelos en los que el experimento o la configuración del servidor lo activarían en otro caso. El conjunto completo de herramientas, los hooks, los servidores MCP y el descubrimiento de CLAUDE.md siguen activados |388| `CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT` | Establécela en `1` para usar un prompt del sistema más corto y descripciones de herramientas abreviadas en cualquier modelo. Establécela en `0`, `false`, `no` u `off` para excluirte incluso en modelos donde el experimento o la configuración del servidor lo habilitarían de otro modo. El conjunto completo de herramientas, los hooks, los servidores MCP y el descubrimiento de CLAUDE.md siguen habilitados |

386| `CLAUDE_CODE_SKIP_ANTHROPIC_AWS_AUTH` | Omite la autenticación del lado del cliente para [Claude Platform on AWS](/docs/es/claude-platform-on-aws), para gateways que firman las solicitudes por sí mismos |389| `CLAUDE_CODE_SKIP_ANTHROPIC_AWS_AUTH` | Omite la autenticación del lado del cliente para [Claude Platform on AWS](/docs/es/claude-platform-on-aws), para gateways que firman las solicitudes por sí mismos |

387| `CLAUDE_CODE_SKIP_AWS_CRED_CACHE` | Establécela en `1` para desactivar la caché en proceso de las credenciales resueltas a partir de la cadena de proveedores de credenciales predeterminada de AWS, de modo que Claude Code resuelva la cadena en cada solicitud a la API. Con la caché desactivada, un perfil respaldado por SSO solicita credenciales a IAM Identity Center en cada solicitud. Consulta [almacenamiento en caché de credenciales y tiempo de espera de resolución](/docs/es/amazon-bedrock#credential-caching-and-resolution-timeout). Requiere Claude Code v2.1.207 o posterior |390| `CLAUDE_CODE_SKIP_AWS_CRED_CACHE` | Establécela en `1` para desactivar la caché en proceso de las credenciales resueltas a partir de la cadena de proveedores de credenciales predeterminada de AWS, de modo que Claude Code resuelva la cadena en cada solicitud a la API. Con la caché desactivada, un perfil respaldado por SSO solicita credenciales a IAM Identity Center en cada solicitud. Consulta [almacenamiento en caché de credenciales y tiempo de espera de resolución](/docs/es/amazon-bedrock#credential-caching-and-resolution-timeout). Requiere Claude Code v2.1.207 o posterior |

388| `CLAUDE_CODE_SKIP_BEDROCK_AUTH` | Omite la autenticación de AWS para Amazon Bedrock (por ejemplo, al usar un gateway de LLM) |391| `CLAUDE_CODE_SKIP_BEDROCK_AUTH` | Omite la autenticación de AWS para Amazon Bedrock (por ejemplo, al usar un gateway de LLM) |

389| `CLAUDE_CODE_SKIP_FAST_MODE_NETWORK_ERRORS` | Establécela en `1` para tratar una comprobación fallida de disponibilidad del [modo rápido](/docs/es/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) como disponible, para redes que bloquean la solicitud directa de la comprobación a `api.anthropic.com`. Claude Code sigue respetando una respuesta "disabled by your organization" |392| `CLAUDE_CODE_SKIP_FAST_MODE_NETWORK_ERRORS` | Establécela en `1` para tratar como disponible una comprobación de disponibilidad del [modo rápido](/docs/es/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) que falló, para redes que bloquean la solicitud directa de la comprobación a `api.anthropic.com`. Claude Code sigue respetando una respuesta "disabled by your organization" |

390| `CLAUDE_CODE_SKIP_FAST_MODE_ORG_CHECK` | Establécela en `1` para omitir la comprobación de disponibilidad del [modo rápido](/docs/es/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) del lado del cliente, para proxies que interceptan la solicitud de la comprobación en lugar de rechazarla. La API sigue rechazando las solicitudes en modo rápido cuando tu organización tiene el modo rápido desactivado |393| `CLAUDE_CODE_SKIP_FAST_MODE_ORG_CHECK` | Establécela en `1` para omitir la comprobación de disponibilidad del [modo rápido](/docs/es/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) del lado del cliente, para proxies que interceptan la solicitud de la comprobación en lugar de rechazarla. La API sigue rechazando las solicitudes en modo rápido cuando tu organización tiene el modo rápido deshabilitado |

391| `CLAUDE_CODE_SKIP_FOUNDRY_AUTH` | Omite la autenticación de Azure para Microsoft Foundry, para un proxy o gateway que inyecta su propio encabezado `Authorization`. Claude Code envía las solicitudes sin una credencial de Azure y conserva el encabezado `Authorization` que proporcionas, por ejemplo mediante `ANTHROPIC_CUSTOM_HEADERS`. Se ignora cuando `ANTHROPIC_FOUNDRY_API_KEY` o `ANTHROPIC_FOUNDRY_AUTH_TOKEN` está establecida. Antes de la v2.1.203, esta variable dejaba al cliente de Microsoft Foundry sin poder enviar solicitudes a menos que también se estableciera una clave de API |394| `CLAUDE_CODE_SKIP_FOUNDRY_AUTH` | Omite la autenticación de Azure para Microsoft Foundry, para un proxy o gateway que inyecta su propio encabezado `Authorization`. Claude Code envía las solicitudes sin una credencial de Azure y conserva el encabezado `Authorization` que proporcionas, por ejemplo mediante `ANTHROPIC_CUSTOM_HEADERS`. Se ignora cuando se establece `ANTHROPIC_FOUNDRY_API_KEY` o `ANTHROPIC_FOUNDRY_AUTH_TOKEN`. Antes de v2.1.203, esta variable dejaba al cliente de Microsoft Foundry sin poder enviar solicitudes a menos que también se estableciera una clave de API |

392| `CLAUDE_CODE_SKIP_MANTLE_AUTH` | Omite la autenticación de AWS para Amazon Bedrock Mantle (por ejemplo, al usar un gateway de LLM) |395| `CLAUDE_CODE_SKIP_MANTLE_AUTH` | Omite la autenticación de AWS para Amazon Bedrock Mantle (por ejemplo, al usar un gateway de LLM) |

393| `CLAUDE_CODE_SKIP_MODEL_ACCESS_MEMORY` | Las [comprobaciones de modelos al iniciar](/docs/es/amazon-bedrock#startup-model-checks) en [Amazon Bedrock](/docs/es/amazon-bedrock) y [Google Cloud's Agent Platform](/docs/es/google-vertex-ai) recuerdan en esta máquina, durante un máximo de un día, qué modelos detectaron que tu cuenta no puede invocar. Establécela en `1` para desactivar esa memoria. Requiere Claude Code v2.1.285 o posterior |396| `CLAUDE_CODE_SKIP_MODEL_ACCESS_MEMORY` | Las [comprobaciones de modelos al inicio](/docs/es/amazon-bedrock#startup-model-checks) en [Amazon Bedrock](/docs/es/amazon-bedrock) y [Google Cloud's Agent Platform](/docs/es/google-vertex-ai) recuerdan en esta máquina qué modelos descubrieron que tu cuenta no puede invocar, durante un máximo de un día. Establécela en `1` para desactivar esa memoria. Requiere Claude Code v2.1.285 o posterior |

394| `CLAUDE_CODE_SKIP_PROMPT_HISTORY` | Establécela en `1` para no escribir en disco el historial de prompts ni las transcripciones de sesión. Las sesiones iniciadas con esta variable establecida no aparecen en `--resume`, `--continue` ni en el historial de la flecha hacia arriba. Es útil para sesiones efímeras con scripts |397| `CLAUDE_CODE_SKIP_PROMPT_HISTORY` | Establécela en `1` para omitir la escritura del historial de prompts y de las transcripciones de sesión en el disco. Las sesiones iniciadas con esta variable establecida no aparecen en `--resume`, `--continue` ni en el historial de la flecha hacia arriba. Útil para sesiones efímeras con scripts |

395| `CLAUDE_CODE_SKIP_VERTEX_AUTH` | Omite la autenticación de Google para Google Cloud's Agent Platform (por ejemplo, al usar un gateway de LLM) |398| `CLAUDE_CODE_SKIP_VERTEX_AUTH` | Omite la autenticación de Google para Google Cloud's Agent Platform (por ejemplo, al usar un gateway de LLM) |

396| `CLAUDE_CODE_STARTUP_FAILURE_RESULTS` | Establécela en `1` para que una sesión iniciada con `--output-format stream-json` escriba un [mensaje de resultado que indique por qué Claude Code se negó a iniciar](/docs/es/agent-sdk/typescript#startup_failure_reason) en los fallos de inicio que, de lo contrario, terminan solo con stderr. Requiere Claude Code v2.1.274 o posterior |399| `CLAUDE_CODE_STARTUP_FAILURE_RESULTS` | Establécela en `1` para que una sesión iniciada con `--output-format stream-json` escriba un [mensaje de resultado que indica por qué Claude Code se negó a iniciar](/docs/es/agent-sdk/typescript#startup_failure_reason) para los fallos de inicio que de otro modo terminan solo con stderr. Requiere Claude Code v2.1.274 o posterior |

397| `CLAUDE_CODE_STOP_HOOK_BLOCK_CAP` | Número máximo de veces consecutivas que un hook [Stop](/docs/es/hooks#stop) o [SubagentStop](/docs/es/hooks#subagentstop) puede impedir que termine el turno antes de que Claude Code lo sobrescriba y termine el turno de todos modos (predeterminado: 8). Establécela en `0` para desactivar el límite. Auméntalo si tu hook necesita legítimamente más iteraciones para resolverse |400| `CLAUDE_CODE_STOP_HOOK_BLOCK_CAP` | Número máximo de veces consecutivas que un hook [Stop](/docs/es/hooks#stop) o [SubagentStop](/docs/es/hooks#subagentstop) puede impedir que el turno termine antes de que Claude Code lo sobrescriba y termine el turno de todos modos (predeterminado: 8). Establécela en `0` para deshabilitar el límite. Auméntala si tu hook necesita legítimamente más iteraciones para resolverse |

398| `CLAUDE_CODE_SUBAGENT_MODEL` | El modelo predeterminado para los [subagentes](/docs/es/sub-agents#choose-a-model), los compañeros de un [equipo de agentes](/docs/es/agent-teams#specify-teammates-and-models) y los agentes de [flujos de trabajo](/docs/es/workflows) a los que no se asigna un modelo de otra forma. Acepta un alias como `haiku` o un nombre de modelo completo. Dos orígenes tienen precedencia sobre ella: un modelo que Claude pasa cuando genera el agente y un campo `model` en la definición del agente, incluido `inherit`. Para cambiar eso, establece [`CLAUDE_CODE_SUBAGENT_MODEL_FORCE`](/docs/es/sub-agents#run-every-subagent-on-one-model). Consulta [Elegir un modelo](/docs/es/sub-agents#choose-a-model) para ver el orden completo. Establecerla en `inherit` es lo mismo que dejarla sin establecer. Antes de la v2.1.251, esta variable sobrescribía tanto el modelo por invocación como el campo `model` de la definición |401| `CLAUDE_CODE_SUBAGENT_MODEL` | El modelo predeterminado para [subagentes](/docs/es/sub-agents#choose-a-model), compañeros de un [equipo de agentes](/docs/es/agent-teams#specify-teammates-and-models) y agentes de [flujos de trabajo](/docs/es/workflows) a los que no se les asigna un modelo de otra forma. Acepta un alias como `haiku` o un nombre de modelo completo. Dos fuentes tienen precedencia sobre ella: un modelo que Claude pasa cuando genera el agente y un campo `model` en la definición del agente, incluido `inherit`. Para cambiar eso, establece [`CLAUDE_CODE_SUBAGENT_MODEL_FORCE`](/docs/es/sub-agents#run-every-subagent-on-one-model). Consulta [Elegir un modelo](/docs/es/sub-agents#choose-a-model) para ver el orden completo. Establecerla en `inherit` es lo mismo que dejarla sin establecer. Antes de v2.1.251, esta variable sobrescribía tanto el modelo por invocación como el campo `model` de la definición |

399| `CLAUDE_CODE_SUBAGENT_MODEL_FORCE` | Establécela en `1` para forzar un único modelo en los subagentes, los compañeros de equipo y los agentes de flujos de trabajo. [Ejecutar todos los subagentes con un solo modelo](/docs/es/sub-agents#run-every-subagent-on-one-model) indica qué modelo es. Requiere Claude Code v2.1.257 o posterior |402| `CLAUDE_CODE_SUBAGENT_MODEL_FORCE` | Establécela en `1` para forzar un único modelo en los subagentes, los compañeros de equipo y los agentes de flujos de trabajo. [Ejecutar todos los subagentes en un modelo](/docs/es/sub-agents#run-every-subagent-on-one-model) indica cuál es ese modelo. Requiere Claude Code v2.1.257 o posterior |

400| `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL` | Establécela en `5m` o `1h`, los únicos valores que acepta Claude Code, para elegir el [TTL de la caché de prompts](/docs/es/prompt-caching#cache-lifetime) de las solicitudes fuera de la conversación principal, como los [subagentes](/docs/es/sub-agents), los flujos de trabajo y el trabajo en segundo plano. Tiene precedencia sobre el ajuste `subagentPromptCacheTtl` y sobre `ENABLE_PROMPT_CACHING_1H`, y `FORCE_PROMPT_CACHING_5M` la sobrescribe. La API factura las escrituras en caché de 1 hora a una tarifa más alta. Requiere Claude Code v2.1.242 o posterior |403| `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL` | Establece `5m` o `1h`, los únicos valores que acepta Claude Code, para elegir el [TTL de la caché de prompts](/docs/es/prompt-caching#cache-lifetime) de las solicitudes fuera de la conversación principal, como [subagentes](/docs/es/sub-agents), flujos de trabajo y trabajo en segundo plano. Tiene precedencia sobre el ajuste `subagentPromptCacheTtl` y sobre `ENABLE_PROMPT_CACHING_1H`, y `FORCE_PROMPT_CACHING_5M` la sobrescribe. La API factura las escrituras en caché de 1 hora a una tarifa más alta. Requiere Claude Code v2.1.242 o posterior |

401| `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` | Establécela en `1` para eliminar las credenciales de los entornos de los subprocesos que inicia Claude Code, como los comandos de Bash, los hooks y los servidores MCP stdio. La limpieza reconoce una credencial por el nombre de su variable o por su valor, y deja intactos los tokens de GitHub y la configuración de proxy. Consulta [Qué elimina la limpieza del entorno de los subprocesos](#what-the-subprocess-environment-scrub-removes). `claude-code-action` la establece automáticamente cuando se configura `allowed_non_write_users` |404| `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` | Establécela en `1` para eliminar las credenciales de los entornos de los subprocesos que inicia Claude Code, como comandos de Bash, hooks y servidores MCP stdio. La limpieza reconoce una credencial por el nombre de su variable o por su valor, y deja intactos los tokens de GitHub y la configuración del proxy. Consulta [Qué elimina la limpieza del entorno de subprocesos](#what-the-subprocess-environment-scrub-removes). `claude-code-action` la establece automáticamente cuando se configura `allowed_non_write_users` |

402| `CLAUDE_CODE_SYNC_PLUGIN_INSTALL` | Establécela en `1` en el modo no interactivo (el flag `-p`) para esperar a que finalice la instalación de los plugins antes de la primera consulta. Sin ella, los plugins se instalan en segundo plano y es posible que no estén disponibles en el primer turno. Combínala con `CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS` para limitar la espera |405| `CLAUDE_CODE_SYNC_PLUGIN_INSTALL` | Establécela en `1` en modo no interactivo (el flag `-p`) para esperar a que se complete la instalación de plugins antes de la primera consulta. Sin ella, los plugins se instalan en segundo plano y es posible que no estén disponibles en el primer turno. Combínala con `CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS` para limitar la espera |

403| `CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS` | Tiempo de espera en milisegundos para la instalación síncrona de plugins. Cuando se supera, Claude Code continúa sin los plugins y registra un error. No tiene valor predeterminado: sin esta variable, la instalación síncrona espera hasta completarse |406| `CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS` | Tiempo de espera en milisegundos para la instalación sincrónica de plugins. Cuando se supera, Claude Code continúa sin plugins y registra un error. Sin valor predeterminado: sin esta variable, la instalación sincrónica espera hasta completarse |

404| `CLAUDE_CODE_SYNC_SKILLS` | Establécela en `1` en el modo no interactivo con el flag `-p` para que Claude Code descargue en esa ejecución los skills activados para tu cuenta de claude.ai y espere su lista, hasta `CLAUDE_CODE_SYNC_SKILLS_WAIT_TIMEOUT_MS`, antes de ejecutar la primera consulta. Las descargas en sí terminan en segundo plano, y Claude espera la descarga de un skill cuando invoca ese skill. Requiere autenticación de claude.ai. Las sesiones de terminal en las que inicias sesión con tu cuenta de claude.ai [descargan estos skills](/docs/es/skills#where-synced-skills-load) en `~/.claude/skills/synced/` y los vuelven a sincronizar aproximadamente cada 10 minutos sin esta variable, así que establécela solo cuando una ejecución con `-p` necesite tus skills actuales en su primera consulta. Antes de la v2.1.273, las sesiones de terminal los descargaban solo en una ejecución con `-p` con esta variable establecida. El nombre de carpeta `synced` está [reservado para esta descarga](/docs/es/skills#where-skills-live). Antes de la v2.1.227, los skills se descargaban directamente en `~/.claude/skills/`. Claude Code aplica [reglas adicionales a los skills descargados](/docs/es/skills#how-synced-skills-behave), como no ejecutar sus comandos `!` en tu máquina |407| `CLAUDE_CODE_SYNC_SKILLS` | Establécela en `1` en modo no interactivo con el flag `-p` para que Claude Code descargue los skills habilitados para tu cuenta de claude.ai en esa ejecución y espere la lista de ellos, hasta `CLAUDE_CODE_SYNC_SKILLS_WAIT_TIMEOUT_MS`, antes de ejecutar la primera consulta. Requiere autenticación de claude.ai. Las sesiones de terminal en las que inicias sesión con tu cuenta de claude.ai [sincronizan estos skills](/docs/es/skills#where-synced-skills-load) sin esta variable, así que establécela solo cuando una ejecución de `-p` necesite tus skills actuales en su primera consulta |

405| `CLAUDE_CODE_SYNC_SKILLS_INSTALL_TIMEOUT_MS` | Tiempo de espera en milisegundos para la resincronización de skills que se ejecuta a mitad de la sesión cuando una aplicación creada con el [Agent SDK](/docs/es/agent-sdk/typescript#query-object) recarga los skills (predeterminado: 30000). Cuando se supera, la recarga continúa con los skills que hayan llegado, y las descargas restantes terminan en segundo plano |408| `CLAUDE_CODE_SYNC_SKILLS_INSTALL_TIMEOUT_MS` | Tiempo de espera en milisegundos para la resincronización de skills que se ejecuta a mitad de la sesión cuando una aplicación creada con el [Agent SDK](/docs/es/agent-sdk/typescript#query-object) recarga los skills (predeterminado: 30000). Cuando se supera, la recarga continúa con los skills que hayan llegado, y las descargas restantes terminan en segundo plano |

406| `CLAUDE_CODE_SYNC_SKILLS_WAIT_TIMEOUT_MS` | Tiempo de espera en milisegundos durante el cual la primera consulta espera la lista inicial de skills cuando `CLAUDE_CODE_SYNC_SKILLS` está establecida (predeterminado: 5000). Cuando se supera, la primera consulta se ejecuta con los skills que hayan llegado. Las descargas terminan en segundo plano en cualquier caso, y Claude espera la descarga de un skill cuando invoca ese skill |409| `CLAUDE_CODE_SYNC_SKILLS_WAIT_TIMEOUT_MS` | Tiempo de espera en milisegundos durante el cual la primera consulta espera la lista inicial de skills cuando se establece `CLAUDE_CODE_SYNC_SKILLS` (predeterminado: 5000). Cuando se supera, la primera consulta se ejecuta con los skills que hayan llegado. Las descargas terminan en segundo plano en cualquier caso, y Claude espera a la descarga de un skill cuando invoca ese skill |

407| `CLAUDE_CODE_SYNTAX_HIGHLIGHT` | Establécela en `false` para desactivar el resaltado de sintaxis en la salida de los diffs. Es útil cuando los colores interfieren con la configuración de tu terminal. Para desactivar también el resaltado en los bloques de código y en las vistas previas de archivos, usa el ajuste [`syntaxHighlightingDisabled`](/docs/es/settings-reference#syntaxhighlightingdisabled) |410| `CLAUDE_CODE_SYNTAX_HIGHLIGHT` | Establécela en `false` para deshabilitar el resaltado de sintaxis en la salida de diff. Útil cuando los colores interfieren con la configuración de tu terminal. Para deshabilitar también el resaltado en bloques de código y vistas previas de archivos, usa el ajuste [`syntaxHighlightingDisabled`](/docs/es/settings-reference#syntaxhighlightingdisabled) |

408| `CLAUDE_CODE_TASK_LIST_ID` | Comparte una lista de tareas entre sesiones. Establece el mismo ID en varias instancias de Claude Code para coordinarse en una lista de tareas compartida, en [sesiones que tienen las herramientas Task](/docs/es/tools-reference#task-tool-availability). Consulta [Lista de tareas](/docs/es/interactive-mode#task-list) |411| `CLAUDE_CODE_TASK_LIST_ID` | Comparte una lista de tareas entre sesiones. Establece el mismo ID en varias instancias de Claude Code para coordinarse en una lista de tareas compartida, en [sesiones que tienen las herramientas Task](/docs/es/tools-reference#task-tool-availability). Consulta [Lista de tareas](/docs/es/interactive-mode#task-list) |

409| `CLAUDE_CODE_TEAM_TEARDOWN_PARK_TIMEOUT_MS` | Sobrescribe, en milisegundos, cuánto tiempo espera una sesión no interactiva al salir a que su [equipo de agentes](/docs/es/agent-teams) termine de cerrarse. Acepta de 1000 a 60000; un valor fuera de rango se ignora y se aplica el predeterminado de 10000. Requiere Claude Code v2.1.206 o posterior |412| `CLAUDE_CODE_TEAM_TEARDOWN_PARK_TIMEOUT_MS` | Sobrescribe, en milisegundos, cuánto tiempo espera una sesión no interactiva al salir a que su [equipo de agentes](/docs/es/agent-teams) termine de desmontarse. Acepta de 1000 a 60000; un valor fuera de rango se ignora y se aplica el predeterminado de 10000. Requiere Claude Code v2.1.206 o posterior |

410| `CLAUDE_CODE_TMPDIR` | Sobrescribe el directorio temporal que se usa para los archivos temporales internos. Claude Code agrega `/claude-{uid}/` a esta ruta en Unix, o `/claude/` en Windows. Predeterminado: `/tmp` en macOS, `os.tmpdir()` en Linux y Windows. En macOS y Linux, los subprocesos de Bash [en sandbox](/docs/es/sandboxing) reciben un `$TMPDIR` alternativo corto bajo el predeterminado del sistema cuando tu sobrescritura es una ruta larga, ya que algunas herramientas fallan cuando las rutas temporales son demasiado largas. Los comandos de Bash sin sandbox heredan el `$TMPDIR` de tu shell cuando está establecido. En Windows nativo, cuando tu shell no establece `$TMPDIR`, un comando de Bash que hace referencia a `$TMPDIR` recibe tu sobrescritura, o `%TEMP%` cuando no has establecido una. Los propios archivos temporales de Claude Code siempre usan tu sobrescritura. Establécela en tu shell, en la configuración de usuario o en la configuración administrada. Se ignora en la [configuración de proyecto y local](/docs/es/settings-reference#variables-claude-code-ignores-in-env) |413| `CLAUDE_CODE_TMPDIR` | Sobrescribe el directorio temporal usado para los archivos temporales internos. Claude Code agrega `/claude-{uid}/` a esta ruta en Unix, o `/claude/` en Windows. Predeterminado: `/tmp` en macOS, `os.tmpdir()` en Linux y Windows. En macOS y Linux, los subprocesos de Bash [en sandbox](/docs/es/sandboxing) reciben un `$TMPDIR` de respaldo corto bajo el predeterminado del sistema cuando tu sobrescritura es una ruta larga, ya que algunas herramientas fallan cuando las rutas temporales son demasiado largas. Los comandos de Bash sin sandbox heredan el `$TMPDIR` de tu shell cuando está establecido. En Windows nativo, cuando tu shell no establece `$TMPDIR`, un comando de Bash que hace referencia a `$TMPDIR` recibe tu sobrescritura, o `%TEMP%` cuando no has establecido una. Los archivos temporales propios de Claude Code siempre usan tu sobrescritura. Establécela en tu shell, en la configuración de usuario o en la configuración administrada. Se ignora en la [configuración de proyecto y local](/docs/es/settings-reference#variables-claude-code-ignores-in-env) |

411| `CLAUDE_CODE_TMUX_TRUECOLOR` | Establécela en cualquier valor no vacío, como `1`, para permitir la salida truecolor de 24 bits dentro de tmux. **Establecerla en `0` o `false` sigue permitiendo truecolor**, a diferencia de la mayoría de las variables de activación/desactivación; elimina la variable para restaurar la limitación a 256 colores. De forma predeterminada, Claude Code se limita a 256 colores cuando `$TMUX` está establecida, porque tmux no transmite las secuencias de escape de truecolor a menos que esté configurado para hacerlo. Establécela después de agregar `set -ga terminal-overrides ',*:Tc'` a tu `~/.tmux.conf`. Consulta [Configuración de la terminal](/docs/es/terminal-config) para ver otros ajustes de tmux |414| `CLAUDE_CODE_TMUX_TRUECOLOR` | Establécela en cualquier valor no vacío, como `1`, para permitir la salida truecolor de 24 bits dentro de tmux. **Establecerla en `0` o `false` sigue permitiendo truecolor**, a diferencia de la mayoría de las variables de activación/desactivación; elimina la variable para restaurar la limitación a 256 colores. De forma predeterminada, Claude Code se limita a 256 colores cuando `$TMUX` está establecida porque tmux no transmite las secuencias de escape truecolor a menos que esté configurado para ello. Establécela después de agregar `set -ga terminal-overrides ',*:Tc'` a tu `~/.tmux.conf`. Consulta [Configuración de la terminal](/docs/es/terminal-config) para otros ajustes de tmux |

412| `CLAUDE_CODE_TOOL_MEMORY_CGROUP_EXCLUDE` | En Linux y WSL, establécela en una lista separada por comas de los tipos de procesos que Claude Code [excluye del límite de memoria de las herramientas](/docs/es/tools-reference#memory-limit-on-linux-and-wsl), como `mcp` o `lsp`. Establécela en `none` para limitar todos los tipos, o en `all-new` para limitar solo los comandos de las herramientas Bash, PowerShell y Monitor. Claude Code mantiene los comandos de las herramientas Bash, PowerShell y Monitor bajo el límite independientemente de lo que indiques. Requiere Claude Code v2.1.246 o posterior |415| `CLAUDE_CODE_TOOL_MEMORY_CGROUP_EXCLUDE` | En Linux y WSL, establécela en una lista separada por comas de los tipos de procesos que Claude Code [excluye del límite de memoria de herramientas](/docs/es/tools-reference#memory-limit-on-linux-and-wsl), como `mcp` o `lsp`. Establece `none` para limitar todos los tipos, o `all-new` para limitar solo los comandos de las herramientas Bash, PowerShell y Monitor. Claude Code mantiene los comandos de las herramientas Bash, PowerShell y Monitor bajo el límite sea cual sea tu lista. Requiere Claude Code v2.1.246 o posterior |

413| `CLAUDE_CODE_TOOL_MEMORY_LIMIT` | En Linux y WSL, establécela en un tamaño como `4G` para [limitar la memoria que pueden usar los comandos de las herramientas Bash y PowerShell](/docs/es/tools-reference#memory-limit-on-linux-and-wsl), y de la herramienta Monitor en la v2.1.246 o posterior. Escribe el tamaño en dígitos simples, solo para un número de bytes o con un sufijo `K`, `M`, `G` o `T`. Establécela en `0` u `off` para desactivar el límite. Una vez que el primer proceso que inicia Claude Code ha activado o desactivado el límite, un valor modificado surte efecto la próxima vez que inicies `claude`. Requiere Claude Code v2.1.233 o posterior |416| `CLAUDE_CODE_TOOL_MEMORY_LIMIT` | En Linux y WSL, establécela en un tamaño como `4G` para [limitar la memoria que pueden usar los comandos de las herramientas Bash y PowerShell](/docs/es/tools-reference#memory-limit-on-linux-and-wsl), y los comandos de la herramienta Monitor en v2.1.246 o posterior. Escribe el tamaño en dígitos simples, solos para un número de bytes o con un sufijo `K`, `M`, `G` o `T`. Establece `0` u `off` para desactivar el límite. Una vez que el primer proceso que inicia Claude Code ha activado o desactivado el límite, un valor modificado surte efecto la próxima vez que ejecutes `claude`. Requiere Claude Code v2.1.233 o posterior |

414| `CLAUDE_CODE_TRANSCRIPT_LOCAL_GC` | Establécela en `1` para limitar cuánto crece el [archivo de transcripción](/docs/es/sessions#where-transcripts-are-stored) de una sesión larga con `-p` o del Agent SDK. Después de cada compactación, una vez que el archivo supera los 5 MB, Claude Code elimina el historial anterior a esa compactación. Reanudar la sesión restaura la misma conversación tanto si el archivo se recortó como si no. Establécela en el entorno desde el que inicias Claude Code, ya que un bloque `env` de la configuración no puede activarla. Requiere Claude Code v2.1.287 o posterior |417| `CLAUDE_CODE_TRANSCRIPT_LOCAL_GC` | Establécela en `1` para limitar cuánto crece el [archivo de transcripción](/docs/es/sessions#where-transcripts-are-stored) de una sesión larga de `-p` o del Agent SDK. Después de cada compactación, una vez que el archivo supera los 5 MB, Claude Code elimina el historial anterior a esa compactación. Reanudar la sesión restaura la misma conversación tanto si el archivo se recortó como si no. Establécela en el entorno desde el que inicias Claude Code, ya que un bloque `env` de la configuración no puede activarla. Requiere Claude Code v2.1.287 o posterior |

415| `CLAUDE_CODE_USER_DIALOG_TIMEOUT_MS` | Plazo en milisegundos antes de que Claude Code cancele un diálogo que reenvía a un cliente remoto, como un host de [Remote Control](/docs/es/remote-control) o del SDK, o el diálogo de aprobación de un [mensaje entre sesiones retenido](/docs/es/cross-session-messaging#control-inbound-messages); las solicitudes de permiso y las preguntas de `AskUserQuestion` usan sus propios flujos y no se rigen por esta variable. En Claude Code v2.1.236 o posterior, también limita la [solicitud de consentimiento de créditos de uso de Fable](/docs/es/model-config#fable-and-usage-credits) a mitad de la sesión en una sesión que puede estar ejecutándose sin supervisión. [Controlar los mensajes entrantes](/docs/es/cross-session-messaging#control-inbound-messages) y [sesiones no interactivas](/docs/es/cross-session-messaging#non-interactive-sessions) cubren las reglas completas de caducidad de los mensajes retenidos, incluidos los casos en los que el plazo no se aplica. Sobrescribe el ajuste [`dialogExpiry`](/docs/es/settings-reference#dialogexpiry). `0` o un valor negativo desactiva el plazo |418| `CLAUDE_CODE_USER_DIALOG_TIMEOUT_MS` | Plazo en milisegundos antes de que Claude Code cancele un diálogo que reenvía a un cliente remoto, como un host de [Remote Control](/docs/es/remote-control) o del SDK, o el diálogo de aprobación de un [mensaje entre sesiones retenido](/docs/es/cross-session-messaging#control-inbound-messages); las solicitudes de permiso y las preguntas de `AskUserQuestion` usan sus propios flujos y no se rigen por él. En Claude Code v2.1.236 o posterior, también limita la [solicitud de consentimiento de créditos de uso de Fable](/docs/es/model-config#fable-and-usage-credits) a mitad de sesión en una sesión que puede estar ejecutándose sin supervisión. [Controlar los mensajes entrantes](/docs/es/cross-session-messaging#control-inbound-messages) y [sesiones no interactivas](/docs/es/cross-session-messaging#non-interactive-sessions) cubren las reglas completas de caducidad de los mensajes retenidos, incluidos los casos en los que el plazo no se aplica. Sobrescribe el ajuste [`dialogExpiry`](/docs/es/settings-reference#dialogexpiry). `0` o un valor negativo deshabilita el plazo |

416| `CLAUDE_CODE_USE_ANTHROPIC_AWS` | Usa [Claude Platform on AWS](/docs/es/claude-platform-on-aws) |419| `CLAUDE_CODE_USE_ANTHROPIC_AWS` | Usa [Claude Platform on AWS](/docs/es/claude-platform-on-aws) |

417| `CLAUDE_CODE_USE_BEDROCK` | Usa [Amazon Bedrock](/docs/es/amazon-bedrock) |420| `CLAUDE_CODE_USE_BEDROCK` | Usa [Amazon Bedrock](/docs/es/amazon-bedrock) |

418| `CLAUDE_CODE_USE_FOUNDRY` | Usa [Microsoft Foundry](/docs/es/microsoft-foundry) |421| `CLAUDE_CODE_USE_FOUNDRY` | Usa [Microsoft Foundry](/docs/es/microsoft-foundry) |

419| `CLAUDE_CODE_USE_MANTLE` | Usa el [endpoint Mantle](/docs/es/amazon-bedrock#use-the-mantle-endpoint) de Amazon Bedrock |422| `CLAUDE_CODE_USE_MANTLE` | Usa el [endpoint de Mantle](/docs/es/amazon-bedrock#use-the-mantle-endpoint) de Amazon Bedrock |

420| `CLAUDE_CODE_USE_NATIVE_FILE_SEARCH` | Establécela en `1` para descubrir comandos personalizados, subagentes y estilos de salida usando las API de archivos de Node.js en lugar de ripgrep. Establécela si el binario de ripgrep incluido no está disponible o está bloqueado en tu entorno. No afecta a Grep ni a las herramientas de búsqueda de archivos |423| `CLAUDE_CODE_USE_NATIVE_FILE_SEARCH` | Establécela en `1` para descubrir comandos personalizados, subagentes y estilos de salida usando las API de archivos de Node.js en lugar de ripgrep. Establécela si el binario de ripgrep incluido no está disponible o está bloqueado en tu entorno. No afecta a las herramientas Grep ni de búsqueda de archivos |

421| `CLAUDE_CODE_USE_POWERSHELL_TOOL` | Controla la herramienta PowerShell. En Windows sin Git Bash, la herramienta se activa automáticamente; establécela en `0` para desactivarla. En Windows con Git Bash instalado, la herramienta está activada de forma predeterminada para las cuentas de claude.ai y de Console; establécela en `1` para activarla en sesiones de Amazon Bedrock, Google Cloud's Agent Platform y Microsoft Foundry, o en `0` para desactivarla. En Linux, macOS y WSL, establécela en `1` para activarla, lo que requiere `pwsh` en tu `PATH`. Cuando está activada en Windows, Claude puede ejecutar comandos de PowerShell de forma nativa en lugar de enrutarlos a través de Git Bash. Consulta [Herramienta PowerShell](/docs/es/tools-reference#powershell-tool) |424| `CLAUDE_CODE_USE_POWERSHELL_TOOL` | Controla la herramienta PowerShell. En Windows sin Git Bash, la herramienta se habilita automáticamente; establécela en `0` para deshabilitarla. En Windows con Git Bash instalado, la herramienta está activada de forma predeterminada para cuentas de claude.ai y Console; establécela en `1` para habilitarla en sesiones de Amazon Bedrock, Google Cloud's Agent Platform y Microsoft Foundry, o en `0` para desactivarla. En Linux, macOS y WSL, establécela en `1` para habilitarla, lo que requiere `pwsh` en tu `PATH`. Cuando está habilitada en Windows, Claude puede ejecutar comandos de PowerShell de forma nativa en lugar de enrutarlos a través de Git Bash. Consulta [herramienta PowerShell](/docs/es/tools-reference#powershell-tool) |

422| `CLAUDE_CODE_USE_VERTEX` | Usa [Google Cloud's Agent Platform](/docs/es/google-vertex-ai) |425| `CLAUDE_CODE_USE_VERTEX` | Usa [Google Cloud's Agent Platform](/docs/es/google-vertex-ai) |

423| `CLAUDE_CODE_WEBFETCH_CACHE_TTL_MS` | Establécela en la cantidad de milisegundos que [WebFetch](/docs/es/tools-reference#webfetch-tool-behavior) mantiene en caché la respuesta de cada URL obtenida. El valor predeterminado es `900000`, que equivale a 15 minutos. Solo acepta dígitos simples; `0`, un decimal o cualquier otra forma de escribirlo mantiene el valor predeterminado. Claude Code lee el valor una vez por inicio, por lo que un cambio en un bloque `env` de la configuración se aplica la próxima vez que inicies `claude`. Requiere Claude Code v2.1.233 o posterior |426| `CLAUDE_CODE_WEBFETCH_CACHE_TTL_MS` | Establécela en el número de milisegundos que [WebFetch](/docs/es/tools-reference#webfetch-tool-behavior) mantiene en caché la respuesta de cada URL obtenida. El valor predeterminado es `900000`, que equivale a 15 minutos. Solo acepta dígitos simples; `0`, un decimal o cualquier otra escritura mantiene el valor predeterminado. Claude Code lee el valor una vez por inicio, por lo que un cambio en un bloque `env` de la configuración se aplica la próxima vez que inicies `claude`. Requiere Claude Code v2.1.233 o posterior |

424| `CLAUDE_CODE_WEBFETCH_DEADLINE_MS` | Límite superior en milisegundos del tiempo que [WebFetch](/docs/es/tools-reference#webfetch-tool-behavior) espera a que se descargue una página, incluidas las redirecciones que sigue. Una descarga que no se haya completado para entonces falla con un error de plazo. El valor predeterminado es `300000`, que equivale a cinco minutos. Establécela en `0` para eliminar el límite. Solo acepta dígitos simples; un decimal o cualquier otra forma de escribirlo mantiene el valor predeterminado. Requiere Claude Code v2.1.268 o posterior |427| `CLAUDE_CODE_WEBFETCH_DEADLINE_MS` | Límite superior en milisegundos del tiempo que [WebFetch](/docs/es/tools-reference#webfetch-tool-behavior) espera a que se descargue una página, incluidas las redirecciones que sigue. Una descarga que no se haya completado para entonces falla con un error de plazo. El valor predeterminado es `300000`, que equivale a cinco minutos. Establécela en `0` para eliminar el límite. Solo acepta dígitos simples; un decimal o cualquier otra escritura mantiene el valor predeterminado. Requiere Claude Code v2.1.268 o posterior |

425| `CLAUDE_CODE_WORKER_CHECKIN_SCHEDULE` | Cuando `CLAUDE_AUTO_BACKGROUND_TASKS` está establecida en `1`, el tiempo que Claude Code espera antes de cada recordatorio a Claude para que revise los [subagentes en segundo plano](/docs/es/sub-agents#run-subagents-in-foreground-or-background) que todavía se están ejecutando. Acepta una o más esperas separadas por comas en segundos enteros de `1` a `86400`, como `600` o `600,1800,3600`. Cada valor es la espera antes del siguiente recordatorio, y el último valor se repite. Solo acepta dígitos simples; cualquier otro valor o forma de escribirlo se interpreta como no establecido. Cuando no está establecida, no hay recordatorios. Requiere Claude Code v2.1.283 o posterior |428| `CLAUDE_CODE_WORKER_CHECKIN_SCHEDULE` | Cuando `CLAUDE_AUTO_BACKGROUND_TASKS` está establecida en `1`, cuánto tiempo espera Claude Code antes de cada recordatorio a Claude para que revise los [subagentes en segundo plano](/docs/es/sub-agents#run-subagents-in-foreground-or-background) que siguen en ejecución. Acepta una o más esperas separadas por comas, en segundos enteros de `1` a `86400`, como `600` o `600,1800,3600`. Cada valor es la espera antes del siguiente recordatorio, y el último valor se repite. Solo acepta dígitos simples; cualquier otro valor o escritura se interpreta como no establecida. Cuando no está establecida, no hay recordatorios. Requiere Claude Code v2.1.283 o posterior |

426| `CLAUDE_CODE_WORKFLOW_MAX_CONCURRENT_AGENTS` | Cuántos agentes ejecuta a la vez una sola ejecución de [workflow](/docs/es/workflows), de `1` a `256`. De forma predeterminada, una ejecución ejecuta hasta 16 agentes a la vez, o menos cuando Claude Code tiene menos CPU disponibles; las llamadas a `agent()` en cola esperan a que haya un espacio libre. La transcripción de cada agente en ejecución permanece en la memoria de Claude Code, por lo que los valores más altos aumentan el uso de memoria. Solo acepta dígitos simples; los valores fuera de rango y otras formas de escribirlo mantienen el valor predeterminado. Requiere Claude Code v2.1.269 o posterior |429| `CLAUDE_CODE_WORKFLOW_MAX_CONCURRENT_AGENTS` | Cuántos agentes ejecuta a la vez una sola ejecución de [flujo de trabajo](/docs/es/workflows), de `1` a `256`. De forma predeterminada, una ejecución ejecuta hasta 16 agentes a la vez, menos cuando Claude Code tiene menos CPU disponibles; las llamadas a `agent()` en cola esperan a que haya un espacio libre. La transcripción de cada agente en ejecución permanece en la memoria de Claude Code, por lo que los valores más altos aumentan el uso de memoria. Solo acepta dígitos simples; los valores fuera de rango y otras escrituras mantienen el valor predeterminado. Requiere Claude Code v2.1.269 o posterior |

427| `CLAUDE_CODE_WORKFLOW_PREFIX_STAGGER_MS` | Límite superior en milisegundos del tiempo que un agente de [workflow](/docs/es/workflows) espera a que comience la primera respuesta de un agente hermano con el mismo prefijo antes de enviar su propia primera solicitud. Cuando un fan-out inicia varios agentes que comparten un [prefijo de caché de prompts](/docs/es/workflows#prompt-caching-in-a-fan-out), Claude Code retiene a todos menos al primer agente hasta este tiempo para que el resto lea el prefijo en caché en lugar de que cada uno lo procese sin caché. Valor predeterminado: `5000`. Establécela en `0` para desactivar la espera. Cuando `DISABLE_PROMPT_CACHING` está establecida, los agentes nunca esperan. Requiere Claude Code v2.1.229 o posterior |430| `CLAUDE_CODE_WORKFLOW_PREFIX_STAGGER_MS` | Límite superior en milisegundos del tiempo que un agente de [flujo de trabajo](/docs/es/workflows) espera a que comience la primera respuesta de un agente hermano con el mismo prefijo antes de enviar su propia primera solicitud. Cuando una distribución en abanico inicia varios agentes que comparten un [prefijo de caché de prompts](/docs/es/workflows#prompt-caching-in-a-fan-out), Claude Code retiene a todos los agentes excepto el primero hasta este tiempo, para que los demás lean el prefijo en caché en lugar de que cada uno lo procese sin caché. Valor predeterminado: `5000`. Establécela en `0` para desactivar la espera. Cuando `DISABLE_PROMPT_CACHING` está establecida, los agentes nunca esperan. Requiere Claude Code v2.1.229 o posterior |

428| `CLAUDE_CONFIG_DIR` | Sobrescribe el directorio de configuración (valor predeterminado: `~/.claude`). Toda la configuración, el historial de sesiones y los plugins se almacenan en esta ruta. Para las credenciales, consulta [dónde almacena Claude Code las credenciales](/docs/es/authentication#credential-management). Útil para ejecutar varias cuentas en paralelo: por ejemplo, `alias claude-work='CLAUDE_CONFIG_DIR=~/.claude-work claude'`. Establécela en tu shell, en la configuración de usuario o en la configuración administrada. Se ignora en la [configuración de proyecto y local](/docs/es/settings-reference#variables-claude-code-ignores-in-env) |431| `CLAUDE_CONFIG_DIR` | Sobrescribe el directorio de configuración (predeterminado: `~/.claude`). Toda la configuración, el historial de sesiones y los plugins se almacenan en esta ruta. Para las credenciales, consulta [dónde almacena Claude Code las credenciales](/docs/es/authentication#credential-management). Útil para ejecutar varias cuentas en paralelo: por ejemplo, `alias claude-work='CLAUDE_CONFIG_DIR=~/.claude-work claude'`. Establécela en tu shell, en la configuración de usuario o en la configuración administrada. En un archivo de configuración, escribe la [ruta absoluta](#in-settings-files). Se ignora en la [configuración de proyecto y local](/docs/es/settings-reference#variables-claude-code-ignores-in-env) |

429| `CLAUDE_DISABLE_ADOPT` | Establécela en `1` para detener el trabajo en segundo plano en curso en lugar de trasladarlo cuando envías una sesión a segundo plano presionando `←` o con [`/background`](/docs/es/agent-view#from-inside-a-session). Claude Code te pide que confirmes antes de enviarla a segundo plano y luego detiene las tareas que de otro modo se trasladarían. Requiere Claude Code v2.1.195 o posterior |432| `CLAUDE_DISABLE_ADOPT` | Establécela en `1` para detener el trabajo en segundo plano en curso en lugar de trasladarlo cuando envías una sesión a segundo plano pulsando `←` o con [`/background`](/docs/es/agent-view#from-inside-a-session). Claude Code te pide confirmación antes de enviarla a segundo plano y luego detiene las tareas que de otro modo se trasladarían. Requiere Claude Code v2.1.195 o posterior |

430| `CLAUDE_EFFORT` | Se establece automáticamente en los subprocesos de la herramienta Bash y en los comandos de hooks con el [nivel de esfuerzo](/docs/es/model-config#adjust-effort-level) vigente cuando se inicia el subproceso: `low`, `medium`, `high`, `xhigh` o `max`. Coincide con el campo `effort.level` que se pasa a los [hooks](/docs/es/hooks). Solo se establece cuando el modelo actual admite el parámetro effort |433| `CLAUDE_EFFORT` | Se establece automáticamente en los subprocesos de la herramienta Bash y en los comandos de hooks con el [nivel de esfuerzo](/docs/es/model-config#adjust-effort-level) vigente cuando se inicia el subproceso: `low`, `medium`, `high`, `xhigh` o `max`. Coincide con el campo `effort.level` que se pasa a los [hooks](/docs/es/hooks). Solo se establece cuando el modelo actual admite el parámetro de esfuerzo |

431| `CLAUDE_ENABLE_BYTE_WATCHDOG` | Establécela en `1` para forzar la activación del watchdog de inactividad de streaming a nivel de bytes, o en `0` para forzar su desactivación. `0` también desactiva el [plazo del primer byte](/docs/es/network-config#streaming-idle-watchdogs) en las conexiones donde se aplica ese plazo. Cuando no está establecida, el watchdog está activado de forma predeterminada para las conexiones directas a la API de Anthropic y a [Claude Platform on AWS](/docs/es/claude-platform-on-aws), y para las respuestas en streaming en conexiones de [gateway](/docs/es/gateways) a las que se accede mediante `ANTHROPIC_BASE_URL` o `ANTHROPIC_AWS_BASE_URL`; antes de v2.1.222 no se ejecutaba en esas conexiones de gateway, por lo que el watchdog a nivel de eventos podía informar un bloqueo allí incluso mientras llegaban pings de keep-alive. Para los tiempos de espera y cómo interactúan los temporizadores, consulta [Watchdogs de inactividad de streaming](/docs/es/network-config#streaming-idle-watchdogs) |434| `CLAUDE_ENABLE_BYTE_WATCHDOG` | Establécela en `1` para forzar la habilitación del watchdog de inactividad de streaming a nivel de bytes, o en `0` para forzar su deshabilitación. `0` también desactiva el [plazo del primer byte](/docs/es/network-config#streaming-idle-watchdogs) en las conexiones donde se aplica ese plazo. Cuando no está establecida, el watchdog está habilitado de forma predeterminada para conexiones directas a la API de Anthropic y a [Claude Platform on AWS](/docs/es/claude-platform-on-aws), y para respuestas en streaming en conexiones de [gateway](/docs/es/gateways) a las que se accede mediante `ANTHROPIC_BASE_URL` o `ANTHROPIC_AWS_BASE_URL`; antes de v2.1.222 no se ejecutaba en esas conexiones de gateway, por lo que el watchdog a nivel de eventos podía informar de un bloqueo allí incluso mientras llegaban pings de keep-alive. Para los tiempos de espera y cómo interactúan los temporizadores, consulta [Watchdogs de inactividad de streaming](/docs/es/network-config#streaming-idle-watchdogs) |

432| `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK` | Establécela en `1` para activar el watchdog de inactividad de streaming a nivel de bytes en las respuestas `vnd.amazon.eventstream` de Amazon Bedrock, lo que también activa el [plazo del primer byte](/docs/es/network-config#streaming-idle-watchdogs) en las solicitudes de streaming de Bedrock. Desactivado de forma predeterminada. Configura el tiempo de espera con `CLAUDE_STREAM_IDLE_TIMEOUT_MS` |435| `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK` | Establécela en `1` para habilitar el watchdog de inactividad de streaming a nivel de bytes en las respuestas `vnd.amazon.eventstream` de Amazon Bedrock, lo que también habilita el [plazo del primer byte](/docs/es/network-config#streaming-idle-watchdogs) en las solicitudes de streaming de Bedrock. Desactivado de forma predeterminada. Configura el tiempo de espera con `CLAUDE_STREAM_IDLE_TIMEOUT_MS` |

433| `CLAUDE_ENABLE_STREAM_WATCHDOG` | Establécela en `0` para forzar la desactivación del watchdog de inactividad de streaming a nivel de eventos, o en `1` para forzar su activación. Cuando no está establecida, el watchdog está activado de forma predeterminada para todos los proveedores. Antes de v2.1.196, el valor predeterminado sin establecer lo controlaba el servidor en la API directa de Anthropic y estaba desactivado en otros proveedores. Configura el tiempo de espera con `CLAUDE_STREAM_IDLE_TIMEOUT_MS`; para los otros temporizadores de bloqueo que se ejecutan junto con este, consulta [Watchdogs de inactividad de streaming](/docs/es/network-config#streaming-idle-watchdogs) |436| `CLAUDE_ENABLE_STREAM_WATCHDOG` | Establécela en `0` para forzar la deshabilitación del watchdog de inactividad de streaming a nivel de eventos, o en `1` para forzar su habilitación. Cuando no está establecida, el watchdog está activado de forma predeterminada para todos los proveedores. Antes de v2.1.196, el valor predeterminado sin establecer lo controlaba el servidor en la API directa de Anthropic y estaba desactivado en otros proveedores. Configura el tiempo de espera con `CLAUDE_STREAM_IDLE_TIMEOUT_MS`; para los otros temporizadores de bloqueo que se ejecutan junto a este, consulta [Watchdogs de inactividad de streaming](/docs/es/network-config#streaming-idle-watchdogs) |

434| `CLAUDE_ENV_FILE` | Ruta a un script de shell cuyo contenido Claude Code ejecuta antes de cada comando de Bash en el mismo proceso de shell, de modo que las exportaciones del archivo sean visibles para el comando. Úsala para mantener la activación de virtualenv o conda entre comandos. También la rellenan dinámicamente los hooks [SessionStart](/docs/es/hooks#persist-environment-variables), [Setup](/docs/es/hooks#setup), [CwdChanged](/docs/es/hooks#cwdchanged) y [FileChanged](/docs/es/hooks#filechanged) |437| `CLAUDE_ENV_FILE` | Ruta a un script de shell cuyo contenido Claude Code ejecuta antes de cada comando Bash en el mismo proceso del shell, de modo que las exportaciones del archivo sean visibles para el comando. Úsala para mantener la activación de virtualenv o conda entre comandos. También la rellenan dinámicamente los hooks [SessionStart](/docs/es/hooks#persist-environment-variables), [Setup](/docs/es/hooks#setup), [CwdChanged](/docs/es/hooks#cwdchanged) y [FileChanged](/docs/es/hooks#filechanged) |

435| `CLAUDE_JOB_DIR` | Claude Code la establece en cada [sesión en segundo plano](/docs/es/agent-view) con el directorio `~/.claude/jobs/<id>` de esa sesión. Los comandos de shell que ejecuta la sesión la heredan. Escribe los archivos temporales en [`$CLAUDE_JOB_DIR/tmp`](/docs/es/agent-view#where-state-is-stored). Las llamadas `Write` y `Edit` de Claude allí no solicitan permiso, y el directorio se elimina cuando se borra la sesión |438| `CLAUDE_JOB_DIR` | Claude Code la establece en cada [sesión en segundo plano](/docs/es/agent-view) con el directorio `~/.claude/jobs/<id>` de esa sesión. Los comandos de shell que ejecuta la sesión la heredan. Escribe los archivos temporales en [`$CLAUDE_JOB_DIR/tmp`](/docs/es/agent-view#where-state-is-stored). Las llamadas `Write` y `Edit` de Claude allí no solicitan permiso, y el directorio se elimina cuando se borra la sesión |

436| `CLAUDE_PID` | Claude Code la establece con su propio ID de proceso en los subprocesos que genera: los comandos de las herramientas Bash y PowerShell y los comandos de hooks. En Linux, la integración de shell de la herramienta Bash la usa para rechazar un patrón de `pkill` que coincidiría con el propio proceso de Claude Code; consulta [la referencia de errores](/docs/es/errors#pkill-pattern-matches-the-claude-code-process). Léela desde tus propios scripts para identificar o enviar señales deliberadamente al proceso padre de Claude Code. Requiere Claude Code v2.1.214 o posterior |439| `CLAUDE_PID` | Claude Code la establece con su propio ID de proceso en los subprocesos que genera: comandos de las herramientas Bash y PowerShell y comandos de hooks. En Linux, la integración de shell de la herramienta Bash la usa para rechazar un patrón de `pkill` que coincidiría con el propio proceso de Claude Code; consulta [la referencia de errores](/docs/es/errors#pkill-pattern-matches-the-claude-code-process). Léela desde tus propios scripts para identificar o enviar señales deliberadamente al proceso padre de Claude Code. Requiere Claude Code v2.1.214 o posterior |

437| `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` | Prefijo para los nombres de sesión de [Remote Control](/docs/es/remote-control) generados automáticamente cuando no se proporciona un nombre explícito. De forma predeterminada es el nombre de host de tu máquina, lo que produce nombres como `myhost-graceful-unicorn`. El flag de CLI `--remote-control-session-name-prefix` establece el mismo valor para una sola invocación |440| `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` | Prefijo para los nombres de sesión de [Remote Control](/docs/es/remote-control) generados automáticamente cuando no se proporciona un nombre explícito. De forma predeterminada es el nombre de host de tu máquina, lo que produce nombres como `myhost-graceful-unicorn`. El flag de la CLI `--remote-control-session-name-prefix` establece el mismo valor para una sola invocación |

438| `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS` | Plazo en milisegundos para el primer byte de respuesta de una solicitud de streaming, en las conexiones donde se aplica el [plazo del primer byte](/docs/es/network-config#streaming-idle-watchdogs). Para saber cómo lo limita Claude Code, el tiempo adicional que añade para cuerpos de solicitud grandes y cómo elige el plazo cuando no la estableces, consulta [No response from API](/docs/es/errors#no-response-from-api). Requiere Claude Code v2.1.242 o posterior |441| `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS` | Plazo en milisegundos para el primer byte de respuesta de una solicitud en streaming, en las conexiones donde se aplica el [plazo del primer byte](/docs/es/network-config#streaming-idle-watchdogs). Para saber cómo lo limita Claude Code, el tiempo adicional que añade para cuerpos de solicitud grandes y cómo elige el plazo cuando la dejas sin establecer, consulta [No response from API](/docs/es/errors#no-response-from-api). Requiere Claude Code v2.1.242 o posterior |

439| `CLAUDE_STREAM_IDLE_TIMEOUT_MS` | Tiempo de espera en milisegundos antes de que los watchdogs de inactividad de streaming a nivel de eventos y de bytes cierren una conexión bloqueada. Cuando estableces esta variable explícitamente, el mínimo es `300000` (5 minutos); los valores más bajos se ajustan silenciosamente para absorber las pausas de pensamiento extendido y el almacenamiento en búfer del proxy, y el watchdog a nivel de bytes limita el valor a 30 minutos. `CLAUDE_BYTE_STREAM_IDLE_TIMEOUT_MS` tiene precedencia sobre esta variable para el watchdog a nivel de bytes. Para los valores predeterminados sin establecer de cada watchdog, consulta [Watchdogs de inactividad de streaming](/docs/es/network-config#streaming-idle-watchdogs) |442| `CLAUDE_STREAM_IDLE_TIMEOUT_MS` | Tiempo de espera en milisegundos antes de que los watchdogs de inactividad de streaming a nivel de eventos y de bytes cierren una conexión bloqueada. Cuando estableces esta variable explícitamente, el mínimo es `300000` (5 minutos); los valores inferiores se ajustan silenciosamente para absorber pausas de pensamiento extendido y el almacenamiento en búfer del proxy, y el watchdog a nivel de bytes limita el valor a 30 minutos. `CLAUDE_BYTE_STREAM_IDLE_TIMEOUT_MS` tiene precedencia sobre esta variable para el watchdog a nivel de bytes. Para los valores predeterminados sin establecer de cada watchdog, consulta [Watchdogs de inactividad de streaming](/docs/es/network-config#streaming-idle-watchdogs) |

440| `CLAUDE_SUBAGENT_BG_SHELL_MAX_MS` | Eliminada en v2.1.260 y ahora no tiene efecto. Anteriormente limitaba, en milisegundos, cuánto tiempo podía ejecutarse un [comando de shell en segundo plano](/docs/es/interactive-mode#background-bash-commands) iniciado por un [subagente](/docs/es/sub-agents), con un valor predeterminado de 60 minutos. Consulta [las reglas de duración de los comandos en segundo plano](/docs/es/tools-reference#background-commands) |443| `CLAUDE_SUBAGENT_BG_SHELL_MAX_MS` | Eliminada en v2.1.260 y ahora no tiene efecto. Anteriormente limitaba, en milisegundos, cuánto tiempo podía ejecutarse un [comando de shell en segundo plano](/docs/es/interactive-mode#background-bash-commands) iniciado por un [subagente](/docs/es/sub-agents), con un valor predeterminado de 60 minutos. Consulta [las reglas de duración de los comandos en segundo plano](/docs/es/tools-reference#background-commands) |

441| `DEBUG` | Establécela en `1` para activar el modo de depuración, equivalente a iniciar con [`--debug`](/docs/es/cli-reference#cli-flags). Los registros de depuración se escriben en `~/.claude/debug/<session-id>.txt`, o en la ruta establecida por `CLAUDE_CODE_DEBUG_LOGS_DIR`. Solo los valores verdaderos `1`, `true`, `yes` y `on` activan el modo de depuración, por lo que los patrones de espacio de nombres como `DEBUG=express:*` establecidos para otras herramientas no lo activan |444| `DEBUG` | Establécela en `1` para habilitar el modo de depuración, equivalente a iniciar con [`--debug`](/docs/es/cli-reference#cli-flags). Los registros de depuración se escriben en `~/.claude/debug/<session-id>.txt`, o en la ruta establecida por `CLAUDE_CODE_DEBUG_LOGS_DIR`. Solo los valores verdaderos `1`, `true`, `yes` y `on` habilitan el modo de depuración, por lo que los patrones de espacio de nombres como `DEBUG=express:*` establecidos para otras herramientas no lo activan |

442| `DISABLE_AUTOUPDATER` | Establécela en `1` para desactivar las actualizaciones automáticas en segundo plano. `claude update` manual sigue funcionando. Usa `DISABLE_UPDATES` para bloquear ambas |445| `DISABLE_AUTOUPDATER` | Establécela en `1` para deshabilitar las actualizaciones automáticas en segundo plano. El comando manual `claude update` sigue funcionando. Usa `DISABLE_UPDATES` para bloquear ambas |

443| `DISABLE_AUTO_COMPACT` | Establécela en `1` para desactivar la compactación automática al acercarse al límite de contexto. El comando manual `/compact` sigue disponible. Úsala cuando quieras controlar explícitamente cuándo se produce la compactación. Sobrescribe el ajuste [`autoCompactEnabled`](/docs/es/settings-reference#autocompactenabled) |446| `DISABLE_AUTO_COMPACT` | Establécela en `1` para deshabilitar la compactación automática al acercarse al límite de contexto. El comando manual `/compact` sigue disponible. Úsala cuando quieras un control explícito sobre cuándo se produce la compactación. Sobrescribe el ajuste [`autoCompactEnabled`](/docs/es/settings-reference#autocompactenabled) |

444| `DISABLE_COMPACT` | Establécela en `1` para desactivar toda la compactación: tanto la compactación automática como el comando manual `/compact` |447| `DISABLE_COMPACT` | Establécela en `1` para deshabilitar toda la compactación: tanto la compactación automática como el comando manual `/compact` |

445| `DISABLE_COST_WARNINGS` | Establécela en `1` para desactivar los mensajes de advertencia de costo |448| `DISABLE_COST_WARNINGS` | Establécela en `1` para deshabilitar los mensajes de advertencia de costos |

446| `DISABLE_DOCTOR_COMMAND` | Establécela en `1` para ocultar el skill de revisión de configuración [`/doctor`](/docs/es/commands#all-commands) y su alias `/checkup`. Útil para despliegues administrados en los que los usuarios no deberían ejecutar diagnósticos de configuración desde una sesión. No afecta al comando de terminal `claude doctor`. Antes de v2.1.205, esta variable ocultaba el comando de pantalla de diagnóstico `/doctor` |449| `DISABLE_DOCTOR_COMMAND` | Establécela en `1` para ocultar el skill de revisión de la instalación [`/doctor`](/docs/es/commands#all-commands) y su alias `/checkup`. Útil para despliegues administrados en los que los usuarios no deberían ejecutar diagnósticos de instalación desde una sesión. No afecta al comando de terminal `claude doctor`. Antes de v2.1.205, esta variable ocultaba el comando de pantalla de diagnóstico `/doctor` |

447| `DISABLE_ERROR_REPORTING` | Establécela en cualquier valor no vacío, como `1`, para excluirte del informe de errores. **Establecerla en `0` o `false` también te excluye**, a diferencia de la mayoría de las variables de activación/desactivación; elimina la variable para volver a activar el informe de errores |450| `DISABLE_ERROR_REPORTING` | Establécela en cualquier valor no vacío, como `1`, para excluirte del informe de errores. **Establecerla en `0` o `false` también te excluye**, a diferencia de la mayoría de las variables de activación/desactivación; elimina la variable para volver a activar el informe de errores |

448| `DISABLE_EXTRA_USAGE_COMMAND` | Establécela en `1` para ocultar el comando `/usage-credits` que permite a los usuarios comprar uso adicional más allá de los rate limits |451| `DISABLE_EXTRA_USAGE_COMMAND` | Establécela en `1` para ocultar el comando `/usage-credits` que permite a los usuarios comprar uso adicional más allá de los rate limits |

449| `DISABLE_FEEDBACK_COMMAND` | Establécela en `1` para desactivar el comando `/feedback` y los [comentarios redactados por Claude](/docs/es/tools-reference#sendfeedback-tool-behavior). También desactiva `/bug` y `/share`, que informan por la misma vía; antes de v2.1.212 eran alias de `/feedback`, por lo que el comando quedaba desactivado con cualquier nombre. También se acepta el nombre anterior `DISABLE_BUG_COMMAND` |452| `DISABLE_FEEDBACK_COMMAND` | Establécela en `1` para deshabilitar el comando `/feedback` y los [comentarios redactados por Claude](/docs/es/tools-reference#sendfeedback-tool-behavior). También deshabilita `/bug` y `/share`, que informan por la misma vía; antes de v2.1.212 eran alias de `/feedback`, por lo que el comando quedaba deshabilitado con cualquier nombre. También se acepta el nombre anterior `DISABLE_BUG_COMMAND` |

450| `DISABLE_GROWTHBOOK` | Establécela en `1` o `true` para desactivar la obtención de feature flags de GrowthBook y usar los valores predeterminados del código para todos los flags. Esto hace que [Remote Control](/docs/es/remote-control#requirements) y las demás [funciones que necesitan la obtención de feature flags](#features-that-need-feature-flag-fetching) no estén disponibles. Establecerla en `0` o `false` mantiene la obtención activada. El registro de eventos de telemetría sigue activado a menos que también se establezca `DISABLE_TELEMETRY` |453| `DISABLE_GROWTHBOOK` | Establécela en `1` o `true` para deshabilitar la obtención de feature flags de GrowthBook y usar los valores predeterminados del código para cada flag. Esto hace que [Remote Control](/docs/es/remote-control#requirements) y las demás [funciones que necesitan la obtención de feature flags](#features-that-need-feature-flag-fetching) no estén disponibles. Establecerla en `0` o `false` mantiene activada la obtención. El registro de eventos de telemetría sigue activo a menos que también se establezca `DISABLE_TELEMETRY` |

451| `DISABLE_INSTALLATION_CHECKS` | Establécela en `1` para desactivar las advertencias de instalación. Úsala solo cuando administres manualmente la ubicación de la instalación, ya que puede ocultar problemas con las instalaciones estándar |454| `DISABLE_INSTALLATION_CHECKS` | Establécela en `1` para deshabilitar las advertencias de instalación. Úsala solo cuando administres manualmente la ubicación de la instalación, ya que puede ocultar problemas con las instalaciones estándar |

452| `DISABLE_INSTALL_GITHUB_APP_COMMAND` | Establécela en `1` para ocultar el comando `/install-github-app`. Ya está oculto cuando se usan proveedores de terceros (Amazon Bedrock, Google Cloud's Agent Platform o Microsoft Foundry) |455| `DISABLE_INSTALL_GITHUB_APP_COMMAND` | Establécela en `1` para ocultar el comando `/install-github-app`. Ya está oculto cuando usas proveedores de terceros (Amazon Bedrock, Google Cloud's Agent Platform o Microsoft Foundry) |

453| `DISABLE_INTERLEAVED_THINKING` | Establécela en `1` para evitar enviar el encabezado beta de interleaved-thinking. Útil cuando tu gateway de LLM o proveedor no admite el [pensamiento intercalado](https://platform.claude.com/docs/en/build-with-claude/extended-thinking#interleaved-thinking) |456| `DISABLE_INTERLEAVED_THINKING` | Establécela en `1` para evitar enviar el encabezado beta de interleaved-thinking. Útil cuando tu gateway de LLM o proveedor no admite el [pensamiento intercalado](https://platform.claude.com/docs/en/build-with-claude/extended-thinking#interleaved-thinking) |

454| `DISABLE_LOGIN_COMMAND` | Establécela en `1` para ocultar el comando `/login`. Útil cuando la autenticación se gestiona externamente mediante claves de API o `apiKeyHelper` |457| `DISABLE_LOGIN_COMMAND` | Establécela en `1` para ocultar el comando `/login`. Útil cuando la autenticación se gestiona externamente mediante claves de API o `apiKeyHelper` |

455| `DISABLE_LOGOUT_COMMAND` | Establécela en `1` para ocultar el comando `/logout` |458| `DISABLE_LOGOUT_COMMAND` | Establécela en `1` para ocultar el comando `/logout` |

456| `DISABLE_PROMPT_CACHING` | Establécela en `1` para desactivar la [caché de prompts](/docs/es/prompt-caching#disable-prompt-caching) para todos los modelos (tiene precedencia sobre la configuración por modelo) |459| `DISABLE_PROMPT_CACHING` | Establécela en `1` para deshabilitar la [caché de prompts](/docs/es/prompt-caching#disable-prompt-caching) para todos los modelos (tiene precedencia sobre la configuración por modelo) |

457| `DISABLE_PROMPT_CACHING_FABLE` | Establécela en `1` para desactivar la caché de prompts para los modelos Fable |460| `DISABLE_PROMPT_CACHING_FABLE` | Establécela en `1` para deshabilitar la caché de prompts para los modelos Fable |

458| `DISABLE_PROMPT_CACHING_HAIKU` | Establécela en `1` para desactivar la caché de prompts para el [modelo Haiku predeterminado](/docs/es/prompt-caching#disable-prompt-caching), dondequiera que se ejecute |461| `DISABLE_PROMPT_CACHING_HAIKU` | Establécela en `1` para deshabilitar la caché de prompts para el [modelo Haiku predeterminado](/docs/es/prompt-caching#disable-prompt-caching), dondequiera que se ejecute |

459| `DISABLE_PROMPT_CACHING_OPUS` | Establécela en `1` para desactivar la caché de prompts para el [modelo Opus predeterminado](/docs/es/prompt-caching#disable-prompt-caching) |462| `DISABLE_PROMPT_CACHING_OPUS` | Establécela en `1` para deshabilitar la caché de prompts para el [modelo Opus predeterminado](/docs/es/prompt-caching#disable-prompt-caching) |

460| `DISABLE_PROMPT_CACHING_SONNET` | Establécela en `1` para desactivar la caché de prompts para el [modelo Sonnet predeterminado](/docs/es/prompt-caching#disable-prompt-caching) |463| `DISABLE_PROMPT_CACHING_SONNET` | Establécela en `1` para deshabilitar la caché de prompts para el [modelo Sonnet predeterminado](/docs/es/prompt-caching#disable-prompt-caching) |

461| `DISABLE_TELEMETRY` | Establécela en cualquier valor no vacío, como `1`, para excluirte de la telemetría. **Establecerla en `0` o `false` también te excluye**, a diferencia de la mayoría de las variables de activación/desactivación; elimina la variable para volver a activar la telemetría. Los eventos de telemetría no incluyen datos del usuario como código, rutas de archivos o comandos de Bash. También desactiva la [obtención de feature flags](#features-that-need-feature-flag-fetching). Consulta [Desactivar la telemetría para tu organización](/docs/es/managed-settings#turn-telemetry-off-for-your-organization) |464| `DISABLE_TELEMETRY` | Establécela en cualquier valor no vacío, como `1`, para excluirte de la telemetría. **Establecerla en `0` o `false` también te excluye**, a diferencia de la mayoría de las variables de activación/desactivación; elimina la variable para volver a activar la telemetría. Los eventos de telemetría no incluyen datos del usuario como código, rutas de archivos o comandos Bash. También deshabilita la [obtención de feature flags](#features-that-need-feature-flag-fetching). Consulta [Desactivar la telemetría para tu organización](/docs/es/managed-settings#turn-telemetry-off-for-your-organization) |

462| `DISABLE_UPDATES` | Establécela en `1` para bloquear todas las actualizaciones, incluidos `claude update` y `claude install` manuales. Más estricta que `DISABLE_AUTOUPDATER`. Úsala cuando distribuyas Claude Code a través de tus propios canales y los usuarios no deban actualizarse por su cuenta |465| `DISABLE_UPDATES` | Establécela en `1` para bloquear todas las actualizaciones, incluidos los comandos manuales `claude update` y `claude install`. Más estricta que `DISABLE_AUTOUPDATER`. Úsala cuando distribuyas Claude Code a través de tus propios canales y los usuarios no deban actualizarlo por su cuenta |

463| `DISABLE_UPGRADE_COMMAND` | Establécela en `1` para ocultar el comando `/upgrade` |466| `DISABLE_UPGRADE_COMMAND` | Establécela en `1` para ocultar el comando `/upgrade` |

464| `DO_NOT_TRACK` | Establécela en `1` para excluirte de la telemetría, con el mismo efecto que `DISABLE_TELEMETRY`, incluso en la [obtención de feature flags](#features-that-need-feature-flag-fetching). Claude Code lee esta variable como un booleano estándar, por lo que `0` mantiene la telemetría activada, y la respeta como la convención entre herramientas reconocida por muchas CLI para desarrolladores |467| `DO_NOT_TRACK` | Establécela en `1` para excluirte de la telemetría, con el mismo efecto que `DISABLE_TELEMETRY`, incluido sobre la [obtención de feature flags](#features-that-need-feature-flag-fetching). Claude Code lee esta variable como un booleano estándar, por lo que `0` mantiene activada la telemetría, y la respeta como la convención entre herramientas que reconocen muchas CLI para desarrolladores |

465| `ENABLE_BETA_TRACING_DETAILED` | Establécela en `1`, y establece `BETA_TRACING_ENDPOINT` en el endpoint de tu recopilador OTLP/HTTP, para activar el [rastreo beta detallado](/docs/es/monitoring-usage#traces-beta), que agrega atributos de span con contenido y el span `claude_code.hook`. Las sesiones interactivas de la CLI también requieren que tu organización esté en la lista de permitidos de la beta. Ambas variables se ignoran en la [configuración de proyecto y local](/docs/es/settings-reference#variables-claude-code-ignores-in-env) |468| `ENABLE_BETA_TRACING_DETAILED` | Establécela en `1`, y establece `BETA_TRACING_ENDPOINT` con el endpoint de tu colector OTLP/HTTP, para activar el [rastreo beta detallado](/docs/es/monitoring-usage#traces-beta), que añade atributos de span con contenido y el span `claude_code.hook`. Las sesiones interactivas de la CLI también requieren que tu organización esté en la lista de permitidos de la beta. Ambas variables se ignoran en la [configuración de proyecto y local](/docs/es/settings-reference#variables-claude-code-ignores-in-env) |

466| `ENABLE_CLAUDEAI_MCP_SERVERS` | Establécela en `false` para que Claude Code deje de obtener [servidores MCP de claude.ai](/docs/es/mcp#use-mcp-servers-from-claude-ai). Activada de forma predeterminada para los usuarios con sesión iniciada. Para desactivarla por proyecto o por organización, establece [`disableClaudeAiConnectors`](/docs/es/settings-reference#disableclaudeaiconnectors) en la configuración |469| `ENABLE_CLAUDEAI_MCP_SERVERS` | Establécela en `false` para que Claude Code deje de obtener los [servidores MCP de claude.ai](/docs/es/mcp#use-mcp-servers-from-claude-ai). Habilitada de forma predeterminada para los usuarios que han iniciado sesión. Para deshabilitarla por proyecto o por organización, establece [`disableClaudeAiConnectors`](/docs/es/settings-reference#disableclaudeaiconnectors) en la configuración |

467| `ENABLE_PROMPT_CACHING_1H` | Establécela en `1` para solicitar un [TTL de caché de prompts](/docs/es/prompt-caching#cache-lifetime) de 1 hora en lugar de los 5 minutos predeterminados. Pensada para usuarios de clave de API, [Amazon Bedrock](/docs/es/amazon-bedrock), [Google Cloud's Agent Platform](/docs/es/google-vertex-ai), [Microsoft Foundry](/docs/es/microsoft-foundry) y [Claude Platform on AWS](/docs/es/claude-platform-on-aws). Los usuarios con suscripción dentro del uso incluido reciben automáticamente el TTL de 1 hora en la [conversación principal](/docs/es/prompt-caching#which-ttl-each-request-gets). Los usuarios con suscripción que consumen [créditos de uso](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) pueden establecerla para conservar el TTL de 1 hora. Las escrituras en caché de 1 hora se facturan a una tarifa más alta. Para elegir el TTL por grupo de solicitudes, usa `CLAUDE_CODE_PROMPT_CACHE_TTL` y `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL`, que tienen precedencia sobre esta variable |470| `ENABLE_PROMPT_CACHING_1H` | Establécela en `1` para solicitar un [TTL de caché de prompts](/docs/es/prompt-caching#cache-lifetime) de 1 hora en lugar de los 5 minutos predeterminados. Pensada para usuarios de clave de API, [Amazon Bedrock](/docs/es/amazon-bedrock), [Google Cloud's Agent Platform](/docs/es/google-vertex-ai), [Microsoft Foundry](/docs/es/microsoft-foundry) y [Claude Platform on AWS](/docs/es/claude-platform-on-aws). Los usuarios con suscripción dentro del uso incluido reciben automáticamente el TTL de 1 hora en la [conversación principal](/docs/es/prompt-caching#which-ttl-each-request-gets). Los usuarios con suscripción que consumen [créditos de uso](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) pueden establecerla para mantener el TTL de 1 hora. Las escrituras en caché de 1 hora se facturan a una tarifa más alta. Para elegir el TTL por grupo de solicitudes, usa `CLAUDE_CODE_PROMPT_CACHE_TTL` y `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL`, que tienen precedencia sobre esta variable |

468| `ENABLE_PROMPT_CACHING_1H_BEDROCK` | Obsoleta. Usa `ENABLE_PROMPT_CACHING_1H` en su lugar |471| `ENABLE_PROMPT_CACHING_1H_BEDROCK` | Obsoleta. Usa `ENABLE_PROMPT_CACHING_1H` en su lugar |

469| `ENABLE_TOOL_SEARCH` | Controla [MCP Tool Search](/docs/es/mcp#scale-with-mcp-tool-search). Sin establecer, Claude Code difiere todas las herramientas MCP de forma predeterminada. Aun así, las carga por adelantado en los modelos de Google Cloud's Agent Platform anteriores a la generación Claude 4.5, en un despliegue de Microsoft Foundry alojado en Azure y cuando `ANTHROPIC_BASE_URL` apunta a un host que no es de primera parte. `true` siempre difiere y envía el encabezado beta, excepto en esos mismos modelos de Agent Platform y despliegues de Microsoft Foundry; las solicitudes fallan en proxies que no admiten `tool_reference`. `auto` carga por adelantado cuando las definiciones de herramientas caben en el 10% del contexto. `auto:N` establece un umbral personalizado, como `auto:5` para el 5%. `false` carga todas las herramientas por adelantado. Un valor que establezcas tú mismo se ignora cuando `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` está establecida. Antes de v2.1.221, Claude Code desactivaba la búsqueda de herramientas para todos los modelos en Google Cloud's Agent Platform a menos que establecieras esta variable en `true` |472| `ENABLE_TOOL_SEARCH` | Controla la [búsqueda de herramientas MCP](/docs/es/mcp#scale-with-mcp-tool-search). Sin establecer, Claude Code difiere todas las herramientas MCP de forma predeterminada. Aun así, las carga por adelantado en los modelos de Google Cloud's Agent Platform anteriores a la generación Claude 4.5, en un despliegue de Microsoft Foundry alojado en Azure y cuando `ANTHROPIC_BASE_URL` apunta a un host que no es de primera parte. `true` siempre difiere y envía el encabezado beta, excepto en esos mismos modelos de Agent Platform y despliegues de Microsoft Foundry; las solicitudes fallan en los proxies que no admiten `tool_reference`. `auto` carga por adelantado cuando las definiciones de herramientas caben dentro del 10% del contexto. `auto:N` establece un umbral personalizado, como `auto:5` para el 5%. `false` carga todas las herramientas por adelantado. Un valor que establezcas tú mismo se ignora cuando `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` está establecida. Antes de v2.1.221, Claude Code deshabilitaba la búsqueda de herramientas para todos los modelos en Google Cloud's Agent Platform a menos que establecieras esta variable en `true` |

470| `FALLBACK_FOR_ALL_PRIMARY_MODELS` | Establécela en cualquier valor no vacío, como `1`, para que Claude Code deje de reintentar ante errores de sobrecarga repetidos para todos los modelos cuando no hay un modelo de respaldo configurado. **Establecerla en `0` o `false` también lo activa**, a diferencia de la mayoría de las variables de activación/desactivación; elimina la variable para restaurar el comportamiento de reintento predeterminado. Sin ella, Claude Code deja de reintentar de esta manera en los modelos que reconoce como modelos Opus, Fable o Mythos cuando te autenticas con una clave de API o un [proveedor de terceros](/docs/es/third-party-integrations) en lugar de una suscripción a Claude. En Claude Code v2.1.160 o posterior, Claude Code cambia a tu [cadena de modelos de respaldo](/docs/es/model-config#fallback-model-chains) configurada ante errores de sobrecarga repetidos para cualquier modelo principal, por lo que esta variable no afecta al cambio a un modelo de respaldo |473| `FALLBACK_FOR_ALL_PRIMARY_MODELS` | Establécela en cualquier valor no vacío, como `1`, para que Claude Code deje de reintentar ante errores de sobrecarga repetidos en todos los modelos cuando no hay un modelo de respaldo configurado. **Establecerla en `0` o `false` también lo habilita**, a diferencia de la mayoría de las variables de activación/desactivación; elimina la variable para restaurar el comportamiento de reintento predeterminado. Sin ella, Claude Code deja de reintentar de esta forma en los modelos que reconoce como Opus, Fable o Mythos cuando te autenticas con una clave de API o un [proveedor de terceros](/docs/es/third-party-integrations) en lugar de una suscripción a Claude. En Claude Code v2.1.160 o posterior, Claude Code cambia a tu [cadena de modelos de respaldo](/docs/es/model-config#fallback-model-chains) configurada ante errores de sobrecarga repetidos en cualquier modelo principal, por lo que esta variable no afecta al cambio a un modelo de respaldo |

471| `FORCE_AUTOUPDATE_PLUGINS` | Establécela en `1` para forzar las actualizaciones automáticas de plugins incluso cuando el actualizador automático principal está desactivado mediante `DISABLE_AUTOUPDATER` |474| `FORCE_AUTOUPDATE_PLUGINS` | Establécela en `1` para forzar las actualizaciones automáticas de plugins incluso cuando el actualizador automático principal está deshabilitado mediante `DISABLE_AUTOUPDATER` |

472| `FORCE_HYPERLINK` | Establécela en `1` para activar los hipervínculos OSC 8 en los que se puede hacer clic cuando tu terminal los admite pero no se detecta automáticamente, o en `0` para desactivarlos. Cuando no está establecida, Claude Code activa los hipervínculos solo cuando detecta compatibilidad en la terminal. Claude Code interpreta este valor como un número, no como un booleano, por lo que un valor como `false`, `no` u `off` activa los hipervínculos en lugar de desactivarlos. La [insignia de PR o merge request](/docs/es/interactive-mode#pr-review-status) del pie de página se muestra como hipervínculo incluso cuando Claude Code no puede detectar la compatibilidad de la terminal, por ejemplo a través de SSH. Establécela en `0` para mostrar la insignia como texto sin formato |475| `FORCE_HYPERLINK` | Establécela en `1` para habilitar los hipervínculos OSC 8 en los que se puede hacer clic cuando tu terminal los admite pero no se detectan automáticamente, o en `0` para deshabilitarlos. Cuando no está establecida, Claude Code habilita los hipervínculos solo cuando detecta compatibilidad en la terminal. Claude Code interpreta este valor como un número, no como un booleano, por lo que un valor como `false`, `no` u `off` habilita los hipervínculos en lugar de deshabilitarlos. La [insignia de PR o merge request](/docs/es/interactive-mode#pr-review-status) del pie de página se muestra como hipervínculo incluso cuando Claude Code no puede detectar la compatibilidad de la terminal, como a través de SSH. Establécela en `0` para mostrar la insignia como texto sin formato |

473| `FORCE_PROMPT_CACHING_5M` | Establécela en `1` para forzar el TTL de caché de prompts de 5 minutos incluso cuando de otro modo se aplicaría el TTL de 1 hora. Sobrescribe `CLAUDE_CODE_PROMPT_CACHE_TTL`, `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL`, `ENABLE_PROMPT_CACHING_1H` y los ajustes `promptCacheTtl` y `subagentPromptCacheTtl` |476| `FORCE_PROMPT_CACHING_5M` | Establécela en `1` para forzar el TTL de caché de prompts de 5 minutos incluso cuando de otro modo se aplicaría el TTL de 1 hora. Sobrescribe `CLAUDE_CODE_PROMPT_CACHE_TTL`, `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL`, `ENABLE_PROMPT_CACHING_1H` y los ajustes `promptCacheTtl` y `subagentPromptCacheTtl` |

474| `HTTP_PROXY` | Especifica el servidor proxy HTTP para las conexiones de red |477| `HTTP_PROXY` | Especifica el servidor proxy HTTP para las conexiones de red |

475| `HTTPS_PROXY` | Especifica el servidor proxy HTTPS para las conexiones de red |478| `HTTPS_PROXY` | Especifica el servidor proxy HTTPS para las conexiones de red |

476| `IS_DEMO` | Establécela en cualquier valor no vacío, como `1`, para activar el modo de demostración: oculta tu correo electrónico y el nombre de tu organización del encabezado y de la salida de `/status`, y omite la incorporación. **Establecerla en `0` o `false` también activa el modo de demostración**, a diferencia de la mayoría de las variables de activación/desactivación; elimina la variable para desactivarlo. Útil al transmitir o grabar una sesión |479| `IS_DEMO` | Establécela en cualquier valor no vacío, como `1`, para habilitar el modo de demostración: oculta tu correo electrónico y el nombre de tu organización del encabezado y de la salida de `/status`, y omite la incorporación. **Establecerla en `0` o `false` también habilita el modo de demostración**, a diferencia de la mayoría de las variables de activación/desactivación; elimina la variable para desactivarlo. Útil al transmitir o grabar una sesión |

477| `MAX_MCP_OUTPUT_TOKENS` | Cantidad máxima de tokens permitidos en las respuestas de herramientas MCP (valor predeterminado: 25000). Claude Code muestra una advertencia cuando la salida supera los 10,000 tokens. Las herramientas que declaran [`anthropic/maxResultSizeChars`](/docs/es/mcp#raise-the-limit-for-a-specific-tool) usan ese límite de caracteres para el contenido de texto, pero el contenido de imagen de esas herramientas sigue sujeto a esta variable. Un resultado de texto correcto de más de 50,000 caracteres de una herramienta sin esa anotación se [guarda en un archivo](/docs/es/mcp#mcp-output-limits-and-warnings) independientemente de esta variable |480| `MAX_MCP_OUTPUT_TOKENS` | Número máximo de tokens permitidos en las respuestas de herramientas MCP (predeterminado: 25000). Claude Code muestra una advertencia cuando la salida supera los 10,000 tokens. Las herramientas que declaran [`anthropic/maxResultSizeChars`](/docs/es/mcp#raise-the-limit-for-a-specific-tool) usan ese límite de caracteres para el contenido de texto, pero el contenido de imagen de esas herramientas sigue sujeto a esta variable. Un resultado de texto correcto de más de 50,000 caracteres de una herramienta sin esa anotación se [guarda en un archivo](/docs/es/mcp#mcp-output-limits-and-warnings) independientemente de esta variable |

478| `MAX_STRUCTURED_OUTPUT_RETRIES` | Cantidad de intentos que Claude Code permite cuando la respuesta del modelo no supera la validación contra el [`--json-schema`](/docs/es/cli-reference#cli-flags) en modo no interactivo con el flag `-p`; tras esa cantidad de intentos fallidos sin una salida válida, la ejecución falla. El mismo límite se aplica cuando la salida estructurada de un subagente de [workflow](/docs/es/workflows) no supera la validación. El valor predeterminado es 5: un primer intento más cuatro reintentos |481| `MAX_STRUCTURED_OUTPUT_RETRIES` | Número de intentos que Claude Code permite cuando la respuesta del modelo no supera la validación contra el [`--json-schema`](/docs/es/cli-reference#cli-flags) en modo no interactivo con el flag `-p`; tras ese número de intentos fallidos sin salida válida, la ejecución falla. El mismo límite se aplica cuando la salida estructurada de un subagente de [flujo de trabajo](/docs/es/workflows) no supera la validación. El valor predeterminado es 5: un primer intento más cuatro reintentos |

479| `MAX_THINKING_TOKENS` | Presupuesto fijo de tokens para el [pensamiento extendido](https://platform.claude.com/docs/en/build-with-claude/extended-thinking). Claude Code lo limita a un token menos que el máximo de tokens de salida de la solicitud y nunca por debajo de 1,024. Consulta `CLAUDE_CODE_MAX_OUTPUT_TOKENS` para saber cómo se establece ese límite. Cuando no está establecida y el pensamiento está activado, los modelos con [razonamiento adaptativo](/docs/es/model-config#adjust-effort-level) eligen su propia profundidad de pensamiento y los demás modelos usan el límite. Establécela en `0` para desactivar el pensamiento en la API de Anthropic, excepto en Opus 5.5, Sonnet 5.5 y los modelos Fable, en los que no se puede desactivar el pensamiento. En [proveedores de terceros](/docs/es/third-party-integrations), `0` omite en cambio el parámetro `thinking`. Con el pensamiento desactivado en la API de Anthropic, Claude Code envía el esfuerzo `high` en lugar de un nivel más alto a los modelos que sabe que [no aceptan esa combinación](/docs/es/errors#effort-isnt-available-with-thinking-turned-off), como Opus 5. Para un valor positivo, Claude Code ignora el número en sí en los modelos con razonamiento adaptativo, excepto cuando `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` desactiva el razonamiento adaptativo |482| `MAX_THINKING_TOKENS` | Presupuesto fijo de tokens para el [pensamiento extendido](https://platform.claude.com/docs/en/build-with-claude/extended-thinking). Claude Code lo limita a un token menos que el máximo de tokens de salida de la solicitud y nunca por debajo de 1,024. Consulta `CLAUDE_CODE_MAX_OUTPUT_TOKENS` para saber cómo se establece ese límite. Cuando no está establecida y el pensamiento está habilitado, los modelos con [razonamiento adaptativo](/docs/es/model-config#adjust-effort-level) eligen su propia profundidad de pensamiento, y los demás modelos usan el límite. Establécela en `0` para deshabilitar el pensamiento en la API de Anthropic, excepto en Opus 5.5, Sonnet 5.5, Haiku 5.5 y los modelos Fable, en los que no se puede desactivar el pensamiento. En [proveedores de terceros](/docs/es/third-party-integrations), `0` omite en su lugar el parámetro `thinking`. Con el pensamiento desactivado en la API de Anthropic, Claude Code envía el esfuerzo `high` en lugar de un nivel superior a los modelos que sabe que [no aceptan esa combinación](/docs/es/errors#effort-isnt-available-with-thinking-turned-off), como Opus 5. Para un valor positivo, Claude Code ignora el número en sí en los modelos con razonamiento adaptativo, excepto cuando `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` desactiva el razonamiento adaptativo |

480| `MCP_CLIENT_SECRET` | Secreto de cliente OAuth para servidores MCP que requieren [credenciales preconfiguradas](/docs/es/mcp#use-pre-configured-oauth-credentials). Evita la solicitud interactiva al añadir un servidor con `--client-secret` |483| `MCP_CLIENT_SECRET` | Secreto de cliente OAuth para servidores MCP que requieren [credenciales preconfiguradas](/docs/es/mcp#use-pre-configured-oauth-credentials). Evita la solicitud interactiva al agregar un servidor con `--client-secret` |

481| `MCP_CONNECTION_NONBLOCKING` | Controla si el inicio espera a que los servidores MCP se conecten antes de la primera consulta. El inicio de MCP no es bloqueante de forma predeterminada: los servidores se conectan en segundo plano y sus herramientas quedan disponibles a medida que terminan. Establécela en `0` para que Claude Code espere a que los servidores se conecten antes de la primera consulta. Los servidores configurados con [`alwaysLoad: true`](/docs/es/mcp#exempt-a-server-from-deferral) siguen haciendo esperar al inicio de todos modos, excepto cuando se sirven desde la [caché de descubrimiento](/docs/es/mcp#server-status-detail), ya que sus herramientas deben estar presentes cuando se construye el primer prompt. En modo no interactivo (`-p`) sin `--input-format stream-json`, Claude Code también espera a los servidores aún pendientes antes del primer turno independientemente de esta variable. Cuando pasas [`--mcp-config`](/docs/es/cli-reference#cli-flags) explícitamente, la espera tiene un plazo más largo; consulta la entrada de ese flag para la excepción de servidores en caché |484| `MCP_CONNECTION_NONBLOCKING` | Controla si el inicio espera a que los servidores MCP se conecten antes de la primera consulta. El inicio de MCP no es bloqueante de forma predeterminada: los servidores se conectan en segundo plano y sus herramientas pasan a estar disponibles a medida que terminan. Establécela en `0` para que Claude Code espere a que los servidores se conecten antes de la primera consulta. Los servidores configurados con [`alwaysLoad: true`](/docs/es/mcp#exempt-a-server-from-deferral) siguen haciendo que el inicio espere en cualquier caso, excepto cuando se sirven desde la [caché de descubrimiento](/docs/es/mcp#server-status-detail), ya que sus herramientas deben estar presentes cuando se construye el primer prompt. En modo no interactivo (`-p`) sin `--input-format stream-json`, Claude Code también espera a los servidores aún pendientes antes del primer turno, independientemente de esta variable. Cuando pasas [`--mcp-config`](/docs/es/cli-reference#cli-flags) explícitamente, la espera tiene un plazo más largo; consulta la entrada de ese flag para la excepción de servidores en caché |

482| `MCP_CONNECT_TIMEOUT_MS` | Cuánto tiempo espera el inicio bloqueante de MCP, en milisegundos, al lote de conexiones antes de tomar una instantánea de la lista de herramientas (valor predeterminado: 5000). Se aplica cuando `MCP_CONNECTION_NONBLOCKING=0` o para los servidores marcados con [`alwaysLoad: true`](/docs/es/mcp#exempt-a-server-from-deferral). Los servidores que siguen pendientes al llegar el plazo continúan conectándose en segundo plano. Distinta de `MCP_TIMEOUT`, que limita el intento de conexión de un servidor individual |485| `MCP_CONNECT_TIMEOUT_MS` | Cuánto tiempo espera el inicio bloqueante de MCP, en milisegundos, al lote de conexiones antes de capturar la lista de herramientas (predeterminado: 5000). Se aplica cuando `MCP_CONNECTION_NONBLOCKING=0` o para servidores marcados con [`alwaysLoad: true`](/docs/es/mcp#exempt-a-server-from-deferral). Los servidores que siguen pendientes al vencer el plazo continúan conectándose en segundo plano. Distinta de `MCP_TIMEOUT`, que limita el intento de conexión de un servidor individual |

483| `MCP_DISCOVERY_CACHE` | Activa o desactiva la [caché de descubrimiento de MCP](/docs/es/mcp#server-status-detail). Con la caché activada, un servidor HTTP o SSE remoto que hayas usado antes puede mostrar el [estado `cached`](/docs/es/mcp#server-status-detail), y Claude Code lo conecta en su primera llamada a herramienta en lugar de al inicio. La caché está desactivada de forma predeterminada a menos que un despliegue gradual la haya activado para tu cuenta. Establécela en `1` para activarla, o en `0` para mantenerla desactivada incluso cuando el despliegue la haya activado. Antes de v2.1.238, la caché estaba activada de forma predeterminada. El estado `cached` requiere Claude Code v2.1.221 o posterior |486| `MCP_DISCOVERY_CACHE` | Activa o desactiva la [caché de descubrimiento de MCP](/docs/es/mcp#server-status-detail). Con la caché activada, un servidor HTTP o SSE remoto que hayas usado antes puede mostrar el [estado `cached`](/docs/es/mcp#server-status-detail), y Claude Code lo conecta en su primera llamada a herramienta en lugar de al inicio. La caché está desactivada de forma predeterminada a menos que un despliegue gradual la haya habilitado para tu cuenta. Establécela en `1` para activarla, o en `0` para mantenerla desactivada incluso cuando el despliegue la haya habilitado. Antes de v2.1.238, la caché estaba activada de forma predeterminada. El estado `cached` requiere Claude Code v2.1.221 o posterior |

484| `MCP_DISCOVERY_CACHE_MAX_STALE_S` | Antigüedad máxima, en segundos, de una entrada de la [caché de descubrimiento](/docs/es/mcp#server-status-detail) (valor predeterminado: 14400, o 4 horas). En un inicio en el que la entrada es más antigua que eso, Claude Code la descarta y conecta el servidor al inicio, como lo hace con la caché desactivada. Claude Code limita el valor a 7 días. Antes de v2.1.238, el valor predeterminado era 86400, o 24 horas, y Claude Code no limitaba el valor |487| `MCP_DISCOVERY_CACHE_MAX_STALE_S` | Antigüedad máxima, en segundos, de una entrada de la [caché de descubrimiento](/docs/es/mcp#server-status-detail) (predeterminado: 14400, es decir, 4 horas). En un inicio en el que la entrada es más antigua que eso, Claude Code la descarta y conecta el servidor al inicio, como hace con la caché desactivada. Claude Code limita el valor a 7 días. Antes de v2.1.238, el valor predeterminado era 86400, es decir, 24 horas, y Claude Code no limitaba el valor |

485| `MCP_DISCOVERY_CACHE_STRIKES` | En un inicio en el que una entrada de la [caché de descubrimiento](/docs/es/mcp#server-status-detail) es más antigua que `MCP_DISCOVERY_CACHE_TTL_S`, Claude Code la actualiza en segundo plano. Esta variable establece cuántas actualizaciones seguidas pueden fallar antes de que Claude Code descarte la entrada y conecte el servidor en el siguiente inicio (valor predeterminado: 1). Auméntala si tu conexión de red se cae ocasionalmente, para que una actualización fallida no descarte la entrada. Requiere Claude Code v2.1.238 o posterior |488| `MCP_DISCOVERY_CACHE_STRIKES` | En un inicio en el que una entrada de la [caché de descubrimiento](/docs/es/mcp#server-status-detail) es más antigua que `MCP_DISCOVERY_CACHE_TTL_S`, Claude Code la actualiza en segundo plano. Esta variable establece cuántas actualizaciones seguidas pueden fallar antes de que Claude Code descarte la entrada y conecte el servidor en el siguiente inicio (predeterminado: 1). Auméntala si tu conexión de red se interrumpe ocasionalmente, para que una actualización fallida no descarte la entrada. Requiere Claude Code v2.1.238 o posterior |

486| `MCP_DISCOVERY_CACHE_TTL_S` | Segundos durante los cuales Claude Code usa una entrada de la [caché de descubrimiento](/docs/es/mcp#server-status-detail) sin actualizarla (valor predeterminado: 900). En un inicio en el que la entrada es más antigua que eso, Claude Code la sigue usando pero la actualiza en segundo plano. Una vez que la entrada es más antigua que `MCP_DISCOVERY_CACHE_MAX_STALE_S`, Claude Code la descarta. Claude Code limita el valor a `MCP_DISCOVERY_CACHE_MAX_STALE_S`, que es de 4 horas de forma predeterminada. Antes de v2.1.238, Claude Code no limitaba el valor |489| `MCP_DISCOVERY_CACHE_TTL_S` | Segundos durante los cuales Claude Code usa una entrada de la [caché de descubrimiento](/docs/es/mcp#server-status-detail) sin actualizarla (predeterminado: 900). En un inicio en el que la entrada es más antigua que eso, Claude Code la sigue usando pero la actualiza en segundo plano. Una vez que la entrada es más antigua que `MCP_DISCOVERY_CACHE_MAX_STALE_S`, Claude Code la descarta. Claude Code limita el valor a `MCP_DISCOVERY_CACHE_MAX_STALE_S`, que es de 4 horas de forma predeterminada. Antes de v2.1.238, Claude Code no limitaba el valor |

487| `MCP_OAUTH_CALLBACK_PORT` | Puerto fijo para el callback de redirección de OAuth, como alternativa a `--callback-port` al añadir un servidor MCP con [credenciales preconfiguradas](/docs/es/mcp#use-pre-configured-oauth-credentials) |490| `MCP_OAUTH_CALLBACK_PORT` | Puerto fijo para la devolución de llamada de redirección de OAuth, como alternativa a `--callback-port` al agregar un servidor MCP con [credenciales preconfiguradas](/docs/es/mcp#use-pre-configured-oauth-credentials) |

488| `MCP_PROTOCOL_NEGOTIATION` | Solo en el [runtime de cliente MCP v2](/docs/es/mcp#mcp-client-runtimes), si Claude Code sondea los servidores para la revisión 2026-07-28 del protocolo MCP. Establécela en `auto` para sondear los servidores HTTP, de conectores de claude.ai y stdio, o en `legacy` para no sondear ninguno. Con la variable sin establecer, Claude Code sondea los servidores descritos en [Runtimes de cliente MCP](/docs/es/mcp#mcp-client-runtimes). Cualquier otro valor se ignora con una advertencia en el registro de depuración. Requiere Claude Code v2.1.221 o posterior |491| `MCP_PROTOCOL_NEGOTIATION` | Solo en el [runtime de cliente MCP v2](/docs/es/mcp#mcp-client-runtimes), indica si Claude Code sondea los servidores para la revisión 2026-07-28 del protocolo MCP. Establece `auto` para sondear servidores HTTP, de conectores de claude.ai y stdio, o `legacy` para no sondear ninguno. Con la variable sin establecer, Claude Code sondea los servidores descritos en [Runtimes de cliente MCP](/docs/es/mcp#mcp-client-runtimes). Cualquier otro valor se ignora con una advertencia en el registro de depuración. Requiere Claude Code v2.1.221 o posterior |

489| `MCP_REMOTE_SERVER_CONNECTION_BATCH_SIZE` | Cantidad máxima de servidores MCP remotos (HTTP/SSE) que se conectan en paralelo durante el inicio (valor predeterminado: 20) |492| `MCP_REMOTE_SERVER_CONNECTION_BATCH_SIZE` | Número máximo de servidores MCP remotos (HTTP/SSE) que se conectan en paralelo durante el inicio (predeterminado: 20) |

490| `MCP_SDK_GENERATION` | Fija con qué [runtime de cliente MCP](/docs/es/mcp#mcp-client-runtimes) se conecta este proceso a los servidores MCP: `v1`, basado en MCP TypeScript SDK 1.x, o `v2`, basado en [MCP TypeScript SDK 2.0](https://ts.sdk.modelcontextprotocol.io/v2/). Sin la variable, Claude Code usa v2, a partir de las versiones indicadas en esa sección. En Claude Code v2.1.221 o posterior, el runtime v2 comprueba el emisor que devuelve un servidor OAuth de MCP en su respuesta de autorización y hace fallar el inicio de sesión con un error que comienza por `Issuer mismatch in authorization response` cuando no coincide. El runtime v1 no realiza esta comprobación. Si estableces un valor no reconocido, Claude Code lo ignora y escribe una advertencia en el registro de depuración. Claude Code lee el valor una vez por proceso. Requiere Claude Code v2.1.218 o posterior |493| `MCP_SDK_GENERATION` | Fija con qué [runtime de cliente MCP](/docs/es/mcp#mcp-client-runtimes) se conecta este proceso a los servidores MCP: `v1`, basado en MCP TypeScript SDK 1.x, o `v2`, basado en [MCP TypeScript SDK 2.0](https://ts.sdk.modelcontextprotocol.io/v2/). Sin la variable, Claude Code usa v2, a partir de las versiones indicadas en esa sección. En Claude Code v2.1.221 o posterior, el runtime v2 comprueba el emisor que devuelve un servidor OAuth de MCP en su respuesta de autorización y hace fallar el inicio de sesión con un error que comienza por `Issuer mismatch in authorization response` cuando no coincide. El runtime v1 no realiza esta comprobación. Si estableces un valor no reconocido, Claude Code lo ignora y escribe una advertencia en el registro de depuración. Claude Code lee el valor una vez por proceso. Requiere Claude Code v2.1.218 o posterior |

491| `MCP_SERVER_CONNECTION_BATCH_SIZE` | Cantidad máxima de servidores MCP locales (stdio) que se conectan en paralelo durante el inicio (valor predeterminado: 3) |494| `MCP_SERVER_CONNECTION_BATCH_SIZE` | Número máximo de servidores MCP locales (stdio) que se conectan en paralelo durante el inicio (predeterminado: 3) |

492| `MCP_TIMEOUT` | Tiempo de espera en milisegundos para el inicio del servidor MCP (valor predeterminado: 30000, o 30 segundos) |495| `MCP_TIMEOUT` | Tiempo de espera en milisegundos para el inicio del servidor MCP (predeterminado: 30000, es decir, 30 segundos) |

493| `MCP_TOOL_TIMEOUT` | Tiempo de espera en milisegundos para la ejecución de herramientas MCP (valor predeterminado: 100000000, unas 28 horas). Para un servidor HTTP, SSE o de conector de claude.ai, cada solicitud también agota su tiempo de espera tras 60 segundos de forma predeterminada; establece esta variable, o el `timeout` por servidor, por encima de 60000 para aumentar ese límite por solicitud. Un valor más bajo sigue acortando el tiempo de espera general de ejecución de la herramienta, pero deja el límite por solicitud en 60 segundos. Los servidores stdio y WebSocket no tienen temporizador por solicitud. Un campo `timeout` por servidor en `.mcp.json` sobrescribe esto para ese servidor. Un `timeout` por servidor de al menos 1000 también establece la ventana mínima de inactividad para las llamadas a herramientas de ese servidor, de modo que `CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT` nunca las aborte antes; este mínimo requiere Claude Code v2.1.203 o posterior. Para la variable de entorno, los valores inferiores a 1000 se redondean a un segundo; para el campo por servidor, los valores inferiores a 1000 se ignoran |496| `MCP_TOOL_TIMEOUT` | Tiempo de espera en milisegundos para la ejecución de herramientas MCP (predeterminado: 100000000, unas 28 horas). Para un servidor HTTP, SSE o de conector de claude.ai, cada solicitud también agota su tiempo de espera tras 60 segundos de forma predeterminada; establece esta variable, o el `timeout` por servidor, por encima de 60000 para aumentar ese límite por solicitud. Un valor más bajo sigue acortando el tiempo de espera global de ejecución de la herramienta, pero deja el límite por solicitud en 60 segundos. Los servidores stdio y WebSocket no tienen temporizador por solicitud. Un campo `timeout` por servidor en `.mcp.json` sobrescribe este valor para ese servidor. Un `timeout` por servidor de al menos 1000 también establece la ventana de inactividad mínima para las llamadas a herramientas de ese servidor, de modo que `CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT` nunca las aborte antes; este mínimo requiere Claude Code v2.1.203 o posterior. Para la variable de entorno, los valores inferiores a 1000 se elevan a un segundo; para el campo por servidor, los valores inferiores a 1000 se ignoran |

494| `NO_PROXY` | Lista de dominios e IP a los que las solicitudes se enviarán directamente, sin pasar por el proxy |497| `NO_PROXY` | Lista de dominios e IP a los que las solicitudes se enviarán directamente, sin pasar por el proxy |

495| `OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT` | Límite estándar del SDK de OpenTelemetry para la longitud del valor de los atributos. Claude Code limita los atributos de telemetría con contenido al menor entre este valor y `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH`, para que el marcador de truncamiento quede dentro del límite del SDK. Claude Code lee las variantes `OTEL_LOGRECORD_ATTRIBUTE_VALUE_LENGTH_LIMIT` y `OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT` de la misma manera, y el menor valor establecido se aplica a todas las señales. Requiere Claude Code v2.1.214 o posterior. Consulta [Monitoreo](/docs/es/monitoring-usage#common-configuration-variables) |498| `OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT` | Límite estándar del SDK de OpenTelemetry para la longitud del valor de los atributos. Claude Code limita los atributos de telemetría con contenido al menor entre este valor y `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH`, de modo que el marcador de truncamiento quede dentro del límite del SDK. Claude Code lee las variantes `OTEL_LOGRECORD_ATTRIBUTE_VALUE_LENGTH_LIMIT` y `OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT` de la misma forma, y el menor valor establecido se aplica a todas las señales. Requiere Claude Code v2.1.214 o posterior. Consulta [Monitoreo](/docs/es/monitoring-usage#common-configuration-variables) |

496| `OTEL_LOG_ASSISTANT_RESPONSES` | Establécela en `1` para incluir el texto de respuesta del modelo en los eventos de registro de OpenTelemetry `assistant_response`. Cuando no está establecida, Claude Code usa en su lugar el valor de `OTEL_LOG_USER_PROMPTS`. Establécela en `0` para mantener las respuestas ocultas incluso cuando `OTEL_LOG_USER_PROMPTS` está establecida. Establécela en tu shell, en la configuración de usuario o en la configuración administrada. Se ignora en la [configuración de proyecto y local](/docs/es/settings-reference#variables-claude-code-ignores-in-env). Requiere Claude Code v2.1.193 o posterior. Consulta [Monitoreo](/docs/es/monitoring-usage#assistant-response-event) |499| `OTEL_LOG_ASSISTANT_RESPONSES` | Establécela en `1` para incluir el texto de la respuesta del modelo en los eventos de registro de OpenTelemetry `assistant_response`. Cuando no está establecida, Claude Code usa en su lugar el valor de `OTEL_LOG_USER_PROMPTS`. Establécela en `0` para mantener las respuestas ocultas incluso cuando `OTEL_LOG_USER_PROMPTS` está establecida. Establécela en tu shell, en la configuración de usuario o en la configuración administrada. Se ignora en la [configuración de proyecto y local](/docs/es/settings-reference#variables-claude-code-ignores-in-env). Requiere Claude Code v2.1.193 o posterior. Consulta [Monitoreo](/docs/es/monitoring-usage#assistant-response-event) |

497| `OTEL_LOG_MANAGED_SETTINGS` | Establécela en `1` para añadir la configuración administrada con datos ocultos, y un resumen SHA-256 de la configuración antes de ocultar los datos, a los eventos de registro de OpenTelemetry `managed_settings_resolved`. Desactivada de forma predeterminada. Establécela en tu shell, en la configuración de usuario o en la configuración administrada; un valor en la configuración de proyecto o local no la activa. Requiere Claude Code v2.1.274 o posterior. Consulta [Monitoreo](/docs/es/monitoring-usage#managed-settings-resolved-event) |500| `OTEL_LOG_MANAGED_SETTINGS` | Establécela en `1` para añadir la configuración administrada con datos ocultos, y un resumen SHA-256 de la configuración antes de ocultar los datos, a los eventos de registro de OpenTelemetry `managed_settings_resolved`. Deshabilitada de forma predeterminada. Establécela en tu shell, en la configuración de usuario o en la configuración administrada; un valor en la configuración de proyecto o local no la activa. Requiere Claude Code v2.1.274 o posterior. Consulta [Monitoreo](/docs/es/monitoring-usage#managed-settings-resolved-event) |

498| `OTEL_LOG_RAW_API_BODIES` | Emite el JSON de solicitud y respuesta de la Messages API de Anthropic como eventos de registro `api_request_body` / `api_response_body`. Establécela en `1` para cuerpos en línea truncados en el límite de contenido, o en `file:<dir>` para escribir los cuerpos sin truncar en el disco y emitir en su lugar una ruta `body_ref`. `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` configura el límite de contenido, de 60 KB de forma predeterminada. Desactivada de forma predeterminada; los cuerpos incluyen todo el historial de la conversación. Establécela en tu shell, en la configuración de usuario o en la configuración administrada. Se ignora en la [configuración de proyecto y local](/docs/es/settings-reference#variables-claude-code-ignores-in-env). Consulta [Monitoreo](/docs/es/monitoring-usage#api-request-body-event) |501| `OTEL_LOG_RAW_API_BODIES` | Emite el JSON de solicitud y respuesta de la API Messages de Anthropic como eventos de registro `api_request_body` / `api_response_body`. Establécela en `1` para cuerpos en línea truncados en el límite de contenido, o en `file:<dir>` para escribir los cuerpos sin truncar en el disco y emitir en su lugar una ruta `body_ref`. `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` configura el límite de contenido, 60 KB de forma predeterminada. Deshabilitada de forma predeterminada; los cuerpos incluyen todo el historial de la conversación. Establécela en tu shell, en la configuración de usuario o en la configuración administrada. Se ignora en la [configuración de proyecto y local](/docs/es/settings-reference#variables-claude-code-ignores-in-env). Consulta [Monitoreo](/docs/es/monitoring-usage#api-request-body-event) |

499| `OTEL_LOG_TOOL_CONTENT` | Establécela en `1` para incluir el contenido de las herramientas en el evento de span de OpenTelemetry `tool.output`. Los atributos de span llevan el contenido de las herramientas según [sus propios controles](/docs/es/monitoring-usage#new-context-gates). Requiere [rastreo](/docs/es/monitoring-usage#traces-beta). Desactivada de forma predeterminada para proteger los datos confidenciales. Establécela en tu shell, en la configuración de usuario o en la configuración administrada. Se ignora en la [configuración de proyecto y local](/docs/es/settings-reference#variables-claude-code-ignores-in-env), salvo los valores de desactivación que describe esa sección. Consulta [Monitoreo](/docs/es/monitoring-usage#tool-output-span-event) |502| `OTEL_LOG_TOOL_CONTENT` | Establécela en `1` para incluir el contenido de las herramientas en el evento de span de OpenTelemetry `tool.output`. Los atributos de span llevan el contenido de las herramientas bajo [sus propios controles](/docs/es/monitoring-usage#new-context-gates). Requiere [rastreo](/docs/es/monitoring-usage#traces-beta). Deshabilitada de forma predeterminada para proteger los datos confidenciales. Establécela en tu shell, en la configuración de usuario o en la configuración administrada. Se ignora en la [configuración de proyecto y local](/docs/es/settings-reference#variables-claude-code-ignores-in-env), salvo los valores de desactivación que describe esa sección. Consulta [Monitoreo](/docs/es/monitoring-usage#tool-output-span-event) |

500| `OTEL_LOG_TOOL_DETAILS` | Establécela en `1` para incluir los argumentos de entrada de las herramientas; los nombres de los servidores MCP; los nombres de los workflows creados por el usuario; las cadenas de error sin procesar en los fallos de herramientas; la `category` de rechazo en los eventos `api_refusal`; los nombres reales de agentes, skills, plugins y servidores MCP en las [métricas de costo y tokens](/docs/es/monitoring-usage#cost-counter); y otros detalles de herramientas en las métricas, trazas y registros de OpenTelemetry. Desactivada de forma predeterminada para proteger la PII. Establécela en tu shell, en la configuración de usuario o en la configuración administrada. Se ignora en la [configuración de proyecto y local](/docs/es/settings-reference#variables-claude-code-ignores-in-env), salvo los valores de desactivación que describe esa sección. Consulta [Monitoreo](/docs/es/monitoring-usage) |503| `OTEL_LOG_TOOL_DETAILS` | Establécela en `1` para incluir los argumentos de entrada de las herramientas; los nombres de los servidores MCP; los nombres de flujos de trabajo creados por el usuario; las cadenas de error sin procesar en los fallos de herramientas; la `category` de rechazo en los eventos `api_refusal`; los nombres reales de agentes, skills, plugins y servidores MCP en las [métricas de costos y tokens](/docs/es/monitoring-usage#cost-counter); y otros detalles de las herramientas en las métricas, trazas y registros de OpenTelemetry. Deshabilitada de forma predeterminada para proteger la PII. Establécela en tu shell, en la configuración de usuario o en la configuración administrada. Se ignora en la [configuración de proyecto y local](/docs/es/settings-reference#variables-claude-code-ignores-in-env), salvo los valores de desactivación que describe esa sección. Consulta [Monitoreo](/docs/es/monitoring-usage) |

501| `OTEL_LOG_USER_PROMPTS` | Establécela en `1` para incluir el texto de los prompts del usuario en las trazas y registros de OpenTelemetry. Desactivada de forma predeterminada (los prompts se ocultan). Establécela en tu shell, en la configuración de usuario o en la configuración administrada. Se ignora en la [configuración de proyecto y local](/docs/es/settings-reference#variables-claude-code-ignores-in-env), salvo los valores de desactivación que describe esa sección. Consulta [Monitoreo](/docs/es/monitoring-usage) |504| `OTEL_LOG_USER_PROMPTS` | Establécela en `1` para incluir el texto de los prompts del usuario en las trazas y registros de OpenTelemetry. Deshabilitada de forma predeterminada (los prompts se ocultan). Establécela en tu shell, en la configuración de usuario o en la configuración administrada. Se ignora en la [configuración de proyecto y local](/docs/es/settings-reference#variables-claude-code-ignores-in-env), salvo los valores de desactivación que describe esa sección. Consulta [Monitoreo](/docs/es/monitoring-usage) |

502| `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` | Establécela en `false` para excluir el UUID de la cuenta de los atributos de las métricas (valor predeterminado: incluido). Consulta [Monitoreo](/docs/es/monitoring-usage) |505| `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` | Establécela en `false` para excluir el UUID de la cuenta de los atributos de las métricas (predeterminado: incluido). Consulta [Monitoreo](/docs/es/monitoring-usage) |

503| `OTEL_METRICS_INCLUDE_ENTRYPOINT` | Establécela en `true` para incluir el punto de entrada de la sesión en los atributos de las métricas (valor predeterminado: excluido). Añadida en v2.1.152. Consulta [Monitoreo](/docs/es/monitoring-usage) |506| `OTEL_METRICS_INCLUDE_ENTRYPOINT` | Establécela en `true` para incluir el punto de entrada de la sesión en los atributos de las métricas (predeterminado: excluido). Añadida en v2.1.152. Consulta [Monitoreo](/docs/es/monitoring-usage) |

504| `OTEL_METRICS_INCLUDE_REPOSITORY` | Establécela en `true` para etiquetar las métricas y eventos de OpenTelemetry con atributos `vcs.*` que identifican el repositorio de la sesión (valor predeterminado: excluido). Requiere Claude Code v2.1.269 o posterior. Consulta [Atributos del repositorio](/docs/es/monitoring-usage#repository-attributes) |507| `OTEL_METRICS_INCLUDE_REPOSITORY` | Establécela en `true` para etiquetar las métricas y eventos de OpenTelemetry con atributos `vcs.*` que identifican el repositorio de la sesión (predeterminado: excluido). Requiere Claude Code v2.1.269 o posterior. Consulta [Atributos del repositorio](/docs/es/monitoring-usage#repository-attributes) |

505| `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES` | A partir de v2.1.161, Claude Code adjunta las claves de `OTEL_RESOURCE_ATTRIBUTES` a las etiquetas de los puntos de datos de las métricas. Establécela en `false` para excluirlas (valor predeterminado: incluidas). Consulta [Monitoreo](/docs/es/monitoring-usage#multi-team-organization-support) |508| `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES` | A partir de v2.1.161, Claude Code adjunta las claves de `OTEL_RESOURCE_ATTRIBUTES` a las etiquetas de los puntos de datos de las métricas. Establécela en `false` para excluirlas (predeterminado: incluidas). Consulta [Monitoreo](/docs/es/monitoring-usage#multi-team-organization-support) |

506| `OTEL_METRICS_INCLUDE_SESSION_ID` | Establécela en `false` para excluir el ID de sesión de los atributos de las métricas (valor predeterminado: incluido). Consulta [Monitoreo](/docs/es/monitoring-usage) |509| `OTEL_METRICS_INCLUDE_SESSION_ID` | Establécela en `false` para excluir el ID de sesión de los atributos de las métricas (predeterminado: incluido). Consulta [Monitoreo](/docs/es/monitoring-usage) |

507| `OTEL_METRICS_INCLUDE_VERSION` | Establécela en `true` para incluir la versión de Claude Code en los atributos de las métricas (valor predeterminado: excluida). Consulta [Monitoreo](/docs/es/monitoring-usage) |510| `OTEL_METRICS_INCLUDE_VERSION` | Establécela en `true` para incluir la versión de Claude Code en los atributos de las métricas (predeterminado: excluida). Consulta [Monitoreo](/docs/es/monitoring-usage) |

508| `SLASH_COMMAND_TOOL_CHAR_BUDGET` | Sobrescribe el presupuesto de caracteres para los metadatos de skills que se muestran a la [herramienta Skill](/docs/es/skills#control-who-invokes-a-skill). El presupuesto se ajusta dinámicamente al 1% de la ventana de contexto, con un valor de respaldo de 8,000 caracteres. Se conserva el nombre heredado por compatibilidad con versiones anteriores |511| `SLASH_COMMAND_TOOL_CHAR_BUDGET` | Sobrescribe el presupuesto de caracteres para los metadatos de skills que se muestran a la [herramienta Skill](/docs/es/skills#control-who-invokes-a-skill). El presupuesto escala dinámicamente al 1% de la ventana de contexto, con un valor de respaldo de 8,000 caracteres. Nombre heredado que se mantiene por compatibilidad con versiones anteriores |

509| `TASK_MAX_OUTPUT_LENGTH` | Eliminada en v2.1.277 y ahora no tiene efecto, junto con la herramienta `TaskOutput` cuyo tamaño definía. Anteriormente establecía la cantidad máxima de caracteres de la salida de una [tarea en segundo plano](/docs/es/tools-reference#background-commands) que conservaba la herramienta `TaskOutput`. Claude ahora lee el archivo de salida de una tarea en segundo plano con `Read` |512| `TASK_MAX_OUTPUT_LENGTH` | Eliminada en v2.1.277 y ahora no tiene efecto, junto con la herramienta `TaskOutput` cuyo tamaño definía. Anteriormente establecía el número máximo de caracteres de la salida de una [tarea en segundo plano](/docs/es/tools-reference#background-commands) que conservaba la herramienta `TaskOutput`. Claude lee ahora el archivo de salida de una tarea en segundo plano con `Read` |

510| `USE_BUILTIN_RIPGREP` | Establécela en `0` para usar el `rg` instalado en el sistema en lugar del `rg` incluido con Claude Code |513| `USE_BUILTIN_RIPGREP` | Establécela en `0` para usar el `rg` instalado en el sistema en lugar del `rg` incluido con Claude Code |

511| `VERTEX_REGION_CLAUDE_3_5_HAIKU` | Sobrescribe la región para Claude 3.5 Haiku al usar Google Cloud's Agent Platform |514| `VERTEX_REGION_CLAUDE_3_5_HAIKU` | Sobrescribe la región para Claude 3.5 Haiku al usar Google Cloud's Agent Platform |

512| `VERTEX_REGION_CLAUDE_3_5_SONNET` | Sobrescribe la región para Claude 3.5 Sonnet al usar Google Cloud's Agent Platform |515| `VERTEX_REGION_CLAUDE_3_5_SONNET` | Sobrescribe la región para Claude 3.5 Sonnet al usar Google Cloud's Agent Platform |


527| `VERTEX_REGION_CLAUDE_FABLE_5` | Sobrescribe la región para Claude Fable 5 al usar Google Cloud's Agent Platform. Añadida en v2.1.170 |530| `VERTEX_REGION_CLAUDE_FABLE_5` | Sobrescribe la región para Claude Fable 5 al usar Google Cloud's Agent Platform. Añadida en v2.1.170 |

528| `VERTEX_REGION_CLAUDE_FABLE_5_1` | Sobrescribe la región para Claude Fable 5.1 al usar Google Cloud's Agent Platform. Añadida en v2.1.257 |531| `VERTEX_REGION_CLAUDE_FABLE_5_1` | Sobrescribe la región para Claude Fable 5.1 al usar Google Cloud's Agent Platform. Añadida en v2.1.257 |

529| `VERTEX_REGION_CLAUDE_HAIKU_4_5` | Sobrescribe la región para Claude Haiku 4.5 al usar Google Cloud's Agent Platform |532| `VERTEX_REGION_CLAUDE_HAIKU_4_5` | Sobrescribe la región para Claude Haiku 4.5 al usar Google Cloud's Agent Platform |

533| `VERTEX_REGION_CLAUDE_HAIKU_5_5` | Sobrescribe la región para Claude Haiku 5.5 al usar Google Cloud's Agent Platform. Añadida en v2.1.293 |

530 534 

531También se admiten las variables estándar de exportadores de OpenTelemetry (`OTEL_METRICS_EXPORTER`, `OTEL_LOGS_EXPORTER`, `OTEL_EXPORTER_OTLP_ENDPOINT`, `OTEL_EXPORTER_OTLP_PROTOCOL`, `OTEL_EXPORTER_OTLP_HEADERS`, `OTEL_METRIC_EXPORT_INTERVAL`, `OTEL_RESOURCE_ATTRIBUTES` y las variantes específicas de cada señal). Consulta [Monitoreo](/docs/es/monitoring-usage) para obtener detalles de configuración.535También se admiten las variables estándar de exportadores de OpenTelemetry (`OTEL_METRICS_EXPORTER`, `OTEL_LOGS_EXPORTER`, `OTEL_EXPORTER_OTLP_ENDPOINT`, `OTEL_EXPORTER_OTLP_PROTOCOL`, `OTEL_EXPORTER_OTLP_HEADERS`, `OTEL_METRIC_EXPORT_INTERVAL`, `OTEL_RESOURCE_ATTRIBUTES` y las variantes específicas de cada señal). Consulta [Monitoreo](/docs/es/monitoring-usage) para obtener detalles de configuración.

532 536 

533Establece `CLAUDE_CODE_ENABLE_TELEMETRY` y las variables de OpenTelemetry que activan la exportación, eligen su destino o capturan contenido en tu shell, en la configuración de usuario o en la configuración administrada. Claude Code [las ignora en la configuración de proyecto y local](/docs/es/settings-reference#variables-claude-code-ignores-in-env), salvo los valores de desactivación que describe esa sección. `OTEL_RESOURCE_ATTRIBUTES` y las variables de intervalo de exportación, tiempo de espera y compresión, como `OTEL_METRIC_EXPORT_INTERVAL`, siguen aplicándose desde la configuración de proyecto y local.537Establece `CLAUDE_CODE_ENABLE_TELEMETRY` y las variables de OpenTelemetry que activan la exportación, eligen su destino o capturan contenido en tu shell, en la configuración de usuario o en la configuración administrada. Claude Code [las ignora en la configuración de proyecto y local](/docs/es/settings-reference#variables-claude-code-ignores-in-env), salvo los valores de desactivación que describe esa sección. `OTEL_RESOURCE_ATTRIBUTES` y las variables de intervalo, tiempo de espera y compresión de la exportación, como `OTEL_METRIC_EXPORT_INTERVAL`, siguen aplicándose desde la configuración de proyecto y local.

534 538 

535<h2 id="what-the-subprocess-environment-scrub-removes">539<h2 id="what-the-subprocess-environment-scrub-removes">

536 Qué elimina la depuración del entorno de los subprocesos540 Qué elimina la depuración del entorno de los subprocesos

errors.md +4 −5

Details

130| `unable to get local issuer certificate` | [Red](#ssl-certificate-errors) |130| `unable to get local issuer certificate` | [Red](#ssl-certificate-errors) |

131| `403` con `x-deny-reason: host_not_allowed` en una sesión en la nube o de rutina | [Red](#host-not-allowed-in-a-cloud-session) |131| `403` con `x-deny-reason: host_not_allowed` en una sesión en la nube o de rutina | [Red](#host-not-allowed-in-a-cloud-session) |

132| `proxy refused the connection` | [Red](#the-proxy-refused-the-connection) |132| `proxy refused the connection` | [Red](#the-proxy-refused-the-connection) |

133| `403` con `This GraphQL query is not enabled for this session` en una sesión en la nube | [Proxy de GitHub](/docs/es/cloud-environments#github-proxy) |133| `403` con `GitHub GraphQL is not available from Claude Code sessions` en una sesión en la nube | [Proxy de GitHub](/docs/es/cloud-environments#github-proxy) |

134| `The cloud environments service returned an empty response` / `The cloud environments service returned a response in an unexpected format` | [Red](#the-cloud-environments-service-returned-an-empty-or-unexpected-response) |134| `The cloud environments service returned an empty response` / `The cloud environments service returned a response in an unexpected format` | [Red](#the-cloud-environments-service-returned-an-empty-or-unexpected-response) |

135| `Couldn't reconnect to your Remote Control session` | [Red](#couldnt-reconnect-to-your-remote-control-session) |135| `Couldn't reconnect to your Remote Control session` | [Red](#couldnt-reconnect-to-your-remote-control-session) |

136| `N sessions ended while this machine was offline — the environment was cleaned up on the server and can't be resumed.` | [Red](#sessions-ended-while-this-machine-was-offline) |136| `N sessions ended while this machine was offline — the environment was cleaned up on the server and can't be resumed.` | [Red](#sessions-ended-while-this-machine-was-offline) |


197| `Cloud sessions cannot be created from a --restricted session` | [Errores de línea de comandos](#cloud-sessions-cannot-be-created-from-a-restricted-session) |197| `Cloud sessions cannot be created from a --restricted session` | [Errores de línea de comandos](#cloud-sessions-cannot-be-created-from-a-restricted-session) |

198| `Cloud sessions are disabled by your organization's policy` | [Errores de línea de comandos](#cloud-sessions-are-disabled-by-your-organizations-policy) |198| `Cloud sessions are disabled by your organization's policy` | [Errores de línea de comandos](#cloud-sessions-are-disabled-by-your-organizations-policy) |

199| `Couldn't verify your organization's policy for cloud sessions` | [Errores de línea de comandos](#cloud-sessions-are-disabled-by-your-organizations-policy) |199| `Couldn't verify your organization's policy for cloud sessions` | [Errores de línea de comandos](#cloud-sessions-are-disabled-by-your-organizations-policy) |

200| `Cloud sessions need a claude.ai sign-in` | [No se puede obtener el UUID de la organización](/docs/es/claude-code-on-the-web#unable-to-get-organization-uuid) |

200| `Error: --json-schema is not a valid JSON Schema` | [Errores de línea de comandos](#the-json-schema-value-is-not-a-valid-json-schema) |201| `Error: --json-schema is not a valid JSON Schema` | [Errores de línea de comandos](#the-json-schema-value-is-not-a-valid-json-schema) |

201| `Error: Invalid --agents configuration:` | [Errores de línea de comandos](#invalid-agents-configuration) |202| `Error: Invalid --agents configuration:` | [Errores de línea de comandos](#invalid-agents-configuration) |

202| `Error: --agents takes a JSON object, or a file path only with --print (-p)` | [Errores de línea de comandos](#invalid-agents-configuration) |203| `Error: --agents takes a JSON object, or a file path only with --print (-p)` | [Errores de línea de comandos](#invalid-agents-configuration) |


387* Una conexión que Claude Code detecta que se rompió porque tu computadora entró en suspensión a mitad de una solicitud. Claude Code la cuenta como una conexión perdida según las reglas anteriores; una vez que la etiqueta de reintento nombra la razón específica, dice `Connection lost while your computer was asleep`, y si el turno termina después de que Claude ha terminado de pensar pero antes de cualquier texto o llamada a herramienta, el mensaje dice `Your computer went to sleep before a response was produced`.388* Una conexión que Claude Code detecta que se rompió porque tu computadora entró en suspensión a mitad de una solicitud. Claude Code la cuenta como una conexión perdida según las reglas anteriores; una vez que la etiqueta de reintento nombra la razón específica, dice `Connection lost while your computer was asleep`, y si el turno termina después de que Claude ha terminado de pensar pero antes de cualquier texto o llamada a herramienta, el mensaje dice `Your computer went to sleep before a response was produced`.

388* Un stream de respuesta estancado, cuando los encabezados de respuesta han llegado pero ninguna parte de la respuesta de Claude ha llegado, o cuando Claude ha terminado de pensar pero no ha comenzado ningún texto ni llamada a herramienta: Claude Code aborta la conexión estancada y reenvía la solicitud como máximo una vez, fuera del presupuesto de 10 intentos anterior. Si la respuesta se estanca una segunda vez después de que Claude ha terminado de pensar pero antes de cualquier texto o llamada a herramienta, Claude Code termina el turno con `The response stalled before a response was produced`.389* Un stream de respuesta estancado, cuando los encabezados de respuesta han llegado pero ninguna parte de la respuesta de Claude ha llegado, o cuando Claude ha terminado de pensar pero no ha comenzado ningún texto ni llamada a herramienta: Claude Code aborta la conexión estancada y reenvía la solicitud como máximo una vez, fuera del presupuesto de 10 intentos anterior. Si la respuesta se estanca una segunda vez después de que Claude ha terminado de pensar pero antes de cualquier texto o llamada a herramienta, Claude Code termina el turno con `The response stalled before a response was produced`.

389* Una solicitud en streaming a la que la API nunca responde con encabezados de respuesta, en una conexión donde [se aplica el plazo del primer byte](/docs/es/network-config#streaming-idle-watchdogs): Claude Code la aborta al cumplirse el plazo y la reenvía como máximo una vez por solicitud al modelo, dentro del presupuesto de reintentos, y luego termina el turno con [No response from API](#no-response-from-api) si ese intento también queda sin respuesta. En otras conexiones, la solicitud espera hasta `API_TIMEOUT_MS`. Cuando estableces `CLAUDE_CODE_RETRY_WATCHDOG`, el límite de un reintento no se aplica.390* Una solicitud en streaming a la que la API nunca responde con encabezados de respuesta, en una conexión donde [se aplica el plazo del primer byte](/docs/es/network-config#streaming-idle-watchdogs): Claude Code la aborta al cumplirse el plazo y la reenvía como máximo una vez por solicitud al modelo, dentro del presupuesto de reintentos, y luego termina el turno con [No response from API](#no-response-from-api) si ese intento también queda sin respuesta. En otras conexiones, la solicitud espera hasta `API_TIMEOUT_MS`. Cuando estableces `CLAUDE_CODE_RETRY_WATCHDOG`, el límite de un reintento no se aplica.

391* Una respuesta en streaming que el filtro de contenido de salida de la API detiene antes de que Claude haya terminado de pensar o haya comenzado cualquier texto o llamada a herramienta. Claude Code reenvía la solicitud una vez, dentro del presupuesto de reintentos, y muestra [Output blocked by content filtering policy](#output-blocked-by-content-filtering-policy) si el filtro también detiene la segunda respuesta.

390* Limitaciones temporales 429, pero no el `429` de límite de gasto de un gateway, que no es una limitación; consulta [Spend limit reached](#spend-limit-reached).392* Limitaciones temporales 429, pero no el `429` de límite de gasto de un gateway, que no es una limitación; consulta [Spend limit reached](#spend-limit-reached).

391 * Cuando has iniciado sesión con una suscripción de claude.ai, esto incluye limitaciones 429 que no llevan los encabezados de cuota de tu plan. Antes de v2.1.199, Claude Code reintentaba esas limitaciones solo para inicios de sesión con clave de API y Enterprise.393 * Cuando has iniciado sesión con una suscripción de claude.ai, esto incluye limitaciones 429 que no llevan los encabezados de cuota de tu plan. Antes de v2.1.199, Claude Code reintentaba esas limitaciones solo para inicios de sesión con clave de API y Enterprise.

392* Una solicitud rechazada porque la entrada más `max_tokens` excede el límite de contexto. Reenviarla sin cambios fallaría de la misma manera, por lo que Claude Code reintenta con un `max_tokens` reducido, y deja de reintentar y compacta en su lugar en dos casos:394* Una solicitud rechazada porque la entrada más `max_tokens` excede el límite de contexto. Reenviarla sin cambios fallaría de la misma manera, por lo que Claude Code reintenta con un `max_tokens` reducido, y deja de reintentar y compacta en su lugar en dos casos:


405* Una [respuesta en streaming de Amazon Bedrock con un content-type inesperado](#bedrock-streaming-response-has-an-unexpected-content-type), porque el gateway o proxy que reescribe la respuesta reescribiría el reintento de la misma manera. Requiere Claude Code v2.1.208 o posterior.407* Una [respuesta en streaming de Amazon Bedrock con un content-type inesperado](#bedrock-streaming-response-has-an-unexpected-content-type), porque el gateway o proxy que reescribe la respuesta reescribiría el reintento de la misma manera. Requiere Claude Code v2.1.208 o posterior.

406* Un reintento sin streaming de una solicitud en streaming fallida que obtiene un estado de éxito pero [ningún mensaje de la API de Claude en el cuerpo](#api-returned-an-empty-or-malformed-response). Claude Code termina el turno con ese error.408* Un reintento sin streaming de una solicitud en streaming fallida que obtiene un estado de éxito pero [ningún mensaje de la API de Claude en el cuerpo](#api-returned-an-empty-or-malformed-response). Claude Code termina el turno con ese error.

407* Una solicitud que la verificación de políticas de tu organización rechazó, que aparece como una línea `API Error:` con el mensaje de denegación. Los administradores de tu organización configuran la verificación con [Inference hooks](https://platform.claude.com/docs/en/manage-claude/inference-hooks), una función de Claude Enterprise, y el mensaje termina con las instrucciones que configuraron o, de forma predeterminada, te indica que te comuniques con ellos. Claude Code no reenvía la solicitud denegada al mismo modelo ni a un [modelo de respaldo](/docs/es/model-config#fallback-model-chains), porque la denegación se refiere al contenido de la solicitud y no al modelo. Antes de v2.1.239, Claude Code podía reenviar una solicitud denegada, sin streaming o en un modelo de respaldo configurado, antes de mostrarte la denegación.409* Una solicitud que la verificación de políticas de tu organización rechazó, que aparece como una línea `API Error:` con el mensaje de denegación. Los administradores de tu organización configuran la verificación con [Inference hooks](https://platform.claude.com/docs/en/manage-claude/inference-hooks), una función de Claude Enterprise, y el mensaje termina con las instrucciones que configuraron o, de forma predeterminada, te indica que te comuniques con ellos. Claude Code no reenvía la solicitud denegada al mismo modelo ni a un [modelo de respaldo](/docs/es/model-config#fallback-model-chains), porque la denegación se refiere al contenido de la solicitud y no al modelo. Antes de v2.1.239, Claude Code podía reenviar una solicitud denegada, sin streaming o en un modelo de respaldo configurado, antes de mostrarte la denegación.

408* Una respuesta que el filtro de contenido de salida de la API bloqueó. Claude Code muestra [Output blocked by content filtering policy](#output-blocked-by-content-filtering-policy) de inmediato y no reintenta ni reenvía esa solicitud.

409 410 

410<h3 id="what-you-see-while-claude-code-retries-or-waits">411<h3 id="what-you-see-while-claude-code-retries-or-waits">

411 Lo que ves mientras Claude Code reintenta o espera412 Lo que ves mientras Claude Code reintenta o espera


2299 2300 

2300**Qué hacer:**2301**Qué hacer:**

2301 2302 

2302* Cambia el tamaño de la imagen antes de pegarla. La API acepta imágenes de hasta 8000 píxeles en el lado más largo para una sola imagen, o 2000 píxeles cuando hay muchas imágenes en el contexto.2303* Cambia el tamaño de la imagen antes de pegarla. La API acepta imágenes de hasta 8000 píxeles en el lado más largo para una sola imagen, o 3000 píxeles cuando hay más de 20 imágenes en el contexto.

2303* Toma una captura de pantalla más ajustada de la región relevante en lugar de la pantalla completa2304* Toma una captura de pantalla más ajustada de la región relevante en lugar de la pantalla completa

2304 2305 

2305<h3 id="unable-to-resize-image">2306<h3 id="unable-to-resize-image">


2905API Error: Output blocked by content filtering policy2906API Error: Output blocked by content filtering policy

2906```2907```

2907 2908 

2908Claude Code muestra el error en cuanto llega el bloqueo y termina la solicitud ahí. No reintenta la solicitud, no la vuelve a enviar sin streaming ni cambia a un [modelo de respaldo](/docs/es/model-config#fallback-model-chains). Antes de v2.1.285, Claude Code podía volver a enviar y reintentar una solicitud bloqueada, a veces durante minutos, antes de mostrarte el error.

2909 

2910**Qué hacer:**2909**Qué hacer:**

2911 2910 

2912* Reformula tu último mensaje o adopta un enfoque diferente2911* Reformula tu último mensaje o adopta un enfoque diferente

fast-mode.md +1 −1

Details

88 88 

89Los precios del modo rápido son fijos en toda la ventana de contexto de 1M tokens. Para la tarifa estándar de Opus con la que comparar, consulte la [referencia de precios de Claude](https://platform.claude.com/docs/es/about-claude/pricing).89Los precios del modo rápido son fijos en toda la ventana de contexto de 1M tokens. Para la tarifa estándar de Opus con la que comparar, consulte la [referencia de precios de Claude](https://platform.claude.com/docs/es/about-claude/pricing).

90 90 

91La primera vez que habilita el modo rápido en una conversación, paga el precio completo del token de entrada sin caché del modo rápido para todo el contexto de la conversación. Cuanto más profundo esté en una conversación, más cuesta esto, por lo que habilitar el modo rápido desde el inicio es más económico. El costo se aplica una vez por conversación, por lo que desactivar y activar el modo rápido nuevamente más tarde no lo repite. Para el mecanismo, consulte [cómo el modo rápido interactúa con el caché de indicaciones](/docs/es/prompt-caching#turning-on-fast-mode).91La primera vez que habilitas el modo rápido en una conversación, pagas el precio completo del token de entrada sin caché del modo rápido para todo el contexto de la conversación. Cuanto más avanzada esté la conversación, más cuesta esto, por lo que el cargo es menor cuando habilitas el modo rápido desde el inicio. El costo se aplica una vez por conversación, por lo que desactivar y activar el modo rápido nuevamente más tarde no lo repite. Para el mecanismo, consulta [cómo el modo rápido interactúa con la caché de prompts](/docs/es/prompt-caching#turning-on-fast-mode).

92 92 

93<h3 id="see-where-fast-mode-spend-appears">93<h3 id="see-where-fast-mode-spend-appears">

94 Vea dónde aparece el gasto del modo rápido94 Vea dónde aparece el gasto del modo rápido

Details

220</table>220</table>

221 221 

222<span id="fn1" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>1</sup> En Google Cloud's Agent Platform, la búsqueda web está disponible para modelos Claude 4 y posteriores.<br />222<span id="fn1" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>1</sup> En Google Cloud's Agent Platform, la búsqueda web está disponible para modelos Claude 4 y posteriores.<br />

223<span id="fn2" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>2</sup> En estos proveedores, el modo automático admite solo Claude Sonnet 5 o posterior, Opus 4.7 o posterior, y los modelos Fable. Consulte [Configuración de Auto mode](/docs/es/auto-mode-config). Para el modo de permiso en el que comienza una sesión en estos proveedores, consulte [En qué modo comienza una sesión](/docs/es/permission-modes#which-mode-a-session-starts-in). En v2.1.158 a v2.1.206, el modo automático en estos proveedores también requería establecer `CLAUDE_CODE_ENABLE_AUTO_MODE=1`; v2.1.207 eliminó el requisito.<br />223<span id="fn2" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>2</sup> En estos proveedores, el modo automático admite solo Claude Sonnet 5 o posterior, Opus 4.7 o posterior, Haiku 5.5 y los modelos Fable. Consulta [Configuración del modo automático](/docs/es/auto-mode-config). Para el modo de permisos en el que comienza una sesión en estos proveedores, consulta [En qué modo comienza una sesión](/docs/es/permission-modes#which-mode-a-session-starts-in). De v2.1.158 a v2.1.206, el modo automático en estos proveedores también requería establecer `CLAUDE_CODE_ENABLE_AUTO_MODE=1`; v2.1.207 eliminó el requisito.<br />

224<span id="fn3" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>3</sup> Sujeto a su acuerdo con el proveedor de nube.<br />224<span id="fn3" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>3</sup> Sujeto a tu acuerdo con el proveedor de nube.<br />

225<span id="fn4" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>4</sup> Panel y API solamente. [Métricas de contribución](/docs/es/analytics#enable-contribution-metrics) requiere una organización Team o Enterprise de claude.ai.<br />225<span id="fn4" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>4</sup> Solo panel y API. Las [métricas de contribución](/docs/es/analytics#enable-contribution-metrics) requieren una organización Team o Enterprise de claude.ai.<br />

226<span id="fn5" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>5</sup> Requiere Claude Code v2.1.224 o posterior en macOS y Linux, incluido Linux dentro de WSL 2. En Windows nativo, requiere Claude Code v2.1.234 o posterior. Con autenticación de clave API, la mensajería es solo en la misma máquina. En Amazon Bedrock, Claude Platform en AWS, Google Cloud's Agent Platform y Microsoft Foundry, la mensajería es solo en la misma máquina y requiere Claude Code v2.1.248 o posterior. Claude puede encontrar sus [sesiones en la nube](/docs/es/claude-code-on-the-web) y sus sesiones en otras máquinas solo desde una sesión que está conectada a [Remote Control](/docs/es/remote-control). Para conectarse, necesita un inicio de sesión de claude.ai y los otros [requisitos de Remote Control](/docs/es/remote-control#requirements). Consulte [Mensajería de sesiones en otras máquinas](/docs/es/cross-session-messaging#message-sessions-on-other-machines).226<span id="fn5" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>5</sup> Requiere Claude Code v2.1.224 o posterior en macOS y Linux, incluido Linux dentro de WSL 2. En Windows nativo, requiere Claude Code v2.1.234 o posterior. Con autenticación por clave de API, la mensajería es solo en la misma máquina. En Amazon Bedrock, Claude Platform en AWS, Google Cloud's Agent Platform y Microsoft Foundry, la mensajería es solo en la misma máquina y requiere Claude Code v2.1.248 o posterior. Claude puede encontrar tus [sesiones en la nube](/docs/es/claude-code-on-the-web) y tus sesiones en otras máquinas solo desde una sesión que esté conectada a [Remote Control](/docs/es/remote-control). Para conectarte, necesitas iniciar sesión con claude.ai y cumplir los demás [requisitos de Remote Control](/docs/es/remote-control#requirements). Consulta [Enviar mensajes a sesiones en otras máquinas](/docs/es/cross-session-messaging#message-sessions-on-other-machines).

227 227 

228<Note>228<Note>

229 Si se autentica a través de una [puerta de enlace LLM](/docs/es/llm-gateway), la disponibilidad de características coincide con el proveedor subyacente al que la puerta de enlace reenvía, excepto por las características que Claude Code desactiva. Siempre que `ANTHROPIC_BASE_URL` apunte a un host distinto de `api.anthropic.com`, Claude Code desactiva características como [Remote Control](/docs/es/remote-control#requirements) y [configuración administrada por servidor](/docs/es/server-managed-settings#platform-availability), sea lo que sea que la puerta de enlace reenvíe. Algunas características solo de Anthropic, como [Advisor](/docs/es/advisor), funcionan solo si la puerta de enlace reenvía solicitudes intactas a la API de Anthropic.229 Si se autentica a través de una [puerta de enlace LLM](/docs/es/llm-gateway), la disponibilidad de características coincide con el proveedor subyacente al que la puerta de enlace reenvía, excepto por las características que Claude Code desactiva. Siempre que `ANTHROPIC_BASE_URL` apunte a un host distinto de `api.anthropic.com`, Claude Code desactiva características como [Remote Control](/docs/es/remote-control#requirements) y [configuración administrada por servidor](/docs/es/server-managed-settings#platform-availability), sea lo que sea que la puerta de enlace reenvíe. Algunas características solo de Anthropic, como [Advisor](/docs/es/advisor), funcionan solo si la puerta de enlace reenvía solicitudes intactas a la API de Anthropic.


244 **Soporte parcial:**244 **Soporte parcial:**

245 245 

246 * [Desktop](/docs/es/desktop): solo a través de [Claude Desktop en 3P](https://claude.com/docs/third-party/claude-desktop/overview)246 * [Desktop](/docs/es/desktop): solo a través de [Claude Desktop en 3P](https://claude.com/docs/third-party/claude-desktop/overview)

247 * [Auto mode](/docs/es/auto-mode-config): Sonnet 5 o posterior, Opus 4.7 o posterior, y modelos Fable solamente247 * [Modo automático](/docs/es/auto-mode-config): solo Sonnet 5 o posterior, Opus 4.7 o posterior, Haiku 5.5 y modelos Fable

248 * [Mensajería entre sesiones](/docs/es/cross-session-messaging): entre sus sesiones en esta máquina solamente <sup><a href="#fn5">5</a></sup>248 * [Mensajería entre sesiones](/docs/es/cross-session-messaging): entre sus sesiones en esta máquina solamente <sup><a href="#fn5">5</a></sup>

249 * [Zero Data Retention](/docs/es/zero-data-retention): sujeto a su acuerdo de AWS249 * [Zero Data Retention](/docs/es/zero-data-retention): sujeto a su acuerdo de AWS

250 250 


270 270 

271 * [Desktop](/docs/es/desktop): a través de [configuración administrada](https://claude.com/docs/third-party/claude-desktop/configuration) o [Claude Desktop en 3P](https://claude.com/docs/third-party/claude-desktop/overview)271 * [Desktop](/docs/es/desktop): a través de [configuración administrada](https://claude.com/docs/third-party/claude-desktop/configuration) o [Claude Desktop en 3P](https://claude.com/docs/third-party/claude-desktop/overview)

272 * [Búsqueda web](/docs/es/tools-reference#websearch-tool-behavior): modelos Claude 4 y posteriores272 * [Búsqueda web](/docs/es/tools-reference#websearch-tool-behavior): modelos Claude 4 y posteriores

273 * [Auto mode](/docs/es/auto-mode-config): Sonnet 5 o posterior, Opus 4.7 o posterior, y modelos Fable solamente273 * [Modo automático](/docs/es/auto-mode-config): solo Sonnet 5 o posterior, Opus 4.7 o posterior, Haiku 5.5 y modelos Fable

274 * [Mensajería entre sesiones](/docs/es/cross-session-messaging): entre sus sesiones en esta máquina solamente <sup><a href="#fn5">5</a></sup>274 * [Mensajería entre sesiones](/docs/es/cross-session-messaging): entre sus sesiones en esta máquina solamente <sup><a href="#fn5">5</a></sup>

275 * [Zero Data Retention](/docs/es/zero-data-retention): sujeto a su acuerdo de Google Cloud275 * [Zero Data Retention](/docs/es/zero-data-retention): sujeto a su acuerdo de Google Cloud

276 276 


284 284 

285 * [Desktop](/docs/es/desktop): solo a través de [Claude Desktop en 3P](https://claude.com/docs/third-party/claude-desktop/overview)285 * [Desktop](/docs/es/desktop): solo a través de [Claude Desktop en 3P](https://claude.com/docs/third-party/claude-desktop/overview)

286 * [Búsqueda web](/docs/es/tools-reference#websearch-tool-behavior): [implementaciones hospedadas en Anthropic](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options) solamente286 * [Búsqueda web](/docs/es/tools-reference#websearch-tool-behavior): [implementaciones hospedadas en Anthropic](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options) solamente

287 * [Auto mode](/docs/es/auto-mode-config): Sonnet 5 o posterior, Opus 4.7 o posterior, y modelos Fable solamente287 * [Modo automático](/docs/es/auto-mode-config): solo Sonnet 5 o posterior, Opus 4.7 o posterior, Haiku 5.5 y modelos Fable

288 * [Mensajería entre sesiones](/docs/es/cross-session-messaging): entre sus sesiones en esta máquina solamente <sup><a href="#fn5">5</a></sup>288 * [Mensajería entre sesiones](/docs/es/cross-session-messaging): entre sus sesiones en esta máquina solamente <sup><a href="#fn5">5</a></sup>

289 * [Zero Data Retention](/docs/es/zero-data-retention): sujeto a su acuerdo de Azure289 * [Zero Data Retention](/docs/es/zero-data-retention): sujeto a su acuerdo de Azure

290 290 

glossary.md +31 −31

Details

130 130 

131Un archivo markdown de instrucciones persistentes que usted escribe para Claude, cargado al inicio de cada sesión como un mensaje de usuario después del prompt del sistema. Coloque convenciones de proyecto, notas de arquitectura y reglas "siempre haga X" aquí. El CLAUDE.md de raíz de proyecto sobrevive a [compaction](#compaction) y se relee fresco desde el disco después.131Un archivo markdown de instrucciones persistentes que usted escribe para Claude, cargado al inicio de cada sesión como un mensaje de usuario después del prompt del sistema. Coloque convenciones de proyecto, notas de arquitectura y reglas "siempre haga X" aquí. El CLAUDE.md de raíz de proyecto sobrevive a [compaction](#compaction) y se relee fresco desde el disco después.

132 132 

133Puede colocar CLAUDE.md en alcance de proyecto en `./CLAUDE.md` o `./.claude/CLAUDE.md`, en alcance de usuario en `~/.claude/CLAUDE.md`, o como [managed policy](#managed-settings) para su organización. Todos los archivos descubiertos se concatenan en contexto en lugar de anularse entre sí, ordenados de alcance más amplio a más específico. Claude Code también puede cargar archivos [AGENTS.md](#agents-md) de un proyecto, por sí solos o junto con CLAUDE.md.133Puedes colocar CLAUDE.md en alcance de proyecto en `./CLAUDE.md` o `./.claude/CLAUDE.md`, en alcance de usuario en `~/.claude/CLAUDE.md`, o como [directiva administrada](#managed-settings) para tu organización. Todos los archivos descubiertos se concatenan en el contexto en lugar de anularse entre sí, ordenados del alcance más amplio al más específico. Claude Code también puede cargar los archivos [AGENTS.md](#agents-md) de un proyecto en lugar de CLAUDE.md.

134 134 

135Más información: [CLAUDE.md files](/docs/es/memory#claude-md-files)135Más información: [CLAUDE.md files](/docs/es/memory#claude-md-files)

136 136 


196 Effort level196 Effort level

197</h3>197</h3>

198 198 

199Una configuración que controla el razonamiento adaptativo, que permite que el modelo decida si y cuánto pensar en cada paso. Mayor esfuerzo significa más tokens de pensamiento y razonamiento más profundo; menor esfuerzo es más rápido y económico. El esfuerzo es compatible con modelos Fable, en Opus 4.6 y posterior, y en Sonnet 4.6 y posterior.199Un ajuste que controla el razonamiento adaptativo, que permite que el modelo decida si pensar y cuánto en cada paso. Mayor esfuerzo significa más tokens de pensamiento y razonamiento más profundo; menor esfuerzo es más rápido y económico. El esfuerzo es compatible con modelos Fable, con Opus 4.6 y posteriores, con Sonnet 4.6 y posteriores, y con Haiku 5.5.

200 200 

201Más información: [Adjust effort level](/docs/es/model-config#adjust-effort-level)201Más información: [Adjust effort level](/docs/es/model-config#adjust-effort-level)

202 202 


380 Sandboxing380 Sandboxing

381</h3>381</h3>

382 382 

383Aislamiento de sistema de archivos y red a nivel de SO para la herramienta Bash. Los comandos se ejecutan dentro de un límite que define de antemano, para que Claude pueda trabajar libremente dentro de él sin solicitudes de aprobación por comando. Sandboxing es una capa separada de [permission rules](#permission-rule).383Aislamiento de sistema de archivos y red a nivel de SO para la herramienta Bash. Los comandos se ejecutan dentro de un límite que defines de antemano, para que Claude pueda trabajar libremente dentro de él sin solicitudes de aprobación por comando. El sandboxing es una capa separada de las [reglas de permisos](#permission-rule).

384 384 

385Más información: [Sandboxing](/docs/es/sandboxing)385Más información: [Sandboxing](/docs/es/sandboxing)

386 386 

387<h3 id="session">387<h3 id="session">

388 Session388 Sesión

389</h3>389</h3>

390 390 

391Una conversación vinculada a su directorio actual, con su propia [context window](#context-window) independiente. Las sesiones pueden reanudarse con `claude -c`, bifurcarse con `--fork-session` para preservar el historial bajo un nuevo ID de sesión, o ejecutarse en paralelo en terminales. Ejecutar `/clear` inicia una nueva sesión; la anterior permanece almacenada y está disponible a través de `/resume`. La transcripción de cada sesión se almacena bajo `~/.claude/projects/`.391Una conversación vinculada a tu directorio actual, con su propia [ventana de contexto](#context-window) independiente. Las sesiones pueden reanudarse con `claude -c`, bifurcarse con `--fork-session` para preservar el historial bajo un nuevo ID de sesión, o ejecutarse en paralelo en varias terminales. Ejecutar `/clear` inicia una nueva sesión; la anterior permanece almacenada y está disponible a través de `/resume`. La transcripción de cada sesión se almacena en `~/.claude/projects/`.

392 392 

393Más información: [Work with sessions](/docs/es/how-claude-code-works#work-with-sessions)393Más información: [Trabajar con sesiones](/docs/es/how-claude-code-works#work-with-sessions)

394 394 

395<h3 id="settings-layers">395<h3 id="settings-layers">

396 Settings layers396 Capas de configuración

397</h3>397</h3>

398 398 

399La jerarquía desde la que Claude Code lee la configuración, en orden de precedencia de mayor a menor: [managed policy](#managed-settings), argumentos de línea de comandos, configuración local en `.claude/settings.local.json`, configuración de proyecto en `.claude/settings.json`, luego configuración de usuario en `~/.claude/settings.json`. Los arrays se fusionan en todas las capas; los escalares en una capa superior anulan los inferiores. Consulte [Settings precedence](/docs/es/settings#settings-precedence).399La jerarquía desde la que Claude Code lee la configuración, en orden de precedencia de mayor a menor: [política administrada](#managed-settings), la configuración que pasas con el flag `--settings`, la configuración local en `.claude/settings.local.json`, la configuración de proyecto en `.claude/settings.json` y, por último, la configuración de usuario en `~/.claude/settings.json`. Los arrays se combinan entre capas; los escalares de una capa superior sobrescriben los de las inferiores. Consulta [Precedencia de la configuración](/docs/es/settings#settings-precedence).

400 400 

401Más información: [Settings files](/docs/es/settings#where-settings-live)401Más información: [Archivos de configuración](/docs/es/settings#where-settings-live)

402 402 

403<h3 id="skill">403<h3 id="skill">

404 Skill404 Skill

405</h3>405</h3>

406 406 

407Un archivo `SKILL.md` que contiene instrucciones, conocimiento o un flujo de trabajo que Claude agrega a su kit de herramientas. Claude carga una skill automáticamente cuando es relevante, o la invoca directamente con `/skill-name`. Las skills siguen el estándar abierto Agent Skills; Claude Code lo extiende con control de invocación y ejecución de subagent.407Un archivo `SKILL.md` que contiene instrucciones, conocimiento o un flujo de trabajo que Claude agrega a su kit de herramientas. Claude carga un skill automáticamente cuando es relevante, o tú lo invocas directamente con `/skill-name`. Los skills siguen el estándar abierto Agent Skills; Claude Code lo extiende con control de invocación y ejecución en subagentes.

408 408 

409Las skills son el sucesor recomendado de comandos personalizados. Un archivo en `.claude/commands/deploy.md` y uno en `.claude/skills/deploy/SKILL.md` ambos crean `/deploy` y funcionan de la misma manera; los archivos de comando existentes continúan funcionando.409Los skills son el sucesor recomendado de los comandos personalizados. Un archivo en `.claude/commands/deploy.md` y uno en `.claude/skills/deploy/SKILL.md` crean ambos `/deploy` y funcionan de la misma manera; los archivos de comando existentes siguen funcionando.

410 410 

411Más información: [Extend Claude with skills](/docs/es/skills)411Más información: [Extender Claude con skills](/docs/es/skills)

412 412 

413<h3 id="subagent">413<h3 id="subagent">

414 Subagent414 Subagente

415</h3>415</h3>

416 416 

417Un asistente de IA especializado que se ejecuta en su propia ventana de contexto con un prompt del sistema personalizado, acceso a herramientas específicas y permisos independientes. Trabaja en una tarea delegada y devuelve un resumen a la conversación principal. Use subagents para mantener grandes exploraciones fuera de su contexto principal o para ejecutar investigación en paralelo. Un subagent permanece dentro de la sesión que lo generó. Para pasar hallazgos entre sesiones separadas que ejecuta usted mismo, use [cross-session messaging](/docs/es/cross-session-messaging).417Un asistente de IA especializado que se ejecuta en su propia ventana de contexto con un prompt del sistema personalizado, acceso a herramientas específicas y permisos independientes. Trabaja en una tarea delegada y devuelve un resumen a la conversación principal. Usa subagentes para mantener grandes exploraciones fuera de tu contexto principal o para ejecutar investigaciones en paralelo. Un subagente permanece dentro de la sesión que lo generó. Para pasar hallazgos entre sesiones separadas que ejecutas tú mismo, usa la [mensajería entre sesiones](/docs/es/cross-session-messaging).

418 418 

419Los subagents integrados incluyen Explore, Plan y propósito general.419Los subagentes integrados incluyen Explore, Plan y de propósito general.

420 420 

421Más información: [Create custom subagents](/docs/es/sub-agents)421Más información: [Crear subagentes personalizados](/docs/es/sub-agents)

422 422 

423<h3 id="surface">423<h3 id="surface">

424 Surface424 Superficie

425</h3>425</h3>

426 426 

427Cualquier lugar donde acceda a Claude Code: la CLI, VS Code, JetBrains, Desktop o claude.ai. Todas las superficies comparten el mismo motor. Las sesiones en su máquina leen su CLAUDE.md local, configuración y skills; [cloud sessions](/docs/es/cloud-environments#what-carries-over-from-your-setup) comienzan desde un clon fresco de su repositorio y no leen `~/.claude/` en su máquina. Slack y la extensión de Chrome son integraciones que se conectan a una superficie en lugar de ser superficies en sí mismas.427Cualquier lugar desde donde accedes a Claude Code: la CLI, VS Code, JetBrains, Desktop o claude.ai. Todas las superficies comparten el mismo motor. Las sesiones en tu máquina leen tu CLAUDE.md local, tu configuración y tus skills; las [sesiones en la nube](/docs/es/cloud-environments#what-carries-over-from-your-setup) comienzan desde un clon nuevo de tu repositorio y no leen `~/.claude/` de tu máquina. Slack y la extensión de Chrome son integraciones que se conectan a una superficie en lugar de ser superficies en sí mismas.

428 428 

429Más información: [Platforms and integrations](/docs/es/platforms)429Más información: [Plataformas e integraciones](/docs/es/platforms)

430 430 

431<h3 id="system-prompt">431<h3 id="system-prompt">

432 System prompt432 Prompt del sistema

433</h3>433</h3>

434 434 

435Las instrucciones que Claude Code envía antes de su conversación en cada solicitud, cubriendo cómo Claude usa herramientas, se comporta de manera segura y formatea sus respuestas. Puede agregar al system prompt con `--append-system-prompt` o reemplazarlo con `--system-prompt`. El system prompt es la primera capa del [prompt cache](/docs/es/prompt-caching#how-the-cache-is-organized).435Las instrucciones que Claude Code envía antes de tu conversación en cada solicitud, que cubren cómo Claude usa las herramientas, se comporta de manera segura y da formato a sus respuestas. Puedes agregar contenido al prompt del sistema con `--append-system-prompt` o reemplazarlo con `--system-prompt`. El prompt del sistema es la primera capa de la [caché de prompts](/docs/es/prompt-caching#how-the-cache-is-organized).

436 436 

437Sus archivos [CLAUDE.md](#claude-md) y las instrucciones de su [output style](#output-style) no son parte del system prompt. Claude Code los entrega en la conversación como [system reminders](#system-reminder).437Tus archivos [CLAUDE.md](#claude-md) y las instrucciones de tu [estilo de salida](#output-style) no forman parte del prompt del sistema. Claude Code los entrega en la conversación como [recordatorios del sistema](#system-reminder).

438 438 

439Más información: [System prompt flags](/docs/es/cli-reference#system-prompt-flags)439Más información: [Flags del prompt del sistema](/docs/es/cli-reference#system-prompt-flags)

440 440 

441<h3 id="system-reminder">441<h3 id="system-reminder">

442 System reminder442 Recordatorio del sistema

443</h3>443</h3>

444 444 

445Un mensaje que Claude Code, como el [harness](#agentic-harness), agrega a la conversación para dar contexto a Claude. Usted no envía system reminders por sí mismo. Claude Code los inserta mientras se ejecuta una sesión, por ejemplo cuando la sesión comienza, cuando un hook devuelve texto, o cuando un archivo cambia en el disco. Claude los lee junto con sus mensajes. Los siguientes llegan a Claude como system reminders:445Un mensaje que Claude Code, como [harness](#agentic-harness), agrega a la conversación para darle contexto a Claude. Tú no envías los recordatorios del sistema. Claude Code los inserta mientras se ejecuta una sesión, por ejemplo cuando la sesión comienza, cuando un hook devuelve texto o cuando un archivo cambia en el disco. Claude los lee junto con tus mensajes. Todos los siguientes llegan a Claude como recordatorios del sistema:

446 446 

447* Sus archivos [CLAUDE.md](#claude-md)447* Tus archivos [CLAUDE.md](#claude-md)

448* Las instrucciones de su [output style](#output-style)448* Las instrucciones de tu [estilo de salida](#output-style)

449* Texto que un [hook](#hook) devuelve como `additionalContext`449* El texto que un [hook](#hook) devuelve como `additionalContext`

450* La lista de [skills](#skill) disponibles450* La lista de [skills](#skill) disponibles

451* Una nota de que un archivo que Claude leyó anteriormente ha cambiado en el disco451* Una nota de que un archivo que Claude leyó anteriormente ha cambiado en el disco

452* Las líneas de atribución de commit y pull request452* Las líneas de atribución de commits y pull requests

453 453 

454En una solicitud de API registrada, un system reminder aparece envuelto en etiquetas `<system-reminder>` dentro de un mensaje de usuario, o en algunos modelos como un mensaje separado con el rol `system`.454En una solicitud de API registrada, un recordatorio del sistema aparece envuelto en etiquetas `<system-reminder>` dentro de un mensaje de usuario o, en algunos modelos, como un mensaje separado con el rol `system`.

455 455 

456Más información: [Context Claude Code adds outside the system prompt](/docs/es/agent-sdk/modifying-system-prompts#context-claude-code-adds-outside-the-system-prompt)456Más información: [Contexto que Claude Code agrega fuera del prompt del sistema](/docs/es/agent-sdk/modifying-system-prompts#context-claude-code-adds-outside-the-system-prompt)

457 457 

458<h2 id="t">458<h2 id="t">

459 T459 T

Details

210export VERTEX_REGION_CLAUDE_4_6_SONNET=europe-west1210export VERTEX_REGION_CLAUDE_4_6_SONNET=europe-west1

211```211```

212 212 

213La mayoría de las versiones de modelo tienen una variable `VERTEX_REGION_CLAUDE_*` correspondiente. Consulte la [referencia de variables de entorno](/docs/es/env-vars) para obtener la lista completa. Verifique [Google Cloud's Agent Platform Model Garden](https://console.cloud.google.com/vertex-ai/model-garden) para determinar qué modelos admiten puntos finales globales frente a solo regionales.213La mayoría de las versiones de modelo tienen una variable `VERTEX_REGION_CLAUDE_*` correspondiente. Consulta la [referencia de variables de entorno](/docs/es/env-vars#variables) para obtener la lista completa. Revisa [Google Cloud's Agent Platform Model Garden](https://console.cloud.google.com/vertex-ai/model-garden) para determinar qué modelos admiten endpoints globales frente a solo regionales.

214 214 

215Si un valor de región no tiene forma de nombre de región o ubicación, Claude Code lo trata como no establecido. Por ejemplo, Claude Code trata un valor que contiene una barra diagonal, punto o espacio como no establecido. Claude Code retrocede a una fuente diferente para cada variable:215Si un valor de región no tiene forma de nombre de región o ubicación, Claude Code lo trata como no establecido. Por ejemplo, Claude Code trata un valor que contiene una barra diagonal, punto o espacio como no establecido. Claude Code retrocede a una fuente diferente para cada variable:

216 216 


364 364 

365* Confirme que el modelo está habilitado en [Model Garden](https://console.cloud.google.com/vertex-ai/model-garden)365* Confirme que el modelo está habilitado en [Model Garden](https://console.cloud.google.com/vertex-ai/model-garden)

366* Verifique que el modelo esté disponible en la ubicación que especificó. Algunos modelos se ofrecen solo en ubicaciones `global` o multirregión como `eu` y `us`, no en regiones específicas366* Verifique que el modelo esté disponible en la ubicación que especificó. Algunos modelos se ofrecen solo en ubicaciones `global` o multirregión como `eu` y `us`, no en regiones específicas

367* Si utiliza `CLOUD_ML_REGION=global`, verifique que sus modelos admitan puntos finales globales en [Model Garden](https://console.cloud.google.com/vertex-ai/model-garden) en "Características compatibles". Para modelos que no admiten puntos finales globales, ya sea:367* Si utilizas `CLOUD_ML_REGION=global`, verifica que tus modelos admitan endpoints globales en [Model Garden](https://console.cloud.google.com/vertex-ai/model-garden) en "Supported features". Para modelos que no admiten endpoints globales, puedes:

368 * Especifique un modelo compatible a través de `ANTHROPIC_MODEL` o `ANTHROPIC_DEFAULT_HAIKU_MODEL`, o368 * Especificar un modelo compatible a través de `ANTHROPIC_MODEL` o `ANTHROPIC_DEFAULT_HAIKU_MODEL`, o

369 * Establezca una región o ubicación multirregión usando variables de entorno `VERTEX_REGION_<MODEL_NAME>`369 * Establecer una región o ubicación multirregión usando la variable `VERTEX_REGION_CLAUDE_*` del modelo, que aparece en la [referencia de variables de entorno](/docs/es/env-vars#variables)

370 370 

371Si encuentra errores 429:371Si encuentra errores 429:

372 372 

headless.md +22 −6

Details

219 Seguir mensajes de subagentes219 Seguir mensajes de subagentes

220</h4>220</h4>

221 221 

222Los mensajes de [subagentes](/docs/es/sub-agents) aparecen en la transmisión como mensajes `assistant` y `user` cuyo campo `parent_tool_use_id` es el ID de la llamada de herramienta que generó el subagente. Los mensajes de la conversación principal llevan `null` en ese campo.222Los mensajes de [subagentes](/docs/es/sub-agents) y de skills que [se ejecutan en un subagente](/docs/es/skills#run-skills-in-a-subagent) aparecen en el stream como mensajes `assistant` y `user`. Su campo `parent_tool_use_id` indica a qué ejecución pertenece cada uno. Los mensajes de la conversación principal llevan `null` en ese campo.

223 223 

224El primer mensaje de un subagente que se ejecuta en [primer plano](/docs/es/sub-agents#run-subagents-in-foreground-or-background) es un mensaje `user` que lleva el indicador que lo impulsa. Después de ese primer mensaje, Claude Code emite:224El primer mensaje de un skill bifurcado, o de un subagente que se ejecuta en [primer plano](/docs/es/sub-agents#run-subagents-in-foreground-or-background), es un mensaje `user` que lleva el prompt o el contenido del skill que lo impulsa. Después de ese primer mensaje, Claude Code emite:

225 225 

226* **De forma predeterminada**: los bloques `tool_use` y `tool_result` del subagente.226* **De forma predeterminada**: los bloques `tool_use` y `tool_result` de la ejecución.

227* **Con [`--forward-subagent-text`](/docs/es/cli-reference#cli-flags) o [`CLAUDE_CODE_FORWARD_SUBAGENT_TEXT`](/docs/es/env-vars)**: también los bloques de texto y pensamiento del subagente, para que pueda reconstruir la transcripción de cada subagente. Esto requiere Claude Code v2.1.211 o posterior.227* **Con [`--forward-subagent-text`](/docs/es/cli-reference#cli-flags) o [`CLAUDE_CODE_FORWARD_SUBAGENT_TEXT`](/docs/es/env-vars)**: también los bloques de texto y pensamiento de la ejecución, para que puedas reconstruir la transcripción de cada ejecución.

228 228 

229Cuando habilita cualquiera de las opciones, Claude Code reenvía mensajes de [subagentes en cada profundidad de anidamiento](/docs/es/sub-agents#let-subagents-spawn-their-own-subagents), ya sea que cada uno fue generado con la herramienta Agent o iniciado como una [skill bifurcada](/docs/es/skills#run-skills-in-a-subagent). Los mensajes de subagentes que una skill bifurcada genera, y de skills bifurcadas iniciadas dentro de un subagente u otra skill bifurcada, requieren Claude Code v2.1.275 o posterior. En `parent_tool_use_id`, los mensajes del subagente anidado llevan el ID de la llamada de herramienta Agent o Skill que lo inició, para que pueda reconstruir el árbol de anidamiento completo siguiendo esos IDs. Antes de v2.1.219, los mensajes de subagentes anidados no aparecían en la transmisión.229Cuando habilitas cualquiera de las opciones, Claude Code reenvía mensajes de [subagentes en cada nivel de anidamiento](/docs/es/sub-agents#let-subagents-spawn-their-own-subagents), ya sea que cada uno se haya generado con la herramienta Agent o se haya iniciado como un skill bifurcado. En `parent_tool_use_id`, los mensajes del subagente anidado llevan el ID de la llamada a la herramienta Agent o Skill que lo inició, para que puedas reconstruir el árbol de anidamiento completo siguiendo esos IDs.

230 230 

231Las skills que [se ejecutan en un subagente](/docs/es/skills#run-skills-in-a-subagent) aparecen en la transmisión de la misma manera: el primer mensaje de la skill bifurcada es un mensaje `user` que lleva el contenido de la skill que impulsa la ejecución. Si habilita cualquiera de las opciones, la transmisión también lleva los bloques de texto y pensamiento de la skill bifurcada. Antes de v2.1.265, solo los bloques `tool_use` y `tool_result` de una skill bifurcada aparecían en la transmisión.231Una ejecución que Claude inicia con una llamada a herramienta lleva el ID de esa llamada. Un skill bifurcado que inicias pasando `/<skill-name>` como prompt no tiene llamada a herramienta, así que sus mensajes llevan en su lugar un valor `forked-command-` y llegan después de que termina. Busca en la primera columna cómo comenzó la ejecución:

232 

233| Cómo comienza la ejecución | `parent_tool_use_id` | Cuándo llegan sus mensajes |

234| :- | :- | :- |

235| Claude llama a la herramienta Agent desde la conversación principal | El ID de ese bloque `tool_use` de Agent | Mientras el subagente trabaja |

236| Claude llama a la herramienta Skill para un skill bifurcado desde la conversación principal | El ID de ese bloque `tool_use` de Skill | Mientras el skill bifurcado trabaja |

237| Pasas `/<skill-name>` como prompt | Un valor que comienza con `forked-command-` | Juntos y en orden después de que el skill bifurcado termina |

238 

239Para un skill bifurcado iniciado desde el prompt, haz coincidir `parent_tool_use_id` con el prefijo `forked-command-`, porque el nombre que le sigue puede diferir del que escribiste.

240 

241Si faltan algunos de estos mensajes en tu stream, compara tu versión de Claude Code con estos mínimos:

242 

243* **`--forward-subagent-text` y `CLAUDE_CODE_FORWARD_SUBAGENT_TEXT`**: v2.1.211 o posterior

244* **Reenvío en cada nivel de anidamiento**: v2.1.219 o posterior

245* **Un skill bifurcado que Claude inicia con la herramienta Skill desde la conversación principal**: v2.1.86 o posterior para sus bloques `tool_use` y `tool_result`, y v2.1.265 o posterior para su primer mensaje `user` y sus bloques de texto y pensamiento

246* **Mensajes de subagentes que genera un skill bifurcado, y de skills bifurcados iniciados dentro de un subagente u otro skill bifurcado**: v2.1.275 o posterior

247* **Mensajes de un skill bifurcado que inicias pasando `/<skill-name>` como prompt**: v2.1.287 o posterior

232 248 

233<h4 id="handle-api-retries">249<h4 id="handle-api-retries">

234 Manejar reintentos de API250 Manejar reintentos de API

hooks.md +8 −6

Details

63| `DirectoryAdded` | Cuando se agrega un directorio de trabajo a mitad de sesión a través de `/add-dir` o la solicitud de control `register_repo_root` del SDK |63| `DirectoryAdded` | Cuando se agrega un directorio de trabajo a mitad de sesión a través de `/add-dir` o la solicitud de control `register_repo_root` del SDK |

64| `FileChanged` | Cuando un archivo observado cambia en el disco. El campo `matcher` especifica qué nombres de archivo observar |64| `FileChanged` | Cuando un archivo observado cambia en el disco. El campo `matcher` especifica qué nombres de archivo observar |

65| `WorktreeCreate` | Cuando se está creando un worktree a través de `--worktree`, `isolation: "worktree"`, o para una sesión en segundo plano. Reemplaza el comportamiento predeterminado de git |65| `WorktreeCreate` | Cuando se está creando un worktree a través de `--worktree`, `isolation: "worktree"`, o para una sesión en segundo plano. Reemplaza el comportamiento predeterminado de git |

66| `WorktreeRemove` | Cuando se está eliminando un worktree al salir de la sesión, cuando un subagente finaliza, o cuando elimina una sesión en segundo plano |66| `WorktreeRemove` | Cuando se está eliminando un worktree que creó un hook `WorktreeCreate` |

67| `PreCompact` | Antes de la compactación de contexto |67| `PreCompact` | Antes de la compactación de contexto |

68| `PostCompact` | Después de que se completa la compactación de contexto |68| `PostCompact` | Después de que se completa la compactación de contexto |

69| `PreModelSwitch` | Antes de que Claude Code aplique un cambio de modelo que usted o un cliente solicitó. Puede bloquear el cambio |69| `PreModelSwitch` | Antes de que Claude Code aplique un cambio de modelo que usted o un cliente solicitó. Puede bloquear el cambio |


3274 WorktreeRemove3274 WorktreeRemove

3275</h3>3275</h3>

3276 3276 

3277Se ejecuta cuando se está eliminando un worktree. Es la contraparte de limpieza de [WorktreeCreate](#worktreecreate). El evento se dispara cuando:3277Se ejecuta cuando Claude Code limpia un worktree que creó tu hook [`WorktreeCreate`](#worktreecreate). El evento se activa cuando:

3278 3278 

3279* sales de una sesión `--worktree` y eliges eliminarlo3279* Sales de una [sesión de worktree](/docs/es/worktrees#start-claude-in-a-worktree) interactiva y eliges eliminar el worktree cuando Claude Code te lo pregunta

3280* un subagente con `isolation: "worktree"` termina3280* Sales de una sesión de worktree interactiva a la que no has [puesto nombre](/docs/es/sessions#name-your-sessions), Claude Code no encuentra archivos modificados ni sin seguimiento y elimina el worktree sin preguntarte

3281* eliminas una [sesión en segundo plano](/docs/es/agent-view#what-deleting-a-session-removes) cuyo worktree creó el hook3281* Eliminas una [sesión en segundo plano](/docs/es/agent-view#what-deleting-a-session-removes) que se ejecuta en el worktree

3282 

3283Claude Code usa git para buscar archivos modificados o sin seguimiento, así que no encuentra ninguno en un worktree que no sea un checkout de git ni esté dentro de uno, incluso cuando el directorio contiene trabajo sin confirmar. Comprueba si existe ese trabajo en tu hook WorktreeRemove antes de que elimine nada.

3282 3284 

3283Para los worktrees basados en git, Claude Code se encarga de la limpieza automáticamente con `git worktree remove`. Si configuraste un hook WorktreeCreate, combínalo con un hook WorktreeRemove para controlar la limpieza de los worktrees que crea:3285Para los worktrees basados en git, Claude Code se encarga de la limpieza automáticamente con `git worktree remove`. Si configuraste un hook WorktreeCreate, combínalo con un hook WorktreeRemove para controlar la limpieza de los worktrees que crea:

3284 3286 

3285* **Sin hook WorktreeRemove**: cuando sales de una sesión `--worktree` y eliges eliminarlo, Claude Code recurre a `git worktree remove --force` sobre la ruta que devolvió tu hook WorktreeCreate, de modo que se elimina un worktree que git reconoce. Un worktree que git no reconoce, por ejemplo uno que tu hook creó con un sistema de control de versiones distinto de git, permanece en el disco. Para saber qué hace la eliminación de una [sesión en segundo plano](/docs/es/agent-view#what-deleting-a-session-removes) con un worktree creado por un hook, consulta las reglas de eliminación de agent view.3287* **Sin hook WorktreeRemove**: cuando Claude Code elimina el worktree al salir de una sesión de worktree, recurre a `git worktree remove --force` sobre la ruta que devolvió tu hook WorktreeCreate, de modo que se elimina un worktree que git reconoce. Un worktree que git no reconoce, por ejemplo uno que tu hook creó con un sistema de control de versiones distinto de git, permanece en el disco. Para saber qué ocurre con un worktree creado por un hook al eliminar una [sesión en segundo plano](/docs/es/agent-view#what-deleting-a-session-removes), consulta las reglas de eliminación de la vista de agentes.

3286* **El hook termina con 0**: el worktree se considera eliminado. Claude Code no lee nada más del hook, así que asegúrate de que tu hook haya eliminado el directorio.3288* **El hook termina con 0**: el worktree se considera eliminado. Claude Code no lee nada más del hook, así que asegúrate de que tu hook haya eliminado el directorio.

3287* **El hook termina con un código distinto de cero**: la eliminación falla si el directorio en `worktree_path` sigue existiendo después, y el worktree permanece en el disco sin recurrir a git. Un hook que eliminó el directorio antes de terminar con un código distinto de cero se considera eliminado. Para saber cómo se informa el fallo, consulta [Entrada de WorktreeRemove](#worktreeremove-input).3289* **El hook termina con un código distinto de cero**: la eliminación falla si el directorio en `worktree_path` sigue existiendo después, y el worktree permanece en el disco sin recurrir a git. Un hook que eliminó el directorio antes de terminar con un código distinto de cero se considera eliminado. Para saber cómo se informa el fallo, consulta [Entrada de WorktreeRemove](#worktreeremove-input).

3288 3290 

hooks-guide.md +1 −1

Details

526| `DirectoryAdded` | Cuando se agrega un directorio de trabajo a mitad de sesión a través de `/add-dir` o la solicitud de control `register_repo_root` del SDK |526| `DirectoryAdded` | Cuando se agrega un directorio de trabajo a mitad de sesión a través de `/add-dir` o la solicitud de control `register_repo_root` del SDK |

527| `FileChanged` | Cuando un archivo observado cambia en el disco. El campo `matcher` especifica qué nombres de archivo observar |527| `FileChanged` | Cuando un archivo observado cambia en el disco. El campo `matcher` especifica qué nombres de archivo observar |

528| `WorktreeCreate` | Cuando se está creando un worktree a través de `--worktree`, `isolation: "worktree"`, o para una sesión en segundo plano. Reemplaza el comportamiento predeterminado de git |528| `WorktreeCreate` | Cuando se está creando un worktree a través de `--worktree`, `isolation: "worktree"`, o para una sesión en segundo plano. Reemplaza el comportamiento predeterminado de git |

529| `WorktreeRemove` | Cuando se está eliminando un worktree al salir de la sesión, cuando un subagente finaliza, o cuando elimina una sesión en segundo plano |529| `WorktreeRemove` | Cuando se está eliminando un worktree que creó un hook `WorktreeCreate` |

530| `PreCompact` | Antes de la compactación de contexto |530| `PreCompact` | Antes de la compactación de contexto |

531| `PostCompact` | Después de que se completa la compactación de contexto |531| `PostCompact` | Después de que se completa la compactación de contexto |

532| `PreModelSwitch` | Antes de que Claude Code aplique un cambio de modelo que usted o un cliente solicitó. Puede bloquear el cambio |532| `PreModelSwitch` | Antes de que Claude Code aplique un cambio de modelo que usted o un cliente solicitó. Puede bloquear el cambio |

Details

76* **Su proyecto.** Archivos en su directorio y subdirectorios, más archivos en otros lugares con su permiso.76* **Su proyecto.** Archivos en su directorio y subdirectorios, más archivos en otros lugares con su permiso.

77* **Su terminal.** Cualquier comando que pueda ejecutar: herramientas de compilación, git, gestores de paquetes, utilidades del sistema, scripts. Si puede hacerlo desde la línea de comandos, Claude también puede.77* **Su terminal.** Cualquier comando que pueda ejecutar: herramientas de compilación, git, gestores de paquetes, utilidades del sistema, scripts. Si puede hacerlo desde la línea de comandos, Claude también puede.

78* **Su estado de git.** Rama actual, cambios sin confirmar e historial de confirmaciones recientes.78* **Su estado de git.** Rama actual, cambios sin confirmar e historial de confirmaciones recientes.

79* **Su [CLAUDE.md](/docs/es/memory).** Un archivo markdown donde almacena instrucciones específicas del proyecto, convenciones y contexto que Claude debe conocer en cada sesión. Si su repositorio tiene un AGENTS.md para otros agentes de codificación, Claude [puede leerlo](/docs/es/memory#agents-md) por su cuenta o junto con CLAUDE.md.79* **Tu [CLAUDE.md](/docs/es/memory).** Un archivo markdown donde almacenas instrucciones específicas del proyecto, convenciones y contexto que Claude debe conocer en cada sesión. Si tu repositorio tiene un AGENTS.md para otros agentes de codificación, Claude [puede leerlo](/docs/es/memory#agents-md) en lugar de un CLAUDE.md.

80* **[Auto memory](/docs/es/memory#auto-memory).** Aprendizajes que Claude guarda automáticamente mientras trabaja, como sus preferencias. Las primeras 200 líneas o 25KB de MEMORY.md, lo que sea menor, se cargan al inicio de cada sesión.80* **[Auto memory](/docs/es/memory#auto-memory).** Aprendizajes que Claude guarda automáticamente mientras trabaja, como sus preferencias. Las primeras 200 líneas o 25KB de MEMORY.md, lo que sea menor, se cargan al inicio de cada sesión.

81* **Extensiones que configure.** [Servidores MCP](/docs/es/mcp) para servicios externos, [skills](/docs/es/skills) para flujos de trabajo, [subagentes](/docs/es/sub-agents) para trabajo delegado y [Claude en Chrome](/docs/es/chrome) para interacción del navegador.81* **Extensiones que configure.** [Servidores MCP](/docs/es/mcp) para servicios externos, [skills](/docs/es/skills) para flujos de trabajo, [subagentes](/docs/es/sub-agents) para trabajo delegado y [Claude en Chrome](/docs/es/chrome) para interacción del navegador.

82 82 

Details

42| `Ctrl+Enter` o `Ctrl+X Ctrl+S` | Enviar mensajes en cola ahora | Envía sus [mensajes en cola](#queue-messages-while-claude-works) y su borrador con ellos de inmediato. [Cuando Claude Code envía lo que puso en cola](#when-claude-code-sends-what-you-queued) cubre lo que sucede con el turno en el que Claude está trabajando. En [modo shell](#shell-mode-with-prefix), la tecla solo pone en cola su comando. En terminales que no reportan teclas extendidas, `Ctrl+Enter` llega como `Enter` simple; `Ctrl+X Ctrl+S` funciona en cualquier terminal. Requiere Claude Code v2.1.275 o posterior |42| `Ctrl+Enter` o `Ctrl+X Ctrl+S` | Enviar mensajes en cola ahora | Envía sus [mensajes en cola](#queue-messages-while-claude-works) y su borrador con ellos de inmediato. [Cuando Claude Code envía lo que puso en cola](#when-claude-code-sends-what-you-queued) cubre lo que sucede con el turno en el que Claude está trabajando. En [modo shell](#shell-mode-with-prefix), la tecla solo pone en cola su comando. En terminales que no reportan teclas extendidas, `Ctrl+Enter` llega como `Enter` simple; `Ctrl+X Ctrl+S` funciona en cualquier terminal. Requiere Claude Code v2.1.275 o posterior |

43| `Shift+Tab`, o `Alt+M` en Windows cuando el tiempo de ejecución de Node o Bun no habilita el modo de entrada VT | Ciclar modos de permiso | Cicle a través de `default` (etiquetado como Manual en el indicador de modo), `acceptEdits`, `plan` y, cuando esté disponible, `bypassPermissions` y luego `auto`. Desde `auto`, la primera pulsación cambia a `default`. Consulte [modos de permiso](/docs/es/permission-modes). En un aviso de permiso de archivo, la misma tecla cierra un [campo de comentario](/docs/es/permissions#add-a-comment-when-you-answer-a-permission-prompt) abierto. Sin campo abierto, selecciona la opción que permite la acción para el resto de la sesión, cuando el aviso ofrece esa opción |43| `Shift+Tab`, o `Alt+M` en Windows cuando el tiempo de ejecución de Node o Bun no habilita el modo de entrada VT | Ciclar modos de permiso | Cicle a través de `default` (etiquetado como Manual en el indicador de modo), `acceptEdits`, `plan` y, cuando esté disponible, `bypassPermissions` y luego `auto`. Desde `auto`, la primera pulsación cambia a `default`. Consulte [modos de permiso](/docs/es/permission-modes). En un aviso de permiso de archivo, la misma tecla cierra un [campo de comentario](/docs/es/permissions#add-a-comment-when-you-answer-a-permission-prompt) abierto. Sin campo abierto, selecciona la opción que permite la acción para el resto de la sesión, cuando el aviso ofrece esa opción |

44| `Option+P` (macOS) o `Alt+P` (Windows/Linux) | Cambiar modelo | Cambie modelos sin borrar su símbolo del sistema |44| `Option+P` (macOS) o `Alt+P` (Windows/Linux) | Cambiar modelo | Cambie modelos sin borrar su símbolo del sistema |

45| `Option+T` (macOS) o `Alt+T` (Windows/Linux) | Alternar pensamiento extendido | Habilitar o deshabilitar el modo de pensamiento extendido. No tiene efecto en Opus 5.5, Sonnet 5.5 o los modelos Fable, que siempre utilizan pensamiento extendido. Funciona en macOS sin configurar Option como Meta |45| `Option+T` (macOS) o `Alt+T` (Windows/Linux) | Alternar pensamiento extendido | Habilita o deshabilita el modo de pensamiento extendido. No tiene efecto en Opus 5.5, Sonnet 5.5, Haiku 5.5 o los modelos Fable, que siempre utilizan pensamiento extendido. Funciona en macOS sin configurar Option como Meta |

46| `Option+O` (macOS) o `Alt+O` (Windows/Linux) | Alternar modo rápido | Habilitar o deshabilitar [modo rápido](/docs/es/fast-mode) |46| `Option+O` (macOS) o `Alt+O` (Windows/Linux) | Alternar modo rápido | Habilitar o deshabilitar [modo rápido](/docs/es/fast-mode) |

47 47 

48<h3 id="text-editing">48<h3 id="text-editing">

keybindings.md +3 −2

Details

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

300| `footer:next` | Right | Siguiente elemento de pie de página |300| `footer:next` | Right | Siguiente elemento de pie de página |

301| `footer:previous` | Left | Elemento de pie de página anterior |301| `footer:previous` | Left | Elemento de pie de página anterior |

302| `footer:up` | Up | Navegar hacia arriba en el pie de página (deselecciona en la parte superior) |302| `footer:up` | Up, Ctrl+P | Navegar hacia arriba en el pie de página (deselecciona en la parte superior) |

303| `footer:down` | Down | Navegar hacia abajo en el pie de página |303| `footer:down` | Down, Ctrl+N | Navegar hacia abajo en el pie de página |

304| `footer:openSelected` | Enter | Abrir elemento de pie de página seleccionado |304| `footer:openSelected` | Enter | Abrir elemento de pie de página seleccionado |

305| `footer:clearSelection` | Escape | Borrar selección de pie de página |305| `footer:clearSelection` | Escape | Borrar selección de pie de página |

306| `footer:close` | x | Detener el [agente](/docs/es/sub-agents#observe-and-steer-running-forks) o [flujo de trabajo](/docs/es/workflows#manage-runs) seleccionado, o descartar su fila si ya no se está ejecutando |

306| `footer:dismiss` | (sin asignar) | Vincular una tecla a esta acción no tiene efecto, y un `keybindings.json` que la nombra sigue siendo válido. Antes de v2.1.281, Backspace y Delete estaban vinculados a ella y descartaban el enlace de artefacto seleccionado del pie de página. |307| `footer:dismiss` | (sin asignar) | Vincular una tecla a esta acción no tiene efecto, y un `keybindings.json` que la nombra sigue siendo válido. Antes de v2.1.281, Backspace y Delete estaban vinculados a ella y descartaban el enlace de artefacto seleccionado del pie de página. |

307 308 

308Mientras se selecciona un elemento de pie de página, como una fila en el panel de agente debajo de la indicación, `Enter` lo abre incluso cuando reasigna `Enter` en el contexto `Chat` a `chat:queueSubmit` o `chat:newline`.309Mientras se selecciona un elemento de pie de página, como una fila en el panel de agente debajo de la indicación, `Enter` lo abre incluso cuando reasigna `Enter` en el contexto `Chat` a `chat:queueSubmit` o `chat:newline`.

Details

216* **Distribuida por un administrador**: si su organización ha [implementado la configuración](/docs/es/llm-gateway-rollout#distribute-through-managed-settings), la aplicación de escritorio se enruta a través de la puerta de enlace sin configuración de su parte216* **Distribuida por un administrador**: si su organización ha [implementado la configuración](/docs/es/llm-gateway-rollout#distribute-through-managed-settings), la aplicación de escritorio se enruta a través de la puerta de enlace sin configuración de su parte

217* **Configurada localmente**: para dispositivos sin una configuración distribuida por administrador, abra Help → Troubleshooting → Enable Developer Mode, que reinicia la aplicación con un menú Developer. Luego abra Developer → Configure Third-Party Inference e ingrese su URL base de puerta de enlace. Una configuración distribuida por administrador tiene prioridad y hace que este formulario sea de solo lectura217* **Configurada localmente**: para dispositivos sin una configuración distribuida por administrador, abra Help → Troubleshooting → Enable Developer Mode, que reinicia la aplicación con un menú Developer. Luego abra Developer → Configure Third-Party Inference e ingrese su URL base de puerta de enlace. Una configuración distribuida por administrador tiene prioridad y hace que este formulario sea de solo lectura

218 218 

219Con la configuración de puerta de enlace activa, la aplicación de escritorio ejecuta sesiones solo en su máquina local: el selector de entorno no ofrece sesiones SSH ni entornos en la nube alojados por Anthropic, y [Remote Control](/docs/es/remote-control) no está disponible. Para usar Claude Code en un host remoto a través de la puerta de enlace, ejecute la CLI en ese host con [`ANTHROPIC_BASE_URL` y la credencial de puerta de enlace](#set-the-base-url-and-credential) establecidas allí.219Con la configuración del gateway activa, el selector de entorno no ofrece entornos en la nube alojados por Anthropic, y [Remote Control](/docs/es/remote-control) no está disponible.

220 

221Las sesiones SSH están en beta con una configuración de gateway y requieren Claude Desktop v1.40609.0 o posterior. Antes de conectarte, revisa la lista de permitidos y la dirección del gateway:

222 

223* **Hosts permitidos**: las sesiones SSH están desactivadas de forma predeterminada. Para activarlas, tú o tu administrador deben incluir los hosts permitidos en la clave [`sshHostAllowlist`](https://claude.com/docs/third-party/claude-desktop/configuration#sshhostallowlist) de la configuración de inferencia de terceros

224* **Dirección del gateway**: la máquina remota se conecta directamente al gateway, por lo que un gateway en `localhost` en tu computadora no funciona para sesiones SSH

225 

226Consulta [SSH remote sessions in Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/ssh-remote-sessions). También puedes ejecutar la CLI en el host remoto con [`ANTHROPIC_BASE_URL` y la credencial del gateway](#set-the-base-url-and-credential) establecidas allí.

220 227 

221Si la aplicación de escritorio muestra `Gateway was unreachable`, la aplicación no pudo alcanzar la URL base configurada al iniciar; compruebe la URL y la ruta de red con la [prueba de curl anterior](#verify-the-connection).228Si la aplicación de escritorio muestra `Gateway was unreachable`, la aplicación no pudo alcanzar la URL base configurada al iniciar; compruebe la URL y la ruta de red con la [prueba de curl anterior](#verify-the-connection).

222 229 

managed-mcp.md +17 −5

Details

347 Cómo coinciden las entradas `serverUrl`347 Cómo coinciden las entradas `serverUrl`

348</h4>348</h4>

349 349 

350Las URL admiten comodines `*` en cualquier lugar del patrón, incluido el esquema. La coincidencia del nombre de host no distingue entre mayúsculas y minúsculas e ignora un punto FQDN final, por lo que `https://Mcp.Example.com/*` coincide con `https://mcp.example.com/api`. Las rutas siguen distinguiendo entre mayúsculas y minúsculas.350Las URL admiten comodines `*`, incluido `*` como esquema completo. La coincidencia del nombre de host no distingue entre mayúsculas y minúsculas e ignora un punto FQDN final, por lo que `https://Mcp.Example.com/*` coincide con `https://mcp.example.com/api`. Las rutas siguen distinguiendo entre mayúsculas y minúsculas. Si no indicas un puerto, la forma en que escribes el nombre de host decide si el patrón coincide solo con el puerto predeterminado del esquema o con todos los puertos:

351 

352* **Nombre de host escrito completo**: solo el puerto predeterminado, 443 para `https` y 80 para `http`

353* **Nombre de host con un `*`**: todos los puertos

351 354 

352La tabla muestra lo que permiten los patrones comunes:355La tabla muestra lo que permiten los patrones comunes:

353 356 

354| Patrón | Permite |357| Patrón | Permite |

355| :- | :- |358| :- | :- |

356| `https://mcp.example.com/*` | Todas las rutas en un dominio específico |359| `https://mcp.example.com/*` | Todas las rutas en un dominio específico, solo en el puerto 443 |

357| `https://mcp.example.com` | También todas las rutas en ese dominio. Un patrón sin ruta coincide con cualquier ruta |360| `https://mcp.example.com` | También todas las rutas en ese dominio, solo en el puerto 443. Un patrón sin ruta coincide con cualquier ruta |

358| `https://*.example.com/*` | Cualquier subdominio de `example.com` |361| `https://mcp.example.com:8443/*` | Todas las rutas en ese dominio, solo en el puerto 8443 |

362| `https://mcp.example.com:*/*` | Todas las rutas en ese dominio, en cualquier puerto, incluido el 443 |

363| `https://*.example.com/*` | Cualquier subdominio de `example.com`, en cualquier puerto |

359| `http://localhost:*/*` | Cualquier puerto en localhost |364| `http://localhost:*/*` | Cualquier puerto en localhost |

360| `*://mcp.example.com/*` | Cualquier esquema a un dominio específico |365| `*://mcp.example.com/*` | Cualquier esquema a un dominio específico, cada esquema solo en su puerto predeterminado |

366 

367Las entradas de `deniedMcpServers` coinciden con los puertos de la misma manera, así que elige una entrada para `staging.example.com` según los puertos y esquemas que necesites bloquear:

368 

369* `https://staging.example.com/*`: bloquea los servidores `https` en ese host solo en el puerto 443, por lo que no bloquea un servidor en `https://staging.example.com:8443/api`

370* `https://staging.example.com:*/*`: bloquea los servidores `https` en ese host en todos los puertos

371* `*://staging.example.com:*/*`: bloquea ese host con cualquier esquema y en cualquier puerto

361 372 

362<h4 id="how-policy-entries-expand">373<h4 id="how-policy-entries-expand">

363 Variables de entorno en las entradas `serverCommand` y `serverUrl`374 Variables de entorno en las entradas `serverCommand` y `serverUrl`


529 | :- | :- |540 | :- | :- |

530 | Servidor HTTP en `https://mcp.example.com/api` | Permitido: coincide con patrón de URL de lista de permitidos, sin coincidencia de lista de bloqueados |541 | Servidor HTTP en `https://mcp.example.com/api` | Permitido: coincide con patrón de URL de lista de permitidos, sin coincidencia de lista de bloqueados |

531 | Servidor HTTP en `https://staging.example.com/api` | Bloqueado: coincide con ambos, pero la lista de bloqueados tiene prioridad |542 | Servidor HTTP en `https://staging.example.com/api` | Bloqueado: coincide con ambos, pero la lista de bloqueados tiene prioridad |

543 | Servidor HTTP en `https://staging.example.com:8443/api` | Permitido: coincide con patrón de URL de la lista de permitidos, [sin coincidencia en la lista de denegados en este puerto](#how-serverurl-entries-match) |

532 | Servidor HTTP en `https://other.com/mcp` | Bloqueado: no coincide con la lista de permitidos |544 | Servidor HTTP en `https://other.com/mcp` | Bloqueado: no coincide con la lista de permitidos |

533</Accordion>545</Accordion>

534 546 

memory.md +9 −9

Details

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt2> 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.3> Use this file to discover all available pages before exploring further.

4 4 

5# Cómo Claude recuerda su proyecto5# Cómo Claude recuerda tu proyecto

6 6 

7> Proporcione a Claude instrucciones persistentes con archivos CLAUDE.md o AGENTS.md, y permita que Claude acumule aprendizajes automáticamente con auto memory.7> Dale a Claude instrucciones persistentes con archivos CLAUDE.md o AGENTS.md, y deja que Claude acumule aprendizajes automáticamente con la memoria automática.

8 8 

9Cada sesión de Claude Code comienza con una ventana de contexto nueva. Dos mecanismos llevan el conocimiento entre sesiones:9Cada sesión de Claude Code comienza con una ventana de contexto nueva. Dos mecanismos transmiten conocimiento entre sesiones:

10 10 

11* **Archivos CLAUDE.md**: instrucciones que usted escribe para dar a Claude contexto persistente. Claude también puede leer archivos [`AGENTS.md`](#agents-md) de un repositorio, por sí solos o junto con CLAUDE.md11* **Archivos CLAUDE.md**: instrucciones que escribes para darle a Claude contexto persistente. Claude también puede leer los [archivos `AGENTS.md`](#agents-md) de un repositorio en lugar de CLAUDE.md

12* **Auto memory**: notas que Claude escribe por sí mismo basadas en sus correcciones y preferencias12* **Memoria automática**: notas que Claude escribe por sí mismo basándose en tus correcciones y preferencias

13 13 

14Esta página cubre cómo:14Esta página explica cómo:

15 15 

16* [Escribir y organizar archivos CLAUDE.md](#claude-md-files)16* [Escribir y organizar archivos CLAUDE.md](#claude-md-files)

17* [Usar un AGENTS.md existente](#agents-md) como sus instrucciones de proyecto, por sí solo o junto con CLAUDE.md17* [Usar un AGENTS.md existente](#agents-md) como las instrucciones de tu proyecto

18* [Limitar reglas a tipos de archivo específicos](#organize-rules-with-claude/rules/) con `.claude/rules/`18* [Limitar reglas a tipos de archivo específicos](#organize-rules-with-claude/rules/) con `.claude/rules/`

19* [Configurar auto memory](#auto-memory) para que Claude tome notas automáticamente19* [Configurar la memoria automática](#auto-memory) para que Claude tome notas automáticamente

20* [Solucionar problemas](#troubleshoot-memory-issues) cuando las instrucciones no se siguen20* [Solucionar problemas](#troubleshoot-memory-issues) cuando no se siguen las instrucciones

21 21 

22<h2 id="claude-md-vs-auto-memory">22<h2 id="claude-md-vs-auto-memory">

23 CLAUDE.md vs auto memory23 CLAUDE.md vs auto memory

model-config.md +36 −23

Details

43| **`opus[1m]`** | Utiliza Opus con una [ventana de contexto de 1 millón de tokens](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model) para sesiones largas |43| **`opus[1m]`** | Utiliza Opus con una [ventana de contexto de 1 millón de tokens](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model) para sesiones largas |

44| **`opusplan`** | Modo especial que utiliza `opus` durante Plan Mode, luego cambia a `sonnet` para la ejecución |44| **`opusplan`** | Modo especial que utiliza `opus` durante Plan Mode, luego cambia a `sonnet` para la ejecución |

45 45 

46La versión a la que se resuelven los alias `opus` y `sonnet` depende del proveedor:46Los alias `opus`, `sonnet` y `haiku` se resuelven a la versión más reciente en la API de Anthropic y a una versión anterior en algunos otros proveedores:

47 47 

48| Proveedor | `opus` | `sonnet` |48| Proveedor | `opus` | `sonnet` | `haiku` |

49| :- | :- | :- |49| :- | :- | :- | :- |

50| API de Anthropic | Opus 5.5 | Sonnet 5.5 |50| API de Anthropic | Opus 5.5 | Sonnet 5.5 | Haiku 5.5 |

51| [Plataforma Claude en AWS](/docs/es/claude-platform-on-aws) | Opus 5.5 | Sonnet 4.6 |51| [Claude Platform on AWS](/docs/es/claude-platform-on-aws) | Opus 5.5 | Sonnet 4.6 | Haiku 4.5 |

52| Amazon Bedrock, Plataforma de agentes de Google Cloud | Opus 5.5 | Sonnet 4.5 |52| Amazon Bedrock, Agent Platform de Google Cloud | Opus 5.5 | Sonnet 4.5 | Haiku 4.5 |

53| Microsoft Foundry | Opus 4.6 | Sonnet 4.5 |53| Microsoft Foundry | Opus 4.6 | Sonnet 4.5 | Haiku 4.5 |

54 54 

55<span id="fable-alias-resolution" />55<span id="fable-alias-resolution" />

56 56 


58 58 

59Una puerta de enlace que no esté configurada para servir `claude-fable-5-1` rechaza solicitudes para ese modelo. Para usar Fable 5.1 a través de una puerta de enlace que lo sirve, selecciónelo con `/model claude-fable-5-1`.59Una puerta de enlace que no esté configurada para servir `claude-fable-5-1` rechaza solicitudes para ese modelo. Para usar Fable 5.1 a través de una puerta de enlace que lo sirve, selecciónelo con `/model claude-fable-5-1`.

60 60 

61Donde un alias se resuelve a un modelo más antiguo, los modelos más nuevos están disponibles seleccionando el nombre de modelo completo explícitamente o configurando `ANTHROPIC_DEFAULT_OPUS_MODEL` o `ANTHROPIC_DEFAULT_SONNET_MODEL`.61Donde `opus` o `sonnet` se resuelve a un modelo más antiguo, los modelos más nuevos están disponibles seleccionando explícitamente el nombre de modelo completo o configurando `ANTHROPIC_DEFAULT_OPUS_MODEL` o `ANTHROPIC_DEFAULT_SONNET_MODEL`.

62 62 

63Las versiones anteriores resuelven estos alias a modelos más antiguos. Para la versión en la que cada alias cambió, consulte [Historial de versiones](#version-history).63Las versiones anteriores resuelven estos alias a modelos más antiguos. Para la versión en la que cada alias cambió, consulte [Historial de versiones](#version-history).

64 64 

65Los alias apuntan a la versión recomendada para su proveedor y se actualizan con el tiempo. Para fijar una versión específica, use el nombre de modelo completo, por ejemplo `claude-opus-5-5`, o establezca la variable de entorno correspondiente como `ANTHROPIC_DEFAULT_OPUS_MODEL`.65Los alias apuntan a la versión recomendada para su proveedor y se actualizan con el tiempo. Para fijar una versión específica, use el nombre de modelo completo, por ejemplo `claude-opus-5-5`, o establezca la variable de entorno correspondiente como `ANTHROPIC_DEFAULT_OPUS_MODEL`.

66 66 

67<Note>67<Note>

68 Sonnet 5.5 requiere Claude Code v2.1.284 o posterior, y Opus 5.5 requiere v2.1.280 o posterior. Si una solicitud de una versión anterior falla, consulte [Claude Code no admite este modelo](/docs/es/errors#claude-code-does-not-support-this-model). Ejecute `claude update` para actualizar.68 Sonnet 5.5 requiere Claude Code v2.1.284 o posterior, y Opus 5.5 requiere v2.1.280 o posterior. Si una solicitud para uno de ellos desde una versión anterior falla, consulta [Claude Code no admite este modelo](/docs/es/errors#claude-code-does-not-support-this-model). Usa v2.1.293 o posterior con Haiku 5.5. Ejecuta `claude update` para actualizar.

69</Note>69</Note>

70 70 

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


156 156 

157Los precios en el selector `/model` aparecen cuando Claude Code habla con la API de Anthropic, directamente o a través de una [puerta de enlace LLM](/docs/es/llm-gateway) que la proxifica, y el precio en una fila es el precio del modelo que esa fila selecciona. En [proveedores de terceros](/docs/es/third-party-integrations) como Amazon Bedrock y en la [puerta de enlace de aplicaciones Claude](/docs/es/claude-apps-gateway), su proveedor o puerta de enlace determina lo que paga, por lo que las filas del selector no muestran precio. El precio es solo una etiqueta de visualización; no afecta qué modelo selecciona una fila o qué factura su proveedor. Antes de v2.1.206, [Plataforma Claude en AWS](/docs/es/claude-platform-on-aws) y sesiones de puerta de enlace mostraban precios de lista de Anthropic, y una fila podría mostrar el precio de un modelo diferente al que seleccionaba.157Los precios en el selector `/model` aparecen cuando Claude Code habla con la API de Anthropic, directamente o a través de una [puerta de enlace LLM](/docs/es/llm-gateway) que la proxifica, y el precio en una fila es el precio del modelo que esa fila selecciona. En [proveedores de terceros](/docs/es/third-party-integrations) como Amazon Bedrock y en la [puerta de enlace de aplicaciones Claude](/docs/es/claude-apps-gateway), su proveedor o puerta de enlace determina lo que paga, por lo que las filas del selector no muestran precio. El precio es solo una etiqueta de visualización; no afecta qué modelo selecciona una fila o qué factura su proveedor. Antes de v2.1.206, [Plataforma Claude en AWS](/docs/es/claude-platform-on-aws) y sesiones de puerta de enlace mostraban precios de lista de Anthropic, y una fila podría mostrar el precio de un modelo diferente al que seleccionaba.

158 158 

159Las sesiones reanudadas iniciadas con `claude --resume`, `--continue`, o el selector `/resume` mantienen el modelo que estaban usando cuando se guardó la transcripción, independientemente de la configuración actual de `model`. Si el modelo restaurado se ha retirado o es excluido por [`availableModels`](#restrict-model-selection), la sesión cae a través del orden de prioridad normal. Esto evita que la elección `/model` de otra sesión cambie el modelo en la reanudación. En proveedores que usan ID de implementación específicos del proveedor en lugar de ID de modelo de Anthropic, como Amazon Bedrock, Plataforma de agentes de Google Cloud y Microsoft Foundry, el modelo de transcripción no se restaura en absoluto y la sesión resuelve su modelo a través del orden de prioridad normal.159Las sesiones reanudadas con `claude --resume`, `--continue` o el selector `/resume` mantienen el modelo que estaban usando cuando se guardó la transcripción. Si el modelo restaurado se ha retirado o [`availableModels`](#restrict-model-selection) lo excluye, la sesión recurre al orden de prioridad normal. En proveedores que usan IDs de despliegue específicos del proveedor en lugar de IDs de modelo de Anthropic, como Amazon Bedrock, Agent Platform de Google Cloud y Microsoft Foundry, el modelo de la transcripción no se restaura en absoluto y la sesión resuelve su modelo mediante el orden de prioridad normal.

160 

161Si tu ajuste `model` es `haiku`, una sesión guardada en un modelo Haiku se reanuda en el modelo al que `haiku` se resuelve ahora. Por ejemplo, una vez que `haiku` se resuelve a Haiku 5.5, una sesión guardada en Haiku 4.5 se reanuda en Haiku 5.5.

160 162 

161Un modelo que elige para el nuevo lanzamiento con `--model` o `ANTHROPIC_MODEL` aún tiene prioridad sobre el modelo restaurado. A partir de v2.1.195, también lo hace una variable de familia [`ANTHROPIC_DEFAULT_OPUS_MODEL`](#environment-variables). [`ANTHROPIC_DEFAULT_MODEL`](#set-a-default-model-for-new-sessions) también puede, bajo las condiciones enumeradas en su sección.163Un modelo que elige para el nuevo lanzamiento con `--model` o `ANTHROPIC_MODEL` aún tiene prioridad sobre el modelo restaurado. A partir de v2.1.195, también lo hace una variable de familia [`ANTHROPIC_DEFAULT_OPUS_MODEL`](#environment-variables). [`ANTHROPIC_DEFAULT_MODEL`](#set-a-default-model-for-new-sessions) también puede, bajo las condiciones enumeradas en su sección.

162 164 


645| Modelo | Niveles |647| Modelo | Niveles |

646| :- | :- |648| :- | :- |

647| Fable 5.1 y Fable 5 | `low`, `medium`, `high`, `xhigh`, `max` |649| Fable 5.1 y Fable 5 | `low`, `medium`, `high`, `xhigh`, `max` |

648| Opus 5.5, Sonnet 5.5, Opus 5, Sonnet 5, Opus 4.8 y Opus 4.7 | `low`, `medium`, `high`, `xhigh`, `max` |650| Opus 5.5, Sonnet 5.5, Haiku 5.5, Opus 5, Sonnet 5, Opus 4.8 y Opus 4.7 | `low`, `medium`, `high`, `xhigh`, `max` |

649| Opus 4.6 y Sonnet 4.6 | `low`, `medium`, `high`, `max` |651| Opus 4.6 y Sonnet 4.6 | `low`, `medium`, `high`, `max` |

650 652 

651Si estableces un nivel que el modelo activo no admite, Claude Code recurre al nivel admitido más alto que sea igual o inferior al que estableciste. Por ejemplo, `xhigh` se ejecuta como `high` en Opus 4.6. Tu organización o tu propia configuración también pueden limitar los niveles que ofrece un modelo; consulta [Límites de esfuerzo de la organización](#organization-effort-limits).653Si estableces un nivel que el modelo activo no admite, Claude Code recurre al nivel admitido más alto que sea igual o inferior al que estableciste. Por ejemplo, `xhigh` se ejecuta como `high` en Opus 4.6. Tu organización o tu propia configuración también pueden limitar los niveles que ofrece un modelo; consulta [Límites de esfuerzo de la organización](#organization-effort-limits).


654 656 

6551. Una elección explícita: la variable de entorno [`CLAUDE_CODE_EFFORT_LEVEL`](/docs/es/env-vars#variables), iniciar con `--effort`, o `/effort` en la sesión ([un `/effort` no interactivo tiene un efecto más limitado](#non-interactive-effort))6571. Una elección explícita: la variable de entorno [`CLAUDE_CODE_EFFORT_LEVEL`](/docs/es/env-vars#variables), iniciar con `--effort`, o `/effort` en la sesión ([un `/effort` no interactivo tiene un efecto más limitado](#non-interactive-effort))

6562. Tu configuración: el nivel que guardaste para el modelo o una clave [`effortLevel`](/docs/es/settings-reference#effortlevel), con la precedencia entre ellos y entre archivos de configuración indicada en [`modelSettings`](/docs/es/settings-reference#modelsettings)6582. Tu configuración: el nivel que guardaste para el modelo o una clave [`effortLevel`](/docs/es/settings-reference#effortlevel), con la precedencia entre ellos y entre archivos de configuración indicada en [`modelSettings`](/docs/es/settings-reference#modelsettings)

6573. El esfuerzo predeterminado del modelo: `high` en cada modelo que admite esfuerzo, excepto que Opus 5.5 y Sonnet 5.5 por defecto son `medium`, Opus 4.7 por defecto es `xhigh`, y, cuando tu organización establece un nivel de esfuerzo predeterminado para su [modelo predeterminado de la organización](#organization-default-model), ese nivel es el predeterminado cuando ejecutas ese modelo. Después de un respaldo automático de modelo, consulta [Nivel de esfuerzo después de un respaldo](#effort-level-after-a-fallback) para ver el nivel que se aplica.6593. El esfuerzo predeterminado del modelo: `high` en cada modelo que admite esfuerzo, excepto que Opus 5.5, Sonnet 5.5 y Haiku 5.5 por defecto son `medium`, Opus 4.7 por defecto es `xhigh`, y, cuando tu organización establece un nivel de esfuerzo predeterminado para su [modelo predeterminado de la organización](#organization-default-model), ese nivel es el predeterminado cuando ejecutas ese modelo. Después de un respaldo automático de modelo, consulta [Nivel de esfuerzo después de un respaldo](#effort-level-after-a-fallback) para ver el nivel que se aplica.

658 660 

659Opus 5.5 empieza en `medium` a menos que alguna de las fuentes anteriores establezca un nivel para él, y un `effortLevel` de nivel superior en tu archivo de configuración de usuario no cuenta para Opus 5.5. Esa clave es la forma antigua que `/effort` escribía antes de que Claude Code guardara niveles por modelo: se sigue aplicando donde se aplicaba antes, en Opus 5, Fable 5.1 y modelos anteriores, mientras que Opus 5.5 y los modelos lanzados después empiezan en su propio valor predeterminado hasta que elijas un nivel para ellos con `/effort` o con el selector de `/model`. Un `effortLevel` de nivel superior en la configuración de proyecto, local o administrada, o uno pasado con `--settings`, se aplica a todos los modelos.661Opus 5.5 empieza en `medium` a menos que alguna de las fuentes anteriores establezca un nivel para él, y un `effortLevel` de nivel superior en tu archivo de configuración de usuario no cuenta para Opus 5.5. Esa clave es la forma antigua que `/effort` escribía antes de que Claude Code guardara niveles por modelo: se sigue aplicando donde se aplicaba antes, en Opus 5, Fable 5.1 y modelos anteriores, mientras que Opus 5.5 y los modelos lanzados después empiezan en su propio valor predeterminado hasta que elijas un nivel para ellos con `/effort` o con el selector de `/model`. Un `effortLevel` de nivel superior en la configuración de proyecto, local o administrada, o uno pasado con `--settings`, se aplica a todos los modelos.

660 662 


709| Nivel | Cuándo usarlo |711| Nivel | Cuándo usarlo |

710| :- | :- |712| :- | :- |

711| `low` | Intercambios rápidos en los que revisas cada resultado, como lluvias de ideas, un primer boceto o un cambio pequeño como un renombrado |713| `low` | Intercambios rápidos en los que revisas cada resultado, como lluvias de ideas, un primer boceto o un cambio pequeño como un renombrado |

712| `medium` | El predeterminado en Opus 5.5 y Sonnet 5.5, donde encaja con el trabajo de ingeniería diario con un alcance claro, como implementar una nueva funcionalidad. En otros modelos, reduce el uso de tokens en trabajo sensible al costo que puede sacrificar algo de inteligencia |714| `medium` | El predeterminado en Opus 5.5, Sonnet 5.5 y Haiku 5.5. En Opus 5.5 y Sonnet 5.5, encaja con el trabajo de ingeniería diario con un alcance claro, como implementar una nueva funcionalidad. En los modelos con un predeterminado más alto, reduce el uso de tokens en trabajo sensible al costo que puede sacrificar algo de inteligencia |

713| `high` | Trabajo en el que la verificación importa o es probable que haya casos límite, como corregir un error en una base de código existente. El predeterminado en todos los modelos excepto Opus 5.5, Sonnet 5.5 y Opus 4.7 |715| `high` | Trabajo en el que la verificación importa o es probable que haya casos límite, como corregir un error en una base de código existente. El predeterminado en todos los modelos excepto Opus 5.5, Sonnet 5.5, Haiku 5.5 y Opus 4.7 |

714| `xhigh` | Razonamiento más profundo con mayor gasto de tokens. El predeterminado en Opus 4.7 |716| `xhigh` | Razonamiento más profundo con mayor gasto de tokens. El predeterminado en Opus 4.7 |

715| `max` | Problemas difíciles que quieres que Claude resuelva sin ti, como encontrar vulnerabilidades de seguridad. `max` puede mostrar rendimientos decrecientes y es propenso a pensar de más, así que pruébalo antes de adoptarlo ampliamente |717| `max` | Problemas difíciles que quieres que Claude resuelva sin ti, como encontrar vulnerabilidades de seguridad. `max` puede mostrar rendimientos decrecientes y es propenso a pensar de más, así que pruébalo antes de adoptarlo ampliamente |

716| `ultracode` | Un ajuste de Claude Code y no un nivel: planifica un [flujo de trabajo dinámico](/docs/es/workflows) para cada tarea sustancial con cualquier nivel de esfuerzo |718| `ultracode` | Un ajuste de Claude Code y no un nivel: planifica un [flujo de trabajo dinámico](/docs/es/workflows) para cada tarea sustancial con cualquier nivel de esfuerzo |


753 755 

754El razonamiento adaptativo hace que el pensamiento sea opcional en cada paso, de modo que Claude puede responder más rápido a prompts habituales y reservar un pensamiento más profundo para los pasos que se benefician de él. Si quieres que Claude piense con más o menos frecuencia de lo que produce el nivel actual, puedes decirlo directamente en tu prompt o en `CLAUDE.md`; el modelo responde a esa indicación dentro de su ajuste de esfuerzo.756El razonamiento adaptativo hace que el pensamiento sea opcional en cada paso, de modo que Claude puede responder más rápido a prompts habituales y reservar un pensamiento más profundo para los pasos que se benefician de él. Si quieres que Claude piense con más o menos frecuencia de lo que produce el nivel actual, puedes decirlo directamente en tu prompt o en `CLAUDE.md`; el modelo responde a esa indicación dentro de su ajuste de esfuerzo.

755 757 

756Los modelos Fable, Sonnet 5 y posteriores, y Opus 4.7 y posteriores usan siempre razonamiento adaptativo. El modo de presupuesto de pensamiento fijo y `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` no se aplican a ellos.758Los modelos Fable, Sonnet 5 y posteriores, Haiku 5.5, y Opus 4.7 y posteriores usan siempre razonamiento adaptativo. El modo de presupuesto de pensamiento fijo y `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` no se aplican a ellos.

757 759 

758En Opus 4.6 y Sonnet 4.6, puedes establecer `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1` para volver al presupuesto de pensamiento fijo anterior controlado por `MAX_THINKING_TOKENS`. Consulta [variables de entorno](/docs/es/env-vars).760En Opus 4.6 y Sonnet 4.6, puedes establecer `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1` para volver al presupuesto de pensamiento fijo anterior controlado por `MAX_THINKING_TOKENS`. Consulta [variables de entorno](/docs/es/env-vars).

759 761 


767| :- | :- |769| :- | :- |

768| Alternar para la sesión actual | Presiona `Option+T` en macOS o `Alt+T` en Windows y Linux |770| Alternar para la sesión actual | Presiona `Option+T` en macOS o `Alt+T` en Windows y Linux |

769| Establecer el predeterminado global | Ejecuta `/config` y alterna el modo de pensamiento. Se guarda como `alwaysThinkingEnabled` en `~/.claude/settings.json` |771| Establecer el predeterminado global | Ejecuta `/config` y alterna el modo de pensamiento. Se guarda como `alwaysThinkingEnabled` en `~/.claude/settings.json` |

770| Desactivar mediante una variable de entorno | Establece [`MAX_THINKING_TOKENS=0`](/docs/es/env-vars), que desactiva el pensamiento en la Anthropic API excepto en Opus 5.5, Sonnet 5.5 y los modelos Fable. En [proveedores de terceros](/docs/es/third-party-integrations), Claude Code omite en su lugar el parámetro `thinking`, y los modelos con razonamiento adaptativo pueden seguir pensando |772| Desactivar mediante una variable de entorno | Establece [`MAX_THINKING_TOKENS=0`](/docs/es/env-vars), que desactiva el pensamiento en la Anthropic API excepto en Opus 5.5, Sonnet 5.5, Haiku 5.5 y los modelos Fable. En [proveedores de terceros](/docs/es/third-party-integrations), Claude Code omite en su lugar el parámetro `thinking`, y los modelos con razonamiento adaptativo pueden seguir pensando |

771 773 

772No puedes desactivar el pensamiento en Opus 5.5, Sonnet 5.5 ni en los modelos Fable. El interruptor de la sesión y la fila de `/config` muestran `Thinking can't be turned off` para estos modelos en lugar de ofrecer el interruptor, y un `alwaysThinkingEnabled: false` guardado o `MAX_THINKING_TOKENS=0` no tienen efecto allí. En estos modelos, el modelo decide en cada paso cuánto pensar según el nivel de esfuerzo. El ajuste guardado vuelve a aplicarse cuando cambias a un modelo que lo acepta.774No puedes desactivar el pensamiento en Opus 5.5, Sonnet 5.5, Haiku 5.5 ni en los modelos Fable. El interruptor de la sesión y la fila de `/config` muestran `Thinking can't be turned off` para estos modelos en lugar de ofrecer el interruptor, y un `alwaysThinkingEnabled: false` guardado o `MAX_THINKING_TOKENS=0` no tienen efecto allí. En estos modelos, el modelo decide en cada paso cuánto pensar según el nivel de esfuerzo. El ajuste guardado vuelve a aplicarse cuando cambias a un modelo que lo acepta.

773 775 

774Claude Code contrae la salida del pensamiento de forma predeterminada. Presiona `Ctrl+O` para alternar el modo detallado y ver el razonamiento como texto gris en cursiva. Las sesiones interactivas en la Anthropic API reciben bloques de pensamiento redactados de forma predeterminada, así que establece `showThinkingSummaries: true` en la [configuración](/docs/es/settings) si quieres tener disponibles los resúmenes completos al expandirlos. Se te cobran todos los tokens de pensamiento generados, incluso cuando están contraídos o redactados.776Claude Code contrae la salida del pensamiento de forma predeterminada. Presiona `Ctrl+O` para alternar el modo detallado y ver el razonamiento como texto gris en cursiva. Las sesiones interactivas en la Anthropic API reciben bloques de pensamiento redactados de forma predeterminada, así que establece `showThinkingSummaries: true` en la [configuración](/docs/es/settings) si quieres tener disponibles los resúmenes completos al expandirlos. Se te cobran todos los tokens de pensamiento generados, incluso cuando están contraídos o redactados.

775 777 


779 Contexto extendido781 Contexto extendido

780</h3>782</h3>

781 783 

782Fable 5.1, Fable 5, Sonnet 5 y posteriores, Opus 4.6 y posteriores, y Sonnet 4.6 admiten una [ventana de contexto de 1 millón de tokens](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model) para sesiones largas con bases de código grandes.784Fable 5.1, Fable 5, Sonnet 5 y posteriores, Haiku 5.5, Opus 4.6 y posteriores, y Sonnet 4.6 admiten una [ventana de contexto de 1 millón de tokens](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model) para sesiones largas con bases de código grandes.

783 785 

784En la Anthropic API, Fable 5.1, Fable 5, Sonnet 5 y posteriores, y Opus 4.7 y posteriores se ejecutan con la ventana de 1M en todos los planes, incluido Pro. No seleccionas una variante `[1m]` ni activas créditos de uso para la ventana de 1M en estos modelos. El uso de Fable en sí puede facturarse a créditos de uso en algunos planes; consulta [Fable y créditos de uso](#fable-and-usage-credits).786En la Anthropic API, Fable 5.1, Fable 5, Sonnet 5 y posteriores, Haiku 5.5, y Opus 4.7 y posteriores se ejecutan con la ventana de 1M en todos los planes, incluido Pro. No seleccionas una variante `[1m]` ni activas créditos de uso para la ventana de 1M en estos modelos. El uso de Fable en sí puede facturarse a créditos de uso en algunos planes; consulta [Fable y créditos de uso](#fable-and-usage-credits).

785 787 

786Opus 4.6 y Sonnet 4.6 alcanzan 1M solo mediante su variante `[1m]`, y el acceso a esa variante depende de tu plan. En los planes Max, Team y Enterprise, incluidos los puestos Team Standard y Team Premium, Opus 4.6 con contexto de 1M está incluido en tu suscripción. Sonnet 4.6 con contexto de 1M requiere [créditos de uso](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) en todos los planes de suscripción, incluido Max.788Opus 4.6 y Sonnet 4.6 alcanzan 1M solo mediante su variante `[1m]`, y el acceso a esa variante depende de tu plan. En los planes Max, Team y Enterprise, incluidos los puestos Team Standard y Team Premium, Opus 4.6 con contexto de 1M está incluido en tu suscripción. Sonnet 4.6 con contexto de 1M requiere [créditos de uso](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) en todos los planes de suscripción, incluido Max.

787 789 


795 797 

796<span id="context-window-behind-a-gateway" />798<span id="context-window-behind-a-gateway" />

797 799 

798Si estableces `ANTHROPIC_BASE_URL` en un [gateway de LLM](/docs/es/llm-gateway) u otro proxy, Claude Code da a cada modelo que reconoce la misma ventana de contexto que tiene el modelo en la Anthropic API. Fable 5.1, Fable 5, Sonnet 5 y posteriores, y Opus 4.7 y posteriores obtienen la ventana de 1M sin variante `[1m]` que seleccionar, y un modelo que alcanza 1M solo mediante su variante `[1m]`, como Opus 4.6, se ejecuta a 200K sin ella. Claude Code no puede detectar un límite inferior que imponga el gateway o el servidor detrás de él. Si tu gateway rechaza solicitudes de más de 200K tokens, establece [`CLAUDE_CODE_AUTO_COMPACT_WINDOW=200000`](/docs/es/env-vars) en el entorno que inicia Claude Code, para que las sesiones en todos los modelos [se compacten en ese límite](#set-the-auto-compact-window).800Si estableces `ANTHROPIC_BASE_URL` en un [gateway de LLM](/docs/es/llm-gateway) u otro proxy, Claude Code da a cada modelo que reconoce la misma ventana de contexto que tiene el modelo en la Anthropic API. Fable 5.1, Fable 5, Sonnet 5 y posteriores, Haiku 5.5, y Opus 4.7 y posteriores obtienen la ventana de 1M sin variante `[1m]` que seleccionar, y un modelo que alcanza 1M solo mediante su variante `[1m]`, como Opus 4.6, se ejecuta a 200K sin ella. Claude Code no puede detectar un límite inferior que imponga el gateway o el servidor detrás de él. Si tu gateway rechaza solicitudes de más de 200K tokens, establece [`CLAUDE_CODE_AUTO_COMPACT_WINDOW=200000`](/docs/es/env-vars) en el entorno que inicia Claude Code, para que las sesiones en todos los modelos [se compacten en ese límite](#set-the-auto-compact-window).

799 801 

800Para desactivar el contexto de 1M, establece `CLAUDE_CODE_DISABLE_1M_CONTEXT=1`. Claude Code elimina las variantes de modelo de 1M del selector de modelos. En los modelos con una ventana nativa de 1M, como Sonnet 5 y los modelos Fable, también trata el modelo como si tuviera una ventana de contexto de 200K:802Para desactivar el contexto de 1M, establece `CLAUDE_CODE_DISABLE_1M_CONTEXT=1`. Claude Code elimina las variantes de modelo de 1M del selector de modelos. En los modelos con una ventana nativa de 1M, como Sonnet 5 y los modelos Fable, también trata el modelo como si tuviera una ventana de contexto de 200K:

801 803 


804 806 

805Antes de la v2.1.223, Claude Code limitaba a 200K solo las sesiones de Sonnet 5, Opus 4.8 y Opus 5. Consulta [variables de entorno](/docs/es/env-vars).807Antes de la v2.1.223, Claude Code limitaba a 200K solo las sesiones de Sonnet 5, Opus 4.8 y Opus 5. Consulta [variables de entorno](/docs/es/env-vars).

806 808 

807La ventana de contexto de 1M usa los precios estándar del modelo, sin recargo por los tokens más allá de 200K. En los planes en los que el contexto extendido está incluido en tu suscripción, el uso sigue cubierto por tu suscripción. En los planes que acceden al contexto extendido mediante créditos de uso, los tokens se facturan a los créditos de uso.809La ventana de contexto de 1M usa los precios estándar del modelo, sin recargo por los tokens más allá de 200K, excepto en Haiku 5.5, que [cuesta más en prompts de más de 100K tokens](#haiku-5-5-context-window-and-pricing). En los planes en los que el contexto extendido está incluido en tu suscripción, el uso sigue cubierto por tu suscripción. En los planes que acceden al contexto extendido mediante créditos de uso, los tokens se facturan a los créditos de uso.

808 810 

809Si tu cuenta admite contexto de 1M, la opción aparece en el selector de `/model` en las versiones más recientes de Claude Code. Si no la ves, reinicia tu sesión y, en un proveedor de terceros, comprueba si tu despliegue [fijó el modelo](#pin-models-for-third-party-deployments) con una variable `ANTHROPIC_DEFAULT_*_MODEL`.811Si tu cuenta admite contexto de 1M, la opción aparece en el selector de `/model` en las versiones más recientes de Claude Code. Si no la ves, reinicia tu sesión y, en un proveedor de terceros, comprueba si tu despliegue [fijó el modelo](#pin-models-for-third-party-deployments) con una variable `ANTHROPIC_DEFAULT_*_MODEL`.

810 812 


831 833 

832* **`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`**: limita a una ventana de 200K las sesiones en todos los modelos con una ventana nativa de 1M; consulta [Contexto extendido](#extended-context) para saber cómo se impone la restricción. Útil para despliegues que necesitan limitar el contexto.834* **`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`**: limita a una ventana de 200K las sesiones en todos los modelos con una ventana nativa de 1M; consulta [Contexto extendido](#extended-context) para saber cómo se impone la restricción. Útil para despliegues que necesitan limitar el contexto.

833 835 

836<h4 id="haiku-5-5-context-window-and-pricing">

837 Ventana de contexto y precios de Haiku 5.5

838</h4>

839 

840En la Anthropic API, Haiku 5.5 se ejecuta con la ventana de contexto de 1M en todos los planes, sin sufijo `[1m]` que seleccionar. Su ID de modelo es `claude-haiku-5-5`. Para usarlo, ejecuta `/model claude-haiku-5-5` en una sesión, o inicia Claude Code desde tu shell con `claude --model claude-haiku-5-5`.

841 

842Una solicitud de Haiku 5.5 cuesta más por token cuando su prompt tiene más de 100K tokens. Consulta los [precios de Anthropic](https://platform.claude.com/docs/en/about-claude/pricing) para ver ambas tarifas.

843 

844Las sesiones se compactan automáticamente a unos 967K tokens de forma predeterminada. Para compactar antes, [establece una ventana de compactación automática más pequeña](#set-the-auto-compact-window) para el modelo.

845 

834<h2 id="context-window-and-auto-compaction">846<h2 id="context-window-and-auto-compaction">

835 Ventana de contexto y auto-compactación847 Ventana de contexto y auto-compactación

836</h2>848</h2>


865* Las [sesiones en la nube](/docs/es/claude-code-on-the-web) se compactan cuando la conversación se acerca al límite del modelo877* Las [sesiones en la nube](/docs/es/claude-code-on-the-web) se compactan cuando la conversación se acerca al límite del modelo

866* Sonnet 4.6 y Opus 4.6 sin [contexto extendido](#extended-context) se compactan en el límite de 200K, y también lo hacen Opus 4.8 y posteriores cuando se ejecutan con una ventana de contexto de 200K, como en Amazon Bedrock, Google Cloud's Agent Platform y Microsoft Foundry878* Sonnet 4.6 y Opus 4.6 sin [contexto extendido](#extended-context) se compactan en el límite de 200K, y también lo hacen Opus 4.8 y posteriores cuando se ejecutan con una ventana de contexto de 200K, como en Amazon Bedrock, Google Cloud's Agent Platform y Microsoft Foundry

867* Cuando establece [`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`](/docs/es/env-vars), los modelos con una ventana nativa de 1M, como Sonnet 5 y los modelos Fable, se compactan en el límite de 200K879* Cuando establece [`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`](/docs/es/env-vars), los modelos con una ventana nativa de 1M, como Sonnet 5 y los modelos Fable, se compactan en el límite de 200K

868* Los modelos que se ejecutan con una ventana nativa de 1M se compactan antes de que la ventana se llene, a aproximadamente 967K tokens de forma predeterminada. En la API de Anthropic, estos incluyen Sonnet 5, los modelos Fable y Opus 4.7 y posteriores. En Amazon Bedrock, Google Cloud's Agent Platform y Microsoft Foundry, consulte [Fijar modelos para implementaciones de terceros](#pin-models-for-third-party-deployments) para ver qué modelos se ejecutan con esa ventana. Detrás de un `ANTHROPIC_BASE_URL` personalizado, consulte [la ventana de contexto detrás de una puerta de enlace](#context-window-behind-a-gateway)880* Los modelos que se ejecutan con una ventana nativa de 1M se compactan antes de que la ventana se llene, a aproximadamente 967K tokens de forma predeterminada. En la API de Anthropic, estos incluyen Sonnet 5, Haiku 5.5, los modelos Fable y Opus 4.7 y posteriores. En Amazon Bedrock, Google Cloud's Agent Platform y Microsoft Foundry, consulta [Fijar modelos para despliegues de terceros](#pin-models-for-third-party-deployments) para ver qué modelos se ejecutan con esa ventana. Detrás de un `ANTHROPIC_BASE_URL` personalizado, consulta [la ventana de contexto detrás de un gateway](#context-window-behind-a-gateway)

869* Las sesiones en un ID de modelo que Claude Code no reconoce, como un alias de [puerta de enlace LLM](/docs/es/llm-gateway), se compactan en la ventana de contexto que Claude Code asume para el ID; consulte [Corregir la ventana para una puerta de enlace o ID de modelo personalizado](#correct-the-window-for-a-gateway-or-custom-model-id)881* Las sesiones en un ID de modelo que Claude Code no reconoce, como un alias de [puerta de enlace LLM](/docs/es/llm-gateway), se compactan en la ventana de contexto que Claude Code asume para el ID; consulte [Corregir la ventana para una puerta de enlace o ID de modelo personalizado](#correct-the-window-for-a-gateway-or-custom-model-id)

870 882 

871<h3 id="correct-the-window-for-a-gateway-or-custom-model-id">883<h3 id="correct-the-window-for-a-gateway-or-custom-model-id">


1093 1105 

1094| Versión | Cambio |1106| Versión | Cambio |

1095| :- | :- |1107| :- | :- |

1108| v2.1.293 | `haiku` se resuelve a Haiku 5.5 en la API de Anthropic |

1096| v2.1.284 | `sonnet` se resuelve a Sonnet 5.5 en la API de Anthropic |1109| v2.1.284 | `sonnet` se resuelve a Sonnet 5.5 en la API de Anthropic |

1097| v2.1.280 | `opus` se resuelve a Opus 5.5 en la API de Anthropic, Claude Platform en AWS, Amazon Bedrock y Agent Platform de Google Cloud |1110| v2.1.280 | `opus` se resuelve a Opus 5.5 en la API de Anthropic, Claude Platform en AWS, Amazon Bedrock y Agent Platform de Google Cloud |

1098| v2.1.257 | `fable` se resuelve a Fable 5.1, excepto en sesiones de puerta de enlace de aplicaciones Claude |1111| v2.1.257 | `fable` se resuelve a Fable 5.1, excepto en sesiones de puerta de enlace de aplicaciones Claude |


1100| v2.1.207 | `opus` se resuelve a Opus 4.8 en Claude Platform en AWS, Amazon Bedrock y Agent Platform |1113| v2.1.207 | `opus` se resuelve a Opus 4.8 en Claude Platform en AWS, Amazon Bedrock y Agent Platform |

1101| v2.1.197 | `sonnet` se resuelve a Sonnet 5 en la API de Anthropic |1114| v2.1.197 | `sonnet` se resuelve a Sonnet 5 en la API de Anthropic |

1102| v2.1.154 | `opus` se resuelve a Opus 4.8 en la API de Anthropic |1115| v2.1.154 | `opus` se resuelve a Opus 4.8 en la API de Anthropic |

1103| Anterior | `opus` se resuelve a Opus 4.7 en Claude Platform en AWS y a Opus 4.6 en Amazon Bedrock y Agent Platform. `fable` se resuelve a Fable 5 en todos los proveedores |1116| Anterior | `opus` se resuelve a Opus 4.7 en Claude Platform en AWS y a Opus 4.6 en Amazon Bedrock y Agent Platform. `fable` se resuelve a Fable 5 y `haiku` se resuelve a Haiku 4.5 en todos los proveedores |

Details

551* **Configuración administrada por el servidor**: agréguelas al bloque `env` de la [configuración administrada por el servidor](/docs/es/server-managed-settings) de su organización. Claude Code obtiene esa configuración al iniciarse dondequiera que [se aplique la configuración administrada por el servidor](/docs/es/model-config#surface-coverage), lo que incluye las máquinas de sus usuarios y las sesiones en la nube que no sean sesiones del canal Claude Tag. Las sesiones de Claude Tag no reciben su configuración administrada por el servidor, por lo que esta ruta no las configura.551* **Configuración administrada por el servidor**: agréguelas al bloque `env` de la [configuración administrada por el servidor](/docs/es/server-managed-settings) de su organización. Claude Code obtiene esa configuración al iniciarse dondequiera que [se aplique la configuración administrada por el servidor](/docs/es/model-config#surface-coverage), lo que incluye las máquinas de sus usuarios y las sesiones en la nube que no sean sesiones del canal Claude Tag. Las sesiones de Claude Tag no reciben su configuración administrada por el servidor, por lo que esta ruta no las configura.

552* **Las variables del entorno**: agréguelas a las [variables de entorno](/docs/es/cloud-environments#set-environment-variables) de un entorno en la nube para configurar solo las sesiones que se ejecutan en ese entorno. Esta es la ruta que llega a las sesiones de Claude Tag.552* **Las variables del entorno**: agréguelas a las [variables de entorno](/docs/es/cloud-environments#set-environment-variables) de un entorno en la nube para configurar solo las sesiones que se ejecutan en ese entorno. Esta es la ruta que llega a las sesiones de Claude Tag.

553 553 

554Cualquiera que use un entorno puede leer sus variables, así que no coloque una credencial allí, como un token de recopilador en `OTEL_EXPORTER_OTLP_HEADERS`. Una [credencial de API](/docs/es/cloud-environments#add-api-credentials) en el entorno tampoco ayuda, porque la exportación de telemetría propia de Claude Code es una de las [solicitudes que nunca obtienen la credencial](/docs/es/cloud-environments#requests-that-never-get-the-credential). Si su recopilador requiere una credencial, configure toda la exportación a través de la configuración administrada por el servidor en su lugar, porque cuando establece una credencial allí, [Claude Code elimina las variables de punto final establecidas fuera de la configuración administrada](#how-managed-settings-lock-the-otlp-destination).554Cualquiera que use un entorno puede leer sus variables, así que no coloques una credencial allí, como un token de recopilador en `OTEL_EXPORTER_OTLP_HEADERS`. Un [secreto de red](/docs/es/cloud-environments#add-api-credentials) en el entorno tampoco ayuda, porque la exportación de telemetría propia de Claude Code es una de las [solicitudes que nunca obtienen el secreto](/docs/es/cloud-environments#requests-that-never-get-the-credential). Si tu recopilador requiere una credencial, configura toda la exportación a través de la configuración administrada por el servidor en su lugar, porque cuando estableces una credencial allí, [Claude Code elimina las variables de endpoint establecidas fuera de la configuración administrada](#how-managed-settings-lock-the-otlp-destination).

555 555 

556Tenga en cuenta estas restricciones cuando configure la telemetría para sesiones en la nube:556Tenga en cuenta estas restricciones cuando configure la telemetría para sesiones en la nube:

557 557 

overview.md +7 −5

Details

28 curl -fsSL https://claude.ai/install.sh | bash28 curl -fsSL https://claude.ai/install.sh | bash

29 ```29 ```

30 30 

31 En Windows, tu prompt muestra `PS C:\` cuando estás en PowerShell y `C:\` sin el `PS` cuando estás en CMD.

32 

31 **Windows PowerShell:**33 **Windows PowerShell:**

32 34 

33 ```powershell theme={null}35 ```powershell theme={null}


42 44 

43 Cuando el instalador termine, abra una nueva ventana de terminal y ejecute `claude --version`. Una instalación que funciona correctamente imprime un número de versión. Si su shell dice que `claude` no se encuentra o no se reconoce, el directorio de instalación aún no está en su PATH: consulte [Corrija su PATH](/docs/es/troubleshoot-install#command-not-found-claude-after-installation).45 Cuando el instalador termine, abra una nueva ventana de terminal y ejecute `claude --version`. Una instalación que funciona correctamente imprime un número de versión. Si su shell dice que `claude` no se encuentra o no se reconoce, el directorio de instalación aún no está en su PATH: consulte [Corrija su PATH](/docs/es/troubleshoot-install#command-not-found-claude-after-installation).

44 46 

45 Si ve `The token '&&' is not a valid statement separator`, está en PowerShell, no en CMD. Si ve `'irm' is not recognized as an internal or external command`, está en CMD, no en PowerShell. Su símbolo del sistema muestra `PS C:\` cuando está en PowerShell y `C:\` sin el `PS` cuando está en CMD.47 Si ves `The token '&&' is not a valid statement separator`, estás en PowerShell, no en CMD. Si ves `'irm' is not recognized as an internal or external command`, estás en CMD, no en PowerShell.

46 48 

47 Si el comando de instalación falla con `syntax error near unexpected token '<'`, un `403`, u otro error de curl, consulte [Solucionar problemas de instalación](/docs/es/troubleshoot-install#find-your-error) para hacer coincidir el error con una solución y para conocer métodos de instalación alternativos.49 Si el comando de instalación falla con `syntax error near unexpected token '<'`, un `403` o cualquier otro error, consulta [Solucionar problemas de instalación](/docs/es/troubleshoot-install#find-your-error) para hacer coincidir el error con una solución y para conocer métodos de instalación alternativos.

48 50 

49 Se recomienda [Git for Windows](https://git-scm.com/downloads/win) en Windows nativo para que Claude Code pueda utilizar la herramienta Bash. Si Git for Windows no está instalado, Claude Code utiliza PowerShell como herramienta de shell en su lugar. Las configuraciones de WSL no necesitan Git for Windows.51 Se recomienda [Git for Windows](https://git-scm.com/downloads/win) en Windows nativo para que Claude Code pueda utilizar la herramienta Bash. Si Git for Windows no está instalado, Claude Code utiliza PowerShell como herramienta de shell en su lugar. Las configuraciones de WSL no necesitan Git for Windows.

50 52 


85 claude87 claude

86 ```88 ```

87 89 

88 Se te pedirá que inicies sesión en el primer uso. Si has establecido la variable de entorno `ANTHROPIC_API_KEY`, Claude Code omite la solicitud de inicio de sesión y te pide que apruebes la clave en su lugar. ¡Eso es todo! [Continúa con la Guía de inicio rápido →](/docs/es/quickstart)90 Claude Code te pide que inicies sesión en el primer uso. Si estableciste la variable de entorno `ANTHROPIC_API_KEY` y apruebas la clave cuando Claude Code te pregunta si quieres usarla, Claude Code omite la solicitud de inicio de sesión. [Continúa con la Guía de inicio rápido →](/docs/es/quickstart)

89 91 

90 <Tip>92 <Tip>

91 Consulta [configuración avanzada](/docs/es/setup) para opciones de instalación, actualizaciones manuales o instrucciones de desinstalación. Visita [solución de problemas de instalación](/docs/es/troubleshoot-install) si encuentras problemas.93 Consulta [configuración avanzada](/docs/es/setup) para opciones de instalación, actualizaciones manuales o instrucciones de desinstalación. Visita [solución de problemas de instalación](/docs/es/troubleshoot-install) si encuentras problemas.


167 </Accordion>169 </Accordion>

168 170 

169 <Accordion title="Conecta tus herramientas con MCP" icon="plug">171 <Accordion title="Conecta tus herramientas con MCP" icon="plug">

170 El [Protocolo de Contexto de Modelo (MCP)](/docs/es/mcp) es un estándar abierto para conectar herramientas de IA a fuentes de datos externas. Con MCP, Claude Code puede leer tus documentos de diseño en Google Drive, actualizar tickets en Jira, extraer datos de Slack o usar tu propia herramienta personalizada. El [inicio rápido de MCP](/docs/es/mcp-quickstart) conecta tu primer servidor de extremo a extremo.172 El [Model Context Protocol (MCP)](/docs/es/mcp) es un estándar abierto para conectar herramientas de IA a fuentes de datos externas. Con MCP, Claude Code puede leer tus documentos de diseño en Google Drive, actualizar tickets en Jira, extraer datos de Slack o usar tu propia herramienta personalizada. El [inicio rápido de MCP](/docs/es/mcp-quickstart) conecta tu primer servidor de extremo a extremo.

171 </Accordion>173 </Accordion>

172 174 

173 <Accordion title="Personaliza con instrucciones, skills y hooks" icon="sliders">175 <Accordion title="Personaliza con instrucciones, skills y hooks" icon="sliders">

174 [`CLAUDE.md`](/docs/es/memory) es un archivo markdown que añades a la raíz de tu proyecto que Claude Code lee al inicio de cada sesión. Úsalo para establecer estándares de codificación, decisiones de arquitectura, librerías preferidas y listas de verificación de revisión. Si tu repositorio ya tiene un `AGENTS.md` para otros agentes de codificación, Claude Code [puede leerlo](/docs/es/memory#agents-md) por su cuenta o junto con `CLAUDE.md`. Claude también construye [memoria automática](/docs/es/memory#auto-memory) mientras trabaja, guardando aprendizajes en sesiones sin que escribas nada.176 [`CLAUDE.md`](/docs/es/memory) es un archivo markdown que añades a la raíz de tu proyecto que Claude Code lee al inicio de cada sesión. Úsalo para establecer estándares de codificación, decisiones de arquitectura, librerías preferidas y listas de verificación de revisión. Si tu repositorio ya tiene un `AGENTS.md` para otros agentes de codificación, Claude Code [puede leerlo](/docs/es/memory#agents-md) en lugar de un `CLAUDE.md`. Claude también crea [memoria automática](/docs/es/memory#auto-memory) mientras trabaja, guardando aprendizajes en sesiones sin que escribas nada.

175 177 

176 Crea [skills](/docs/es/skills) para empaquetar flujos de trabajo repetibles que tu equipo pueda compartir, como `/review-pr` o `/deploy-staging`.178 Crea [skills](/docs/es/skills) para empaquetar flujos de trabajo repetibles que tu equipo pueda compartir, como `/review-pr` o `/deploy-staging`.

177 179 

Details

333 333 

334* **Plan**: Todos los planes.334* **Plan**: Todos los planes.

335* **Organización**: en Team y Enterprise, el modo automático está disponible de forma predeterminada. Los administradores pueden desactivarlo para la organización estableciendo `permissions.disableAutoMode` en `"disable"` en la [configuración administrada](/docs/es/managed-settings).335* **Organización**: en Team y Enterprise, el modo automático está disponible de forma predeterminada. Los administradores pueden desactivarlo para la organización estableciendo `permissions.disableAutoMode` en `"disable"` en la [configuración administrada](/docs/es/managed-settings).

336* **Modelo**: en la API de Anthropic y [Claude Platform on AWS](/docs/es/claude-platform-on-aws), Claude Opus 4.6 o posterior, Sonnet 4.6 o posterior, o un [modelo Fable](/docs/es/model-config#work-with-fable). En Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry y sesiones del [gateway de aplicaciones de Claude](/docs/es/claude-apps-gateway) con sesión iniciada, solo Claude Sonnet 5 o posterior, Opus 4.7 o posterior y los modelos Fable. Los modelos más antiguos, incluidos Sonnet 4.5, Opus 4.5, Haiku y los modelos claude-3, no son compatibles en ningún proveedor.336* **Modelo**: en la API de Anthropic y [Claude Platform on AWS](/docs/es/claude-platform-on-aws), Claude Opus 4.6 o posterior, Sonnet 4.6 o posterior, Haiku 5.5 o un [modelo Fable](/docs/es/model-config#work-with-fable). En Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry y sesiones del [gateway de aplicaciones de Claude](/docs/es/claude-apps-gateway) con sesión iniciada, solo Claude Sonnet 5 o posterior, Opus 4.7 o posterior, Haiku 5.5 y los modelos Fable. Los modelos más antiguos, incluidos Sonnet 4.5, Opus 4.5, Haiku 4.5 y los modelos claude-3, no son compatibles en ningún proveedor.

337* **Proveedor**: disponible de forma predeterminada en la API de Anthropic, Claude Platform on AWS, Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry y sesiones del gateway de aplicaciones de Claude con sesión iniciada.337* **Proveedor**: disponible de forma predeterminada en la API de Anthropic, Claude Platform on AWS, Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry y sesiones del gateway de aplicaciones de Claude con sesión iniciada.

338 338 

339Si Claude Code informa que el modo automático no está disponible, primero verifica estos requisitos y si algún archivo de configuración establece [`disableAutoMode`](/docs/es/settings-reference#disableautomode). Anthropic también puede haber desactivado el modo automático del lado del servidor, o el servidor puede haber rechazado el modo automático para tu cuenta. Una sesión que recibió cualquiera de estas respuestas mantiene el modo automático desactivado hasta que finaliza, así que inicia una nueva sesión más tarde.339Si Claude Code informa que el modo automático no está disponible, primero verifica estos requisitos y si algún archivo de configuración establece [`disableAutoMode`](/docs/es/settings-reference#disableautomode). Anthropic también puede haber desactivado el modo automático del lado del servidor, o el servidor puede haber rechazado el modo automático para tu cuenta. Una sesión que recibió cualquiera de estas respuestas mantiene el modo automático desactivado hasta que finaliza, así que inicia una nueva sesión más tarde.


348 348 

349En [Amazon Bedrock](/docs/es/amazon-bedrock), [Google Cloud's Agent Platform](/docs/es/google-vertex-ai), [Microsoft Foundry](/docs/es/microsoft-foundry) y sesiones del [gateway de aplicaciones de Claude](/docs/es/claude-apps-gateway) con sesión iniciada, el modo automático está disponible de forma predeterminada. Cuando nada más establece un modo de permisos, también es el [modo de permisos de inicio integrado](#which-mode-a-session-starts-in), en las versiones que enumera la tabla de esa sección. Para elegir tú mismo el modo de permisos de inicio, establece `permissions.defaultMode` como describe [Comenzar en un modo de permisos diferente](#start-in-a-different-mode), o selecciona un modo de permisos en el indicador de modo de la extensión de VS Code.349En [Amazon Bedrock](/docs/es/amazon-bedrock), [Google Cloud's Agent Platform](/docs/es/google-vertex-ai), [Microsoft Foundry](/docs/es/microsoft-foundry) y sesiones del [gateway de aplicaciones de Claude](/docs/es/claude-apps-gateway) con sesión iniciada, el modo automático está disponible de forma predeterminada. Cuando nada más establece un modo de permisos, también es el [modo de permisos de inicio integrado](#which-mode-a-session-starts-in), en las versiones que enumera la tabla de esa sección. Para elegir tú mismo el modo de permisos de inicio, establece `permissions.defaultMode` como describe [Comenzar en un modo de permisos diferente](#start-in-a-different-mode), o selecciona un modo de permisos en el indicador de modo de la extensión de VS Code.

350 350 

351Solo Claude Sonnet 5 o posterior, Opus 4.7 o posterior y los modelos Fable son compatibles en estos proveedores. En cualquier otro modelo, la sesión comienza en Manual.351Solo Claude Sonnet 5 o posterior, Opus 4.7 o posterior, Haiku 5.5 y los modelos Fable son compatibles en estos proveedores. En cualquier otro modelo, la sesión comienza en Manual. El modo automático con Haiku 5.5 en estos proveedores requiere Claude Code v2.1.293 o posterior.

352 352 

353Para evitar que los desarrolladores usen el modo automático, establece `disableAutoMode` en `"disable"` en la [configuración administrada](/docs/es/managed-settings). Esto elimina `auto` del ciclo de `Shift+Tab`, y una sesión iniciada con `--permission-mode auto` comienza en Manual. Una sesión que ya se ejecuta en modo automático lo abandona cuando el ajuste llega a esa sesión desde una [fuente implementada por un administrador](/docs/es/managed-settings#which-managed-source-claude-code-uses), y muestra `auto mode disabled by settings`. Antes de v2.1.251, una sesión en ejecución mantenía el modo automático hasta que finalizaba.353Para evitar que los desarrolladores usen el modo automático, establece `disableAutoMode` en `"disable"` en la [configuración administrada](/docs/es/managed-settings). Esto elimina `auto` del ciclo de `Shift+Tab`, y una sesión iniciada con `--permission-mode auto` comienza en Manual. Una sesión que ya se ejecuta en modo automático lo abandona cuando el ajuste llega a esa sesión desde una [fuente implementada por un administrador](/docs/es/managed-settings#which-managed-source-claude-code-uses), y muestra `auto mode disabled by settings`. Antes de v2.1.251, una sesión en ejecución mantenía el modo automático hasta que finalizaba.

354 354 

plugin-evals.md +20 −18

Details

62Los dos conjuntos de ejecuciones se llaman el brazo con y el brazo sin; [Comparar con una línea base sin plugin](#compare-against-a-no-plugin-baseline) cubre qué casos ejecutan solo el brazo con y cómo se califican los calificadores en ambos brazos.62Los dos conjuntos de ejecuciones se llaman el brazo con y el brazo sin; [Comparar con una línea base sin plugin](#compare-against-a-no-plugin-baseline) cubre qué casos ejecutan solo el brazo con y cómo se califican los calificadores en ambos brazos.

63 63 

64<h2 id="create-your-first-eval-suite">64<h2 id="create-your-first-eval-suite">

65 Cree su primer conjunto de eval65 Crea tu primer conjunto de eval

66</h2>66</h2>

67 67 

68Este tutorial escribe un caso para su propio plugin, lo ejecuta, y lee el resultado. Antes de comenzar, asegúrese de tener:68Este tutorial escribe un caso para tu propio plugin, lo ejecuta y lee el resultado. Antes de comenzar, asegúrate de tener:

69 69 

70* Claude Code v2.1.269 o posterior y los otros [requisitos](#requirements)70* Claude Code v2.1.269 o posterior y los otros [requisitos](#requirements)

71* Una terminal abierta en el directorio raíz de su plugin, el que contiene `plugin.json` o `.claude-plugin/plugin.json`71* Una terminal abierta en el directorio raíz de tu plugin, el que contiene `plugin.json` o `.claude-plugin/plugin.json`

72* Un skill en el plugin que desea probar, y una solicitud que un usuario escribiría que debería activarlo72* Un skill en el plugin que quieras probar, y una solicitud que un usuario escribiría que debería activarlo

73 73 

74<Steps>74<Steps>

75 <Step title="Crear los casos">75 <Step title="Crear los casos">

76 Desde la raíz del plugin, ejecute:76 Desde la raíz del plugin, ejecuta:

77 77 

78 ```bash theme={null}78 ```bash theme={null}

79 claude plugin eval init79 claude plugin eval init

80 ```80 ```

81 81 

82 Si Claude Code aún no confía en este directorio, primero pregunta `Trust this plugin directory?`; responda `y`.82 Si Claude Code aún no confía en este directorio, primero pregunta `Trust this plugin directory?`; responde `y`.

83 83 

84 Luego se abre una sesión interactiva de Claude Code. Claude lee su plugin y le pregunta qué se vería bien, propone prompts que deberían y no deberían activar el plugin, diseña calificadores para cada uno, los prueba una vez para verificar que se comportan, y escribe un directorio de caso por prompt bajo `evals/`, cada uno nombrado según su prompt. Cuando Claude le dice que el conjunto está listo, salga de esa sesión con `/exit` o Ctrl+D para volver a su shell.84 Luego se abre una sesión interactiva de Claude Code. Claude lee tu plugin y te pregunta cómo se ve un buen resultado, propone prompts que deberían y no deberían activar el plugin, diseña calificadores para cada uno, los ejecuta una vez como prueba para verificar que se comportan bien, y escribe un directorio de caso por prompt bajo `evals/`, cada uno nombrado según su prompt.

85 85 

86 Si ya tiene una sesión de Claude Code abierta en la raíz del plugin, puede pedirle a Claude que ejecute `claude plugin eval init`. Claude ejecuta el comando y luego le hace las mismas preguntas en esa conversación.86 Cuando Claude te diga que el conjunto está listo, sal de esa sesión con `/exit` o Ctrl+D para volver a tu shell.

87 87 

88 Si prefiere escribir un caso usted mismo para ver exactamente qué contienen los archivos, siga [Escribir un caso a mano](#write-a-case-manually) y vuelva aquí para ejecutarlo.88 Si ya tienes una sesión de Claude Code abierta en la raíz del plugin, puedes pedirle a Claude en esa sesión que ejecute `claude plugin eval init`. Claude ejecuta el comando y luego te hace las mismas preguntas en esa conversación.

89 

90 Si prefieres escribir un caso tú mismo para ver exactamente qué contienen los archivos, sigue [Escribir un caso a mano](#write-a-case-manually) y vuelve aquí para ejecutarlo.

89 </Step>91 </Step>

90 92 

91 <Step title="Ejecutar el conjunto">93 <Step title="Ejecutar el conjunto">

92 De vuelta en su shell en la raíz del plugin, ejecute cada caso bajo `evals/`:94 De vuelta en tu shell en la raíz del plugin, ejecuta cada caso bajo `evals/`:

93 95 

94 ```bash theme={null}96 ```bash theme={null}

95 claude plugin eval .97 claude plugin eval .

96 ```98 ```

97 99 

98 Ya confió en este directorio durante el paso 1, así que la ejecución comienza inmediatamente. Si escribió el caso a mano en su lugar, la ejecución primero pregunta `Trust this plugin directory? [y/N]`; responda `y`. [Lo que una ejecución puede acceder](#security) explica a qué está accediendo.100 Ya confiaste en este directorio durante el paso 1, así que la ejecución comienza inmediatamente. Si en su lugar escribiste el caso a mano, la ejecución primero pregunta `Trust this plugin directory? [y/N]`; responde `y`. [A qué puede acceder una ejecución](#security) explica lo que estás aceptando.

99 101 

100 Cada caso se ejecuta tres veces con su plugin y tres veces sin él, así que un caso es seis ejecuciones. Una línea de progreso se imprime cuando cada ejecución termina, con la puntuación de esa ejecución y el veredicto de cada calificador.102 Cada caso se ejecuta tres veces con tu plugin y tres veces sin él, así que un caso son seis ejecuciones. Se imprime una línea de progreso cuando termina cada ejecución, con la puntuación de esa ejecución y el veredicto de cada calificador.

101 </Step>103 </Step>

102 104 

103 <Step title="Leer el resumen">105 <Step title="Leer el resumen">

104 Cuando el conjunto termina ve una tabla de resumen, seguida de dónde fue el informe:106 Cuando el conjunto termina ves una tabla de resumen, seguida de dónde quedó el informe:

105 107 

106 ```text theme={null}108 ```text theme={null}

107 CASE WITH W/OUT Δ RUNS COST NOTES109 CASE WITH W/OUT Δ RUNS COST NOTES


112 Published: https://claude.ai/... · keep local next time with --no-publish114 Published: https://claude.ai/... · keep local next time with --no-publish

113 ```115 ```

114 116 

115 `WITH` es la puntuación del caso con su plugin cargado, `W/OUT` es la puntuación sin él, y un `Δ` positivo significa que el plugin aumentó la puntuación. `COST` es una estimación de precio de lista de las llamadas de modelo, y `NOTES` muestra la explicación del calificador que falla con mayor peso, o el error de la ejecución, del brazo con.117 `WITH` es la puntuación del caso con tu plugin cargado, `W/OUT` es la puntuación sin él, y un `Δ` positivo significa que el plugin aumentó la puntuación. `COST` es una estimación a precio de lista de las llamadas al modelo, y `NOTES` muestra la explicación del calificador fallido de mayor peso, o el error de la ejecución, del brazo con el plugin.

116 </Step>118 </Step>

117 119 

118 <Step title="Abrir el informe e iterar">120 <Step title="Abrir el informe e iterar">

119 Abra la URL `Published:`, o la ruta `Report:` cuando no aparezca una línea `Published:`, para ver el veredicto de cada calificador y la explicación para cada ejecución, y para calificadores `llm` los votos del juez y el fragmento que juzgó. La línea `Published:` aparece solo cuando su cuenta puede [publicar informes](#html-report).121 Abre la URL `Published:`, o la ruta `Report:` cuando no aparezca una línea `Published:`, para ver el veredicto y la explicación de cada calificador en cada ejecución, y para los calificadores `llm` los votos del juez y el fragmento que juzgó. La línea `Published:` aparece solo cuando tu cuenta puede [publicar informes](#html-report).

120 122 

121 El hallazgo más común al principio es un `Δ` cerca de cero con el calificador `tool_used: Skill` del caso fallando, lo que significa que Claude no está eligiendo su skill en fraseología natural. Ajuste la [`description`](/docs/es/skills#frontmatter-reference) del skill, ejecute `claude plugin eval .` nuevamente, y compare.123 El hallazgo más común al principio es un `Δ` cercano a cero con el calificador `tool_used: Skill` del caso fallando, lo que significa que Claude no está eligiendo tu skill con una redacción natural. Ajusta la [`description`](/docs/es/skills#frontmatter-reference) del skill, ejecuta `claude plugin eval .` nuevamente y compara.

122 124 

123 Para iterar en un caso de manera económica, ejecute un solo brazo una vez. Una sola ejecución es ruidosa, así que confirme cualquier cambio en las tres ejecuciones predeterminadas antes de confiar en él. Con un brazo la tabla muestra columnas `SCORE` y `PASS%` en lugar de `WITH`, `W/OUT`, y `Δ`:125 Para iterar en un caso con menos ejecuciones, ejecuta un solo brazo una vez. Una sola ejecución es ruidosa, así que confirma cualquier cambio con las tres ejecuciones predeterminadas antes de confiar en él. Con un brazo, la tabla muestra las columnas `SCORE` y `PASS%` en lugar de `WITH`, `W/OUT` y `Δ`:

124 126 

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

126 claude plugin eval . --case <case-name> --runs 1 --ablation none128 claude plugin eval . --case <case-name> --runs 1 --ablation none

127 ```129 ```

128 130 

129 Reemplace `<case-name>` con uno de los nombres de directorio bajo `evals/`.131 Reemplaza `<case-name>` con uno de los nombres de directorio bajo `evals/`.

130 </Step>132 </Step>

131</Steps>133</Steps>

132 134 

Details

733You are a security reviewer. Read the changed files and report injection, authentication, and secrets-handling risks.733You are a security reviewer. Read the changed files and report injection, authentication, and secrets-handling risks.

734```734```

735 735 

736Este agente se llama `my-plugin:security-reviewer`, y el usuario puede [invocarlo explícitamente](/docs/es/sub-agents#invoke-subagents-explicitly) con `@agent-my-plugin:security-reviewer`. La forma del nombre es `<plugin>:<name>`, donde `<name>` viene del frontmatter, o del nombre del archivo cuando no hay ninguno.736Este agente se llama `my-plugin:security-reviewer`, y el usuario puede [invocarlo explícitamente](/docs/es/sub-agents#invoke-subagents-explicitly) con `@agent-my-plugin:security-reviewer`. La forma del nombre es `<plugin>:<name>`, donde `<name>` viene del campo `name` del frontmatter, o del nombre del archivo cuando falta ese campo.

737 737 

738La clave de manifiesto `agents` reemplaza el escaneo de `agents/`.738La clave de manifiesto `agents` reemplaza el escaneo de `agents/`.

739 739 

Details

428 428 

429| Elemento | Qué dibuja | Dónde |429| Elemento | Qué dibuja | Dónde |

430| :- | :- | :- |430| :- | :- | :- |

431| `Box` | Un contenedor flex. Acepta props de diseño como `flexDirection`, `columnGap`, `padding`, `borderStyle` y `width`. | En todas partes |431| `Box` | Un contenedor flex. Acepta props de diseño como `flexDirection`, `columnGap`, `padding`, [`borderStyle`](/docs/es/plugins/mods/reference#box-border-styles) y `width`. | En todas partes |

432| `Text` | Texto con estilo. Acepta `color`, `bold`, `dimColor`, `italic` y `wrap`. Un `color` es una clave del tema o un color como `'red'`. Un `wrap` es `'wrap'`, `'truncate'`, `'truncate-start'`, `'truncate-middle'` o `'truncate-end'`. | En todas partes |432| `Text` | Texto con estilo. Acepta `color`, `bold`, `dimColor`, `italic` y `wrap`. Un `color` es una clave del tema o un color como `'red'`. Un `wrap` es `'wrap'`, `'truncate'`, `'truncate-start'`, `'truncate-middle'` o `'truncate-end'`. | En todas partes |

433| `Button` | Un control que llama a `onPress` | En todas partes |433| `Button` | Un control que llama a `onPress` | En todas partes |

434| `Link`, `Code`, `Markdown` | Un enlace con `href` y una `label` opcional, un bloque de código y texto con el mismo formato que las respuestas de Claude. `Markdown` recibe su contenido en una prop `text`, no en `children`, y necesita una `key` cuando pasas `onLinkPress`. | En todas partes |434| `Link`, `Code`, `Markdown` | Un enlace con `href` y una `label` opcional, un bloque de código y texto con el mismo formato que las respuestas de Claude. `Markdown` recibe su contenido en una prop `text`, no en `children`, y necesita una `key` cuando pasas `onLinkPress`. | En todas partes |


563Muchos paneles son un campo de texto con una lista debajo. El ejemplo de esta sección es un panel de notas: escribes una nota y pulsas Enter para añadirla, y cada nota tiene un botón `x` que la elimina. Con dos notas añadidas, la terminal dibuja el panel así:563Muchos paneles son un campo de texto con una lista debajo. El ejemplo de esta sección es un panel de notas: escribes una nota y pulsas Enter para añadirla, y cada nota tiene un botón `x` que la elimina. Con dos notas añadidas, la terminal dibuja el panel así:

564 564 

565```text theme={null}565```text theme={null}

566╭──────────────────────────────────────────────────────────╮566╭────────────────────────────────────────────────────────✕─╮

567│ Note: Type a note and press Enter ⏎ add ✕ │567│ Note: Type a note and press Enter ⏎ add │

568│ x buy milk │568│ x buy milk │

569│ x call bob │569│ x call bob │

570╰──────────────────────────────────────────────────────────╯570╰──────────────────────────────────────────────────────────╯

571```571```

572 572 

573La `✕` del borde superior es la marca propia de Claude Code para cerrar el panel.

574 

573El ejemplo usa estas técnicas:575El ejemplo usa estas técnicas:

574 576 

575* **Recibir texto escrito**: un `Input` llama a `onSubmit(value)` con el texto del campo cuando el usuario pulsa Enter, y a `onInput(value)` en cada cambio577* **Recibir texto escrito**: un `Input` llama a `onSubmit(value)` con el texto del campo cuando el usuario pulsa Enter, y a `onInput(value)` en cada cambio

Details

242Para ajustar un árbol a su punto de renderizado, lee estas props en el hook:242Para ajustar un árbol a su punto de renderizado, lee estas props en el hook:

243 243 

244* **Ancho de un `Pane` o de la banda**: dibuja según `e.props.bodyColumns`244* **Ancho de un `Pane` o de la banda**: dibuja según `e.props.bodyColumns`

245* **Altura de un `Pane` junto a la transcripción**: cuando `e.props.placement` es `'dock'`, `e.props.scroll.bodyRows` es el número de filas que tiene el panel245* **Altura de un `Pane` junto a la transcripción**: cuando `e.props.placement` es `'dock'`, `e.props.scroll.bodyRows` es el número de filas que tiene el panel para tu árbol

246* **Altura de un `Pane` encima del prompt**: cuando `e.props.placement` es `'inline'`, el panel crece con tu árbol hasta un límite, y `bodyRows` es ese límite. El [campo `rows` de `$.ui.open`](/docs/es/plugins/mods/interface#open-a-pane-at-the-right-time) solicita un límite distinto.246* **Altura de un `Pane` encima del prompt**: cuando `e.props.placement` es `'inline'`, el panel crece con tu árbol hasta un límite, y `bodyRows` es ese límite. El [campo `rows` de `$.ui.open`](/docs/es/plugins/mods/interface#open-a-pane-at-the-right-time) solicita un límite distinto.

247 247 

248Un árbol más alto que el panel se desplaza como un todo.248Un árbol más alto que el panel se desplaza como un todo.


255 255 

256| Elemento | Props principales | Terminal | Escritorio |256| Elemento | Props principales | Terminal | Escritorio |

257| :- | :- | :-: | :-: |257| :- | :- | :-: | :-: |

258| [`Box`](/docs/es/plugins/mods/interface#build-a-tree-from-elements) | `key`, diseño flex, `gap`, `padding`, `margin`, `width`, `height`, `borderStyle`, `backgroundColor`, `position`, `hover` | ✓ | ✓ |258| [`Box`](/docs/es/plugins/mods/interface#build-a-tree-from-elements) | `key`, diseño flex, `gap`, `padding`, `margin`, `width`, `height`, [`borderStyle`](#box-border-styles), `backgroundColor`, `position`, `hover` | ✓ | ✓ |

259| [`Text`](/docs/es/plugins/mods/interface#build-a-tree-from-elements) | `color`, `backgroundColor`, `bold`, `italic`, `underline`, `dimColor`, `inverse`, `wrap` | ✓ | ✓ |259| [`Text`](/docs/es/plugins/mods/interface#build-a-tree-from-elements) | `color`, `backgroundColor`, `bold`, `italic`, `underline`, `dimColor`, `inverse`, `wrap` | ✓ | ✓ |

260| [`Button`](/docs/es/plugins/mods/interface#respond-to-presses-and-typing) | `key`, `label`, `onPress`, `hotkey`, `plain`, `dimColor`, `autoFocus`, `action` | ✓ | ✓ |260| [`Button`](/docs/es/plugins/mods/interface#respond-to-presses-and-typing) | `key`, `label`, `onPress`, `hotkey`, `plain`, `dimColor`, `autoFocus`, `action` | ✓ | ✓ |

261| `Link` | `href`, `label` | ✓ | ✓ |261| `Link` | `href`, `label` | ✓ | ✓ |


270 270 

271Más reglas de `Button`: `action` nombra una de las propias [acciones de atajos de teclado](/docs/es/keybindings) de Claude Code, y el atajo del usuario para ella presiona el botón cuando ese atajo es un acorde o una tecla con modificador. Un `hotkey` de dígito en un botón de la banda también se activa cuando el usuario escribe solo ese dígito en un prompt vacío y hace una pausa. Cuando dos botones de un mismo dibujo nombran el mismo `hotkey`, el último se queda con él. `autoFocus` solo acepta `true` en cualquier control, así que omite la prop para dejarla desactivada.271Más reglas de `Button`: `action` nombra una de las propias [acciones de atajos de teclado](/docs/es/keybindings) de Claude Code, y el atajo del usuario para ella presiona el botón cuando ese atajo es un acorde o una tecla con modificador. Un `hotkey` de dígito en un botón de la banda también se activa cuando el usuario escribe solo ese dígito en un prompt vacío y hace una pausa. Cuando dos botones de un mismo dibujo nombran el mismo `hotkey`, el último se queda con él. `autoFocus` solo acepta `true` en cualquier control, así que omite la prop para dejarla desactivada.

272 272 

273<h3 id="box-border-styles">

274 Estilos de borde de `Box`

275</h3>

276 

277Para dibujar un borde alrededor de un `Box`, establece su `borderStyle` en uno de estos nombres, como en `borderStyle: 'round'`. Cada fila indica lo que dibuja la terminal para ese nombre y muestra el borde superior.

278 

279| `borderStyle` | Lo que dibuja la terminal | Borde superior |

280| :- | :- | :- |

281| `'single'` | Líneas finas con esquinas cuadradas | `┌──┐` |

282| `'double'` | Líneas dobles | `╔══╗` |

283| `'round'` | Líneas finas con esquinas redondeadas | `╭──╮` |

284| `'bold'` | Líneas gruesas | `┏━━┓` |

285| `'singleDouble'` | Líneas finas arriba y abajo, líneas dobles en los lados | `╓──╖` |

286| `'doubleSingle'` | Líneas dobles arriba y abajo, líneas finas en los lados | `╒══╕` |

287| `'classic'` | Los caracteres ASCII `+`, `-` y `\|` | `+--+` |

288| `'arrow'` | Flechas que apuntan hacia el interior del `Box` | `↘↓↓↙` |

289| `'dashed'` | Líneas discontinuas con esquinas en blanco | `╌╌` |

290| `'quote'` | Una barra, `▎`, a lo largo del lado izquierdo y celdas en blanco en los otros tres lados | En blanco |

291 

292Un `Box` cuyo `borderStyle` nombra cualquier otra cosa, como `'rounded'`, se dibuja sin borde.

293 

273<h2 id="limits">294<h2 id="limits">

274 Límites295 Límites

275</h2>296</h2>

Details

15<Note>15<Note>

16 Estos casos se tratan en otras páginas:16 Estos casos se tratan en otras páginas:

17 17 

18 * **Por qué los alcances, la caché y la precedencia se comportan de la manera que lo hacen**: lea [Plugin loading reference](/docs/es/plugins/loading)18 * **Por qué los alcances, la caché y la precedencia se comportan de la manera en que lo hacen**: lee la [referencia de carga de plugins](/docs/es/plugins/loading)

19 * **Buscar un indicador, campo o comando**: use la [plugin commands reference](/docs/es/plugins/cli-reference), la [manifest reference](/docs/es/plugins/manifest-reference), o la [marketplace reference](/docs/es/plugins/marketplace-reference)19 * **Buscar un flag, campo o comando**: usa la [referencia de comandos de plugins](/docs/es/plugins/cli-reference), la [referencia del manifiesto](/docs/es/plugins/manifest-reference) o la [referencia de marketplaces](/docs/es/plugins/marketplace-reference)

20 * **Un mensaje `hooks module not loaded` o `hooks module did not load`**: el plugin es un [mod](/docs/es/plugins/mods/overview), así que lee [El mod no se carga](/docs/es/plugins/mods/troubleshoot#the-mod-doesn’t-load)

20</Note>21</Note>

21 22 

22Busque el mensaje exacto que vio. Cada mensaje se enumera bajo la etapa que lo produce, que no siempre es el comando que ejecutó. Por ejemplo, una instalación puede fallar porque falta un mercado, por lo que ese mensaje está bajo [Add a marketplace](#add-a-marketplace).23Busque el mensaje exacto que vio. Cada mensaje se enumera bajo la etapa que lo produce, que no siempre es el comando que ejecutó. Por ejemplo, una instalación puede fallar porque falta un mercado, por lo que ese mensaje está bajo [Add a marketplace](#add-a-marketplace).

prompt-caching.md +70 −70

Details

14 Cómo se organiza la caché14 Cómo se organiza la caché

15</h2>15</h2>

16 16 

17Cada vez que envía un mensaje en Claude Code, realiza una nueva solicitud de API. El modelo no recuerda nada entre solicitudes, por lo que Claude Code reenvía el contexto completo: el aviso del sistema, el contexto de su proyecto, cada mensaje anterior y resultado de herramienta, y su nuevo mensaje. El contenido nuevo se añade al final, lo que significa que la mayoría de cada solicitud es idéntica a la anterior. El almacenamiento en caché de indicaciones es cómo la API evita reprocesar la parte que no cambió.17Cada vez que envías un mensaje en Claude Code, se realiza una nueva solicitud de API. El modelo no recuerda nada entre solicitudes, por lo que Claude Code reenvía el contexto completo: el prompt del sistema, el contexto de tu proyecto, cada mensaje anterior y resultado de herramienta, y tu nuevo mensaje. El contenido nuevo se añade al final, lo que significa que la mayor parte de cada solicitud es idéntica a la anterior. La caché de prompts es la forma en que la API evita reprocesar la parte que no cambió.

18 18 

19La API almacena en caché haciendo coincidir el inicio de cada solicitud, llamado prefijo, con el contenido que procesó recientemente. En un turno normal, el prefijo es la solicitud anterior completa y solo el intercambio más reciente es nuevo. La coincidencia es exacta, por lo que un cambio en cualquier lugar del prefijo recalcula todo lo que viene después. No hay almacenamiento en caché por archivo o por segmento. Consulte [cómo funciona el almacenamiento en caché de indicaciones](https://platform.claude.com/docs/en/build-with-claude/prompt-caching#how-prompt-caching-works) en la referencia de API para el mecanismo subyacente.19La API almacena en caché haciendo coincidir el inicio de cada solicitud, llamado prefijo, con el contenido que procesó recientemente. En un turno normal, el prefijo es la solicitud anterior completa y solo el intercambio más reciente es nuevo. La coincidencia es exacta, por lo que un cambio en cualquier lugar del prefijo recalcula todo lo que viene después. No hay almacenamiento en caché por archivo ni por segmento. Consulta [cómo funciona la caché de prompts](https://platform.claude.com/docs/en/build-with-claude/prompt-caching#how-prompt-caching-works) en la referencia de la API para conocer el mecanismo subyacente.

20 20 

21<img src="https://mintcdn.com/claude-code/VbDJw--l6T9a9Wvm/images/prompt-caching-prefix.svg?fit=max&auto=format&n=VbDJw--l6T9a9Wvm&q=85&s=f2e8f0b8298a50305fe428ca3f1d1594" className="dark:hidden" alt="Cuatro turnos mostrados como barras horizontales crecientes. La solicitud de cada turno contiene todo del turno anterior más el intercambio más reciente añadido al final. En los turnos dos y tres, el prefijo sin cambios se lee de la caché y solo se procesa el nuevo intercambio. En el turno cuatro, el aviso del sistema cambió, por lo que el prefijo ya no coincide y toda la solicitud se reprocesa y se escribe." width="720" height="454" data-path="images/prompt-caching-prefix.svg" />21<img src="https://mintcdn.com/claude-code/VbDJw--l6T9a9Wvm/images/prompt-caching-prefix.svg?fit=max&auto=format&n=VbDJw--l6T9a9Wvm&q=85&s=f2e8f0b8298a50305fe428ca3f1d1594" className="dark:hidden" alt="Cuatro turnos mostrados como barras horizontales crecientes. La solicitud de cada turno contiene todo lo del turno anterior más el intercambio más reciente añadido al final. En los turnos dos y tres, el prefijo sin cambios se lee de la caché y solo se procesa el nuevo intercambio. En el turno cuatro, el prompt del sistema cambió, por lo que el prefijo ya no coincide y toda la solicitud se reprocesa y se escribe." width="720" height="454" data-path="images/prompt-caching-prefix.svg" />

22 22 

23<img src="https://mintcdn.com/claude-code/_xqph1dUOslCOwsj/images/prompt-caching-prefix-dark.svg?fit=max&auto=format&n=_xqph1dUOslCOwsj&q=85&s=297dc1c639f0915cae858d0c4b6f3be5" className="hidden dark:block" alt="Cuatro turnos mostrados como barras horizontales crecientes. La solicitud de cada turno contiene todo del turno anterior más el intercambio más reciente añadido al final. En los turnos dos y tres, el prefijo sin cambios se lee de la caché y solo se procesa el nuevo intercambio. En el turno cuatro, el aviso del sistema cambió, por lo que el prefijo ya no coincide y toda la solicitud se reprocesa y se escribe." width="720" height="454" data-path="images/prompt-caching-prefix-dark.svg" />23<img src="https://mintcdn.com/claude-code/_xqph1dUOslCOwsj/images/prompt-caching-prefix-dark.svg?fit=max&auto=format&n=_xqph1dUOslCOwsj&q=85&s=297dc1c639f0915cae858d0c4b6f3be5" className="hidden dark:block" alt="Cuatro turnos mostrados como barras horizontales crecientes. La solicitud de cada turno contiene todo lo del turno anterior más el intercambio más reciente añadido al final. En los turnos dos y tres, el prefijo sin cambios se lee de la caché y solo se procesa el nuevo intercambio. En el turno cuatro, el prompt del sistema cambió, por lo que el prefijo ya no coincide y toda la solicitud se reprocesa y se escribe." width="720" height="454" data-path="images/prompt-caching-prefix-dark.svg" />

24 24 

25Para aprovechar al máximo la coincidencia de prefijos, Claude Code ordena cada solicitud para que el contenido que rara vez cambia entre turnos venga primero:25Para aprovechar al máximo la coincidencia de prefijos, Claude Code ordena cada solicitud para que el contenido que rara vez cambia entre turnos vaya primero:

26 26 

27| Capa | Contenido | Cambia cuando |27| Capa | Contenido | Cambia cuando |

28| - | - | - |28| - | - | - |

29| Aviso del sistema | Instrucciones principales, definiciones de herramientas | El conjunto de definiciones de herramientas cargadas cambia |29| Prompt del sistema | Instrucciones principales, definiciones de herramientas | El conjunto de definiciones de herramientas cargadas cambia |

30| Contexto del proyecto | CLAUDE.md, memoria automática, reglas sin alcance | La sesión comienza, o después de `/clear` o `/compact` |30| Contexto del proyecto | CLAUDE.md, memoria automática, reglas sin alcance | La sesión comienza, o después de `/clear` o `/compact` |

31| Conversación | Sus mensajes, respuestas de Claude, resultados de herramientas | Cada turno |31| Conversación | Tus mensajes, respuestas de Claude, resultados de herramientas | Cada turno |

32 32 

33Un cambio en la capa de conversación deja el aviso del sistema y el contexto del proyecto en caché. Un cambio en el aviso del sistema invalida todo, porque todo el contenido posterior ahora se encuentra detrás de un prefijo diferente. La tercera columna proporciona desencadenantes comunes en lugar de una lista exhaustiva, y las secciones a continuación cubren el conjunto completo.33Un cambio en la capa de conversación deja el prompt del sistema y el contexto del proyecto en caché. Un cambio en el prompt del sistema invalida todo, porque todo el contenido posterior ahora se encuentra detrás de un prefijo diferente. La tercera columna ofrece desencadenantes comunes en lugar de una lista exhaustiva, y las secciones a continuación cubren el conjunto completo.

34 34 

35La regla de coincidencia de prefijos explica la mayoría de los comportamientos en esta página. [Plan mode](/docs/es/permission-modes#analyze-before-you-edit-with-plan-mode) y [carga de skills](/docs/es/skills), por ejemplo, añaden sus instrucciones como mensajes de conversación, por lo que el prefijo en caché permanece intacto.35La regla de coincidencia de prefijos explica la mayoría de los comportamientos de esta página. El [modo plan](/docs/es/permission-modes#analyze-before-you-edit-with-plan-mode) y la [carga de skills](/docs/es/skills), por ejemplo, añaden sus instrucciones como mensajes de conversación, por lo que el prefijo en caché permanece intacto.

36 36 

37Dos configuraciones no aparecen en la tabla de capas pero aún afectan lo que permanece en caché:37Dos ajustes no aparecen en la tabla de capas, pero aun así afectan lo que permanece en caché:

38 38 

39* **Modelo**: cada modelo tiene su propia caché. Cambiar de modelo recalcula toda la solicitud incluso cuando el contenido es idéntico. Consulte [Cambiar de modelo](#switching-models) a continuación.39* **Modelo**: cada modelo tiene su propia caché. Cambiar de modelo recalcula toda la solicitud incluso cuando el contenido es idéntico. Consulta [Cambiar de modelo](#switching-models) a continuación.

40* **Nivel de esfuerzo**: en la mayoría de los modelos, cada nivel de esfuerzo tiene su propia caché, por lo que cambiar el esfuerzo a mitad de sesión recalcula toda la solicitud. En Opus 5.5, Sonnet 5.5 y Fable 5.1 con una clave de API o una suscripción de Claude, la caché permanece intacta de forma predeterminada. Consulte [Cambiar el nivel de esfuerzo](#changing-effort-level) a continuación.40* **Nivel de esfuerzo**: en la mayoría de los modelos, cada nivel de esfuerzo tiene su propia caché, por lo que cambiar el esfuerzo a mitad de sesión recalcula toda la solicitud. En Opus 5.5, Sonnet 5.5, Haiku 5.5 y Fable 5.1 con una clave de API o una suscripción de Claude, la caché permanece intacta de forma predeterminada. Consulta [Cambiar el nivel de esfuerzo](#changing-effort-level) a continuación.

41 41 

42<Tip>42<Tip>

43 Elija su modelo y nivel de esfuerzo al principio de una sesión, luego guarde `/compact` para descansos naturales entre tareas. Cuantos menos cambios realice a mitad de tarea, mayor será su tasa de aciertos de caché.43 Elige tu modelo y nivel de esfuerzo al principio de una sesión, y reserva `/compact` para las pausas naturales entre tareas. Cuantos menos cambios hagas a mitad de tarea, mayor será tu tasa de aciertos de caché.

44</Tip>44</Tip>

45 45 

46<h3 id="where-the-cache-lives">46<h3 id="where-the-cache-lives">

47 Dónde vive la caché47 Dónde vive la caché

48</h3>48</h3>

49 49 

50El almacenamiento en caché ocurre del lado del servidor, en cualquier infraestructura que sirva su modelo. Dónde es eso depende de cómo se autentique:50El almacenamiento en caché ocurre del lado del servidor, en la infraestructura que sirva tu modelo. Dónde está depende de cómo te autentiques:

51 51 

52* **Clave de API, suscripción de Claude, o [Claude Platform on AWS](/docs/es/claude-platform-on-aws)**: la caché vive en la infraestructura de Anthropic, accesible a través de la [Claude API](https://platform.claude.com/docs)52* **Clave de API, suscripción de Claude o [Claude Platform on AWS](/docs/es/claude-platform-on-aws)**: la caché vive en la infraestructura de Anthropic, accesible a través de la [Claude API](https://platform.claude.com/docs)

53* **Amazon Bedrock o Agent Platform de Google Cloud**: la caché vive en la infraestructura de servicio de su proveedor de nube53* **Amazon Bedrock o Agent Platform de Google Cloud**: la caché vive en la infraestructura de servicio de tu proveedor de nube

54* **Microsoft Foundry**: depende de la [opción de alojamiento](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options) del despliegue. Los despliegues alojados en Azure se sirven en infraestructura de Azure; los despliegues alojados en Anthropic se sirven en la infraestructura de Anthropic54* **Microsoft Foundry**: depende de la [opción de alojamiento](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options) del despliegue. Los despliegues alojados en Azure se sirven en infraestructura de Azure; los despliegues alojados en Anthropic se sirven en la infraestructura de Anthropic

55* **`ANTHROPIC_BASE_URL` personalizado o [LLM gateway](/docs/es/llm-gateway)**: la caché vive donde se reenvíen sus solicitudes, y si el almacenamiento en caché funciona depende de la puerta de enlace55* **`ANTHROPIC_BASE_URL` personalizado o [LLM gateway](/docs/es/llm-gateway)**: la caché vive donde se reenvíen tus solicitudes, y que el almacenamiento en caché funcione depende del gateway

56 56 

57Claude Code también añade contexto del sistema a mitad de la conversación, como notificaciones de cambios de archivo, y marca ese bloque para almacenamiento en caché en cada proveedor y conexión a menos que establezca [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`](/docs/es/llm-gateway-protocol#disable-pre-release-capabilities), en cuyo caso ese bloque se envía sin caché.57Claude Code también añade contexto del sistema a mitad de la conversación, como notificaciones de cambios de archivos, y marca ese bloque para almacenamiento en caché en cada proveedor y conexión, a menos que establezcas [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`](/docs/es/llm-gateway-protocol#disable-pre-release-capabilities), en cuyo caso ese bloque se envía sin caché.

58 58 

59En el punto final propio del proveedor, Amazon Bedrock y su [punto final de Mantle](/docs/es/amazon-bedrock#use-the-mantle-endpoint), Agent Platform de Google Cloud, y Microsoft Foundry almacenan en caché el bloque de la misma manera que lo hace la Claude API.59En el endpoint propio del proveedor, Amazon Bedrock y su [endpoint de Mantle](/docs/es/amazon-bedrock#use-the-mantle-endpoint), Agent Platform de Google Cloud y Microsoft Foundry almacenan en caché el bloque de la misma manera que la Claude API.

60 60 

61Cuando sus solicitudes pasan a través de una [LLM gateway](/docs/es/llm-gateway), un `ANTHROPIC_BASE_URL` personalizado, o una anulación de URL base del proveedor de nube como [`ANTHROPIC_BEDROCK_BASE_URL`](/docs/es/env-vars), lo que permanece en caché depende de cómo la puerta de enlace maneja los [marcadores de `cache_control`](https://platform.claude.com/docs/en/build-with-claude/prompt-caching#explicit-cache-breakpoints) que Claude Code envía:61Cuando tus solicitudes pasan por un [LLM gateway](/docs/es/llm-gateway), un `ANTHROPIC_BASE_URL` personalizado o una sobrescritura de URL base del proveedor de nube como [`ANTHROPIC_BEDROCK_BASE_URL`](/docs/es/env-vars), lo que permanece en caché depende de cómo el gateway maneje los [marcadores de `cache_control`](https://platform.claude.com/docs/en/build-with-claude/prompt-caching#explicit-cache-breakpoints) que envía Claude Code:

62 62 

63* **Los reenvía sin cambios**: el bloque y su conversación se almacenan en caché de la misma manera que en el punto final propio del proveedor.63* **Los reenvía sin cambios**: el bloque y tu conversación se almacenan en caché de la misma manera que en el endpoint propio del proveedor.

64* **Rechaza la solicitud marcada con un error `400` que nombra `cache_control`**: Claude Code reenvía la solicitud con el marcador movido fuera del bloque y hacia su último mensaje de conversación, y lo mantiene allí para el resto de la conversación. El bloque se factura como entrada sin caché; su conversación permanece en caché.64* **Rechaza la solicitud marcada con un error `400` que menciona `cache_control`**: Claude Code reenvía la solicitud con el marcador movido fuera del bloque y hacia tu último mensaje de la conversación, y lo mantiene allí durante el resto de la conversación. El bloque se factura como entrada sin caché; tu conversación permanece en caché.

65* **Elimina los marcadores mientras devuelve éxito**: todo su historial de conversación se factura como entrada sin caché en cada turno. Una puerta de enlace que convierte contenido del sistema en forma de bloque a una cadena simple elimina el marcador de la misma manera.65* **Elimina los marcadores mientras devuelve éxito**: todo tu historial de conversación se factura como entrada sin caché en cada turno. Un gateway que convierte el contenido del sistema en forma de bloque a una cadena simple elimina el marcador de la misma manera.

66 66 

67Para lo que cada proveedor almacena y procesa, consulte [uso de datos](/docs/es/data-usage). Dondequiera que viva la caché, las entradas expiran después de un período de inactividad, y [Duración de la caché](#cache-lifetime) a continuación cubre el TTL y cómo extenderlo.67Para saber qué almacena y procesa cada proveedor, consulta [uso de datos](/docs/es/data-usage). Dondequiera que viva la caché, las entradas expiran después de un período de inactividad, y [Duración de la caché](#cache-lifetime) a continuación cubre el TTL y cómo extenderlo.

68 68 

69<h2 id="actions-that-invalidate-the-cache">69<h2 id="actions-that-invalidate-the-cache">

70 Acciones que invalidan la caché70 Acciones que invalidan la caché

71</h2>71</h2>

72 72 

73Estas acciones hacen que la siguiente solicitud pierda parte o toda la caché. Verá un turno más lento y costoso de una sola vez, después del cual el nuevo prefijo se almacena en caché. La mayoría de ellas se pueden evitar durante la tarea una vez que sabe que tienen un costo. Un cambio de modelo puede parecer gratuito hasta que note el turno más lento que sigue.73Estas acciones hacen que la siguiente solicitud pierda parte o toda la caché. Verás un turno más lento y costoso de una sola vez, después del cual el nuevo prefijo se almacena en caché. La mayoría de ellas se pueden evitar durante la tarea una vez que sabes que tienen un costo. Un cambio de modelo puede parecer gratuito hasta que notas el turno más lento que sigue.

74 74 

75* [Cambiar modelos](#switching-models)75* [Cambiar modelos](#switching-models)

76* [Cambiar el nivel de esfuerzo](#changing-effort-level)76* [Cambiar el nivel de esfuerzo](#changing-effort-level)


88 88 

89Cada modelo tiene su propia caché. Cambiar con [`/model`](/docs/es/model-config#setting-your-model) significa que la siguiente solicitud lee todo el historial de conversación sin aciertos de caché, aunque el contenido sea idéntico.89Cada modelo tiene su propia caché. Cambiar con [`/model`](/docs/es/model-config#setting-your-model) significa que la siguiente solicitud lee todo el historial de conversación sin aciertos de caché, aunque el contenido sea idéntico.

90 90 

91Cuando ejecuta `/model` en la terminal, Claude Code le pide que confirme el cambio solo mientras la caché aún está activa y el nuevo modelo no es el que produjo la última respuesta. La caché permanece activa durante un [TTL de caché](#cache-lifetime) después de que Claude Code envió por última vez una solicitud en esta conversación o Claude respondió por última vez. Una vez que pasa ese tiempo, la caché ha expirado, por lo que Claude Code cambia sin preguntar.91Cuando ejecutas `/model` en la terminal, Claude Code te pide que confirmes el cambio solo mientras la caché aún está activa y el nuevo modelo no es el que produjo la última respuesta. La caché permanece activa durante un [TTL de caché](#cache-lifetime) después de que Claude Code envió por última vez una solicitud en esta conversación o Claude respondió por última vez. Una vez que pasa ese tiempo, la caché ha expirado, por lo que Claude Code cambia sin preguntar.

92 92 

93Antes de v2.1.238, Claude Code no verificaba el TTL de caché y preguntaba incluso después de que la caché había expirado.93Antes de v2.1.238, Claude Code no verificaba el TTL de caché y preguntaba incluso después de que la caché había expirado.

94 94 

95También puede requerir esta confirmación u omitirla con un [hook PreModelSwitch](/docs/es/hooks#premodelswitch-decision-control).95También puedes requerir esta confirmación u omitirla con un [hook PreModelSwitch](/docs/es/hooks#premodelswitch-decision-control).

96 96 

97La [configuración del modelo `opusplan`](/docs/es/model-config#opusplan-model-setting) se resuelve a Opus durante el modo de plan y Sonnet durante la ejecución, por lo que cada alternancia del modo de plan es un cambio de modelo e inicia una caché nueva.97El [ajuste de modelo `opusplan`](/docs/es/model-config#opusplan-model-setting) se resuelve a Opus durante el modo plan y a Sonnet durante la ejecución, por lo que cada vez que activas o desactivas el modo plan es un cambio de modelo e inicia una caché nueva.

98 98 

99[El fallback automático del modelo](/docs/es/model-config#automatic-model-fallback) en modelos Fable, Opus 5.5, Sonnet 5.5 y Opus 5 también es un cambio de modelo. Cuando un clasificador de seguridad marca una solicitud en una categoría que tiene un modelo de fallback, Claude Code vuelve a ejecutar la solicitud en ese modelo y la sesión continúa allí.99[El cambio automático al modelo de respaldo](/docs/es/model-config#automatic-model-fallback) en modelos Fable, Opus 5.5, Sonnet 5.5 y Opus 5 también es un cambio de modelo. Cuando un clasificador de seguridad marca una solicitud en una categoría que tiene un modelo de respaldo, Claude Code vuelve a ejecutar la solicitud en ese modelo y la sesión continúa allí.

100 100 

101Cuando la portada de una skill o comando nombra un [`model`](/docs/es/skills#frontmatter-reference) diferente del modelo actual de la sesión, ese turno también es un cambio de modelo: la siguiente solicitud lee todo el historial de conversación sin aciertos de caché. El modelo de sesión se reanuda en su siguiente solicitud. Una skill `context: fork` establece el [modelo del subagente bifurcado](/docs/es/skills#run-skills-in-a-subagent) en su lugar.101Cuando el frontmatter de un skill o comando nombra un [`model`](/docs/es/skills#frontmatter-reference) diferente del modelo actual de la sesión, ese turno también es un cambio de modelo: la siguiente solicitud lee todo el historial de conversación sin aciertos de caché. El modelo de la sesión se reanuda en tu siguiente prompt. Un skill `context: fork` establece en su lugar el [modelo del subagente bifurcado](/docs/es/skills#run-skills-in-a-subagent).

102 102 

103<h3 id="changing-effort-level">103<h3 id="changing-effort-level">

104 Cambiar el nivel de esfuerzo104 Cambiar el nivel de esfuerzo

105</h3>105</h3>

106 106 

107En la mayoría de los modelos, cambiar el [nivel de esfuerzo](/docs/es/model-config#adjust-effort-level) a mitad de sesión significa que la siguiente solicitud lee todo el historial de conversación sin aciertos de caché. Mientras la caché aún está activa, Claude Code le pide que confirme el cambio primero.107En la mayoría de los modelos, cambiar el [nivel de esfuerzo](/docs/es/model-config#adjust-effort-level) a mitad de sesión significa que la siguiente solicitud lee todo el historial de conversación sin aciertos de caché. Mientras la caché aún está activa, Claude Code te pide que confirmes el cambio primero.

108 108 

109En Opus 5.5, Sonnet 5.5 y Fable 5.1 con una clave API o una suscripción a Claude, cambiar el esfuerzo mantiene la caché, y Claude Code aplica el nuevo nivel sin preguntar. Esto no se aplica en Amazon Bedrock, en la plataforma de agentes de Google Cloud, ni en una [puerta de enlace de aplicaciones Claude](/docs/es/claude-apps-gateway), ni cuando establece [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`](/docs/es/llm-gateway-protocol#disable-pre-release-capabilities) o su organización tiene una configuración HIPAA.109En Opus 5.5, Sonnet 5.5, Haiku 5.5 y Fable 5.1 con una clave de API o una suscripción a Claude, cambiar el esfuerzo mantiene la caché, y Claude Code aplica el nuevo nivel sin preguntar. Esto no se aplica en Amazon Bedrock, en Agent Platform de Google Cloud, ni en un [gateway de aplicaciones de Claude](/docs/es/claude-apps-gateway), ni cuando estableces [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`](/docs/es/llm-gateway-protocol#disable-pre-release-capabilities) o tu organización tiene una configuración HIPAA.

110 110 

111Antes de v2.1.260, cambiar el esfuerzo en Fable 5.1 con una clave API o una suscripción a Claude también invalidaba la caché.111Antes de v2.1.260, cambiar el esfuerzo en Fable 5.1 con una clave de API o una suscripción a Claude también invalidaba la caché.

112 112 

113<h3 id="turning-on-fast-mode">113<h3 id="turning-on-fast-mode">

114 Activar el modo rápido114 Activar el modo rápido

115</h3>115</h3>

116 116 

117Habilitar el [modo rápido](/docs/es/fast-mode) agrega un encabezado de solicitud que es parte de la clave de caché, por lo que la primera solicitud que Claude Code envía con el modo rápido activado lee todo el historial de conversación sin aciertos de caché. Claude Code establece ese encabezado una vez cuando comienza un turno y lo mantiene durante todo el turno, por lo que cuando activa el modo rápido mientras Claude está trabajando, la pérdida de caché del encabezado ocurre en la primera solicitud de su siguiente turno. Esos tokens de entrada sin caché se facturan a [tasas de modo rápido](/docs/es/fast-mode#understand-the-cost-tradeoff), por lo que activarlo al inicio de una sesión cuesta menos que activarlo profundamente en una larga. Si su modelo actual no admite el modo rápido, habilitar el modo rápido también [cambia su modelo](#switching-models), y ese cambio inicia una caché nueva por sí solo desde la siguiente solicitud en el turno en ejecución.117Habilitar el [modo rápido](/docs/es/fast-mode) agrega un encabezado de solicitud que es parte de la clave de caché, por lo que la primera solicitud que Claude Code envía con el modo rápido activado lee todo el historial de conversación sin aciertos de caché. Claude Code establece ese encabezado una vez cuando comienza un turno y lo mantiene durante todo el turno, por lo que cuando activas el modo rápido mientras Claude está trabajando, la pérdida de caché del encabezado ocurre en la primera solicitud de tu siguiente turno. Esos tokens de entrada sin caché se facturan a [tarifas de modo rápido](/docs/es/fast-mode#understand-the-cost-tradeoff), por lo que activarlo al inicio de una sesión cuesta menos que activarlo muy avanzada una sesión larga. Si tu modelo actual no admite el modo rápido, habilitar el modo rápido también [cambia tu modelo](#switching-models), y ese cambio inicia una caché nueva por sí solo desde la siguiente solicitud en el turno en ejecución.

118 118 

119El costo se aplica una vez por conversación. Después del primer turno de modo rápido, Claude Code sigue enviando el encabezado y varía solo la configuración de velocidad de la solicitud, que no es parte de la clave de caché. Desactivar el modo rápido, el [fallback automático a velocidad estándar](/docs/es/fast-mode#handle-rate-limits) después de un límite de velocidad, y activarlo nuevamente más tarde mantienen la caché. Si [se queda sin créditos de uso](/docs/es/fast-mode#handle-rate-limits) a mitad de sesión, Claude Code reintenta cada solicitud de modo rápido rechazada a velocidad estándar de la misma manera, por lo que este fallback también mantiene la caché. `/clear` y `/compact` restablecen esto, ya que reconstruyen la caché en esos puntos de todos modos.119El costo se aplica una vez por conversación. Después del primer turno de modo rápido, Claude Code sigue enviando el encabezado y varía solo el ajuste de velocidad de la solicitud, que no es parte de la clave de caché. Desactivar el modo rápido, el [cambio automático a velocidad estándar](/docs/es/fast-mode#handle-rate-limits) después de un rate limit, y activarlo nuevamente más tarde mantienen la caché. Si [te quedas sin créditos de uso](/docs/es/fast-mode#handle-rate-limits) a mitad de sesión, Claude Code reintenta cada solicitud de modo rápido rechazada a velocidad estándar de la misma manera, por lo que este respaldo también mantiene la caché. `/clear` y `/compact` restablecen esto, ya que reconstruyen la caché en esos puntos de todos modos.

120 120 

121<h3 id="connecting-or-removing-an-mcp-server">121<h3 id="connecting-or-removing-an-mcp-server">

122 Conectar o desconectar un servidor MCP122 Conectar o desconectar un servidor MCP

123</h3>123</h3>

124 124 

125Las definiciones de herramientas se encuentran en la capa del mensaje del sistema, por lo que la caché se invalida cuando el conjunto de definiciones de herramientas en la solicitud cambia entre turnos. Alternar la [herramienta de asesor](/docs/es/advisor) es una excepción: su definición se encuentra después del punto de ruptura de caché, por lo que habilitar o deshabilitar `/advisor` mantiene el prefijo almacenado en caché intacto. Si un cambio de [servidor MCP](/docs/es/mcp) hace esto depende de si [la búsqueda de herramientas](/docs/es/mcp#scale-with-mcp-tool-search) difiere las herramientas MCP de la sesión, el valor predeterminado en modelos compatibles:125Las definiciones de herramientas se encuentran en la capa del prompt del sistema, por lo que la caché se invalida cuando el conjunto de definiciones de herramientas en la solicitud cambia entre turnos. Activar o desactivar la [herramienta de asesor](/docs/es/advisor) es una excepción: su definición se encuentra después del punto de ruptura de caché, por lo que habilitar o deshabilitar `/advisor` mantiene intacto el prefijo almacenado en caché. Que un cambio de [servidor MCP](/docs/es/mcp) haga esto depende de si [la búsqueda de herramientas](/docs/es/mcp#scale-with-mcp-tool-search) difiere las herramientas MCP de la sesión, el valor predeterminado en modelos compatibles:

126 126 

127* **Herramientas diferidas**: Claude Code mantiene la lista de herramientas de la primera solicitud de la conversación durante toda la conversación, por lo que un servidor que se conecta o desconecta a mitad de sesión no perturba nada ya almacenado en caché. Un servidor que termina de conectarse después de la primera solicitud proporciona sus herramientas como definiciones diferidas que Claude carga bajo demanda.127* **Herramientas diferidas**: Claude Code mantiene la lista de herramientas de la primera solicitud de la conversación durante toda la conversación, por lo que un servidor que se conecta o desconecta a mitad de sesión no perturba nada ya almacenado en caché. Un servidor que termina de conectarse después de la primera solicitud proporciona sus herramientas como definiciones diferidas que Claude carga bajo demanda.

128* **Herramientas cargadas por adelantado**: agregar una definición invalida la caché, y lo mismo ocurre al eliminar una a propósito. Esto se aplica cuando la búsqueda de herramientas está [por debajo de su umbral `auto`, deshabilitada o no disponible](/docs/es/mcp#configure-tool-search), como en los modelos de la plataforma de agentes de Google Cloud anteriores a la generación Claude 4.5, con una puerta de enlace `ANTHROPIC_BASE_URL` personalizada, o en una [implementación de Microsoft Foundry alojada en Azure](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options) una vez que Claude Code detecta que la implementación rechaza la búsqueda de herramientas.128* **Herramientas cargadas por adelantado**: agregar una definición invalida la caché, y lo mismo ocurre al eliminar una a propósito. Esto se aplica cuando la búsqueda de herramientas está [por debajo de su umbral `auto`, deshabilitada o no disponible](/docs/es/mcp#configure-tool-search), como en los modelos de Agent Platform de Google Cloud anteriores a la generación Claude 4.5, con un gateway `ANTHROPIC_BASE_URL` personalizado, o en un [despliegue de Microsoft Foundry alojado en Azure](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options) una vez que Claude Code detecta que el despliegue rechaza la búsqueda de herramientas.

129 129 

130Sin búsqueda de herramientas, si un cambio de servidor a mitad de sesión invalida la caché depende de qué cambió. Para cada cambio, esta tabla indica si la caché se mantiene y qué sucede con las definiciones de herramientas en la siguiente solicitud.130Sin búsqueda de herramientas, que un cambio de servidor a mitad de sesión invalide la caché depende de qué cambió. Para cada cambio, esta tabla indica si la caché se mantiene y qué sucede con las definiciones de herramientas en la siguiente solicitud.

131 131 

132| Cambio a mitad de sesión | Caché | Definiciones de herramientas en la siguiente solicitud |132| Cambio a mitad de sesión | Caché | Definiciones de herramientas en la siguiente solicitud |

133| - | - | - |133| - | - | - |

134| Un servidor se conecta, o una [actualización de herramienta dinámica](/docs/es/mcp#dynamic-tool-updates) agrega herramientas | Invalidada | Las nuevas definiciones se agregan |134| Un servidor se conecta, o una [actualización dinámica de herramientas](/docs/es/mcp#dynamic-tool-updates) agrega herramientas | Invalidada | Las nuevas definiciones se agregan |

135| Un servidor se desconecta sin ninguna acción de su parte, como el proceso de un servidor stdio que sale | Mantenida | Las definiciones del servidor permanecen sin cambios. Una llamada a una de sus herramientas devuelve un error en lugar de ejecutarse |135| Un servidor se desconecta sin ninguna acción de tu parte, como cuando termina el proceso de un servidor stdio | Mantenida | Las definiciones del servidor permanecen sin cambios. Una llamada a una de sus herramientas devuelve un error en lugar de ejecutarse |

136| Un servidor remoto [se reconecta automáticamente](/docs/es/mcp#automatic-reconnection) después de que su conexión se cae | Mantenida, a menos que una solicitud enviada mientras el servidor se reconecta agregue la herramienta `WaitForMcpServers`, que invalida la caché una vez | Las definiciones del servidor permanecen sin cambios. Una solicitud enviada mientras el servidor se reconecta puede agregar `WaitForMcpServers` cuando la conversación aún no la ha listado, y la herramienta permanece listada para el resto de la conversación |136| Un servidor remoto [se reconecta automáticamente](/docs/es/mcp#automatic-reconnection) después de que su conexión se cae | Mantenida, a menos que una solicitud enviada mientras el servidor se reconecta agregue la herramienta `WaitForMcpServers`, lo que invalida la caché una vez | Las definiciones del servidor permanecen sin cambios. Una solicitud enviada mientras el servidor se reconecta puede agregar `WaitForMcpServers` cuando la conversación aún no la ha listado, y la herramienta permanece listada durante el resto de la conversación |

137| Usted elimina una herramienta a propósito, como con una [regla de denegación](#denying-an-entire-tool) o deshabilitando su servidor en `/mcp` | Invalidada | La definición se elimina |137| Eliminas una herramienta a propósito, como con una [regla de denegación](#denying-an-entire-tool) o deshabilitando su servidor en `/mcp` | Invalidada | La definición se elimina |

138 138 

139Cuando reanuda una conversación cuyas herramientas se cargan en el prefijo, uno de sus servidores MCP aún puede estar conectándose cuando la primera solicitud sale. Si la transcripción registró las definiciones de herramientas de ese servidor, esa solicitud las incluye como se registraron, por lo que no cambia cuando el servidor termina de conectarse con las mismas herramientas.139Cuando reanudas una conversación cuyas herramientas se cargan en el prefijo, uno de sus servidores MCP aún puede estar conectándose cuando sale la primera solicitud. Si la transcripción registró las definiciones de herramientas de ese servidor, esa solicitud las incluye tal como se registraron, por lo que no cambia cuando el servidor termina de conectarse con las mismas herramientas.

140 140 

141Editar su configuración de MCP no cambia la caché por sí solo. La nueva configuración entra en vigor solo después de un reinicio, que es cuando el servidor se conecta o desconecta.141Editar tu configuración de MCP no cambia la caché por sí solo. La nueva configuración entra en vigor solo después de un reinicio, que es cuando el servidor se conecta o desconecta.

142 142 

143<h3 id="enabling-or-disabling-a-plugin">143<h3 id="enabling-or-disabling-a-plugin">

144 Habilitar o deshabilitar un plugin144 Habilitar o deshabilitar un plugin

145</h3>145</h3>

146 146 

147Cuando habilita o deshabilita un [plugin](/docs/es/plugins/overview), lo que el cambio cuesta depende de qué tipos de componentes proporciona el plugin. Los casos a continuación cubren cada tipo de componente, cuándo Claude Code aplica el cambio y qué sucede cuando deshabilita un plugin nuevamente en la misma sesión.147Cuando habilitas o deshabilitas un [plugin](/docs/es/plugins/overview), lo que cuesta el cambio depende de qué tipos de componentes proporciona el plugin. Los casos a continuación cubren cada tipo de componente, cuándo Claude Code aplica el cambio y qué sucede cuando vuelves a deshabilitar un plugin en la misma sesión.

148 148 

149<h4 id="plugin-components-that-keep-the-cache">149<h4 id="plugin-components-that-keep-the-cache">

150 Componentes de plugin que mantienen la caché150 Componentes de plugin que mantienen la caché

151</h4>151</h4>

152 152 

153Claude Code nunca invalida la caché para las skills, comandos, agentes, hooks, monitores o temas de un plugin. Agrega su contenido después de la conversación existente, por lo que la siguiente solicitud paga por ese contenido y aún lee todo lo anterior desde la caché.153Claude Code nunca invalida la caché por los skills, comandos, agentes, hooks, monitores o temas de un plugin. Agrega su contenido después de la conversación existente, por lo que la siguiente solicitud paga por ese contenido y aún lee todo lo anterior desde la caché.

154 154 

155<h4 id="plugins-that-provide-mcp-servers">155<h4 id="plugins-that-provide-mcp-servers">

156 Plugins que proporcionan servidores MCP156 Plugins que proporcionan servidores MCP

157</h4>157</h4>

158 158 

159Cuando habilita o deshabilita un plugin que proporciona [servidores MCP](/docs/es/plugins/components#mcp-servers), Claude Code sigue las mismas reglas que cuando [conecta o desconecta un servidor MCP](#connecting-or-removing-an-mcp-server).159Cuando habilitas o deshabilitas un plugin que proporciona [servidores MCP](/docs/es/plugins/components#mcp-servers), Claude Code sigue las mismas reglas que cuando [conectas o desconectas un servidor MCP](#connecting-or-removing-an-mcp-server).

160 160 

161<h4 id="code-intelligence-plugins">161<h4 id="code-intelligence-plugins">

162 Plugins de inteligencia de código162 Plugins de inteligencia de código

163</h4>163</h4>

164 164 

165Cuando habilita un [plugin de inteligencia de código](/docs/es/plugins/code-intelligence), Claude obtiene la [herramienta LSP](/docs/es/tools-reference#lsp-tool-behavior).165Cuando habilitas un [plugin de inteligencia de código](/docs/es/plugins/code-intelligence), Claude obtiene la [herramienta LSP](/docs/es/tools-reference#lsp-tool-behavior).

166 166 

167<h4 id="when-plugin-changes-apply">167<h4 id="when-plugin-changes-apply">

168 Cuándo se aplican los cambios de plugin168 Cuándo se aplican los cambios de plugin

169</h4>169</h4>

170 170 

171Un cambio que realiza en el menú `/plugin` se realiza a través de [`/reload-plugins`](/docs/es/plugins/cli-reference#reload-plugins), que Claude Code ejecuta por usted cuando cierra el menú. Paga el costo, ya sean anuncios anexados o una relectura completa, en el primer turno después de que se aplique el cambio. Claude Code también puede aplicar un cambio por su cuenta:171Un cambio que realizas en el menú `/plugin` se aplica a través de [`/reload-plugins`](/docs/es/plugins/cli-reference#reload-plugins), que Claude Code ejecuta por ti cuando cierras el menú. Pagas el costo, ya sean anuncios anexados o una relectura completa, en el primer turno después de que se aplique el cambio. Claude Code también puede aplicar un cambio por su cuenta:

172 172 

173* Para un plugin con una fuente `command`, Claude Code [puede recargar el plugin por sí solo](/docs/es/plugins/loading#when-a-command-source-re-runs).173* Para un plugin con una fuente `command`, Claude Code [puede recargar el plugin por sí solo](/docs/es/plugins/loading#when-a-command-source-re-runs).

174* Cuando [instala un plugin desde la interfaz `/plugin`](/docs/es/plugins/install#install-a-plugin), Claude Code puede activarlo durante la instalación. El resumen de instalación le dice si lo hizo.174* Cuando [instalas un plugin desde la interfaz `/plugin`](/docs/es/plugins/install#install-a-plugin), Claude Code puede activarlo durante la instalación. El resumen de instalación te indica si lo hizo.

175* Cuando [mueve la sesión con `/cd`](/docs/es/permissions#move-the-session-to-another-directory) en v2.1.246 o posterior, Claude Code aplica los plugins que la configuración del nuevo directorio habilita como parte del movimiento, sin la advertencia de relectura completa que retiene un `/reload-plugins`.175* Cuando [mueves la sesión con `/cd`](/docs/es/permissions#move-the-session-to-another-directory) en v2.1.246 o posterior, Claude Code aplica los plugins que habilita la configuración del nuevo directorio como parte del movimiento, sin la advertencia de relectura completa que retiene un `/reload-plugins`.

176* En sesiones interactivas, cuando agrega o elimina un plugin en una [carpeta de plugins](/docs/es/plugins/create#load-a-directory-or-archive-for-one-session) que pasó con `--plugin-dir`, el cambio se aplica de inmediato. Si aplicarlo desencadenaría una relectura completa, Claude Code retiene el cambio en su lugar y muestra un aviso para ejecutar `/reload-plugins`. Requiere Claude Code v2.1.265 o posterior.176* En sesiones interactivas, cuando agregas o eliminas un plugin en una [carpeta de plugins](/docs/es/plugins/create#load-a-directory-or-archive-for-one-session) que pasaste con `--plugin-dir`, el cambio se aplica de inmediato. Si aplicarlo desencadenara una relectura completa, Claude Code retiene el cambio en su lugar y muestra un aviso para ejecutar `/reload-plugins`. Requiere Claude Code v2.1.265 o posterior.

177 177 

178Cuando `/reload-plugins` se ejecuta y la recarga desencadenaría una relectura completa, Claude Code muestra una advertencia y no aplica la recarga. Ejecute `/reload-plugins --force` para aplicarla de todos modos.178Cuando `/reload-plugins` se ejecuta y la recarga desencadenaría una relectura completa, Claude Code muestra una advertencia y no aplica la recarga. Ejecuta `/reload-plugins --force` para aplicarla de todos modos.

179 179 

180`/reload-plugins` también se ejecuta en sesiones sin una terminal interactiva, como la aplicación de escritorio, el SDK del agente y [modo no interactivo](/docs/es/headless) con `-p`, cuando lo escribe directamente en la sesión. Requiere Claude Code v2.1.260 o posterior.180`/reload-plugins` también se ejecuta en sesiones sin una terminal interactiva, como la aplicación de escritorio, el Agent SDK y el [modo no interactivo](/docs/es/headless) con `-p`, cuando lo escribes directamente en la sesión. Requiere Claude Code v2.1.260 o posterior.

181 181 

182En esas sesiones, la recarga aplica todo excepto los cambios del servidor MCP del plugin, que [entran en vigor en su próxima sesión](/docs/es/plugins/cli-reference#reload-plugins) y por lo tanto nunca cuestan una relectura completa a mitad de sesión.182En esas sesiones, la recarga aplica todo excepto los cambios de servidores MCP de plugins, que [entran en vigor en tu próxima sesión](/docs/es/plugins/cli-reference#reload-plugins) y por lo tanto nunca cuestan una relectura completa a mitad de sesión.

183 183 

184<h4 id="plugins-you-enable-and-then-disable-in-one-session">184<h4 id="plugins-you-enable-and-then-disable-in-one-session">

185 Plugins que habilita y luego deshabilita en una sesión185 Plugins que habilitas y luego deshabilitas en una sesión

186</h4>186</h4>

187 187 

188Cuando deshabilita un plugin que habilitó anteriormente en la sesión, Claude Code restaura la forma de solicitud anterior. Si ese prefijo aún está dentro de su [duración de caché](#cache-lifetime), la siguiente solicitud lee la entrada de caché anterior en lugar de reconstruir.188Cuando deshabilitas un plugin que habilitaste anteriormente en la sesión, Claude Code restaura la forma de solicitud anterior. Si ese prefijo aún está dentro de su [duración de caché](#cache-lifetime), la siguiente solicitud lee la entrada de caché anterior en lugar de reconstruirla.

189 189 

190<h3 id="denying-an-entire-tool">190<h3 id="denying-an-entire-tool">

191 Denegar una herramienta completa191 Denegar una herramienta completa

192</h3>192</h3>

193 193 

194Si agrega un nombre de herramienta simple como `Bash` o `WebFetch` como una [regla de denegación](/docs/es/permissions#manage-permissions), Claude no puede llamar a esa herramienta desde su siguiente solicitud en adelante, ya sea que agregue la regla a través de `/permissions` o [editando un archivo de configuración directamente](/docs/es/settings#when-edits-take-effect). Eso incluye una regla que agrega a través de `/permissions` en medio de un turno.194Si agregas un nombre de herramienta simple como `Bash` o `WebFetch` como una [regla de denegación](/docs/es/permissions#manage-permissions), Claude no puede llamar a esa herramienta desde tu siguiente solicitud en adelante, ya sea que agregues la regla a través de `/permissions` o [editando un archivo de configuración directamente](/docs/es/settings#when-edits-take-effect). Eso incluye una regla que agregas a través de `/permissions` en medio de un turno.

195 195 

196Cuando [la búsqueda de herramientas](/docs/es/mcp#scale-with-mcp-tool-search) está activa, que es el valor predeterminado en modelos compatibles, las definiciones de herramientas de la solicitud no cambian y el prefijo almacenado en caché sobrevive. Cuando la búsqueda de herramientas no está disponible o está deshabilitada, Claude Code elimina la definición de la siguiente solicitud, lo que invalida la caché, y lo mismo ocurre al eliminar la regla más tarde.196Cuando [la búsqueda de herramientas](/docs/es/mcp#scale-with-mcp-tool-search) está activa, que es el valor predeterminado en modelos compatibles, las definiciones de herramientas de la solicitud no cambian y el prefijo almacenado en caché se conserva. Cuando la búsqueda de herramientas no está disponible o está deshabilitada, Claude Code elimina la definición de la siguiente solicitud, lo que invalida la caché, y lo mismo ocurre al eliminar la regla más tarde.

197 197 

198Solo una regla de denegación que coincida en la posición del nombre de la herramienta bloquea una herramienta de esta manera: un nombre de herramienta simple, la forma equivalente `Bash(*)`, o un [glob de nombre de herramienta](/docs/es/permissions#tool-name-wildcards) como `"*"`. Un glob que coincida solo con herramientas MCP, como `"mcp__*"`, bloquea esas herramientas de la misma manera. Las reglas de denegación con alcance como `Bash(rm *)`, y todas las reglas de permitir y preguntar, no cambian qué herramientas ve Claude. Claude Code las verifica cuando Claude intenta una llamada, dejando el prefijo intacto.198Solo una regla de denegación que coincida en la posición del nombre de la herramienta bloquea una herramienta de esta manera: un nombre de herramienta simple, la forma equivalente `Bash(*)`, o un [glob de nombre de herramienta](/docs/es/permissions#tool-name-wildcards) como `"*"`. Un glob que coincida solo con herramientas MCP, como `"mcp__*"`, bloquea esas herramientas de la misma manera. Las reglas de denegación con alcance como `Bash(rm *)`, y todas las reglas de permitir y preguntar, no cambian qué herramientas ve Claude. Claude Code las verifica cuando Claude intenta una llamada, dejando el prefijo intacto.

199 199 


201 Compactar la conversación201 Compactar la conversación

202</h3>202</h3>

203 203 

204[La compactación](/docs/es/context-window#what-survives-compaction) reemplaza su historial de mensajes con un resumen. Por diseño, esto invalida la capa de conversación, ya que la siguiente solicitud tiene un historial nuevo y más corto que no comparte un prefijo con el anterior. Claude Code reutiliza la capa del mensaje del sistema a menos que la conversación se [reanudara mientras se mantiene un mensaje del sistema que de otro modo habría cambiado](#resuming-a-session); en ese caso, la primera compactación cambia al mensaje actual y esa capa se reconstruye una vez. Recarga el contexto del proyecto desde el disco, que solo obtiene aciertos de caché si CLAUDE.md y la memoria no han cambiado desde que comenzó la sesión.204[La compactación](/docs/es/context-window#what-survives-compaction) reemplaza tu historial de mensajes con un resumen. Por diseño, esto invalida la capa de conversación, ya que la siguiente solicitud tiene un historial nuevo y más corto que no comparte un prefijo con el anterior. Claude Code reutiliza la capa del prompt del sistema a menos que la conversación se [haya reanudado manteniendo un prompt del sistema que de otro modo habría cambiado](#resuming-a-session); en ese caso, la primera compactación cambia al prompt actual y esa capa se reconstruye una vez. Recarga el contexto del proyecto desde el disco, que solo obtiene aciertos de caché si CLAUDE.md y la memoria no han cambiado desde que comenzó la sesión.

205 205 

206Para producir el resumen, Claude Code envía una solicitud separada con el mismo mensaje del sistema, herramientas e historial que su conversación, más una instrucción de resumen anexada como un mensaje de usuario final. Mientras la caché está activa, esa solicitud lee su prefijo desde la caché, por lo que un `/compact` a mitad de sesión cuesta una fracción de lo que sugiere el tamaño del contexto y pasa la mayor parte de su tiempo generando el resumen.206Para producir el resumen, Claude Code envía una solicitud separada con el mismo prompt del sistema, herramientas e historial que tu conversación, más una instrucción de resumen anexada como mensaje final del usuario. Mientras la caché está activa, esa solicitud lee tu prefijo desde la caché, por lo que un `/compact` a mitad de sesión cuesta una fracción de lo que sugiere el tamaño del contexto y pasa la mayor parte de su tiempo generando el resumen.

207 207 

208Después de una pausa más larga que la [duración de caché](#cache-lifetime), no hay caché para leer, por lo que la solicitud de resumen reprocesa el historial completo como entrada sin caché. Por eso `/compact` cuesta más cuando [reanuda una sesión anterior](/docs/es/sessions#resume-from-a-summary). En ambos casos, cálido y frío, el turno después de la compactación reconstruye la caché de conversación solo para el resumen mucho más corto, por lo que ese turno no es la parte lenta.208Después de una pausa más larga que la [duración de caché](#cache-lifetime), no queda caché para leer, por lo que la solicitud de resumen reprocesa el historial completo como entrada sin caché. Por eso `/compact` cuesta más cuando [reanudas una sesión antigua](/docs/es/sessions#resume-from-a-summary). Tanto con la caché activa como con la caché expirada, el turno después de la compactación reconstruye la caché de conversación solo para el resumen, mucho más corto, por lo que ese turno no es la parte lenta.

209 209 

210<Tip>210<Tip>

211 La compactación funciona a su favor cuando el contexto que descarta es contenido que ya no necesita. Para elegir cuándo ocurre su sobrecarga, ejecute `/compact` en un descanso natural en su trabajo, como entre tareas, en lugar de esperar a que la compactación automática se active a mitad de tarea. Si ha seguido un camino que desea abandonar por completo, [use `/rewind`](#rewinding-the-conversation) en su lugar para volver a un turno anterior. Rewind trunca a un prefijo que ya está almacenado en caché, en lugar de construir uno nuevo como lo hace la compactación.211 La compactación funciona a tu favor cuando el contexto que descartas es contenido que ya no necesitas. Para elegir cuándo ocurre su sobrecarga, ejecuta `/compact` en una pausa natural de tu trabajo, como entre tareas, en lugar de esperar a que la compactación automática se active a mitad de tarea. Si has seguido un camino que quieres abandonar por completo, usa [`/rewind`](#rewinding-the-conversation) en su lugar para volver a un turno anterior. Retroceder trunca hasta un prefijo que ya está almacenado en caché, en lugar de crear uno nuevo como lo hace la compactación.

212</Tip>212</Tip>

213 213 

214<h3 id="accumulating-many-images">214<h3 id="accumulating-many-images">

215 Acumular muchas imágenes215 Acumular muchas imágenes

216</h3>216</h3>

217 217 

218La API limita cuántas imágenes y PDF puede llevar cada solicitud. Para los números actuales, consulte [Límites de solicitud](https://platform.claude.com/docs/en/build-with-claude/vision#request-limits) en los documentos de la API. Claude Code también limita el tamaño total de las imágenes y PDF en una solicitud, por lo que las capturas de pantalla grandes alcanzan el límite con menos imágenes que las pequeñas.218La API limita cuántas imágenes y PDF puede llevar cada solicitud. Para los números actuales, consulta [Límites de solicitud](https://platform.claude.com/docs/en/build-with-claude/vision#request-limits) en la documentación de la API. Claude Code también limita el tamaño total de las imágenes y PDF en una solicitud, por lo que las capturas de pantalla grandes alcanzan el límite con menos imágenes que las pequeñas.

219 219 

220Cuando la siguiente solicitud pasaría cualquiera de los límites, Claude Code elimina un lote de las imágenes y PDF más antiguas de lo que envía, lo que deja espacio para más antes de que necesite eliminar alguna nuevamente. Claude ya no puede ver las imágenes eliminadas. Si Claude necesita una de ellas nuevamente, compártala nuevamente.220Cuando la siguiente solicitud superaría cualquiera de los límites, Claude Code elimina un lote de las imágenes y PDF más antiguos de lo que envía, lo que deja espacio para más antes de que necesite eliminar alguno nuevamente. Claude ya no puede ver las imágenes eliminadas. Si Claude necesita una de ellas de nuevo, vuelve a compartirla.

221 221 

222Eliminar imágenes cambia los mensajes que las contenían, por lo que la siguiente solicitud reprocesa la conversación desde la más antigua de esos mensajes en adelante. Debido a que Claude Code elimina un lote a la vez, ve un turno más lento por lote en lugar de uno con cada nueva captura de pantalla.222Eliminar imágenes cambia los mensajes que las contenían, por lo que la siguiente solicitud reprocesa la conversación desde el más antiguo de esos mensajes en adelante. Debido a que Claude Code elimina un lote a la vez, verás un turno más lento por lote en lugar de uno con cada nueva captura de pantalla.

223 223 

224<h3 id="upgrading-claude-code">224<h3 id="upgrading-claude-code">

225 Actualizar Claude Code225 Actualizar Claude Code

226</h3>226</h3>

227 227 

228Una nueva versión de Claude Code típicamente actualiza el mensaje del sistema o las definiciones de herramientas, por lo que la primera conversación que inicia después de una actualización construye su caché desde el principio. [La actualización automática](/docs/es/setup#auto-updates) descarga nuevas versiones en segundo plano pero las aplica en el siguiente lanzamiento, nunca a mitad de sesión, por lo que ve esto como un primer turno sin caché después de reiniciar en lugar de una sorpresa durante una sesión. Establezca `DISABLE_AUTOUPDATER=1` para controlar cuándo se aplican las actualizaciones.228Una nueva versión de Claude Code normalmente actualiza el prompt del sistema o las definiciones de herramientas, por lo que la primera conversación que inicias después de una actualización crea su caché desde el principio. [La actualización automática](/docs/es/setup#auto-updates) descarga nuevas versiones en segundo plano pero las aplica en el siguiente inicio, nunca a mitad de sesión, por lo que verás esto como un primer turno sin caché después de reiniciar en lugar de una sorpresa durante una sesión. Establece `DISABLE_AUTOUPDATER=1` para controlar cuándo se aplican las actualizaciones.

229 229 

230<Note>230<Note>

231 Para saber qué cuesta reanudar una conversación que inició antes de la actualización, consulte [Reanudar una sesión](#resuming-a-session).231 Para saber cuánto cuesta reanudar una conversación que iniciaste antes de la actualización, consulta [Reanudar una sesión](#resuming-a-session).

232</Note>232</Note>

233 233 

234<h2 id="actions-that-keep-the-cache">234<h2 id="actions-that-keep-the-cache">


310 310 

311En un plan Pro o Max, cuando reanuda una sesión grande después de un descanso prolongado, Claude Code [ofrece reanudar desde un resumen](/docs/es/sessions#resume-from-a-summary) para que las solicitudes posteriores no lleven el historial completo.311En un plan Pro o Max, cuando reanuda una sesión grande después de un descanso prolongado, Claude Code [ofrece reanudar desde un resumen](/docs/es/sessions#resume-from-a-summary) para que las solicitudes posteriores no lleven el historial completo.

312 312 

313El tiempo de vida (TTL) controla cuánto tiempo la brecha el caché sobrevive. La API ofrece dos: un TTL de cinco minutos, y un [TTL de una hora](https://platform.claude.com/docs/en/build-with-claude/prompt-caching#1-hour-cache-duration) que mantiene el caché activo a través de descansos más largos pero [factura escrituras de caché a una tasa más alta](https://platform.claude.com/docs/en/build-with-claude/prompt-caching#pricing). El TTL más largo ayuda cuando deja una sesión inactiva y vuelve a ella, porque omite el reprocesamiento que cuesta un prefijo expirado. Cuesta más en ráfagas cortas de trabajo que nunca se quedan inactivas más de cinco minutos, donde se aplica la tasa de escritura más alta y la duración de caché más larga no se utiliza.313El tiempo de vida (TTL) controla cuánto tiempo de pausa sobrevive la caché. La API ofrece dos: un TTL de cinco minutos y un [TTL de una hora](https://platform.claude.com/docs/en/build-with-claude/prompt-caching#1-hour-cache-duration) que mantiene la caché activa durante descansos más largos, pero [cobra una tarifa más alta por las escrituras en caché](https://platform.claude.com/docs/en/build-with-claude/prompt-caching#pricing). El TTL más largo ayuda cuando dejas una sesión inactiva y vuelves a ella, porque te ahorras el reprocesamiento que cuesta un prefijo expirado. Cuesta más en ráfagas cortas de trabajo que nunca permanecen inactivas más de cinco minutos, donde se aplica la tarifa de escritura más alta y la mayor duración de la caché no se aprovecha.

314 314 

315<h3 id="which-ttl-each-request-gets">315<h3 id="which-ttl-each-request-gets">

316 Qué TTL obtiene cada solicitud316 Qué TTL obtiene cada solicitud


328| Conversación principal | Una hora | Cinco minutos |328| Conversación principal | Una hora | Cinco minutos |

329| Todo lo demás | Cinco minutos, excepto las solicitudes de ayuda controladas por el servidor, que obtienen una hora | Cinco minutos |329| Todo lo demás | Cinco minutos, excepto las solicitudes de ayuda controladas por el servidor, que obtienen una hora | Cinco minutos |

330 330 

331Una vez que supera el límite de uso de su plan y Claude Code utiliza [créditos de uso](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans), se le factura por ese uso, por lo que Claude Code reduce la conversación principal al TTL de cinco minutos más económico. Para mantener el TTL de una hora allí, [elija el TTL usted mismo](#choose-the-ttl-yourself).331Una vez que superas el límite de uso de tu plan y Claude Code recurre a [créditos de uso](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans), se te factura por ese uso, por lo que Claude Code reduce la conversación principal al TTL de cinco minutos, que cobra una tarifa más baja por las escrituras en caché. Para mantener allí el TTL de una hora, [elige el TTL tú mismo](#choose-the-ttl-yourself).

332 332 

333<h3 id="choose-the-ttl-yourself">333<h3 id="choose-the-ttl-yourself">

334 Elija el TTL usted mismo334 Elija el TTL usted mismo

Details

1342 },1342 },

1343 "review-your-changes-before": {1343 "review-your-changes-before": {

1344 title: "Revisar tus cambios antes de hacer commit",1344 title: "Revisar tus cambios antes de hacer commit",

1345 teaches: "Detecta problemas mientras todavía son baratos de corregir. Claude lee los archivos modificados completos, no solo las líneas del diff, así encuentra problemas que una autorrevisión rápida pasa por alto.",1345 teaches: "Detecta problemas mientras todavía requieren menos trabajo para corregirse. Claude lee los archivos modificados completos, no solo las líneas del diff, así encuentra problemas que una autorrevisión rápida pasa por alto.",

1346 next: "Ejecuta `/code-review` para hacer la misma verificación con un solo comando",1346 next: "Ejecuta `/code-review` para hacer la misma verificación con un solo comando",

1347 prompt: "revisa mis cambios sin commit y señala cualquier cosa que parezca riesgosa antes de hacer commit"1347 prompt: "revisa mis cambios sin commit y señala cualquier cosa que parezca riesgosa antes de hacer commit"

1348 },1348 },

quickstart.md +81 −115

Details

4 4 

5# Inicio rápido5# Inicio rápido

6 6 

7> ¡Bienvenido a Claude Code!7> Instala Claude Code en tu terminal, inicia sesión y usa la CLI para explorar tu base de código y hacer tu primer cambio de código.

8 8 

9Esta guía de inicio rápido le permitirá usar asistencia de codificación impulsada por IA en pocos minutos. Al final, comprenderá cómo usar Claude Code para tareas comunes de desarrollo.9Esta guía de inicio rápido cubre Claude Code en tu terminal: cómo instalar la CLI, iniciar sesión desde tu primera sesión y usarlo para tareas comunes de desarrollo en tu propio proyecto.

10 10 

11<h2 id="before-you-begin">11<h2 id="before-you-begin">

12 Antes de comenzar12 Antes de comenzar

13</h2>13</h2>

14 14 

15Asegúrese de tener:15Asegúrate de tener:

16 16 

17* Una terminal o símbolo del sistema abiertos17* Una terminal o prompt de comandos abiertos

18 * Si nunca ha usado la terminal antes, consulte la [guía de terminal](/docs/es/terminal-guide)

19* Un proyecto de código con el que trabajar18* Un proyecto de código con el que trabajar

20* Una [suscripción a Claude](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=quickstart_prereq) (Pro, Max, Team o Enterprise), una cuenta de [Claude Console](https://platform.claude.com/), o acceso a través de un [proveedor de nube compatible](/docs/es/third-party-integrations)19* Una [suscripción a Claude](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=quickstart_prereq) (Pro, Max, Team o Enterprise), una cuenta de [Claude Console](https://platform.claude.com/), o acceso a través de un [proveedor de nube compatible](/docs/es/third-party-integrations)

21 20 

22<Note>21<Note>

23 Esta guía cubre la CLI de terminal. Claude Code también está disponible en la [web](https://claude.ai/code), como una [aplicación de escritorio](/docs/es/desktop), en [VS Code](/docs/es/vs-code) e [IDEs de JetBrains](/docs/es/jetbrains), en [Slack](/docs/es/slack), y en CI/CD con [GitHub Actions](/docs/es/github-actions) y [GitLab](/docs/es/gitlab-ci-cd). Consulte [todas las interfaces](/docs/es/overview#use-claude-code-everywhere).22 Estos casos se tratan en otras páginas:

23 

24 * **Nunca has usado una terminal**: comienza con la [guía de terminal](/docs/es/terminal-guide)

25 * **Quieres usar Claude Code en otro lugar que no sea la terminal**: Claude Code también está disponible en la [web](https://claude.ai/code), como una [aplicación de escritorio](/docs/es/desktop), en [VS Code](/docs/es/vs-code) e [IDEs de JetBrains](/docs/es/jetbrains), en [Slack](/docs/es/slack), y en CI/CD con [GitHub Actions](/docs/es/github-actions) y [GitLab](/docs/es/gitlab-ci-cd). Consulta [todas las interfaces](/docs/es/overview#use-claude-code-everywhere).

24</Note>26</Note>

25 27 

26<h2 id="step-1-install-claude-code">28<h2 id="step-1-install-claude-code">


33 <Tab title="Instalación nativa (recomendado)">35 <Tab title="Instalación nativa (recomendado)">

34 **macOS, Linux, WSL:**36 **macOS, Linux, WSL:**

35 37 

36 ```bash theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}38 ```bash theme={null}

37 curl -fsSL https://claude.ai/install.sh | bash39 curl -fsSL https://claude.ai/install.sh | bash

38 ```40 ```

39 41 

42 En Windows, tu prompt muestra `PS C:\` cuando estás en PowerShell y `C:\` sin el `PS` cuando estás en CMD.

43 

40 **Windows PowerShell:**44 **Windows PowerShell:**

41 45 

42 ```powershell theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}46 ```powershell theme={null}

43 irm https://claude.ai/install.ps1 | iex47 irm https://claude.ai/install.ps1 | iex

44 ```48 ```

45 49 

46 **Windows CMD:**50 **Windows CMD:**

47 51 

48 ```batch theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}52 ```batch theme={null}

49 curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd53 curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd

50 ```54 ```

51 55 

52 Cuando el instalador termine, abra una nueva ventana de terminal y ejecute `claude --version`. Una instalación que funciona correctamente imprime un número de versión. Si su shell dice que `claude` no se encuentra o no se reconoce, el directorio de instalación aún no está en su PATH: consulte [Corrija su PATH](/docs/es/troubleshoot-install#command-not-found-claude-after-installation).56 Cuando el instalador termine, abra una nueva ventana de terminal y ejecute `claude --version`. Una instalación que funciona correctamente imprime un número de versión. Si su shell dice que `claude` no se encuentra o no se reconoce, el directorio de instalación aún no está en su PATH: consulte [Corrija su PATH](/docs/es/troubleshoot-install#command-not-found-claude-after-installation).

53 57 

54 Si ve `The token '&&' is not a valid statement separator`, está en PowerShell, no en CMD. Si ve `'irm' is not recognized as an internal or external command`, está en CMD, no en PowerShell. Su símbolo del sistema muestra `PS C:\` cuando está en PowerShell y `C:\` sin el `PS` cuando está en CMD.58 Si ves `The token '&&' is not a valid statement separator`, estás en PowerShell, no en CMD. Si ves `'irm' is not recognized as an internal or external command`, estás en CMD, no en PowerShell.

55 59 

56 Si el comando de instalación falla con `syntax error near unexpected token '<'`, un `403`, u otro error de curl, consulte [Solucionar problemas de instalación](/docs/es/troubleshoot-install#find-your-error) para hacer coincidir el error con una solución y para conocer métodos de instalación alternativos.60 Si el comando de instalación falla con `syntax error near unexpected token '<'`, un `403` o cualquier otro error, consulta [Solucionar problemas de instalación](/docs/es/troubleshoot-install#find-your-error) para hacer coincidir el error con una solución y para conocer métodos de instalación alternativos.

57 61 

58 Se recomienda [Git for Windows](https://git-scm.com/downloads/win) en Windows nativo para que Claude Code pueda utilizar la herramienta Bash. Si Git for Windows no está instalado, Claude Code utiliza PowerShell como herramienta de shell en su lugar. Las configuraciones de WSL no necesitan Git for Windows.62 Se recomienda [Git for Windows](https://git-scm.com/downloads/win) en Windows nativo para que Claude Code pueda utilizar la herramienta Bash. Si Git for Windows no está instalado, Claude Code utiliza PowerShell como herramienta de shell en su lugar. Las configuraciones de WSL no necesitan Git for Windows.

59 63 


63 </Tab>67 </Tab>

64 68 

65 <Tab title="Homebrew">69 <Tab title="Homebrew">

66 ```bash theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}70 ```bash theme={null}

67 brew install --cask claude-code71 brew install --cask claude-code

68 ```72 ```

69 73 


75 </Tab>79 </Tab>

76 80 

77 <Tab title="WinGet">81 <Tab title="WinGet">

78 ```powershell theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}82 ```powershell theme={null}

79 winget install Anthropic.ClaudeCode83 winget install Anthropic.ClaudeCode

80 ```84 ```

81 85 


95 99 

96El comando imprime un número de versión seguido de `(Claude Code)`.100El comando imprime un número de versión seguido de `(Claude Code)`.

97 101 

98<h2 id="step-2-log-in-to-your-account">102<h2 id="step-2-start-your-first-session">

99 Paso 2: Inicie sesión en su cuenta103 Paso 2: Inicia tu primera sesión

100</h2>104</h2>

101 105 

102Claude Code requiere una cuenta para usarse. Inicie una sesión interactiva con el comando `claude` y se le pedirá que inicie sesión en el primer uso:106Abre tu terminal en cualquier directorio de proyecto e inicia Claude Code:

103 107 

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

109cd /path/to/your/project

105claude110claude

106```111```

107 112 

108Para cuentas de suscripción de Claude o Console, siga las indicaciones para completar la autenticación en su navegador. Si ha establecido la variable de entorno `ANTHROPIC_API_KEY`, Claude Code omite la solicitud de inicio de sesión y le pide que apruebe la clave en su lugar. Para cambiar de cuenta más tarde o volver a autenticarse, escriba `/login` dentro de la sesión en ejecución:113Reemplaza `/path/to/your/project` con la ruta al proyecto en el que quieres trabajar.

109 114 

110```text wrap theme={null}115Claude Code te pide iniciar sesión la primera vez que lo usas. Para suscripciones de Claude o cuentas de Console, sigue las instrucciones para completar la autenticación en tu navegador. Si configuraste la variable de entorno `ANTHROPIC_API_KEY` y apruebas la clave cuando Claude Code te pregunta si quieres usarla, Claude Code omite la solicitud de inicio de sesión.

111/login

112```

113 116 

114Puede iniciar sesión usando cualquiera de estos tipos de cuenta:117Puedes iniciar sesión con cualquiera de estos tipos de cuenta:

115 118 

116* [Claude Pro, Max, Team o Enterprise](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=quickstart_login) (recomendado)119* [Claude Pro, Max, Team o Enterprise](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=quickstart_login) (recomendado)

117* [Claude Console](https://platform.claude.com/) (acceso a API con créditos prepagados). En el primer inicio de sesión, se crea automáticamente un espacio de trabajo "Claude Code" en la Console para el seguimiento centralizado de costos.120* [Claude Console](https://platform.claude.com/) (acceso a la API con créditos prepagados). En el primer inicio de sesión, se crea automáticamente un espacio de trabajo "Claude Code" en Console para el seguimiento centralizado de costos.

118* [Amazon Bedrock, Google Cloud's Agent Platform o Microsoft Foundry](/docs/es/third-party-integrations) (proveedores de nube empresariales)121* [Amazon Bedrock, Agent Platform de Google Cloud o Microsoft Foundry](/docs/es/third-party-integrations) (proveedores de nube empresariales)

119* Una puerta de enlace [Claude apps gateway](/docs/es/claude-apps-gateway) autohospedada, si su organización ejecuta una: su administrador preconfiguración la URL de la puerta de enlace, y `/login` abre directamente en la pantalla **Cloud gateway** para que inicie sesión con SSO corporativo122* Un [gateway de aplicaciones de Claude](/docs/es/claude-apps-gateway) autoalojado, si tu organización ejecuta uno: tu administrador preconfigura la URL del gateway, y `/login` se abre directamente en la pantalla **Cloud gateway** para que inicies sesión con el SSO corporativo

120 

121Una vez que haya iniciado sesión, sus credenciales se almacenan y no necesitará iniciar sesión nuevamente. Obtenga más información en [Gestión de credenciales](/docs/es/authentication#credential-management).

122 

123<h2 id="step-3-start-your-first-session">

124 Paso 3: Inicie su primera sesión

125</h2>

126 

127Abra su terminal en cualquier directorio de proyecto e inicie Claude Code:

128 

129```bash theme={null}

130cd /path/to/your/project

131claude

132```

133 123 

134Reemplace `/path/to/your/project` con la ruta del proyecto en el que desea trabajar.124Una vez que inicies sesión, tus credenciales se almacenan y no necesitarás volver a iniciar sesión. Obtén más información en [Gestión de credenciales](/docs/es/authentication#credential-management).

135 125 

136Verá la pantalla de Claude Code con la versión, el modelo actual y el directorio de trabajo mostrados arriba. Escriba `/help` para ver los comandos disponibles o `/resume` para continuar una conversación anterior.126El prompt de Claude Code aparece con la versión, el modelo actual y el directorio de trabajo mostrados encima. Escribe `/help` para ver los comandos disponibles o `/resume` para continuar una conversación anterior. Para cambiar de cuenta más adelante o volver a autenticarte, escribe `/login` dentro de la sesión en ejecución.

137 127 

138<h2 id="step-4-ask-your-first-question">128<h2 id="step-3-ask-your-first-question">

139 Paso 4: Haga su primera pregunta129 Paso 3: Haz tu primera pregunta

140</h2>130</h2>

141 131 

142Comienza por entender tu base de código. Prueba uno de estos comandos:132Prueba uno de estos comandos:

143 133 

144```text wrap theme={null}134```text wrap theme={null}

145¿qué hace este proyecto?135what does this project do?

146```136```

147 137 

148Claude analizará sus archivos y proporcionará un resumen. También puede hacer preguntas más específicas:138Claude analizará tus archivos y te dará un resumen. También puedes hacer preguntas más específicas:

149 139 

150```text wrap theme={null}140```text wrap theme={null}

151¿qué tecnologías usa este proyecto?141what technologies does this project use?

152```142```

153 143 

154```text wrap theme={null}144```text wrap theme={null}

155¿dónde está el punto de entrada principal?145where is the main entry point?

156```146```

157 147 

158```text wrap theme={null}148```text wrap theme={null}

159explique la estructura de carpetas149explain the folder structure

160```150```

161 151 

162También puede preguntarle a Claude sobre sus propias capacidades:152También puedes preguntarle a Claude sobre sus propias capacidades:

163 153 

164```text wrap theme={null}154```text wrap theme={null}

165¿qué puede hacer Claude Code?155what can Claude Code do?

166```156```

167 157 

168```text wrap theme={null}158```text wrap theme={null}

169¿cómo creo skills personalizados en Claude Code?159how do I create custom skills in Claude Code?

170```160```

171 161 

172```text wrap theme={null}162```text wrap theme={null}

173¿puede Claude Code trabajar con Docker?163can Claude Code work with Docker?

174```164```

175 165 

176<Note>166<Note>

177 Claude Code lee los archivos de su proyecto según sea necesario. No tiene que agregar contexto manualmente.167 Claude Code lee los archivos de tu proyecto según sea necesario. No tienes que agregar contexto manualmente.

178</Note>168</Note>

179 169 

180<h2 id="step-5-make-your-first-code-change">170<h2 id="step-4-make-your-first-code-change">

181 Paso 5: Realice su primer cambio de código171 Paso 4: Haz tu primer cambio de código

182</h2>172</h2>

183 173 

184Ahora haz que Claude Code escriba código real. Prueba una tarea simple:174Prueba una tarea pequeña:

185 175 

186```text wrap theme={null}176```text wrap theme={null}

187agrega una función hello world al archivo principal177add a hello world function to the main file

188```178```

189 179 

190Claude Code encuentra el archivo apropiado y le muestra el cambio. Si pregunta antes de realizar el cambio, seleccione **Sí** para aprobar.180Claude Code encuentra el archivo adecuado y te muestra el cambio. Si te pregunta antes de hacer el cambio, selecciona **Yes** para aprobarlo.

191 181 

192Con Claude Code v2.1.283 o posterior, el modo auto es el [modo de permiso de inicio integrado](/docs/es/permission-modes#eliminate-prompts-with-auto-mode) para sesiones de terminal interactivas: un clasificador revisa las acciones en lugar de usted, y Claude edita la mayoría de los archivos y ejecuta la mayoría de los comandos sin preguntar. En versiones anteriores, el modo auto es el modo de permiso de inicio integrado solo en planes Pro, Max y Team. Para la sesión que inicia justo después de instalar, consulte [Primera sesión después de una instalación o actualización](/docs/es/env-vars#first-session-after-an-install-or-upgrade).182El [modo de permisos](/docs/es/permission-modes) de la sesión define qué acciones puede realizar Claude sin preguntarte primero. Presiona `Shift+Tab` en cualquier momento para cambiar el modo de permisos de la sesión en la que te encuentras.

193 

194<Note>

195 Su configuración u organización puede establecer un modo de permiso de inicio diferente. [Qué modo de permiso inicia una sesión](/docs/es/permission-modes#which-mode-a-session-starts-in) enumera lo que hace. Presione `Shift+Tab` en cualquier momento para cambiar el modo de permiso de la sesión en la que se encuentra.

196</Note>

197 183 

198<h2 id="step-6-use-git-with-claude-code">184<h2 id="step-5-use-git-with-claude-code">

199 Paso 6: Use Git con Claude Code185 Paso 5: Usa Git con Claude Code

200</h2>186</h2>

201 187 

202Claude Code hace que las operaciones de Git sean conversacionales:188Claude Code convierte las operaciones de Git en una conversación:

203 189 

204```text wrap theme={null}190```text wrap theme={null}

205¿qué archivos he cambiado?191what files have I changed?

206```192```

207 193 

208```text wrap theme={null}194```text wrap theme={null}

209confirma mis cambios con un mensaje descriptivo195commit my changes with a descriptive message

210```196```

211 197 

212También puede solicitar operaciones de Git más complejas:198También puedes pedir operaciones de Git más complejas:

213 199 

214```text wrap theme={null}200```text wrap theme={null}

215crea una nueva rama llamada feature/quickstart201create a new branch called feature/quickstart

216```202```

217 203 

218```text wrap theme={null}204```text wrap theme={null}

219muéstrame los últimos 5 commits205show me the last 5 commits

220```206```

221 207 

222```text wrap theme={null}208```text wrap theme={null}

223ayúdame a resolver conflictos de fusión209help me resolve merge conflicts

224```210```

225 211 

226<h2 id="step-7-fix-a-bug-or-add-a-feature">212<h2 id="step-6-fix-a-bug-or-add-a-feature">

227 Paso 7: Corrija un error o agregue una función213 Paso 6: Corrige un error o agrega una función

228</h2>214</h2>

229 215 

230Claude es competente en depuración e implementación de funciones.216Describe lo que quieres en lenguaje natural:

231 

232Describa lo que desea en lenguaje natural:

233 217 

234```text wrap theme={null}218```text wrap theme={null}

235agrega validación de entrada al formulario de registro de usuarios219add input validation to the user registration form

236```220```

237 221 

238O corrija problemas existentes:222O corrige problemas existentes:

239 223 

240```text wrap theme={null}224```text wrap theme={null}

241hay un error donde los usuarios pueden enviar formularios vacíos - corrígelo225there's a bug where users can submit empty forms - fix it

242```226```

243 227 

244Claude Code hará lo siguiente:228<h2 id="step-7-test-out-other-common-workflows">

245 229 Paso 7: Prueba otros flujos de trabajo comunes

246* Localizará el código relevante

247* Comprenderá el contexto

248* Implementará una solución

249* Ejecutará pruebas si están disponibles

250 

251<h2 id="step-8-test-out-other-common-workflows">

252 Paso 8: Pruebe otros flujos de trabajo comunes

253</h2>230</h2>

254 231 

255Hay varias formas de trabajar con Claude:232Hay varias formas de trabajar con Claude:


257**Refactorizar código**234**Refactorizar código**

258 235 

259```text wrap theme={null}236```text wrap theme={null}

260refactoriza el módulo de autenticación para usar async/await en lugar de callbacks237refactor the authentication module to use async/await instead of callbacks

261```238```

262 239 

263**Escribir pruebas**240**Escribir pruebas**

264 241 

265```text wrap theme={null}242```text wrap theme={null}

266escribe pruebas unitarias para las funciones de calculadora243write unit tests for the calculator functions

267```244```

268 245 

269**Actualizar documentación**246**Actualizar la documentación**

270 247 

271```text wrap theme={null}248```text wrap theme={null}

272actualiza el README con instrucciones de instalación249update the README with installation instructions

273```250```

274 251 

275**Revisión de código**252**Revisión de código**

276 253 

277```text wrap theme={null}254```text wrap theme={null}

278revisa mis cambios y sugiere mejoras255review my changes and suggest improvements

279```256```

280 257 

281<Tip>258<Tip>

282 Hable con Claude como lo haría con un colega útil. Describa lo que desea lograr y le ayudará a llegar allí.259 Habla con Claude como lo harías con un colega servicial. Describe lo que quieres lograr y te ayudará a conseguirlo.

283</Tip>260</Tip>

284 261 

285<h2 id="essential-commands">262<h2 id="essential-commands">


355 ¿Qué sigue?332 ¿Qué sigue?

356</h2>333</h2>

357 334 

358Ahora que ha aprendido lo básico, explore funciones más avanzadas:335Ahora que aprendiste lo básico, explora funciones más avanzadas:

359 

360<CardGroup cols={2}>

361 <Card title="Cómo funciona Claude Code" icon="microchip" href="/docs/es/how-claude-code-works">

362 Comprenda el bucle de agente, las herramientas integradas y cómo Claude Code interactúa con su proyecto

363 </Card>

364 

365 <Card title="Mejores prácticas" icon="star" href="/docs/es/best-practices">

366 Obtenga mejores resultados con indicaciones efectivas y configuración de proyecto

367 </Card>

368 336 

369 <Card title="Flujos de trabajo comunes" icon="graduation-cap" href="/docs/es/common-workflows">337* [Cómo funciona Claude Code](/docs/es/how-claude-code-works): comprende el bucle agéntico, las herramientas integradas y cómo Claude Code interactúa con tu proyecto

370 Guías paso a paso para tareas comunes338* [Buenas prácticas](/docs/es/best-practices): obtén mejores resultados con indicaciones efectivas y una buena configuración del proyecto

371 </Card>339* [Flujos de trabajo comunes](/docs/es/common-workflows): guías paso a paso para tareas comunes

340* [Extiende Claude Code](/docs/es/features-overview): personaliza con CLAUDE.md, skills, hooks, MCP y más

372 341 

373 <Card title="Extiende Claude Code" icon="puzzle-piece" href="/docs/es/features-overview">342Consulta la [configuración avanzada](/docs/es/setup) para ver opciones de instalación, actualizaciones manuales o instrucciones de desinstalación.

374 Personalice con CLAUDE.md, skills, hooks, MCP y más

375 </Card>

376</CardGroup>

377 343 

378<h2 id="getting-help">344<h2 id="getting-help">

379 Obtener ayuda345 Obtener ayuda

380</h2>346</h2>

381 347 

382* **En Claude Code**: Escriba `/help` o pregunte "¿cómo..."348* **En Claude Code**: escribe `/help` o haz una pregunta del tipo "¿cómo hago...?"

383* **Documentación**: ¡Está aquí! Explore otras guías349* **Documentación**: explora las otras guías de este sitio

384* **Cursos**: Tome [Claude Code 101](https://academy.claude.com/courses/claude-code-101) y otros cursos gratuitos a su propio ritmo en [Claude Academy](https://academy.claude.com/)350* **Cursos**: toma [Claude Code 101](https://academy.claude.com/courses/claude-code-101) y otros cursos gratuitos a tu propio ritmo en [Claude Academy](https://academy.claude.com/)

385* **Comunidad**: Únete al [servidor de Discord](https://www.anthropic.com/discord) para obtener consejos y soporte351* **Comunidad**: únete al [servidor de Discord](https://www.anthropic.com/discord) para obtener consejos y soporte

Details

365</h2>365</h2>

366 366 

367* **Una sesión remota por proceso interactivo**: fuera del modo servidor, cada instancia de Claude Code admite una sesión remota a la vez. Usa el [modo servidor](#start-a-remote-control-session) para ejecutar múltiples sesiones concurrentes desde un único proceso.367* **Una sesión remota por proceso interactivo**: fuera del modo servidor, cada instancia de Claude Code admite una sesión remota a la vez. Usa el [modo servidor](#start-a-remote-control-session) para ejecutar múltiples sesiones concurrentes desde un único proceso.

368* **El proceso local debe seguir ejecutándose**: Remote Control se ejecuta como un proceso local. Si cierras la terminal, sales de la aplicación de escritorio o VS Code, o detienes de otra manera el proceso `claude`, la sesión se desconecta hasta que [la vuelvas a conectar](#resume-sessions-after-stopping-the-server). Para mantener una sesión ejecutándose en una máquina remota después de desconectarte de SSH, inicia la sesión dentro de `tmux` o `screen`.368* **El proceso local debe seguir ejecutándose**: Remote Control se ejecuta como un proceso local. Si cierras la terminal, sales de la aplicación de escritorio o VS Code, o detienes de otra manera el proceso `claude`, la sesión se desconecta hasta que [la vuelvas a conectar](#resume-sessions-after-stopping-the-server). Si ejecutas `claude` desde una terminal en una máquina remota, inícialo dentro de `tmux` o `screen` para mantener la sesión ejecutándose después de desconectarte de SSH.

369* **Sesiones que se cuelgan en modo servidor**: si una sesión servida por `claude remote-control` se cuelga, envíale un mensaje desde un dispositivo conectado. Claude Code la sirve de nuevo. No tienes que reiniciar el servidor. Requiere Claude Code v2.1.238 o posterior.369* **Sesiones que se cuelgan en modo servidor**: si una sesión servida por `claude remote-control` se cuelga, envíale un mensaje desde un dispositivo conectado. Claude Code la sirve de nuevo. No tienes que reiniciar el servidor. Requiere Claude Code v2.1.238 o posterior.

370* **Rechazos HTTP 403 en una sesión conectada**: una vez que una sesión interactiva está conectada, Claude Code sigue reintentando durante hasta tres minutos cuando algo entre tu máquina y los servidores de Anthropic responde con HTTP 403, lo que puede ocurrir después de un cambio de VPN o red. Si los rechazos duran más tiempo, Claude Code se desconecta, y el motivo indica qué rechazó: un borde de red, o un proxy, VPN o firewall en tu propia red.370* **Rechazos HTTP 403 en una sesión conectada**: una vez que una sesión interactiva está conectada, Claude Code sigue reintentando durante hasta tres minutos cuando algo entre tu máquina y los servidores de Anthropic responde con HTTP 403, lo que puede ocurrir después de un cambio de VPN o red. Si los rechazos duran más tiempo, Claude Code se desconecta, y el motivo indica qué rechazó: un borde de red, o un proxy, VPN o firewall en tu propia red.

371* **Interrupción de red extendida**: si tu máquina está encendida pero no puede alcanzar la red, lo que hagas a continuación depende del modo:371* **Interrupción de red extendida**: si tu máquina está encendida pero no puede alcanzar la red, lo que hagas a continuación depende del modo:

routines.md +1 −1

Details

93 Elija un [entorno en la nube](/docs/es/cloud-environments) para la rutina. Los entornos controlan a qué tiene acceso la sesión en la nube:93 Elija un [entorno en la nube](/docs/es/cloud-environments) para la rutina. Los entornos controlan a qué tiene acceso la sesión en la nube:

94 94 

95 * **Network access**: establezca el nivel de acceso a Internet disponible durante cada ejecución95 * **Network access**: establezca el nivel de acceso a Internet disponible durante cada ejecución

96 * **Environment variables**: proporcione valores que Claude pueda usar durante cada ejecución. Son [visibles para cualquiera que use el entorno](/docs/es/cloud-environments#what-carries-over-from-your-setup), por lo que en planes Pro y Max, almacene claves para las API que Claude llama durante una ejecución como [credenciales de API](/docs/es/cloud-environments#add-api-credentials) en su lugar. Esa sección también enumera las solicitudes que nunca obtienen una credencial96 * **Environment variables**: proporciona valores que Claude pueda usar durante cada ejecución. Son [visibles para cualquiera que use el entorno](/docs/es/cloud-environments#what-carries-over-from-your-setup), por lo que en los planes Pro y Max, almacena las claves de las API que Claude llama durante una ejecución como [secretos de red](/docs/es/cloud-environments#add-api-credentials) en su lugar. Esa sección también enumera las solicitudes que nunca reciben un secreto

97 * **Setup script**: instale dependencias y herramientas que la rutina necesita. El resultado se [almacena en caché](/docs/es/cloud-environments#environment-caching), por lo que el script no se vuelve a ejecutar en cada sesión97 * **Setup script**: instale dependencias y herramientas que la rutina necesita. El resultado se [almacena en caché](/docs/es/cloud-environments#environment-caching), por lo que el script no se vuelve a ejecutar en cada sesión

98 98 

99 Se proporciona un entorno **Default** con acceso a la red **Trusted**, que permite solo el [conjunto predeterminado](/docs/es/cloud-environments#default-allowed-domains) de registros de paquetes, API de proveedores de nube, registros de contenedores y dominios de desarrollo comunes a través de la red de la sesión. Los conectores que agregue a la rutina alcanzan sus servicios a través de los servidores de Anthropic, por lo que no necesitan cambios en la lista de permitidos. Si su rutina necesita alcanzar sus propios servicios directamente o un dominio fuera de esa lista, edite el [acceso a la red](/docs/es/cloud-environments#network-access) del entorno antes de ejecutar. Para usar un entorno separado, [cree uno](/docs/es/cloud-environments#configure-your-environment) primero.99 Se proporciona un entorno **Default** con acceso a la red **Trusted**, que permite solo el [conjunto predeterminado](/docs/es/cloud-environments#default-allowed-domains) de registros de paquetes, API de proveedores de nube, registros de contenedores y dominios de desarrollo comunes a través de la red de la sesión. Los conectores que agregue a la rutina alcanzan sus servicios a través de los servidores de Anthropic, por lo que no necesitan cambios en la lista de permitidos. Si su rutina necesita alcanzar sus propios servicios directamente o un dominio fuera de esa lista, edite el [acceso a la red](/docs/es/cloud-environments#network-access) del entorno antes de ejecutar. Para usar un entorno separado, [cree uno](/docs/es/cloud-environments#configure-your-environment) primero.

Details

104 Script de ejemplo104 Script de ejemplo

105</h2>105</h2>

106 106 

107El script a continuación ejecuta el bucle completo contra `$CLAUDE_TEST_ENVIRONMENT_ID`, el ID `ccpool_...` de su entorno de prueba, que se muestra en el diálogo de detalles del entorno en la página de administración o se devuelve por la [llamada create-environment](#create-a-dedicated-test-environment), y afirma una frase centinela en cada respuesta. Ejecute desde un checkout de git del repositorio en el que desea que la sesión funcione, después de iniciar un ejecutor en este host con el hook de captura instalado y `E2E_REPLY_DIR` exportado.107El script a continuación ejecuta el bucle completo contra `$CLAUDE_TEST_ENVIRONMENT_ID`, el ID `ccpool_...` de tu entorno de prueba, que se muestra en el diálogo de detalles del entorno en la página de administración o se devuelve por la [llamada create-environment](#create-a-dedicated-test-environment), y afirma una frase centinela en cada respuesta. Ejecútalo desde un checkout de git del repositorio en el que quieres que trabaje la sesión, después de iniciar un ejecutor en este host con el hook de captura instalado y `E2E_REPLY_DIR` exportado. Primero inicia sesión con una cuenta de claude.ai en la máquina que ejecuta el script, como se describe en [Autenticarse desde CI](#authenticate-from-ci). Sin ese inicio de sesión, el primer envío falla con un error como `Unable to get organization UUID for cloud session creation`.

108 108 

109```bash theme={null}109```bash theme={null}

110#!/usr/bin/env bash110#!/usr/bin/env bash

Details

43 <Step title="Abrir la consola de administración">43 <Step title="Abrir la consola de administración">

44 En la consola de claude.ai, ve a [**Organization settings > Claude Code > Managed settings**](https://claude.ai/admin-settings/claude-code).44 En la consola de claude.ai, ve a [**Organization settings > Claude Code > Managed settings**](https://claude.ai/admin-settings/claude-code).

45 45 

46 Si el enlace te redirige a una página de Organization settings diferente en lugar de la página de Claude Code, tu cuenta no tiene el rol requerido. Los roles de Admin y otros roles que no sean Owner no pueden ver ni editar la configuración administrada, así que pide a un Owner o Primary Owner de tu organización que realice el cambio. Consulta [Control de acceso](#access-control).46 En una organización Team o Enterprise, si la página indica que no tienes acceso, pide a un [Owner o Primary Owner](#access-control) que realice el cambio.

47 </Step>47 </Step>

48 48 

49 <Step title="Definir tu configuración">49 <Step title="Definir tu configuración">


149 Precedencia de configuración149 Precedencia de configuración

150</h3>150</h3>

151 151 

152La configuración administrada por servidor y la [configuración administrada por endpoint](/docs/es/managed-settings#delivery-mechanisms) ocupan el nivel más alto en la [jerarquía de configuración](/docs/es/settings#settings-precedence) de Claude Code. Ningún otro nivel de configuración puede anularlas, incluidos los argumentos de línea de comandos, aparte de las [excepciones a la precedencia de configuración administrada](/docs/es/settings#exceptions-to-managed-settings-precedence).152La configuración administrada por servidor y la [configuración administrada por endpoint](/docs/es/managed-settings#delivery-mechanisms) ocupan el nivel más alto en la [jerarquía de configuración](/docs/es/settings#settings-precedence) de Claude Code. Una clave que establezcas aquí tiene precedencia sobre la misma clave en los propios archivos de configuración de un usuario o en un valor de `--settings`, aparte de las [excepciones a la precedencia de configuración administrada](/docs/es/settings#exceptions-to-managed-settings-precedence).

153 153 

154Dentro del nivel administrado, Claude Code utiliza de forma predeterminada la primera fuente que entrega al menos una clave de política, verificando primero la configuración administrada por servidor y luego la configuración administrada por endpoint, aparte de las [claves de excepción cubiertas a continuación](#per-key-exceptions-across-managed-sources). [Cómo Claude Code combina fuentes administradas](/docs/es/managed-settings#precedence-within-the-managed-tier) tiene la clasificación completa, la exclusión para las claves de control y la opción de participación que se aplica a cada fuente.154Dentro del nivel administrado, Claude Code utiliza de forma predeterminada la primera fuente que entrega al menos una clave de política, verificando primero la configuración administrada por servidor y luego la configuración administrada por endpoint, aparte de las [claves de excepción cubiertas a continuación](#per-key-exceptions-across-managed-sources). [Cómo Claude Code combina fuentes administradas](/docs/es/managed-settings#precedence-within-the-managed-tier) tiene la clasificación completa, la exclusión para las claves de control y la opción de participación que se aplica a cada fuente.

155 155 

sessions.md +50 −48

Details

11La [aplicación de escritorio](/docs/es/desktop#work-in-parallel-with-sessions), [claude.ai/code](/docs/es/claude-code-on-the-web) y la [extensión de VS Code](/docs/es/vs-code#resume-past-conversations) mantienen cada una su propio historial de sesiones, y la aplicación de escritorio también puede [reanudar una sesión de CLI](/docs/es/desktop#coming-from-the-cli). Esta página cubre la CLI.11La [aplicación de escritorio](/docs/es/desktop#work-in-parallel-with-sessions), [claude.ai/code](/docs/es/claude-code-on-the-web) y la [extensión de VS Code](/docs/es/vs-code#resume-past-conversations) mantienen cada una su propio historial de sesiones, y la aplicación de escritorio también puede [reanudar una sesión de CLI](/docs/es/desktop#coming-from-the-cli). Esta página cubre la CLI.

12 12 

13<h2 id="resume-a-session">13<h2 id="resume-a-session">

14 Reanude una sesión14 Reanuda una sesión

15</h2>15</h2>

16 16 

17Las sesiones se guardan continuamente en [archivos de transcripción locales](#export-and-locate-session-data) mientras trabaja, para que pueda volver a una después de salir o ejecutar `/clear`. Use estos puntos de entrada:17Las sesiones se guardan continuamente en [archivos de transcripción locales](#export-and-locate-session-data) mientras trabajas, para que puedas volver a una después de salir o ejecutar `/clear`. Usa estos puntos de entrada:

18 18 

19| Comando | Qué hace |19| Comando | Qué hace |

20| :- | :- |20| :- | :- |


22| `claude --resume` | Abre el [selector de sesiones](#use-the-session-picker) |22| `claude --resume` | Abre el [selector de sesiones](#use-the-session-picker) |

23| `claude --resume <name>` | Reanuda la sesión nombrada directamente |23| `claude --resume <name>` | Reanuda la sesión nombrada directamente |

24| `claude --resume <transcript-path>` | Reanuda la conversación almacenada en el archivo de [transcripción](#where-transcripts-are-stored) `.jsonl` en esa ruta absoluta |24| `claude --resume <transcript-path>` | Reanuda la conversación almacenada en el archivo de [transcripción](#where-transcripts-are-stored) `.jsonl` en esa ruta absoluta |

25| `claude --from-pr <number>` | Abre el selector de sesiones filtrado a sesiones vinculadas a esa solicitud de extracción |25| `claude --from-pr <number>` | Abre el selector de sesiones filtrado a sesiones vinculadas a ese pull request |

26| `/resume` | Cambia a una conversación diferente desde dentro de una sesión activa |26| `/resume` | Cambia a una conversación diferente desde dentro de una sesión activa |

27 27 

28Claude Code deja fuera del selector de sesiones y fuera de `claude --continue` las sesiones creadas con [`claude -p`](/docs/es/headless) o el [Agent SDK](/docs/es/agent-sdk/overview). Aún puede reanudar una pasando su ID de sesión a `claude --resume <session-id>`. Con `claude --continue`, Claude Code también omite [sesiones cuya primera solicitud fue `/loop`](#where-the-session-picker-looks). Cuando ejecuta [`claude -p --continue`](/docs/es/headless#continue-conversations), Claude Code incluye sesiones `-p`, SDK y `/loop`.28Claude Code deja fuera del selector de sesiones y fuera de `claude --continue` las sesiones creadas con [`claude -p`](/docs/es/headless) o el [Agent SDK](/docs/es/agent-sdk/overview). Aún puedes reanudar una pasando su ID de sesión a `claude --resume <session-id>`. Con `claude --continue`, Claude Code también omite [sesiones cuyo primer prompt fue `/loop`](#where-the-session-picker-looks). Cuando ejecutas [`claude -p --continue`](/docs/es/headless#continue-conversations), Claude Code incluye sesiones `-p`, SDK y `/loop`.

29 29 

30Puedes ejecutar `claude --resume <session-id>` desde cualquier directorio, así que puedes reanudar una sesión que comenzó en otro lugar o se movió con [`/cd`](/docs/es/commands). Claude Code busca el ID en este orden:30Puedes ejecutar `claude --resume <session-id>` desde cualquier directorio, así que puedes reanudar una sesión que comenzó en otro lugar o se movió con [`/cd`](/docs/es/commands). Claude Code busca el ID en este orden:

31 31 


36 36 

37Antes de v2.1.223, la búsqueda se detenía en el directorio del proyecto actual y sus git worktrees, por lo que tenías que reanudar desde el directorio en el que la sesión trabajó por última vez.37Antes de v2.1.223, la búsqueda se detenía en el directorio del proyecto actual y sus git worktrees, por lo que tenías que reanudar desde el directorio en el que la sesión trabajó por última vez.

38 38 

39`claude --continue` abre una [sesión en segundo plano](/docs/es/agent-view) que ha terminado, pero no una que aún se está ejecutando; abrir sesiones en segundo plano terminadas requiere Claude Code v2.1.257 o posterior. Si su conversación más reciente es una que [movió al segundo plano](/docs/es/agent-view#send-the-session-to-the-background) y aún se está ejecutando allí, Claude Code sale con `Your most recent conversation is running in the background` y el ID de esa sesión. Conéctese a la sesión desde [`claude agents`](/docs/es/agent-view#attach-to-a-session), o ejecute `claude --resume` para elegir otra.39`claude --continue` abre una [sesión en segundo plano](/docs/es/agent-view) que ha terminado, pero no una que aún se está ejecutando; abrir sesiones en segundo plano terminadas requiere Claude Code v2.1.257 o posterior. Si tu conversación más reciente es una que [moviste al segundo plano](/docs/es/agent-view#send-the-session-to-the-background) y aún se está ejecutando allí, Claude Code sale con `Your most recent conversation is running in the background` y el ID de esa sesión. Conéctate a la sesión desde [`claude agents`](/docs/es/agent-view#attach-to-a-session), o ejecuta `claude --resume` para elegir otra.

40 40 

41<h3 id="resume-a-running-background-session">41<h3 id="resume-a-running-background-session">

42 Reanuda una sesión en segundo plano en ejecución42 Reanuda una sesión en segundo plano en ejecución


44 44 

45Cuando la conversación que reanudas con `claude --resume` o `/resume` pertenece a una [sesión en segundo plano](/docs/es/agent-view) que aún se está ejecutando, Claude Code abre la sesión en ejecución en sí. Con `--bg` en la línea de comandos, la reanudación es en cambio un [envío en segundo plano](/docs/es/agent-view#from-your-shell). Antes de v2.1.285, Claude Code se negaba y te indicaba que abrieras la sesión con `claude attach <id>`, o que la detuvieras primero con `claude stop <id>`.45Cuando la conversación que reanudas con `claude --resume` o `/resume` pertenece a una [sesión en segundo plano](/docs/es/agent-view) que aún se está ejecutando, Claude Code abre la sesión en ejecución en sí. Con `--bg` en la línea de comandos, la reanudación es en cambio un [envío en segundo plano](/docs/es/agent-view#from-your-shell). Antes de v2.1.285, Claude Code se negaba y te indicaba que abrieras la sesión con `claude attach <id>`, o que la detuvieras primero con `claude stop <id>`.

46 46 

47* **Desde su shell**: `claude --resume <session>` ejecuta [`claude attach`](/docs/es/agent-view#attach-to-a-session) en esa sesión en la misma terminal en lugar de cargar la transcripción en sí. Una solicitud que pasa en la línea de comandos, como en `claude --resume <session> "check the tests too"`, va a la sesión como su siguiente turno primero, y Claude Code imprime `Sent your prompt to the background session (<id>); opening it…` antes de adjuntar. `claude -p --resume <session> "prompt"` escrito en una terminal hace lo mismo, por lo que `-p` no mantiene esa ejecución no interactiva.47* **Desde tu shell**: `claude --resume <session>` ejecuta [`claude attach`](/docs/es/agent-view#attach-to-a-session) en esa sesión en la misma terminal en lugar de cargar la transcripción en sí. Un prompt que pasas en la línea de comandos, como en `claude --resume <session> "check the tests too"`, va a la sesión como su siguiente turno primero, y Claude Code imprime `Sent your prompt to the background session (<id>); opening it…` antes de conectarse. `claude -p --resume <session> "prompt"` escrito en una terminal hace lo mismo, por lo que `-p` no mantiene esa ejecución no interactiva.

48 48 

49 Claude Code no abre la sesión cuando la línea de comandos tiene cualquiera de estos:49 Claude Code no abre la sesión cuando la línea de comandos tiene cualquiera de estos:

50 50 

51 * Entrada o salida canalizadas o redirigidas51 * Entrada o salida canalizadas o redirigidas

52 * Banderas que configuran la sesión, como `--permission-mode`, `--model` o `--settings`52 * Flags que configuran la sesión, como `--permission-mode`, `--model` o `--settings`

53 * Banderas que leen la salida, como `--output-format json` u `--json-schema`53 * Flags que leen la salida, como `--output-format json` o `--json-schema`

54 * Banderas que limitan o rebobinan la ejecución, como `--max-turns` o `--max-budget-usd`54 * Flags que limitan o rebobinan la ejecución, como `--max-turns` o `--max-budget-usd`

55 55 

56 Con cualquiera de estos, o cuando [la vista de agente está desactivada](/docs/es/agent-view#turn-off-agent-view), Claude Code no envía nada y sale con estado 1, imprimiendo que la sesión se está ejecutando en segundo plano junto con el comando `claude attach <id>` que la abre, o indicándole que la encuentre en `claude agents` cuando no puede determinar el ID. Agregue `--fork-session` para reanudar una copia de la conversación en su lugar. Para continuar la conversación en sí en una sesión propia, con sus banderas aplicadas, ejecute `claude stop <id>` y luego repita el comando.56 Con cualquiera de estos, o cuando [la vista de agente está desactivada](/docs/es/agent-view#turn-off-agent-view), Claude Code no envía nada y sale con estado 1, imprimiendo que la sesión se está ejecutando en segundo plano junto con el comando `claude attach <id>` que la abre, o indicándote que la encuentres en `claude agents` cuando no puede determinar el ID. Agrega `--fork-session` para reanudar una copia de la conversación en su lugar. Para continuar la conversación en sí en una sesión propia, con tus flags aplicados, ejecuta `claude stop <id>` y luego repite el comando.

57 57 

58 Una solicitud que comienza con `/` o `!` no se envía, ni tampoco ninguna solicitud mientras la sesión espera su respuesta a una pregunta. En ambos casos Claude Code no abre la sesión, y el mensaje incluye `Your prompt was not sent to it` con la razón.58 Un prompt que comienza con `/` o `!` no se envía, ni tampoco ningún prompt mientras la sesión espera tu respuesta a una pregunta. En ambos casos Claude Code no abre la sesión, y el mensaje incluye `Your prompt was not sent to it` con la razón.

59* **Desde dentro de una sesión**: `/resume` mueve su conversación actual al segundo plano y adjunta esta terminal a la sesión en ejecución, imprimiendo `Opening "<title>", running in the background (<id>)`. Presione `←` en una solicitud vacía para volver a la vista de agente, que también enumera la conversación que dejó. Cuando la conversación actual no puede moverse al segundo plano, por ejemplo porque ya está adjunto a una sesión en segundo plano o la persistencia de sesión está desactivada, `/resume` imprime el comando `claude attach` para ejecutar en su lugar.59* **Desde dentro de una sesión**: `/resume` mueve tu conversación actual al segundo plano y conecta esta terminal a la sesión en ejecución, imprimiendo `Opening "<title>", running in the background (<id>)`. Presiona `←` en un prompt vacío para volver a la vista de agente, que también enumera la conversación que dejaste. Cuando la conversación actual no puede moverse al segundo plano, por ejemplo porque ya estás conectado a una sesión en segundo plano o la persistencia de sesión está desactivada, `/resume` imprime el comando `claude attach` para ejecutar en su lugar.

60 60 

61<h3 id="what-a-resumed-session-restores">61<h3 id="what-a-resumed-session-restores">

62 Qué restaura una sesión reanudada62 Qué restaura una sesión reanudada


64 64 

65Cuando Claude Code carga una conversación desde su transcripción, la sesión reanudada restaura la conversación junto con el estado guardado en ella:65Cuando Claude Code carga una conversación desde su transcripción, la sesión reanudada restaura la conversación junto con el estado guardado en ella:

66 66 

67* Historial de conversación: el historial completo, incluidas las llamadas a herramientas y los resultados. Una herramienta que aún se estaba ejecutando cuando terminó el proceso anterior, por ejemplo en un bloqueo, no termina ni se ejecuta de nuevo cuando reanuda. Claude ve la llamada marcada como cortada antes de que se registrara su resultado y se le indica que verifique si tuvo efecto antes de ejecutarla de nuevo, a menos que [`CLAUDE_CODE_RESUME_INTERRUPTED_TURN`](/docs/es/env-vars#variables) esté configurado. Antes de v2.1.281, Claude Code eliminaba la llamada cortada de la conversación o se la mostraba a Claude como una que usted interrumpió.67* Historial de conversación: el historial completo, incluidas las llamadas a herramientas y los resultados. Una herramienta que aún se estaba ejecutando cuando terminó el proceso anterior, por ejemplo en un bloqueo, no termina ni se ejecuta de nuevo cuando reanudas. Claude ve la llamada marcada como cortada antes de que se registrara su resultado y se le indica que verifique si tuvo efecto antes de ejecutarla de nuevo, a menos que [`CLAUDE_CODE_RESUME_INTERRUPTED_TURN`](/docs/es/env-vars#variables) esté configurado. Antes de v2.1.281, Claude Code eliminaba la llamada cortada de la conversación o se la mostraba a Claude como una que tú interrumpiste.

68* Modelo: la sesión continúa en el modelo que estaba usando. El modelo no se restaura cuando ha sido retirado o no está permitido por `availableModels`, cuando una bandera `--model` o una variable de entorno de la familia `ANTHROPIC_MODEL` elige una en el lanzamiento, o en proveedores que usan ID de implementación específicos del proveedor, como [Amazon Bedrock, Google Cloud's Agent Platform y Microsoft Foundry](/docs/es/third-party-integrations); consulte [configuración de modelo](/docs/es/model-config#setting-your-model) para el orden de resolución.68* Modelo: la sesión continúa en el modelo que estaba usando, excepto en los casos descritos en [Configurar tu modelo](/docs/es/model-config#setting-your-model).

69* Agente: una sesión iniciada con [`--agent`](/docs/es/sub-agents#invoke-subagents-explicitly) o la configuración `agent` continúa como ese agente, manteniendo sus restricciones de herramientas y modelo. Pase `--agent` al reanudar para elegir uno diferente; para la solicitud del sistema en cualquier caso, consulte [Banderas de solicitud del sistema en conversaciones reanudadas](/docs/es/cli-reference#system-prompt-flags-in-resumed-conversations). Claude Code busca el agente en dos lugares: el directorio original de la sesión, siempre que haya [confiado en ese espacio de trabajo](/docs/es/permissions#project-allow-rules-and-workspace-trust), y luego el directorio desde el que reanuda, por lo que un agente con alcance de proyecto aún se carga cuando reanuda desde otro directorio. Si Claude Code no encuentra el agente en ninguno de los dos lugares, la sesión se reanuda con las herramientas predeterminadas y muestra una [advertencia que nombra el agente](/docs/es/errors#session-agent-no-longer-available).69* Agente: una sesión iniciada con [`--agent`](/docs/es/sub-agents#invoke-subagents-explicitly) o el ajuste `agent` continúa como ese agente, manteniendo sus restricciones de herramientas y modelo. Pasa `--agent` al reanudar para elegir uno diferente; para el prompt del sistema en cualquier caso, consulta [Flags del prompt del sistema en conversaciones reanudadas](/docs/es/cli-reference#system-prompt-flags-in-resumed-conversations). Claude Code busca el agente en dos lugares: el directorio original de la sesión, siempre que hayas [confiado en ese espacio de trabajo](/docs/es/permissions#project-allow-rules-and-workspace-trust), y luego el directorio desde el que reanudas, por lo que un agente con alcance de proyecto aún se carga cuando reanudas desde otro directorio. Si Claude Code no encuentra el agente en ninguno de los dos lugares, la sesión se reanuda con las herramientas predeterminadas y muestra una [advertencia que nombra el agente](/docs/es/errors#session-agent-no-longer-available).

70* Modo de permisos: si reanuda desde una terminal con `claude --continue`, `claude --resume <session-id>` o `claude --resume <name>` cuando el nombre coincide con una sesión, sin `-p`, Claude Code restaura el modo de permisos en el que estaba la sesión, excepto en los casos en [modo de permisos al reanudar](#permission-mode-on-resume), que también cubre el selector de sesiones, `/resume` y reanudar con `claude -p`. Pase `--permission-mode` o `--dangerously-skip-permissions` para anular el modo restaurado.70* Modo de permisos: si reanudas desde una terminal con `claude --continue`, `claude --resume <session-id>` o `claude --resume <name>` cuando el nombre coincide con una sesión, sin `-p`, Claude Code restaura el modo de permisos en el que estaba la sesión, excepto en los casos en [modo de permisos al reanudar](#permission-mode-on-resume), que también cubre el selector de sesiones, `/resume` y reanudar con `claude -p`. Pasa `--permission-mode` o `--dangerously-skip-permissions` para sobrescribir el modo restaurado.

71* Objetivo activo: un [objetivo](/docs/es/goal#resume-with-an-active-goal) que aún estaba activo cuando terminó la sesión se transfiere; su recuento de turnos, temporizador y línea base de gasto de tokens se reinician.71* Objetivo activo: un [objetivo](/docs/es/goal#resume-with-an-active-goal) que aún estaba activo cuando terminó la sesión se transfiere; su recuento de turnos, temporizador y línea base de gasto de tokens se reinician.

72* Tareas programadas: [tareas que no han expirado](/docs/es/scheduled-tasks#limitations) se restauran. Las tareas de Bash en segundo plano y de monitoreo no.72* Tareas programadas: [las tareas que no han expirado](/docs/es/scheduled-tasks#limitations) se restauran. Las tareas de Bash en segundo plano y de monitoreo no.

73* Trabajo en segundo plano: un [subagente en segundo plano](/docs/es/sub-agents#run-subagents-in-foreground-or-background), comando Bash en segundo plano, o [flujo de trabajo](/docs/es/workflows) que terminó con el proceso anterior aparece en la transcripción reanudada como una nota de que no terminó. Claude Code no inicia un turno a partir de esas notas; Claude las lee con su siguiente solicitud.73* Trabajo en segundo plano: un [subagente en segundo plano](/docs/es/sub-agents#run-subagents-in-foreground-or-background), comando Bash en segundo plano o [flujo de trabajo](/docs/es/workflows) que terminó con el proceso anterior aparece en la transcripción reanudada como una nota de que no terminó. Claude Code no inicia un turno a partir de esas notas; Claude las lee con tu siguiente prompt.

74 74 

75No se restaura cada bandera de configuración del lanzamiento original. Si la sesión dependía de `--mcp-config`, `--settings`, `--plugin-dir`, `--fallback-model` o directorios agregados con `--add-dir`, páselos de nuevo cuando reanude; los directorios agregados a mitad de sesión con `/add-dir` tampoco se restauran, aunque el selector de sesiones aún los usa para localizar la sesión. Los archivos de configuración estándar, como `settings.json` y `settings.local.json`, se leen nuevamente en el lanzamiento, por lo que la configuración que vive en ellos no necesita pasarse de nuevo. Para `--system-prompt` y `--append-system-prompt`, consulte [Banderas de solicitud del sistema en conversaciones reanudadas](/docs/es/cli-reference#system-prompt-flags-in-resumed-conversations).75No se restaura cada flag de configuración del lanzamiento original. Si la sesión dependía de `--mcp-config`, `--settings`, `--plugin-dir`, `--fallback-model` o directorios agregados con `--add-dir`, pásalos de nuevo cuando reanudes; los directorios agregados a mitad de sesión con `/add-dir` tampoco se restauran, aunque el selector de sesiones aún los usa para localizar la sesión. Los archivos de configuración estándar, como `settings.json` y `settings.local.json`, se leen nuevamente en el lanzamiento, por lo que la configuración que vive en ellos no necesita pasarse de nuevo. Para `--system-prompt` y `--append-system-prompt`, consulta [Flags del prompt del sistema en conversaciones reanudadas](/docs/es/cli-reference#system-prompt-flags-in-resumed-conversations).

76 76 

77<h4 id="permission-mode-on-resume">77<h4 id="permission-mode-on-resume">

78 Modo de permisos al reanudar78 Modo de permisos al reanudar

79</h4>79</h4>

80 80 

81El modo de permisos en el que Claude Code inicia una sesión reanudada depende de cómo reanude. Los casos a continuación se aplican cuando Claude Code carga la conversación desde su transcripción; cuando [abre una sesión en segundo plano que aún se está ejecutando](#resume-a-running-background-session) en su lugar, esa sesión mantiene el modo de permisos en el que está.81El modo de permisos en el que Claude Code inicia una sesión reanudada depende de cómo reanudes. Los casos a continuación se aplican cuando Claude Code carga la conversación desde su transcripción; cuando en su lugar [abres una sesión en segundo plano que aún se está ejecutando](#resume-a-running-background-session), esa sesión mantiene el modo de permisos en el que está.

82 82 

83* Terminal: `claude --continue`, `claude --resume <session-id>` o `claude --resume <name>` cuando el nombre coincide con una sesión, sin `-p`. Claude Code restaura el modo de permisos en el que estaba la sesión, excepto en los casos de la tabla. Pase `--permission-mode` o `--dangerously-skip-permissions` para anular el modo restaurado.83* Terminal: `claude --continue`, `claude --resume <session-id>` o `claude --resume <name>` cuando el nombre coincide con una sesión, sin `-p`. Claude Code restaura el modo de permisos en el que estaba la sesión, excepto en los casos de la tabla. Pasa `--permission-mode` o `--dangerously-skip-permissions` para sobrescribir el modo restaurado.

84* No interactivo: `claude -p --resume` o `claude -p --continue`. Claude Code inicia la ejecución en el modo de permisos en el que se iniciaría una nueva ejecución de `claude -p`, excepto que una sesión que terminó en modo de plan se reanuda en modo de plan bajo las [condiciones a continuación](#resume-in-plan-mode-with-p).84* No interactivo: `claude -p --resume` o `claude -p --continue`. Claude Code inicia la ejecución en el modo de permisos en el que se iniciaría una nueva ejecución de `claude -p`, excepto que una sesión que terminó en modo plan se reanuda en modo plan bajo las [condiciones a continuación](#resume-in-plan-mode-with-p).

85* VS Code: el panel de conversación de la extensión. La tabla cubre solo una conversación que terminó en modo de plan; para el resto, consulte [reanudar conversaciones pasadas](/docs/es/vs-code#resume-past-conversations).85* VS Code: el panel de conversación de la extensión. La tabla cubre solo una conversación que terminó en modo plan; para el resto, consulta [reanudar conversaciones pasadas](/docs/es/vs-code#resume-past-conversations).

86* Selector de sesiones en el lanzamiento: una sesión que selecciona del [selector de sesiones](#use-the-session-picker), ya sea que lo haya abierto con `claude --resume` solo, `claude --from-pr` o un nombre que coincida con más de una sesión. Claude Code no restaura el modo de permisos almacenado. Inicia la sesión en el modo de permisos en el que iniciaría una nueva sesión desde la misma línea de comandos.86* Selector de sesiones en el lanzamiento: una sesión que seleccionas del [selector de sesiones](#use-the-session-picker), ya sea que lo hayas abierto con `claude --resume` solo, `claude --from-pr` o un nombre que coincida con más de una sesión. Claude Code inicia la sesión en el modo de permisos en el que iniciaría una nueva sesión desde la misma línea de comandos, excepto que una sesión que terminó en modo plan se reanuda en modo plan a menos que pases `--permission-mode`, `--dangerously-skip-permissions` o `--fork-session`. No se restaura ningún otro modo de permisos almacenado.

87* `/resume` dentro de una sesión, con o sin argumento: Claude Code no restaura el modo de permisos almacenado. La conversación a la que cambia continúa en el modo de permisos en el que está su sesión actual.87* `/resume` dentro de una sesión, con o sin argumento: la conversación a la que cambias continúa en el modo de permisos en el que está tu sesión actual, excepto que una conversación que terminó en modo plan se reanuda en modo plan, incluso si iniciaste Claude Code con `--permission-mode` o `--dangerously-skip-permissions`. Si esa conversación ya estaba abierta antes en esta ejecución de Claude Code, como la conversación con la que empezaste o una que dejaste con `/clear` o `/resume`, continúa en cambio en tu modo de permisos actual.

88 88 

89Restaurar el modo de plan en las rutas no interactivas y VS Code requiere Claude Code v2.1.246 o posterior. Cada fila nombra el modo de permisos en el que terminó la sesión, cuál de las rutas de terminal, no interactiva y VS Code la reanuda, y el modo de permisos en el que Claude Code inicia la sesión reanudada.89Restaurar el modo plan en las rutas no interactiva y de VS Code requiere Claude Code v2.1.246 o posterior. Cada fila nombra el modo de permisos en el que terminó la sesión, por cuál de las rutas de terminal, no interactiva y VS Code la reanudas, y el modo de permisos en el que Claude Code inicia la sesión reanudada.

90 90 

91| Sesión terminada en | Cómo reanuda | Modo de permisos después de reanudar |91| Sesión terminada en | Cómo la reanudas | Modo de permisos después de reanudar |

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

93| `bypassPermissions` | Terminal | El modo de permisos en el que se iniciaría una nueva sesión. Para [omitir permisos](/docs/es/permission-modes#skip-all-checks-with-bypasspermissions-mode) de nuevo, habilítelo en el lanzamiento con una de sus banderas de lanzamiento o `permissions.defaultMode: "bypassPermissions"` en [configuración de usuario, `--settings` o configuración administrada](/docs/es/settings-reference#permissions-defaultmode) |93| `bypassPermissions` | Terminal | El modo de permisos en el que se iniciaría una nueva sesión. Para [omitir permisos](/docs/es/permission-modes#skip-all-checks-with-bypasspermissions-mode) de nuevo, habilítalo en el lanzamiento con uno de sus flags de lanzamiento o `permissions.defaultMode: "bypassPermissions"` en [configuración de usuario, `--settings` o configuración administrada](/docs/es/settings-reference#permissions-defaultmode) |

94| `plan` | Terminal | El modo de permisos en el que se iniciaría una nueva sesión |94| `plan` | Terminal | Modo plan. Con `--fork-session`, el modo de permisos en el que se iniciaría una nueva sesión |

95| `auto` | Terminal | `auto`, solo cuando su cuenta aún cumple con los [requisitos del modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode) |95| `auto` | Terminal | `auto`, solo cuando tu cuenta aún cumple con los [requisitos del modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode) |

96| Manual | Terminal | Manual cuando una nueva sesión se iniciaría en modo automático desde el [valor predeterminado integrado](/docs/es/permission-modes#which-mode-a-session-starts-in). Cuando un `defaultMode` de un archivo de configuración [entra en vigor](/docs/es/permission-modes#which-mode-a-session-starts-in), Claude Code inicia la sesión reanudada en ese modo en su lugar |96| Manual | Terminal | Manual cuando una nueva sesión se iniciaría en modo automático desde el [valor predeterminado integrado](/docs/es/permission-modes#which-mode-a-session-starts-in). Cuando un `defaultMode` de un archivo de configuración [entra en vigor](/docs/es/permission-modes#which-mode-a-session-starts-in), Claude Code inicia la sesión reanudada en ese modo en su lugar |

97| `plan` | No interactivo, bajo las [condiciones a continuación](#resume-in-plan-mode-with-p) | Modo de plan |97| `plan` | No interactivo, bajo las [condiciones a continuación](#resume-in-plan-mode-with-p) | Modo plan |

98| Cualquier modo | No interactivo, en cualquier otro caso | El modo de permisos en el que se iniciaría una nueva ejecución de `claude -p` |98| Cualquier modo | No interactivo, en cualquier otro caso | El modo de permisos en el que se iniciaría una nueva ejecución de `claude -p` |

99| `plan` | VS Code | Modo de plan, con [las excepciones en la página de VS Code](/docs/es/vs-code#resume-past-conversations) |99| `plan` | VS Code | Modo plan, con [las excepciones en la página de VS Code](/docs/es/vs-code#resume-past-conversations) |

100 

101<a id="resume-in-plan-mode-with-p" />

100 102 

101<h5 id="resume-in-plan-mode-with-p">103<h5 id="resume-in-plan-mode-with-p">

102 Reanude en modo de plan con `-p`104 Reanuda en modo plan con `-p`

103</h5>105</h5>

104 106 

105Una ejecución de `claude -p --resume` o `claude -p --continue` se reanuda en modo de plan solo cuando se cumplen todas estas condiciones:107Una ejecución de `claude -p --resume` o `claude -p --continue` se reanuda en modo plan solo cuando se cumplen todas estas condiciones:

106 108 

107* Pasa [`--permission-prompt-tool`](/docs/es/cli-reference#cli-flags) y no pasa [`--permission-prompts none`](/docs/es/headless#turn-off-permission-prompts-in-unattended-runs), para que Claude Code pueda presentar el plan para aprobación109* Pasas [`--permission-prompt-tool`](/docs/es/cli-reference#cli-flags) y no pasas [`--permission-prompts none`](/docs/es/headless#turn-off-permission-prompts-in-unattended-runs), para que Claude Code pueda presentar el plan para aprobación

108* No pasa `--permission-mode` o `--dangerously-skip-permissions`110* No pasas `--permission-mode` ni `--dangerously-skip-permissions`

109* No pasa `--fork-session`111* No pasas `--fork-session`

110* La ejecución no se inicia a través de [canales](/docs/es/channels)112* La ejecución no se inicia a través de [canales](/docs/es/channels)

111 113 

112<h3 id="resume-from-a-summary">114<h3 id="resume-from-a-summary">

113 Reanude desde un resumen115 Reanuda desde un resumen

114</h3>116</h3>

115 117 

116En un plan Pro o Max, cuando reanuda una sesión que ha estado inactiva durante más de una hora aproximadamente y tiene más de 100,000 tokens, Claude Code restaura la conversación y luego abre un diálogo antes de enviar su primer mensaje. La [caché de solicitud](/docs/es/prompt-caching#cache-lifetime) de la sesión habrá expirado para entonces, por lo que la siguiente solicitud procesa el historial completo una vez sin importar cuál de las opciones del diálogo elija.118En un plan Pro o Max, cuando reanudas una sesión que ha estado inactiva durante más de una hora aproximadamente y tiene más de 100,000 tokens, Claude Code restaura la conversación y luego abre un diálogo antes de que envíes tu primer mensaje. La [caché de prompts](/docs/es/prompt-caching#cache-lifetime) de la sesión habrá expirado para entonces, por lo que la siguiente solicitud procesa el historial completo una vez sin importar cuál de las opciones del diálogo elijas.

117 119 

118El diálogo ofrece tres formas de continuar la sesión. Difieren en cuánta parte de la conversación cada una lleva adelante en solicitudes posteriores, lo que es un equilibrio entre mantener cada detalle y enviar menos tokens por solicitud:120El diálogo ofrece tres formas de continuar la sesión. Difieren en cuánta parte de la conversación cada una lleva adelante en solicitudes posteriores, lo que es un equilibrio entre mantener cada detalle y enviar menos tokens por solicitud:

119 121 

120* **Reanude desde resumen**: ejecuta [`/compact`](/docs/es/context-window#what-survives-compaction) inmediatamente. Claude Code envía una solicitud de resumen sobre el historial completo, luego reemplaza el historial con el resumen, sus intercambios más recientes y hasta cinco archivos leídos recientemente. Las solicitudes posteriores llevan el resumen en lugar del historial completo.122* **Reanudar desde resumen**: ejecuta [`/compact`](/docs/es/context-window#what-survives-compaction) inmediatamente. Claude Code envía una solicitud de resumen sobre el historial completo, luego reemplaza el historial con el resumen, tus intercambios más recientes y hasta cinco archivos leídos recientemente. Las solicitudes posteriores llevan el resumen en lugar del historial completo.

121* **Reanude la sesión completa tal como está**: carga la conversación sin cambios. Después de enviar su primer mensaje, Claude Code reprocesa y almacena en caché nuevamente el historial completo, luego lo relee de la caché en solicitudes posteriores mientras la caché se mantiene activa.123* **Reanudar la sesión completa tal como está**: carga la conversación sin cambios. Después de que envíes tu primer mensaje, Claude Code reprocesa y almacena en caché nuevamente el historial completo, luego lo relee de la caché en solicitudes posteriores mientras la caché se mantiene activa.

122* **No me preguntes de nuevo**: reanuda la sesión completa y deja de mostrar el diálogo en todos los reanudos futuros.124* **No me preguntes de nuevo**: reanuda la sesión completa y deja de mostrar el diálogo en todas las reanudaciones futuras.

123 125 

124Reanudar tal como está mantiene cada detalle de la conversación disponible, a un costo por solicitud que se escala con el tamaño de la conversación. Reanudar desde el resumen cuesta menos en cada solicitud posterior porque lleva el resumen en lugar del historial completo, pero lo que sea que el resumen deje fuera ya no está en el contexto de Claude. Consulte [por qué el uso aumenta en una sesión larga](/docs/es/costs#why-usage-climbs-in-a-long-session) para saber de dónde proviene ese costo por solicitud.126Reanudar tal como está mantiene cada detalle de la conversación disponible, a un costo por solicitud que escala con el tamaño de la conversación. Reanudar desde el resumen cuesta menos en cada solicitud posterior porque lleva el resumen en lugar del historial completo, pero lo que sea que el resumen deje fuera ya no está en el contexto de Claude. Consulta [por qué el uso aumenta en una sesión larga](/docs/es/costs#why-usage-climbs-in-a-long-session) para saber de dónde proviene ese costo por solicitud.

125 127 

126<h3 id="where-the-session-picker-looks">128<h3 id="where-the-session-picker-looks">

127 Dónde busca el selector de sesiones129 Dónde busca el selector de sesiones


132* Sesiones del worktree actual, incluidas [sesiones en segundo plano](/docs/es/agent-view), que están marcadas como `bg` en la lista134* Sesiones del worktree actual, incluidas [sesiones en segundo plano](/docs/es/agent-view), que están marcadas como `bg` en la lista

133* Sesiones iniciadas en otro lugar que agregaron el directorio actual con `/add-dir`135* Sesiones iniciadas en otro lugar que agregaron el directorio actual con `/add-dir`

134 136 

135Use `Ctrl+W` para ampliar a todos los worktrees del repositorio o `Ctrl+A` para ampliar a cada proyecto en esta máquina.137Usa `Ctrl+W` para ampliar a todos los worktrees del repositorio o `Ctrl+A` para ampliar a cada proyecto en esta máquina.

136 138 

137Las sesiones cuya primera solicitud fue un comando [`/loop`](/docs/es/scheduled-tasks#run-a-prompt-repeatedly-with-%2Floop) no aparecen en el selector, y `claude --continue` también las omite. Ejecutar `/loop` más adelante en una conversación no oculta la sesión. Antes de v2.1.211, una ejecución de `/loop` al principio de una conversación ocultaba la sesión del selector de forma permanente.139Las sesiones cuyo primer prompt fue un comando [`/loop`](/docs/es/scheduled-tasks#run-a-prompt-repeatedly-with-%2Floop) no aparecen en el selector, y `claude --continue` también las omite. Ejecutar `/loop` más adelante en una conversación no oculta la sesión. Antes de v2.1.211, una ejecución de `/loop` al principio de una conversación ocultaba la sesión del selector de forma permanente.

138 140 

139Mover una sesión con [`/cd`](/docs/es/commands) la traslada al almacenamiento del proyecto del nuevo directorio, por lo que aparece en el selector de ese directorio después. A partir de v2.1.196, una sesión movida se mantiene fuera del selector del directorio anterior incluso después de un bloqueo o salida forzada. En versiones anteriores, también podría reaparecer en la lista del directorio anterior después de una salida que no fue limpia cuando la ruta anterior contenía caracteres especiales como guiones bajos.141Mover una sesión con [`/cd`](/docs/es/commands) la traslada al almacenamiento del proyecto del nuevo directorio, por lo que aparece en el selector de ese directorio después. A partir de v2.1.196, una sesión movida se mantiene fuera del selector del directorio anterior incluso después de un bloqueo o salida forzada. En versiones anteriores, también podía reaparecer en la lista del directorio anterior después de una salida que no fue limpia cuando la ruta anterior contenía caracteres especiales como guiones bajos.

140 142 

141Cuando selecciona una sesión de otro worktree del mismo repositorio, Claude Code la reanuda en su lugar; cuando el propio worktree de la sesión ya no existe, Claude Code [la reanuda en su directorio actual](/docs/es/worktrees#resume-a-worktree-session). Cuando selecciona una sesión de un proyecto no relacionado, Claude Code copia un comando `cd` y reanuda a su portapapeles en su lugar. Si el directorio de ese proyecto ya no existe, Claude Code reanuda la sesión en su directorio actual en lugar de copiar un comando `cd` que fallaría.143Cuando seleccionas una sesión de otro worktree del mismo repositorio, Claude Code la reanuda en su lugar; cuando el propio worktree de la sesión ya no existe, Claude Code [la reanuda en tu directorio actual](/docs/es/worktrees#resume-a-worktree-session). Cuando seleccionas una sesión de un proyecto no relacionado, Claude Code copia en cambio un comando `cd` y de reanudación a tu portapapeles. Si el directorio de ese proyecto ya no existe, Claude Code reanuda la sesión en tu directorio actual en lugar de copiar un comando `cd` que fallaría.

142 144 

143Reanudar por nombre se resuelve en el repositorio actual y sus worktrees. Ambas formas buscan una coincidencia exacta y la reanudan directamente incluso si vive en un worktree diferente:145Reanudar por nombre se resuelve en el repositorio actual y sus worktrees. Ambas formas buscan una coincidencia exacta y la reanudan directamente incluso si vive en un worktree diferente:

144 146 

145| Comando | Coincidencia exacta | Nombre ambiguo |147| Comando | Coincidencia exacta | Nombre ambiguo |

146| :- | :- | :- |148| :- | :- | :- |

147| `claude --resume <name>` | Reanuda directamente | Abre el selector de sesiones con el nombre rellenado previamente como término de búsqueda |149| `claude --resume <name>` | Reanuda directamente | Abre el selector de sesiones con el nombre rellenado previamente como término de búsqueda |

148| `/resume <name>` | Reanuda directamente | Reporta un error; ejecute `/resume` sin argumentos para abrir el selector de sesiones |150| `/resume <name>` | Reanuda directamente | Reporta un error; ejecuta `/resume` sin argumentos para abrir el selector de sesiones |

149 151 

150<h2 id="name-your-sessions">152<h2 id="name-your-sessions">

151 Nombre sus sesiones153 Nombre sus sesiones

settings.md +64 −62

Details

407| Usuario | `~/.claude/settings.json` | Usted, en cada proyecto en esta máquina | Preferencias personales: tema, modo de editor, modelo predeterminado, sus propias reglas de permiso |407| Usuario | `~/.claude/settings.json` | Usted, en cada proyecto en esta máquina | Preferencias personales: tema, modo de editor, modelo predeterminado, sus propias reglas de permiso |

408| Proyecto compartido | `.claude/settings.json` | Todos los que trabajan en la carpeta que lo contiene. En un repositorio de git, confirme para que los compañeros de equipo lo obtengan | Permisos de equipo, hooks, plugins y las variables de entorno que el proyecto necesita |408| Proyecto compartido | `.claude/settings.json` | Todos los que trabajan en la carpeta que lo contiene. En un repositorio de git, confirme para que los compañeros de equipo lo obtengan | Permisos de equipo, hooks, plugins y las variables de entorno que el proyecto necesita |

409| Proyecto local | `.claude/settings.local.json` | Usted, solo en este proyecto. Claude Code lo mantiene fuera de git cuando crea el archivo; si lo crea a mano, agréguelo a `.gitignore` usted mismo | Anulaciones personales para un proyecto y pruebas antes de compartir |409| Proyecto local | `.claude/settings.local.json` | Usted, solo en este proyecto. Claude Code lo mantiene fuera de git cuando crea el archivo; si lo crea a mano, agréguelo a `.gitignore` usted mismo | Anulaciones personales para un proyecto y pruebas antes de compartir |

410| Administrado | `managed-settings.json` y otros [mecanismos de entrega](/docs/es/managed-settings#delivery-mechanisms) | Todos en su organización a los que lo implementa; nada de lo que establezca lo anula, aparte de algunas [excepciones sensibles a la seguridad](#exceptions-to-managed-settings-precedence) | Política de seguridad y requisitos de cumplimiento |410| Administrado | `managed-settings.json` y otras [fuentes administradas](/docs/es/managed-settings#delivery-mechanisms) | Todos aquellos a quienes tu organización lo implementa; [Precedencia de la configuración](#settings-precedence) indica qué puede sobrescribirlo | Políticas de seguridad y requisitos de cumplimiento |

411 411 

412En la columna Archivo, `~/.claude` es la carpeta `.claude` en su directorio de inicio, y un `.claude` simple es la carpeta `.claude` dentro de su proyecto.412En la columna Archivo, `~/.claude` es la carpeta `.claude` en su directorio de inicio, y un `.claude` simple es la carpeta `.claude` dentro de su proyecto.

413 413 


653 Precedencia de configuración653 Precedencia de configuración

654</h2>654</h2>

655 655 

656Cuando la misma clave aparece en más de un lugar, Claude Code usa el valor del nivel más alto que la establece. La pila a continuación muestra los niveles, más alto en la parte superior; una clave en un nivel más alto anula la misma clave en cualquier lugar debajo.656Cuando la misma clave aparece en más de un lugar, Claude Code usa el valor del nivel más alto que la establece. La pila a continuación muestra los niveles, con el más alto en la parte superior; una clave en un nivel más alto sobrescribe la misma clave en cualquier lugar debajo de él.

657 657 

658<SettingsPrecedence />658<SettingsPrecedence />

659 659 

660En orden, precedencia más alta primero:660En orden, precedencia más alta primero:

661 661 

6621. **Configuraciones administradas**: configuraciones que su organización implementa, por un archivo `managed-settings.json`, una política MDM, o [configuraciones administradas por servidor](/docs/es/server-managed-settings) de la consola de claude.ai. Nada de lo que establezca las anula: una clave que pasa con `--settings` no anula la misma clave administrada, y una bandera como `--model` elige solo de los modelos que su organización permite. Una `model` administrada establece el modelo con el que cada sesión comienza, y aún puede cambiar con `/model`; el bloqueo es [`availableModels`](/docs/es/settings-reference#availablemodels), que restringe `/model`, `--model` y la clave `model` en sus propios archivos. Cuando su organización entrega más de una fuente administrada, las reglas para [precedencia dentro del nivel administrado](/docs/es/managed-settings#precedence-within-the-managed-tier) dicen qué lee Claude Code de cada una.6621. **Configuración administrada**: configuración que tu organización implementa mediante un archivo `managed-settings.json`, una política MDM o [configuración administrada por el servidor](/docs/es/server-managed-settings) desde la consola de claude.ai. Nada en tus propios archivos de configuración ni en `--settings` sobrescribe una clave administrada, y un flag como `--model` solo elige entre los modelos que tu organización permite. Un [`model`](/docs/es/settings-reference#model) administrado es un valor predeterminado inicial, no un bloqueo; los bloqueos son [`availableModels`](/docs/es/settings-reference#availablemodels) y [`deniedModels`](/docs/es/settings-reference#deniedmodels). Cuando tu organización entrega más de una fuente administrada, las reglas de [precedencia dentro del nivel administrado](/docs/es/managed-settings#precedence-within-the-managed-tier) indican qué lee Claude Code de cada una.

6632. **Argumentos de línea de comandos**: banderas que pasa cuando inicia `claude` desde una terminal, para una sesión; vea [Cambie una configuración para una sesión](#change-a-setting-for-one-session). Claude Code fusiona JSON que pasa con `--settings <file-or-json>` con sus archivos de configuración por las mismas reglas que los otros niveles: toma una clave que establece aquí sobre la misma clave en configuraciones locales, de proyecto o de usuario, y mantiene el valor de nivel inferior para una clave que omite.6632. **Línea de comandos**: JSON que pasas con `--settings <file-or-json>` al iniciar `claude`, solo para esa sesión; consulta [Cambiar un ajuste para una sesión](#change-a-setting-for-one-session). Una clave que estableces ahí sobrescribe la misma clave en tus archivos de configuración de proyecto y de usuario, y una clave que omites conserva su valor de esos archivos. Otros flags, como `--model`, establecen una sola cosa para la sesión y no forman parte de esta pila; la entrada de cada clave en la [referencia de configuración](/docs/es/settings-reference) indica qué flags la sobrescriben.

6643. **Configuraciones locales de proyecto** (`.claude/settings.local.json`): sus configuraciones personales para este proyecto.6643. **Configuración local del proyecto** (`.claude/settings.local.json`): tu configuración personal para este proyecto.

6654. **Configuraciones compartidas de proyecto** (`.claude/settings.json`): configuraciones que su equipo verifica en el control de código fuente.6654. **Configuración compartida del proyecto** (`.claude/settings.json`): configuración que tu equipo registra en el control de código fuente.

6665. **Configuraciones de usuario** (`~/.claude/settings.json`): sus configuraciones personales para cada proyecto.6665. **Configuración de usuario** (`~/.claude/settings.json`): tu configuración personal para todos los proyectos.

667 667 

668Las variables de entorno no son un nivel en esta pila. Cuando un comportamiento tiene tanto una variable de shell como una clave de configuración, cuál se aplica se decide por par, no por nivel: `ANTHROPIC_MODEL` exportada en su shell se aplica sobre la clave `model` de cualquier archivo, mientras que `ANTHROPIC_DEFAULT_MODEL` se aplica solo cuando ningún archivo establece `model`. La [referencia de variables de entorno](/docs/es/env-vars#precedence) dice qué claves tienen un par y cuál lee Claude Code primero. Un bloque `env` dentro de un archivo de configuración es una clave ordinaria y sigue los niveles anteriores.668Las variables de entorno no son un nivel en esta pila. Cuando un comportamiento tiene tanto una variable de shell como una clave de configuración, cuál se aplica se decide por par, no por nivel: `ANTHROPIC_MODEL` exportada en tu shell se aplica sobre la clave `model` de cualquier archivo, mientras que `ANTHROPIC_DEFAULT_MODEL` se aplica solo cuando ningún archivo establece `model`. La [referencia de variables de entorno](/docs/es/env-vars#precedence) indica qué claves tienen un par y cuál lee Claude Code primero. Un bloque `env` dentro de un archivo de configuración es una clave ordinaria y sigue los niveles anteriores.

669 669 

670Para algunas claves sensibles a la seguridad, Claude Code honra un valor más estricto de un nivel inferior sobre un valor administrado; [Excepciones a la precedencia de configuraciones administradas](#exceptions-to-managed-settings-precedence) las enumera.670Para algunas claves sensibles a la seguridad, Claude Code honra un valor más estricto de un nivel inferior sobre un valor administrado; [Excepciones a la precedencia de la configuración administrada](#exceptions-to-managed-settings-precedence) las enumera.

671 671 

672<h3 id="lists-merge-instead-of-overriding">672<h3 id="lists-merge-instead-of-overriding">

673 Las listas se fusionan en lugar de anular673 Las listas se fusionan en lugar de sobrescribirse

674</h3>674</h3>

675 675 

676Cuando establece la misma clave de lista, como `permissions.allow`, en más de un archivo, Claude Code combina las listas en lugar de elegir una, por lo que cada archivo puede agregar entradas sin eliminar las de otro archivo. Cuatro claves que contienen listas de modelos o entradas por modelo siguen sus propias reglas:676Cuando estableces la misma clave de lista, como `permissions.allow`, en más de un archivo, Claude Code combina las listas en lugar de elegir una, por lo que cada archivo puede agregar entradas sin eliminar las de otro archivo. Cuatro claves que contienen listas de modelos o entradas por modelo siguen sus propias reglas:

677 677 

678* [`fallbackModel`](/docs/es/settings-reference#fallbackmodel) es una cadena ordenada donde la posición tiene significado, por lo que Claude Code toma el valor completo del archivo de mayor precedencia que la define.678* [`fallbackModel`](/docs/es/settings-reference#fallbackmodel) es una cadena ordenada donde la posición tiene significado, por lo que Claude Code toma el valor completo del archivo de mayor precedencia que la define.

679* [`modelPicker`](/docs/es/settings-reference#modelpicker) contiene una lista ordenada de filas más una bandera de reemplazo, por lo que Claude Code nunca fusiona filas de dos fuentes. Toma el valor completo del más alto de configuraciones administradas, `--settings` y configuraciones de usuario que la define, e ignora la clave en configuraciones de proyecto y local. Requiere Claude Code v2.1.242 o posterior.679* [`modelPicker`](/docs/es/settings-reference#modelpicker) contiene una lista ordenada de filas más una bandera de reemplazo, por lo que Claude Code nunca fusiona filas de dos fuentes. Toma el valor completo del nivel más alto, entre la configuración administrada, `--settings` y la configuración de usuario, que la define, e ignora la clave en la configuración de proyecto y local. Requiere Claude Code v2.1.242 o posterior.

680* [`availableModels`](/docs/es/settings-reference#availablemodels): cuando las configuraciones administradas que Claude Code aplica la definen, Claude Code aplica esa lista tal cual e ignora entradas que agrega en configuraciones de usuario, proyecto o local, a menos que una aplicación que incrusta Claude Code suministre su propia lista de modelos; vea [Excepciones a la precedencia de configuraciones administradas](#exceptions-to-managed-settings-precedence). Entre fuentes administradas la lista nunca se fusiona tampoco; [cómo Claude Code combina fuentes administradas](/docs/es/managed-settings#how-claude-code-combines-managed-sources) dice qué lista de fuente se aplica. Entre ámbitos no administrados Claude Code fusiona las matrices como de costumbre.680* [`availableModels`](/docs/es/settings-reference#availablemodels): cuando la configuración administrada que Claude Code aplica la define, Claude Code aplica esa lista tal cual e ignora las entradas que agregas en la configuración de usuario, de proyecto o local, a menos que una aplicación que incrusta Claude Code suministre su propia lista de modelos; consulta [Excepciones a la precedencia de la configuración administrada](#exceptions-to-managed-settings-precedence). Entre fuentes administradas la lista tampoco se fusiona nunca; [cómo Claude Code combina fuentes administradas](/docs/es/managed-settings#how-claude-code-combines-managed-sources) indica la lista de qué fuente se aplica. Entre alcances no administrados, Claude Code fusiona las matrices como de costumbre.

681* [`modelSettings`](/docs/es/settings-reference#modelsettings): Claude Code la resuelve un modelo a la vez, junto con [`effortLevel`](/docs/es/settings-reference#effortlevel). La entrada `modelSettings` indica qué archivo de valor se aplica a un modelo.681* [`modelSettings`](/docs/es/settings-reference#modelsettings): Claude Code la resuelve un modelo a la vez, junto con [`effortLevel`](/docs/es/settings-reference#effortlevel). La entrada `modelSettings` indica el valor de qué archivo se aplica a un modelo.

682 682 

683<span id="examples" />683<span id="examples" />

684 684 


686 Ejemplos de precedencia686 Ejemplos de precedencia

687</h3>687</h3>

688 688 

689Mientras Claude trabaja, Claude Code muestra un consejo de una línea bajo el spinner, como "Use /config para cambiar su modo de permiso predeterminado (incluyendo Plan Mode)". Suponga que desea esos consejos apagados, por lo que establece [`spinnerTipsEnabled`](/docs/es/settings-reference#spinnertipsenabled) en `false` en `~/.claude/settings.json`. Cada escenario a continuación es algo que puede encenderlos de nuevo, y qué puede hacer al respecto.689Mientras Claude trabaja, Claude Code muestra un consejo de una línea bajo el spinner, como "Use /config to change your default permission mode (including Plan Mode)". Supón que quieres desactivar esos consejos, así que estableces [`spinnerTipsEnabled`](/docs/es/settings-reference#spinnertipsenabled) en `false` en `~/.claude/settings.json`. Cada escenario a continuación es algo que puede volver a activarlos, junto con lo que puedes hacer al respecto.

690 690 

691<h4 id="team-settings-override-personal-settings">691<h4 id="team-settings-override-personal-settings">

692 Las configuraciones de equipo anulan las configuraciones personales692 La configuración del equipo sobrescribe la configuración personal

693</h4>693</h4>

694 694 

695El `.claude/settings.json` de su equipo lo establece en `true`. Claude Code usa el valor del proyecto porque el proyecto compartido se sienta sobre el usuario, por lo que ve consejos en ese proyecto y en ningún otro lugar.695El `.claude/settings.json` de tu equipo lo establece en `true`. Claude Code usa el valor del proyecto porque el proyecto compartido está por encima del usuario, así que ves consejos en ese proyecto y en ningún otro lugar.

696 696 

697Puede recuperar su valor: agregue `"spinnerTipsEnabled": false` a `.claude/settings.local.json` en ese proyecto. El proyecto local se sienta sobre el proyecto compartido, por lo que sus sesiones allí dejan de mostrar consejos y las sesiones de sus compañeros de equipo no cambian.697Puedes recuperar tu valor: agrega `"spinnerTipsEnabled": false` a `.claude/settings.local.json` en ese proyecto. El proyecto local está por encima del proyecto compartido, así que tus sesiones allí dejan de mostrar consejos y las sesiones de tus compañeros de equipo no cambian.

698 698 

699<h4 id="organization-settings-override-everything">699<h4 id="organization-settings-override-everything">

700 Las configuraciones de la organización anulan todo700 La configuración de la organización sobrescribe todo

701</h4>701</h4>

702 702 

703Las configuraciones administradas de su organización lo establecen en `true`. Nada de lo que ponga en configuraciones de usuario, proyecto o local apaga los consejos, y tampoco `--settings`. Administrado es el nivel superior.703La configuración administrada de tu organización lo establece en `true`. Nada de lo que pongas en la configuración de usuario, de proyecto o local desactiva los consejos, y `--settings` tampoco. La configuración administrada es el nivel superior.

704 704 

705No puede recuperar su valor. Ejecute `/status` para ver qué fuente administrada se aplica, y pregunte a su administrador si la política debería cambiar.705No puedes recuperar tu valor. Ejecuta `/status` para ver qué fuente administrada se aplica, y pregunta a tu administrador si la política debería cambiar.

706 706 

707<h4 id="the-command-line-overrides-your-files-for-one-session">707<h4 id="the-command-line-overrides-your-files-for-one-session">

708 La línea de comandos anula sus archivos para una sesión708 La línea de comandos sobrescribe tus archivos para una sesión

709</h4>709</h4>

710 710 

711Inició la sesión con `claude --settings '{"spinnerTipsEnabled": true}'`. La línea de comandos se sienta sobre cada archivo excepto administrado, por lo que esa sesión muestra consejos aunque sus archivos digan `false`.711Iniciaste la sesión con `claude --settings '{"spinnerTipsEnabled": true}'`. La línea de comandos está por encima de todos los archivos excepto la configuración administrada, así que esa sesión muestra consejos aunque tus archivos digan `false`.

712 712 

713Recupera su valor en la siguiente sesión; `--settings` dura una sesión y no escribe en ningún archivo.713Recuperas tu valor en la siguiente sesión; `--settings` dura una sesión y no escribe en ningún archivo.

714 714 

715<h4 id="a-flag-or-environment-variable-sets-the-same-thing">715<h4 id="a-flag-or-environment-variable-sets-the-same-thing">

716 Una bandera o variable de entorno establece lo mismo716 Un flag o una variable de entorno establece lo mismo

717</h4>717</h4>

718 718 

719Algunas claves tienen una bandera de línea de comandos o una variable de entorno que anula el valor de configuración independientemente de qué archivo lo estableció: `ANTHROPIC_MODEL` anula la configuración [`model`](/docs/es/settings-reference#model), y `--model` anula ambas para una sesión.719Algunas claves tienen un flag de línea de comandos o una variable de entorno que sobrescribe el valor de configuración sin importar qué archivo lo estableció: `ANTHROPIC_MODEL` sobrescribe el ajuste [`model`](/docs/es/settings-reference#model), y `--model` sobrescribe ambos para una sesión.

720 720 

721Si puede recuperar su valor depende de la clave: desexporte la variable o suelte la bandera, y verifique la entrada de la clave en la [referencia de configuración](/docs/es/settings-reference) y la fila de la variable en la [referencia de variables de entorno](/docs/es/env-vars) para cuál usa Claude Code.721Si puedes recuperar tu valor depende de la clave: quita la variable o deja de usar el flag, y consulta la entrada de la clave en la [referencia de configuración](/docs/es/settings-reference) y la fila de la variable en la [referencia de variables de entorno](/docs/es/env-vars) para saber cuál usa Claude Code.

722 722 

723<span id="keys-ignored-in-a-repository-file" />723<span id="keys-ignored-in-a-repository-file" />

724 724 


729<span id="which-value-applies-in-common-situations" />729<span id="which-value-applies-in-common-situations" />

730 730 

731<h3 id="troubleshoot-a-setting-that-doesn’t-apply">731<h3 id="troubleshoot-a-setting-that-doesn’t-apply">

732 Solucione una configuración que no se aplica732 Solucionar un ajuste que no se aplica

733</h3>733</h3>

734 734 

735Cuando establece una clave y Claude Code no se comporta como si lo hubiera hecho, comience con `/status` para ver qué archivos cargó, luego encuentre su síntoma a continuación. [Depure su configuración](/docs/es/debug-your-config) cubre las verificaciones más amplias, incluyendo una prueba de configuración limpia.735Cuando estableces una clave y Claude Code no se comporta como si lo hubieras hecho, empieza con `/status` para ver qué archivos cargó y luego busca tu síntoma a continuación. [Depura tu configuración](/docs/es/debug-your-config) cubre las verificaciones más amplias, incluida una prueba con una configuración limpia.

736 736 

737<h4 id="a-value-you-set-is-ignored">737<h4 id="a-value-you-set-is-ignored">

738 Un valor que establece se ignora738 Un valor que estableces se ignora

739</h4>739</h4>

740 740 

741Algo más está estableciendo la misma clave, el archivo no puede establecer ese valor, o el archivo no se cargó:741Algo más está estableciendo la misma clave, el archivo no puede establecer ese valor o el archivo no se cargó:

742 742 

743* **Un nivel más alto lo establece.** Otro archivo de configuración, una bandera `--settings`, o una fuente administrada establece la clave por encima de la suya; la [pila](#settings-precedence) dice cuál. Una bandera o variable de entorno también puede anular la clave por su cuenta, decidido clave por clave; la entrada de la clave en la [referencia de configuración](/docs/es/settings-reference) dice cuál usa Claude Code, y la [entrada `env`](/docs/es/settings-reference#env) cubre un valor `env` administrado versus una exportación de shell.743* **Un nivel más alto lo establece.** Otro archivo de configuración, un flag `--settings` o una fuente administrada establece la clave por encima de la tuya; la [pila](#settings-precedence) indica cuál. Un flag o una variable de entorno también puede sobrescribir la clave por su cuenta, según cada clave; la entrada de la clave en la [referencia de configuración](/docs/es/settings-reference) indica cuál usa Claude Code, y la [entrada `env`](/docs/es/settings-reference#env) cubre un valor `env` administrado frente a una exportación del shell.

744* **Una clave de seguridad mantiene su valor estricto.** Para algunas claves Claude Code honra el valor restrictivo de cualquier archivo, por lo que un proyecto `true` para [`disableClaudeAiConnectors`](/docs/es/settings-reference#disableclaudeaiconnectors) permanece encendido; vea [Excepciones a la precedencia de configuraciones administradas](#exceptions-to-managed-settings-precedence).744* **Una clave de seguridad mantiene su valor estricto.** Para algunas claves, Claude Code honra el valor restrictivo de cualquier archivo, así que un `true` de proyecto para [`disableClaudeAiConnectors`](/docs/es/settings-reference#disableclaudeaiconnectors) permanece activado; consulta [Excepciones a la precedencia de la configuración administrada](#exceptions-to-managed-settings-precedence).

745* **El archivo no puede establecer ese valor.** Los valores [`permissions.defaultMode`](/docs/es/settings-reference#permissions-defaultmode) `auto` y `bypassPermissions` no surten efecto desde configuraciones de proyecto o local; establézcalos en configuraciones de usuario o administradas en su lugar, o pase `--permission-mode` para una sesión. Antes de v2.1.257, `bypassPermissions` surtía efecto desde cualquier archivo.745* **El archivo no puede establecer ese valor.** Los valores `auto` y `bypassPermissions` de [`permissions.defaultMode`](/docs/es/settings-reference#permissions-defaultmode) no surten efecto desde la configuración de proyecto o local; establécelos en la configuración de usuario o administrada, o pasa `--permission-mode` para una sesión. Antes de v2.1.257, `bypassPermissions` surtía efecto desde cualquier archivo.

746 746 

747 Una variable de exportación de telemetría en un bloque [`env`](/docs/es/settings-reference#env) tampoco surte efecto desde configuraciones de proyecto o local, aparte de algunos valores desactivados. [Variables que Claude Code ignora en `env`](/docs/es/settings-reference#variables-claude-code-ignores-in-env) enumera las variables y esos valores.747 Una variable de exportación de telemetría en un bloque [`env`](/docs/es/settings-reference#env) tampoco surte efecto desde la configuración de proyecto o local, salvo algunos valores de desactivación. [Variables que Claude Code ignora en `env`](/docs/es/settings-reference#variables-claude-code-ignores-in-env) enumera las variables y esos valores.

748* **El archivo está roto.** JSON inválido o un valor rechazado hace que Claude Code omita el archivo o la entrada; vea [Corrija un archivo de configuración roto](#fix-a-broken-settings-file).748* **El archivo está dañado.** Un JSON no válido o un valor rechazado hace que Claude Code omita el archivo o la entrada; consulta [Corregir un archivo de configuración dañado](#fix-a-broken-settings-file).

749 749 

750<h4 id="a-change-you-made-in-claude-code-is-lost-in-new-sessions">750<h4 id="a-change-you-made-in-claude-code-is-lost-in-new-sessions">

751 Un cambio que hizo en Claude Code se pierde en nuevas sesiones751 Un cambio que hiciste en Claude Code se pierde en nuevas sesiones

752</h4>752</h4>

753 753 

754Cuando guarda una elección para nuevas sesiones desde dentro de Claude Code, como un modelo predeterminado con `/model`, Claude Code lo escribe en su archivo de configuración de usuario, `~/.claude/settings.json`. Si no puede escribir en ese archivo, por ejemplo porque otra herramienta lo genera o lo vincula a una copia de solo lectura, el cambio se aplica a la sesión actual y se pierde en la siguiente. Establezca la clave en la herramienta que genera el archivo, o reemplace el archivo con uno en el que pueda escribir.754Cuando guardas una elección para nuevas sesiones desde dentro de Claude Code, como un modelo predeterminado con `/model`, Claude Code la escribe en tu archivo de configuración de usuario, `~/.claude/settings.json`. Si no puedes escribir en ese archivo, por ejemplo porque otra herramienta lo genera o lo vincula a una copia de solo lectura, el cambio se aplica a la sesión actual y desaparece en la siguiente. Establece la clave en la herramienta que genera el archivo, o reemplaza el archivo por uno en el que puedas escribir.

755 755 

756Si puede escribir en el archivo y el cambio aún no dura, verifique si el cambio fue [solo para una sesión](#change-a-setting-for-one-session) o [un nivel más alto establece la misma clave](#a-value-you-set-is-ignored). Para la clave `model`, [Una nueva sesión comienza en un modelo diferente al que eligió](/docs/es/model-config#a-new-session-starts-on-a-different-model-than-you-picked) enumera más causas.756Si puedes escribir en el archivo y el cambio aún no persiste, verifica si el cambio fue [solo para una sesión](#change-a-setting-for-one-session) o si [un nivel más alto establece la misma clave](#a-value-you-set-is-ignored). Para la clave `model`, [Una nueva sesión comienza con un modelo diferente al que elegiste](/docs/es/model-config#a-new-session-starts-on-a-different-model-than-you-picked) enumera más causas.

757 757 

758<h4 id="a-managed-change-hasn’t-reached-you">758<h4 id="a-managed-change-hasn’t-reached-you">

759 Un cambio administrado no lo ha alcanzado759 Un cambio administrado no te ha llegado

760</h4>760</h4>

761 761 

762Las fuentes administradas alcanzan una sesión en ejecución en el cronograma en la [tabla de entrega](/docs/es/managed-settings#choose-a-delivery-mechanism), por lo que reinicie la sesión primero. Si `/status` entonces nombra una fuente diferente a la que su administrador cambió, una fuente de mayor prioridad se aplica; [Cómo Claude Code combina fuentes administradas](/docs/es/managed-settings#how-claude-code-combines-managed-sources) da el orden.762Las fuentes administradas llegan a una sesión en ejecución según el calendario de la [tabla de entrega](/docs/es/managed-settings#choose-a-delivery-mechanism), así que primero reinicia la sesión. Si luego `/status` nombra una fuente diferente a la que cambió tu administrador, se aplica una fuente de mayor prioridad; [Cómo Claude Code combina fuentes administradas](/docs/es/managed-settings#how-claude-code-combines-managed-sources) indica el orden.

763 763 

764<h4 id="a-committed-key-doesn’t-reach-teammates">764<h4 id="a-committed-key-doesn’t-reach-teammates">

765 Una clave confirmada no alcanza a los compañeros de equipo765 Una clave confirmada no llega a los compañeros de equipo

766</h4>766</h4>

767 767 

768Dos cosas mantienen una clave en `.claude/settings.json` de aplicarse para todos los que la clonan:768Dos cosas impiden que una clave en `.claude/settings.json` se aplique para todos los que lo clonan:

769 769 

770* **Claude Code ignora la clave en un archivo de repositorio.** Busque `User, local, or managed`, `User or managed`, `Managed`, o `Global config` en la columna Scope del [índice de configuración](/docs/es/settings-reference#settings-index). Esas claves nunca se aplican desde el archivo compartido, aparte de algunas que un archivo de repositorio aún puede apagar. Cada una de esas entradas lo dice en su línea de Scope. Las claves `Global config` se aplican solo desde `~/.claude.json`.770* **Claude Code ignora la clave en un archivo de repositorio.** Busca `User, local, or managed`, `User or managed`, `Managed` o `Global config` en la columna Scope del [índice de configuración](/docs/es/settings-reference#settings-index). Esas claves nunca se aplican desde el archivo compartido, salvo algunas que un archivo de repositorio aún puede desactivar. Cada una de esas entradas lo indica en su línea Scope. Las claves `Global config` se aplican solo desde `~/.claude.json`.

771 771 

772 Dentro de la clave `env`, las variables de exportación de telemetría nunca se aplican desde el archivo compartido tampoco, aparte de algunos valores desactivados; vea [Variables que Claude Code ignora en `env`](/docs/es/settings-reference#variables-claude-code-ignores-in-env).772 Dentro de la clave `env`, las variables de exportación de telemetría tampoco se aplican nunca desde el archivo compartido, salvo algunos valores de desactivación; consulta [Variables que Claude Code ignora en `env`](/docs/es/settings-reference#variables-claude-code-ignores-in-env).

773* **La clave espera confianza.** Las reglas `permissions.allow`, `permissions.additionalDirectories`, `extraKnownMarketplaces` y la mayoría de valores [`env`](/docs/es/settings-reference#env) se aplican solo después de que cada compañero de equipo [confíe en la carpeta](/docs/es/permissions#project-allow-rules-and-workspace-trust). Hasta entonces aún ven avisos y no obtienen plugins de un marketplace que el archivo declara. Las reglas `deny` y `ask` se aplican de inmediato.773* **La clave espera la confianza.** Las reglas `permissions.allow`, `permissions.additionalDirectories`, `extraKnownMarketplaces` y la mayoría de los valores de [`env`](/docs/es/settings-reference#env) se aplican solo después de que cada compañero de equipo [confíe en la carpeta](/docs/es/permissions#project-allow-rules-and-workspace-trust). Hasta entonces, siguen viendo solicitudes de permiso y no obtienen plugins de un marketplace que el archivo declara. Las reglas `deny` y `ask` se aplican de inmediato.

774 774 

775<h4 id="permission-rules-combine-differently-than-you-expected">775<h4 id="permission-rules-combine-differently-than-you-expected">

776 Las reglas de permiso se combinan diferente a lo que esperaba776 Las reglas de permisos se combinan de forma distinta a lo que esperabas

777</h4>777</h4>

778 778 

779* **Eligió "Sí, y no preguntes de nuevo" en un aviso de permiso pero aún recibe avisos para la misma herramienta.** Esa elección guardó una regla `allow` en su archivo local, y una regla `allow` allí no supera una regla `ask` de un archivo de proyecto o administrado; [cómo se combinan las reglas de permiso](/docs/es/permissions#settings-precedence) explica el orden. En la extensión de VS Code la tarjeta de aprobación le permite elegir el archivo de destino, incluyendo el archivo compartido del proyecto, que cambia la regla para todos; en la CLI, Claude Code escribe solo en su archivo local.779* **Elegiste "Sí, y no preguntes de nuevo" en una solicitud de permiso, pero se te sigue pidiendo confirmación para la misma herramienta.** Esa elección guardó una regla `allow` en tu archivo local, y una regla `allow` allí no tiene prioridad sobre una regla `ask` de un archivo de proyecto o administrado; [cómo se combinan las reglas de permisos](/docs/es/permissions#settings-precedence) explica el orden. En la extensión de VS Code, la tarjeta de aprobación te permite elegir el archivo de destino, incluido el archivo compartido del proyecto, lo que cambia la regla para todos; en la CLI, Claude Code escribe solo en tu archivo local.

780* **Las reglas allow de su organización aún se aplican junto con las suyas.** Eso es esperado: Claude Code fusiona [`permissions.allow`](/docs/es/settings-reference#permissions-allow) entre ámbitos, a menos que su organización establezca [`allowManagedPermissionRulesOnly`](/docs/es/settings-reference#allowmanagedpermissionrulesonly).780* **Las reglas allow de tu organización aún se aplican junto con las tuyas.** Es lo esperado: Claude Code fusiona [`permissions.allow`](/docs/es/settings-reference#permissions-allow) entre alcances, a menos que tu organización establezca [`allowManagedPermissionRulesOnly`](/docs/es/settings-reference#allowmanagedpermissionrulesonly).

781 781 

782<span id="security-keys-where-the-stricter-value-applies" />782<span id="security-keys-where-the-stricter-value-applies" />

783 783 

784<h3 id="exceptions-to-managed-settings-precedence">784<h3 id="exceptions-to-managed-settings-precedence">

785 Excepciones a la precedencia de configuraciones administradas785 Excepciones a la precedencia de la configuración administrada

786</h3>786</h3>

787 787 

788Para algunas claves cuyos valores restringen una sesión, Claude Code honra un valor restrictivo de un ámbito que de otra manera no podría anular configuraciones administradas. Encuentre la clave en esta tabla para ver qué valor honra y de dónde.788Para algunas claves cuyos valores restringen una sesión, Claude Code honra un valor restrictivo de un alcance que de otro modo no podría sobrescribir la configuración administrada. Busca la clave en esta tabla para ver qué valor honra y de dónde.

789 789 

790| Clave | Valor que Claude Code honra | Notas |790| Clave | Valor que Claude Code honra | Notas |

791| :- | :- | :- |791| :- | :- | :- |

792| [`disableClaudeAiConnectors`](/docs/es/settings-reference#disableclaudeaiconnectors) | `true` de cualquier ámbito | Honrado incluso cuando una fuente administrada establece `false` |792| [`disableClaudeAiConnectors`](/docs/es/settings-reference#disableclaudeaiconnectors) | `true` de cualquier alcance | Honrado incluso cuando una fuente administrada establece `false` |

793| [`enableArtifact`](/docs/es/settings-reference#enableartifact) | `false` de cualquier ámbito, y `disableArtifact: true` de cualquier ámbito | Honrado incluso cuando una fuente administrada establece `true`; nada enciende la [herramienta Artifact](/docs/es/artifacts#disable-artifacts) de nuevo. Requiere Claude Code v2.1.242 o posterior |793| [`enableArtifact`](/docs/es/settings-reference#enableartifact) | `false` de cualquier alcance, y `disableArtifact: true` de cualquier alcance | Honrado incluso cuando una fuente administrada establece `true`; nada vuelve a activar la [herramienta Artifact](/docs/es/artifacts#disable-artifacts). Requiere Claude Code v2.1.242 o posterior |

794| [`isolatePeerMachines`](/docs/es/settings-reference#isolatepeermachines) | `true` de cualquier ámbito | Honrado incluso cuando una fuente administrada establece `false` |794| [`isolatePeerMachines`](/docs/es/settings-reference#isolatepeermachines) | `true` de cualquier alcance | Honrado incluso cuando una fuente administrada establece `false` |

795| [`remoteControlAtStartup`](/docs/es/settings-reference#remotecontrolatstartup) | `false` de `.claude/settings.json` o `.claude/settings.local.json` | Honrado incluso cuando una fuente administrada establece `true`; un proyecto o local `true` se ignora |795| [`permissions.blockReadsOutsideWorkingDirectories`](/docs/es/settings-reference#permissions-blockreadsoutsideworkingdirectories) | `true` de cualquier alcance | Honrado incluso cuando una fuente administrada establece `false`. Requiere Claude Code v2.1.257 o posterior |

796| [`crossSessionInbound`](/docs/es/settings-reference#crosssessioninbound) | Un valor más estricto de `.claude/settings.json` o `.claude/settings.local.json`, en la escalera `accept` \< `hold` \< `refuse` | Honrado sobre valores administrados, `--settings` y de usuario; un valor de proyecto o local que no es más estricto se ignora |796| [`autoMode.classifyAllShell`](/docs/es/settings-reference#automode-classifyallshell) | `true` de `~/.claude/settings.json` o `--settings` | Honrado incluso cuando una fuente administrada establece `false` |

797| [`useAutoModeDuringPlan`](/docs/es/settings-reference#useautomodeduringplan) | `false` de cualquier fuente administrada, `--settings`, `~/.claude/settings.json`, o `.claude/settings.local.json` | Honrado incluso cuando la fuente administrada ganadora establece `true`; un `false` en `.claude/settings.json` se ignora |797| [`remoteControlAtStartup`](/docs/es/settings-reference#remotecontrolatstartup) | `false` de `.claude/settings.json` o `.claude/settings.local.json` | Honrado incluso cuando una fuente administrada establece `true`; un `true` de proyecto o local se ignora |

798| [`syncClaudeAiSkills`](/docs/es/settings-reference#syncclaudeaiskills) | `false` de cualquier fuente administrada, `--settings`, `~/.claude/settings.json`, o `.claude/settings.local.json` | Honrado incluso cuando la fuente administrada ganadora establece `true`; un `false` en `.claude/settings.json` se ignora |798| [`crossSessionInbound`](/docs/es/settings-reference#crosssessioninbound) | Un valor más estricto de `.claude/settings.json` o `.claude/settings.local.json`, en la escala `accept` \< `hold` \< `refuse` | Honrado sobre los valores administrados, de `--settings` y de usuario; un valor de proyecto o local que no sea más estricto se ignora |

799| [`syncClaudeAiPlugins`](/docs/es/settings-reference#syncclaudeaiplugins) | `false` de cualquier fuente administrada, `--settings`, `~/.claude/settings.json`, o `.claude/settings.local.json` | Honrado incluso cuando la fuente administrada ganadora establece `true`; un `false` en `.claude/settings.json` se ignora |799| [`useAutoModeDuringPlan`](/docs/es/settings-reference#useautomodeduringplan) | `false` de cualquier fuente administrada, `--settings`, `~/.claude/settings.json` o `.claude/settings.local.json` | Honrado incluso cuando la fuente administrada ganadora establece `true`; un `false` en `.claude/settings.json` se ignora |

800| [`maxEffortLevel`](/docs/es/settings-reference#maxeffortlevel) | Un límite más bajo de cualquier ámbito, incluyendo `--settings` | Honrado incluso cuando las configuraciones administradas que Claude Code aplica establecen un límite más alto; se aplica el límite más bajo. Requiere Claude Code v2.1.267 o posterior |800| [`syncClaudeAiSkills`](/docs/es/settings-reference#syncclaudeaiskills) | `false` de cualquier fuente administrada, `--settings`, `~/.claude/settings.json` o `.claude/settings.local.json` | Honrado incluso cuando la fuente administrada ganadora establece `true`; un `false` en `.claude/settings.json` se ignora |

801 801| [`syncClaudeAiPlugins`](/docs/es/settings-reference#syncclaudeaiplugins) | `false` de cualquier fuente administrada, `--settings`, `~/.claude/settings.json` o `.claude/settings.local.json` | Honrado incluso cuando la fuente administrada ganadora establece `true`; un `false` en `.claude/settings.json` se ignora |

802Una aplicación que ejecuta Claude Code dentro de sí misma y establece [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/es/env-vars) también es una excepción. Claude Code toma la configuración de modelo de esa aplicación sobre las claves `model`, `fallbackModel`, `modelPicker`, y `modelOverrides` de cada fuente administrada, y sobre las variables de selección de modelo en un bloque `env` administrado, como `ANTHROPIC_MODEL` y la familia `ANTHROPIC_DEFAULT_*_MODEL`. Claude Code mantiene una lista blanca [`availableModels`](/docs/es/settings-reference#availablemodels) administrada en vigor a menos que la aplicación suministre la suya.802| [`maxEffortLevel`](/docs/es/settings-reference#maxeffortlevel) | Un límite más bajo de cualquier alcance, incluido `--settings` | Honrado incluso cuando la configuración administrada que Claude Code aplica establece un límite más alto; se aplica el límite más bajo. Requiere Claude Code v2.1.267 o posterior |

803 

804Una aplicación que ejecuta Claude Code dentro de sí misma y establece [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/es/env-vars) también es una excepción. Claude Code toma la configuración de modelo de esa aplicación por encima de las claves `model`, `fallbackModel`, `modelPicker` y `modelOverrides` de cada fuente administrada, y por encima de las variables de selección de modelo en un bloque `env` administrado, como `ANTHROPIC_MODEL` y la familia `ANTHROPIC_DEFAULT_*_MODEL`. Claude Code mantiene en vigor una lista de permitidos [`availableModels`](/docs/es/settings-reference#availablemodels) administrada, a menos que la aplicación suministre la suya.

803 805 

804<h2 id="settings-in-cloud-sessions">806<h2 id="settings-in-cloud-sessions">

805 Configuraciones en sesiones en la nube807 Configuraciones en sesiones en la nube

Details

870 870 

871Desactive el [pensamiento extendido](/docs/es/model-config#extended-thinking) para cada sesión estableciendo esto en `false`. El pensamiento está activado de forma predeterminada, por lo que `true` no cambia nada. La mayoría de las personas establecen esto a través de `/config` en lugar de editar el archivo.871Desactive el [pensamiento extendido](/docs/es/model-config#extended-thinking) para cada sesión estableciendo esto en `false`. El pensamiento está activado de forma predeterminada, por lo que `true` no cambia nada. La mayoría de las personas establecen esto a través de `/config` en lugar de editar el archivo.

872 872 

873En modelos que siempre piensan, como Opus 5.5, Sonnet 5.5 y los modelos Fable, `false` no tiene efecto. En [proveedores de terceros](/docs/es/third-party-integrations) Claude Code omite el parámetro `thinking` en lugar de desactivar el pensamiento, por lo que los modelos de razonamiento adaptativo pueden seguir pensando. Con el pensamiento desactivado en la API de Anthropic, Claude Code envía esfuerzo `high` en lugar de un nivel superior a modelos que sabe que [no aceptan esa combinación](/docs/es/errors#effort-isnt-available-with-thinking-turned-off), como Opus 5.873En modelos que siempre piensan, como Opus 5.5, Sonnet 5.5, Haiku 5.5 y los modelos Fable, `false` no tiene efecto. En [proveedores de terceros](/docs/es/third-party-integrations) Claude Code omite el parámetro `thinking` en lugar de desactivar el pensamiento, por lo que los modelos de razonamiento adaptativo pueden seguir pensando. Con el pensamiento desactivado en la API de Anthropic, Claude Code envía esfuerzo `high` en lugar de un nivel superior a modelos que sabe que [no aceptan esa combinación](/docs/es/errors#effort-isnt-available-with-thinking-turned-off), como Opus 5.

874 874 

875* **Alcance**: [`Cualquier archivo`](#scopes)875* **Alcance**: [`Cualquier archivo`](#scopes)

876* **Tipo**: Booleano876* **Tipo**: Booleano

setup.md +5 −3

Details

49 curl -fsSL https://claude.ai/install.sh | bash49 curl -fsSL https://claude.ai/install.sh | bash

50 ```50 ```

51 51 

52 En Windows, tu prompt muestra `PS C:\` cuando estás en PowerShell y `C:\` sin el `PS` cuando estás en CMD.

53 

52 **Windows PowerShell:**54 **Windows PowerShell:**

53 55 

54 ```powershell theme={null}56 ```powershell theme={null}


63 65 

64 Cuando el instalador termine, abra una nueva ventana de terminal y ejecute `claude --version`. Una instalación que funciona correctamente imprime un número de versión. Si su shell dice que `claude` no se encuentra o no se reconoce, el directorio de instalación aún no está en su PATH: consulte [Corrija su PATH](/docs/es/troubleshoot-install#command-not-found-claude-after-installation).66 Cuando el instalador termine, abra una nueva ventana de terminal y ejecute `claude --version`. Una instalación que funciona correctamente imprime un número de versión. Si su shell dice que `claude` no se encuentra o no se reconoce, el directorio de instalación aún no está en su PATH: consulte [Corrija su PATH](/docs/es/troubleshoot-install#command-not-found-claude-after-installation).

65 67 

66 Si ve `The token '&&' is not a valid statement separator`, está en PowerShell, no en CMD. Si ve `'irm' is not recognized as an internal or external command`, está en CMD, no en PowerShell. Su símbolo del sistema muestra `PS C:\` cuando está en PowerShell y `C:\` sin el `PS` cuando está en CMD.68 Si ves `The token '&&' is not a valid statement separator`, estás en PowerShell, no en CMD. Si ves `'irm' is not recognized as an internal or external command`, estás en CMD, no en PowerShell.

67 69 

68 Si el comando de instalación falla con `syntax error near unexpected token '<'`, un `403`, u otro error de curl, consulte [Solucionar problemas de instalación](/docs/es/troubleshoot-install#find-your-error) para hacer coincidir el error con una solución y para conocer métodos de instalación alternativos.70 Si el comando de instalación falla con `syntax error near unexpected token '<'`, un `403` o cualquier otro error, consulta [Solucionar problemas de instalación](/docs/es/troubleshoot-install#find-your-error) para hacer coincidir el error con una solución y para conocer métodos de instalación alternativos.

69 71 

70 Se recomienda [Git for Windows](https://git-scm.com/downloads/win) en Windows nativo para que Claude Code pueda utilizar la herramienta Bash. Si Git for Windows no está instalado, Claude Code utiliza PowerShell como herramienta de shell en su lugar. Las configuraciones de WSL no necesitan Git for Windows.72 Se recomienda [Git for Windows](https://git-scm.com/downloads/win) en Windows nativo para que Claude Code pueda utilizar la herramienta Bash. Si Git for Windows no está instalado, Claude Code utiliza PowerShell como herramienta de shell en su lugar. Las configuraciones de WSL no necesitan Git for Windows.

71 73 


204 206 

205Claude Code requiere una cuenta Pro, Max, Team, Enterprise o Console. El plan gratuito de Claude.ai no incluye acceso a Claude Code. También puede usar Claude Code con un proveedor de API de terceros como [Amazon Bedrock](/docs/es/amazon-bedrock), [Google Cloud's Agent Platform](/docs/es/google-vertex-ai) o [Microsoft Foundry](/docs/es/microsoft-foundry).207Claude Code requiere una cuenta Pro, Max, Team, Enterprise o Console. El plan gratuito de Claude.ai no incluye acceso a Claude Code. También puede usar Claude Code con un proveedor de API de terceros como [Amazon Bedrock](/docs/es/amazon-bedrock), [Google Cloud's Agent Platform](/docs/es/google-vertex-ai) o [Microsoft Foundry](/docs/es/microsoft-foundry).

206 208 

207Después de instalar, inicie sesión ejecutando `claude` y siguiendo las indicaciones del navegador. Si la variable de entorno `ANTHROPIC_API_KEY` está configurada, Claude Code le solicita una vez que apruebe la clave en lugar de abrir un navegador. Consulte [Autenticación](/docs/es/authentication) para todos los tipos de cuenta y opciones de configuración de equipo.209Después de instalar, inicia sesión ejecutando `claude` y siguiendo las instrucciones del navegador. Si configuraste la variable de entorno `ANTHROPIC_API_KEY` y apruebas la clave cuando Claude Code te pregunta si quieres usarla, Claude Code omite la solicitud de inicio de sesión. Consulta [Autenticación](/docs/es/authentication) para ver todos los tipos de cuenta y las opciones de configuración de equipo.

208 210 

209<h2 id="update-claude-code">211<h2 id="update-claude-code">

210 Actualizar Claude Code212 Actualizar Claude Code

skills.md +7 −2

Details

237 237 

238En una sesión de Cowork o en la nube, Claude Code carga las skills habilitadas para tu cuenta claude.ai, y [Skills en sesiones de Cowork y en la nube](#skills-in-cowork-and-cloud-sessions) dice cómo elegir qué skills obtienen esas sesiones.238En una sesión de Cowork o en la nube, Claude Code carga las skills habilitadas para tu cuenta claude.ai, y [Skills en sesiones de Cowork y en la nube](#skills-in-cowork-and-cloud-sessions) dice cómo elegir qué skills obtienen esas sesiones.

239 239 

240En tu terminal, Claude Code sincroniza esas skills en sesiones donde inicias sesión con tu cuenta claude.ai. Cuando la sesión comienza, Claude Code descarga las skills de tu cuenta en `~/.claude/skills/synced/` en segundo plano, luego verifica claude.ai en busca de cambios aproximadamente cada 10 minutos mientras se ejecuta la sesión. Cuando una verificación encuentra que una skill fue añadida, editada o desactivada en claude.ai, Claude Code la añade, actualiza o elimina en la sesión en ejecución sin un reinicio. La sincronización en sesiones de terminal requiere Claude Code v2.1.273 o posterior.240En tu terminal, Claude Code sincroniza esos skills en sesiones donde inicias sesión con tu cuenta de claude.ai. Cuando la sesión comienza, Claude Code descarga los skills de tu cuenta en `~/.claude/skills/synced/` en segundo plano y luego verifica claude.ai en busca de cambios mientras se ejecuta la sesión. Cuando una verificación encuentra que un skill fue añadido, editado o desactivado en claude.ai, Claude Code lo añade, actualiza o elimina en la sesión en ejecución sin necesidad de reiniciar. La sincronización en sesiones de terminal requiere Claude Code v2.1.273 o posterior.

241 241 

242La sincronización nunca retrasa el inicio, porque Claude espera la descarga de una skill solo cuando la invoca. Una ejecución corta [no interactiva](/docs/es/headless) puede por lo tanto terminar antes de que una skill recién añadida se descargue, en cuyo caso una sesión posterior la descarga. Para hacer que una ejecución no interactiva descargue tus skills y espere la lista antes de responder al prompt, establece [`CLAUDE_CODE_SYNC_SKILLS`](/docs/es/env-vars#variables) en `1`.242Las verificaciones se ejecutan con menos frecuencia mientras la sesión está inactiva:

243 

244* **Mientras tú o Claude trabajan en la sesión**: se ejecuta una verificación aproximadamente cada 10 minutos.

245* **Mientras la sesión está inactiva**: se ejecuta una verificación aproximadamente cada 40 minutos. Cuando vuelves a escribir en la sesión, Claude Code verifica en pocos minutos si la última verificación fue hace más de 10 minutos.

246 

247La sincronización nunca retrasa el inicio, porque Claude espera la descarga de un skill solo cuando invoca ese skill. Por lo tanto, una ejecución corta [no interactiva](/docs/es/headless) puede terminar antes de que se descargue un skill recién añadido, en cuyo caso una sesión posterior lo descarga. Para hacer que una ejecución no interactiva descargue tus skills y espere la lista antes de responder al prompt, establece [`CLAUDE_CODE_SYNC_SKILLS`](/docs/es/env-vars#variables) en `1`. Antes de v2.1.273, las sesiones de terminal los descargaban solo en una ejecución con `-p` con esta variable establecida.

243 248 

244Claude Code sincroniza solo en una sesión que inicia sesión con tu cuenta claude.ai y [obtiene banderas de características de Anthropic](/docs/es/env-vars#features-that-need-feature-flag-fetching). No sincroniza en estas sesiones:249Claude Code sincroniza solo en una sesión que inicia sesión con tu cuenta claude.ai y [obtiene banderas de características de Anthropic](/docs/es/env-vars#features-that-need-feature-flag-fetching). No sincroniza en estas sesiones:

245 250 

sub-agents.md +4 −4

Details

310 310 

311| Campo | Requerido | Descripción |311| Campo | Requerido | Descripción |

312| :- | :- | :- |312| :- | :- | :- |

313| `name` | Sí | Identificador único, como `code-reviewer` o `reviewer-v2`. [Hooks](/docs/es/hooks#subagentstart) reciben este valor como `agent_type`. El nombre del archivo no tiene que coincidir. Los nombres no pueden contener `:`, que está reservado para [identificadores con alcance de plugin](/docs/es/plugins/overview) como `my-plugin:reviewer`. Claude Code no carga un archivo cuyo nombre contiene uno y registra un error en el registro de depuración. Antes de v2.1.218, tales nombres fueron aceptados |313| `name` | Sí | Identificador único de 256 caracteres como máximo, como `code-reviewer` o `reviewer-v2`. Los [hooks](/docs/es/hooks#subagentstart) reciben este valor como `agent_type`. El nombre del archivo no tiene que coincidir. Los nombres no pueden contener `:`, que está reservado para [identificadores con alcance de plugin](/docs/es/plugins/overview) como `my-plugin:reviewer` |

314| `description` | Sí | Cuándo Claude debe delegar en este subagente |314| `description` | Sí | Cuándo Claude debe delegar en este subagente |

315| `tools` | No | [Herramientas](#available-tools) que el subagente puede usar, como una cadena separada por comas como `Read, Grep, Bash` o una lista YAML. Hereda todas las herramientas disponibles para subagentes si se omite. Si ninguna entrada en la lista se resuelve a una herramienta, el subagente generalmente [falla al lanzarse](/docs/es/errors#agent-would-be-spawned-with-zero-tools) con un error nombrando las entradas. Para precargar Skills en el contexto, use el campo `skills` en lugar de listar `Skill` aquí |315| `tools` | No | [Herramientas](#available-tools) que el subagente puede usar, como una cadena separada por comas como `Read, Grep, Bash` o una lista YAML. Hereda todas las herramientas disponibles para subagentes si se omite. Si ninguna entrada en la lista se resuelve a una herramienta, el subagente generalmente [falla al lanzarse](/docs/es/errors#agent-would-be-spawned-with-zero-tools) con un error nombrando las entradas. Para precargar Skills en el contexto, use el campo `skills` en lugar de listar `Skill` aquí |

316| `disallowedTools` | No | Herramientas a denegar, eliminadas de la lista heredada o especificada. Mismo formato que `tools`. Una entrada con un especificador, como `Bash(git push *)`, aún [elimina la herramienta completa](#available-tools) |316| `disallowedTools` | No | Herramientas a denegar, eliminadas de la lista heredada o especificada. Mismo formato que `tools`. Una entrada con un especificador, como `Bash(git push *)`, aún [elimina la herramienta completa](#available-tools) |


348 348 

349* **Sin `name`**: Claude Code trata el archivo como documentación guardada junto a sus agentes.349* **Sin `name`**: Claude Code trata el archivo como documentación guardada junto a sus agentes.

350* **Un `---` de apertura que no es la primera línea del archivo**: Claude Code lee el archivo como si no tuviera frontmatter y lo trata como documentación.350* **Un `---` de apertura que no es la primera línea del archivo**: Claude Code lee el archivo como si no tuviera frontmatter y lo trata como documentación.

351* **Un `name` que comienza con `-` o contiene `:`**: Claude Code omite el archivo y escribe un error en el registro de depuración. Consulte la fila `name` en la tabla anterior.351* **Un `name` que comienza con `-`, contiene `:` o tiene más de 256 caracteres**: Claude Code omite el archivo y escribe un error en el registro de depuración.

352* **Un `name` pero sin `description`**: Claude Code omite el archivo y escribe la razón en el registro de depuración.352* **Un `name` pero sin `description`**: Claude Code omite el archivo y escribe la razón en el registro de depuración.

353* **YAML que no se analiza**: Claude Code no lee campos del archivo, lo omite y escribe el error de análisis en el registro de depuración.353* **YAML que no se analiza**: Claude Code no lee campos del archivo, lo omite y escribe el error de análisis en el registro de depuración.

354 354 


1164 1164 

1165* Cuando un subagente se completa, Claude recibe su ID de agente.1165* Cuando un subagente se completa, Claude recibe su ID de agente.

1166* Los agentes integrados Explore y Plan son de una sola vez y no devuelven un ID de agente, por lo que Claude no puede reanudarlos. Usa `general-purpose` o un subagente personalizado cuando necesites continuar el trabajo.1166* Los agentes integrados Explore y Plan son de una sola vez y no devuelven un ID de agente, por lo que Claude no puede reanudarlos. Usa `general-purpose` o un subagente personalizado cuando necesites continuar el trabajo.

1167* Cuando un subagente se detiene en su límite [`maxTurns`](#supported-frontmatter-fields), Claude Code marca la salida devuelta como parcial. Para subagentes que devuelven un ID de agente, Claude Code también indica en el resultado que Claude puede enviar un mensaje al subagente para continuar desde donde se detuvo.1167* Cuando un subagente se detiene en su límite [`maxTurns`](#supported-frontmatter-fields), Claude Code marca la salida devuelta como parcial, y Claude puede reanudar el subagente para continuar su trabajo.

1168 1168 

1169Claude usa la herramienta `SendMessage` con el ID o nombre del agente como campo `to` para reanudarlo. `SendMessage` no requiere que [equipos de agentes](/docs/es/agent-teams) estén habilitados; solo lo requieren los mensajes de protocolo de equipo estructurados como `shutdown_request` y `plan_approval_response`. Más allá de subagentes y compañeros, en sesiones donde la mensajería entre sesiones está habilitada, Claude puede usar la misma herramienta para enviar mensajes a [tus otras sesiones de Claude Code](/docs/es/cross-session-messaging), en esta máquina o [más allá de ella](/docs/es/cross-session-messaging#message-sessions-on-other-machines).1169Claude usa la herramienta `SendMessage` con el ID o nombre del agente como campo `to` para reanudarlo. `SendMessage` no requiere que [equipos de agentes](/docs/es/agent-teams) estén habilitados; solo lo requieren los mensajes de protocolo de equipo estructurados como `shutdown_request` y `plan_approval_response`. Más allá de subagentes y compañeros, en sesiones donde la mensajería entre sesiones está habilitada, Claude puede usar la misma herramienta para enviar mensajes a [tus otras sesiones de Claude Code](/docs/es/cross-session-messaging), en esta máquina o [más allá de ella](/docs/es/cross-session-messaging#message-sessions-on-other-machines).

1170 1170 


1279| Permisos | Las solicitudes aparecen en su terminal | [Las solicitudes aparecen en su sesión principal](#run-subagents-in-foreground-or-background) cuando se ejecutan en el fondo |1279| Permisos | Las solicitudes aparecen en su terminal | [Las solicitudes aparecen en su sesión principal](#run-subagents-in-foreground-or-background) cuando se ejecutan en el fondo |

1280| Caché de solicitud | Compartido con la sesión principal | Caché separado |1280| Caché de solicitud | Compartido con la sesión principal | Caché separado |

1281 1281 

1282Porque el mensaje del sistema del fork y las definiciones de herramientas son idénticas al principal, su primera solicitud reutiliza la [caché de solicitud](/docs/es/prompt-caching#subagents-and-the-cache) del principal. Esto hace que bifurcar sea más económico que generar un subagente fresco para tareas que necesitan el mismo contexto.1282Como el prompt del sistema y las definiciones de herramientas del fork son idénticos a los del principal, su primera solicitud reutiliza la [caché de prompts](/docs/es/prompt-caching#subagents-and-the-cache) del principal. Gracias a esa reutilización, un fork cuesta menos que un subagente nuevo para tareas que necesitan el mismo contexto.

1283 1283 

1284Cuando Claude genera un fork a través de la herramienta Agent, puede pasar `isolation: "worktree"` para que las ediciones de archivo del fork se escriban en un git worktree separado en lugar de su checkout. Un fork no puede generar más forks.1284Cuando Claude genera un fork a través de la herramienta Agent, puede pasar `isolation: "worktree"` para que las ediciones de archivo del fork se escriban en un git worktree separado en lugar de su checkout. Un fork no puede generar más forks.

1285 1285 

vs-code.md +31 −16

Details

40 40 

41La extensión también se instala en otros forks de VS Code como Devin Desktop o Kiro. Busca "Claude Code" en la vista Extensiones del editor, o instala desde el [registro Open VSX](https://open-vsx.org/extension/Anthropic/claude-code). Si tu editor no puede instalar la extensión, [instala la CLI](/docs/es/quickstart) y ejecuta `claude` en su terminal integrada en su lugar. La CLI funciona en cualquier terminal.41La extensión también se instala en otros forks de VS Code como Devin Desktop o Kiro. Busca "Claude Code" en la vista Extensiones del editor, o instala desde el [registro Open VSX](https://open-vsx.org/extension/Anthropic/claude-code). Si tu editor no puede instalar la extensión, [instala la CLI](/docs/es/quickstart) y ejecuta `claude` en su terminal integrada en su lugar. La CLI funciona en cualquier terminal.

42 42 

43Para ejecutar Claude Code dentro de un contenedor de desarrollo, consulta [Contenedores de desarrollo](/docs/es/devcontainer).

44 

43<Note>Si la extensión no aparece después de la instalación, reinicia VS Code o ejecuta "Developer: Reload Window" desde la Paleta de comandos.</Note>45<Note>Si la extensión no aparece después de la instalación, reinicia VS Code o ejecuta "Developer: Reload Window" desde la Paleta de comandos.</Note>

44 46 

45<h2 id="get-started">47<h2 id="get-started">


606| `environmentVariables` | `[]` | Establecer variables de entorno para el proceso de Claude. Para una configuración compartida, usa en su lugar la configuración de Claude Code. Una entrada [`CLAUDE_CONFIG_DIR`](/docs/es/env-vars) solo se aplica cuando su valor es una ruta absoluta; la extensión no expande `~` e ignora un valor relativo. |608| `environmentVariables` | `[]` | Establecer variables de entorno para el proceso de Claude. Para una configuración compartida, usa en su lugar la configuración de Claude Code. Una entrada [`CLAUDE_CONFIG_DIR`](/docs/es/env-vars) solo se aplica cuando su valor es una ruta absoluta; la extensión no expande `~` e ignora un valor relativo. |

607| `disableLoginPrompt` | `false` | Omitir mensajes de autenticación (para configuraciones de proveedores de terceros) |609| `disableLoginPrompt` | `false` | Omitir mensajes de autenticación (para configuraciones de proveedores de terceros) |

608| `allowDangerouslySkipPermissions` | `false` | Agrega Bypass permissions al selector de modo. Úselo solo en espacios aislados sin acceso a Internet. |610| `allowDangerouslySkipPermissions` | `false` | Agrega Bypass permissions al selector de modo. Úselo solo en espacios aislados sin acceso a Internet. |

609| `claudeProcessWrapper` | - | Ejecutable utilizado para iniciar el proceso de Claude. La ruta del binario incluido se pasa como argumento cuando está presente. Establezca esto en un binario `claude` instalado por separado si la compilación de la extensión no incluye uno para su plataforma. En una configuración envuelta, las conversaciones comienzan en modo Manual a menos que establezca `initialPermissionMode` o haya seleccionado Manual, Editar automáticamente o Auto en una conversación anterior, porque la extensión omite los ajustes y los pasos predeterminados integrados allí; consulte [Switch permission modes](/docs/es/permission-modes#switch-permission-modes). Un error "Unsupported platform" en la activación significa que no hay binario incluido para su plataforma; consulte [which platforms have prebuilt binaries](/docs/es/troubleshoot-install#native-binary-not-found-after-npm-install). |611| `claudeProcessWrapper` | - | Ejecutable utilizado para iniciar el proceso de Claude. La ruta del binario incluido se pasa como argumento cuando está presente. Establece esto en un binario `claude` instalado por separado si la compilación de la extensión no incluye uno para tu plataforma. |

610 612 

611<h2 id="use-a-screen-reader">613<h2 id="use-a-screen-reader">

612 Usar un lector de pantalla614 Usar un lector de pantalla


781 Seguridad y privacidad783 Seguridad y privacidad

782</h2>784</h2>

783 785 

784Su código permanece privado. Claude Code procesa su código para proporcionar asistencia, pero no lo utiliza para entrenar modelos. Para obtener detalles sobre el manejo de datos y cómo optar por no participar en el registro, consulte [Datos y privacidad](/docs/es/data-usage).786Tu código permanece privado. Claude Code procesa tu código para proporcionar asistencia, pero no lo utiliza para entrenar modelos. Para obtener detalles sobre el manejo de datos y cómo optar por no participar en el registro, consulta [Datos y privacidad](/docs/es/data-usage).

785 787 

786Con los permisos de auto-edición habilitados, Claude Code puede modificar archivos de configuración de VS Code (como `settings.json` o `tasks.json`) que VS Code puede ejecutar automáticamente. Para reducir el riesgo al trabajar con código no confiable:788Con los permisos de auto-edición habilitados, Claude Code puede modificar archivos de configuración de VS Code (como `settings.json` o `tasks.json`) que VS Code puede ejecutar automáticamente. Para reducir el riesgo al trabajar con código no confiable:

787 789 

788* Habilite [Modo restringido de VS Code](https://code.visualstudio.com/docs/editor/workspace-trust#_restricted-mode) para espacios de trabajo no confiables790* Habilita el [Modo restringido de VS Code](https://code.visualstudio.com/docs/editor/workspace-trust#_restricted-mode) para espacios de trabajo no confiables

789* Utilice el modo Manual en lugar de Editar automáticamente o Auto para ediciones791* Utiliza el modo Manual en lugar de Editar automáticamente o Auto para ediciones

790* Revise los cambios cuidadosamente antes de aceptarlos792* Revisa los cambios cuidadosamente antes de aceptarlos

791 793 

792<h3 id="the-built-in-ide-mcp-server">794<h3 id="the-built-in-ide-mcp-server">

793 El servidor MCP IDE integrado795 El servidor MCP IDE integrado

794</h3>796</h3>

795 797 

796Cuando la extensión está activa, ejecuta un servidor MCP local al que la CLI se conecta automáticamente. Así es como la CLI abre diffs en el visor de diffs nativo de VS Code, lee su selección actual para menciones `@` y, cuando está trabajando en un cuaderno Jupyter, le pide a VS Code que ejecute celdas.798Cuando la extensión está activa, ejecuta un servidor MCP local al que la CLI se conecta automáticamente. Así es como la CLI abre diffs en el visor de diffs nativo de VS Code, lee tu selección actual para menciones `@` y, cuando estás trabajando en un cuaderno Jupyter, le pide a VS Code que ejecute celdas.

797 799 

798El servidor se llama `ide` y está oculto en `/mcp` porque no hay nada que configurar. Sin embargo, si su organización utiliza un hook `PreToolUse` para crear una lista de herramientas MCP permitidas, deberá saber que existe.800El servidor se llama `ide` y está oculto en `/mcp` porque no hay nada que configurar. Sin embargo, si tu organización utiliza un hook `PreToolUse` para crear una lista de herramientas MCP permitidas, deberás saber que existe.

799 801 

800**Contexto de selección y archivo abierto.** Mientras está conectado, la CLI incluye su selección actual del editor y la ruta del archivo activo como contexto en cada solicitud que envía. La transcripción muestra una línea `⧉ Selected N lines from <file>` cuando esto sucede.802**Contexto de selección y archivo abierto.** Mientras está conectada, la CLI incluye tu selección actual del editor y la ruta del archivo activo como contexto en cada prompt que envías. La transcripción muestra una línea `⧉ Selected N lines from <file>` cuando esto sucede.

801 803 

802Si [pone en cola un mensaje mientras Claude trabaja](/docs/es/interactive-mode#queue-messages-while-claude-works), mantiene la selección que tenía cuando presionó `Enter`, sin importar lo que seleccione después.804Si [pones en cola un mensaje mientras Claude trabaja](/docs/es/interactive-mode#queue-messages-while-claude-works), mantiene la selección que tenías cuando presionaste `Enter`, sin importar lo que selecciones después.

803 805 

804Para excluir un archivo sensible como `.env`, agregue una [regla de denegación `Read`](/docs/es/permissions#read-and-edit) para su ruta. Una regla de denegación coincidente evita que tanto el texto seleccionado como el aviso de archivo abierto para ese archivo lleguen a Claude.806Para excluir un archivo sensible como `.env`, agrega una [regla de denegación `Read`](/docs/es/permissions#read-and-edit) para su ruta. Una regla de denegación coincidente evita que tanto el texto seleccionado como el aviso de archivo abierto para ese archivo lleguen a Claude.

805 807 

806Si desactiva la [configuración Attach Open File](#extension-settings), la CLI recibe la ruta del archivo activo solo mientras tenga texto seleccionado en él.808Si desactivas el [ajuste Attach Open File](#extension-settings), la CLI recibe la ruta del archivo activo solo mientras tengas texto seleccionado en él.

807 809 

808**Transporte y autenticación.** El servidor se vincula a `127.0.0.1` en un puerto aleatorio en el rango 10000–65535, y el puerto no es configurable. El transporte es `ws://` sin cifrar; como el socket es solo de bucle invertido, cualquier proceso que pueda capturar el tráfico también puede leer el token del archivo de bloqueo, por lo que TLS no agregaría protección. Cada activación de extensión genera un token de autenticación aleatorio nuevo, lo escribe en un archivo de bloqueo en `~/.claude/ide/<port>.lock`, y la CLI debe presentarlo como el encabezado `X-Claude-Code-Ide-Authorization` para conectarse. El archivo de bloqueo tiene permisos `0600` en un directorio `0700`, por lo que solo el usuario que ejecuta VS Code puede leerlo. Si se establece `CLAUDE_CONFIG_DIR`, el archivo de bloqueo se escribe en `$CLAUDE_CONFIG_DIR/ide/` en su lugar.810**Transporte y autenticación.** El servidor se vincula a `127.0.0.1` en un puerto aleatorio en el rango 10000–65535, y el puerto no es configurable. El transporte es `ws://` sin cifrar; como el socket es solo de bucle invertido, cualquier proceso que pueda capturar el tráfico también puede leer el token del archivo de bloqueo, por lo que TLS no agregaría protección. Cada activación de extensión genera un token de autenticación aleatorio nuevo, lo escribe en un archivo de bloqueo en `~/.claude/ide/<port>.lock`, y la CLI debe presentarlo como el encabezado `X-Claude-Code-Ide-Authorization` para conectarse. El archivo de bloqueo tiene permisos `0600` en un directorio `0700`, por lo que solo el usuario que ejecuta VS Code puede leerlo. Si se establece `CLAUDE_CONFIG_DIR`, el archivo de bloqueo se escribe en `$CLAUDE_CONFIG_DIR/ide/` en su lugar.

809 811 

810**Herramientas expuestas al modelo.** El servidor aloja una docena de herramientas, pero solo dos son visibles para el modelo. El resto son RPC internas que la CLI utiliza para su propia interfaz de usuario — abrir diffs, leer selecciones, guardar archivos — y se filtran antes de que la lista de herramientas llegue a Claude.812**Herramientas expuestas al modelo.** El servidor aloja una docena de herramientas, pero solo dos son visibles para el modelo. El resto son RPC internas que la CLI utiliza para su propia interfaz de usuario, como abrir diffs, leer selecciones y guardar archivos. Se filtran antes de que la lista de herramientas llegue a Claude.

811 813 

812| Nombre de la herramienta (como se ve en los hooks) | Qué hace | Solo lectura |814| Nombre de la herramienta (como se ve en los hooks) | Qué hace | De solo lectura |

813| - | - | - |815| - | - | - |

814| `mcp__ide__getDiagnostics` | Devuelve diagnósticos del servidor de lenguaje — los errores y advertencias en el panel Problemas de VS Code. Opcionalmente limitado a un archivo. | Sí |816| `mcp__ide__getDiagnostics` | Devuelve diagnósticos del servidor de lenguaje: los errores y advertencias en el panel Problemas de VS Code. Opcionalmente limitado a un archivo. | Sí |

815| `mcp__ide__executeCode` | Ejecuta código Python en el kernel del cuaderno Jupyter activo. Consulte el flujo de confirmación a continuación. | No |817| `mcp__ide__executeCode` | Ejecuta código Python en el kernel del cuaderno Jupyter activo. Consulta el flujo de confirmación a continuación. | No |

816 818 

817**Diagnósticos en el panel de chat.** En el panel de chat, con Claude Code v2.1.285 o posterior, Claude lee el panel Problemas de VS Code a través de un servidor integrado independiente llamado `claude-vscode`. Claude puede pedirle los errores y advertencias actuales de un archivo, o de todos los archivos para los que VS Code tiene diagnósticos.819**Diagnósticos en el panel de chat.** En el panel de chat, con Claude Code v2.1.285 o posterior, Claude lee el panel Problemas de VS Code a través de un servidor integrado independiente llamado `claude-vscode`. Claude puede pedirle los errores y advertencias actuales de un archivo, o de todos los archivos para los que VS Code tiene diagnósticos.

818 820 


833 835 

834Una regla de denegación `Read` no cubre ninguna de las dos herramientas, así que bloquéalas por nombre con una [regla de denegación](/docs/es/permissions#mcp) como hace el ejemplo.836Una regla de denegación `Read` no cubre ninguna de las dos herramientas, así que bloquéalas por nombre con una [regla de denegación](/docs/es/permissions#mcp) como hace el ejemplo.

835 837 

836**La ejecución de Jupyter siempre pregunta primero.** `mcp__ide__executeCode` no puede ejecutar nada silenciosamente. En cada llamada, el código se inserta como una nueva celda al final del cuaderno activo, VS Code la desplaza a la vista, y una Quick Pick nativa le pide que **Ejecute** o **Cancele**. Cancelar — o descartar el selector con `Esc` — devuelve un error a Claude y nada se ejecuta. La herramienta también se niega rotundamente cuando no hay un cuaderno activo, cuando la extensión Jupyter (`ms-toolsai.jupyter`) no está instalada, o cuando el kernel no es Python.838**La ejecución de Jupyter siempre pregunta primero.** `mcp__ide__executeCode` no puede ejecutar nada silenciosamente. En cada llamada, el código se inserta como una nueva celda al final del cuaderno activo, VS Code la desplaza a la vista, y una Quick Pick nativa te pide que elijas **Execute** o **Cancel**. Cancelar, o descartar el selector con `Esc`, devuelve un error a Claude y nada se ejecuta. La herramienta también se niega rotundamente cuando no hay un cuaderno activo, cuando la extensión Jupyter (`ms-toolsai.jupyter`) no está instalada, o cuando el kernel no es Python.

837 839 

838<Note>840<Note>

839 La confirmación de Quick Pick es independiente de los hooks `PreToolUse`. Una entrada de lista de permitidos para `mcp__ide__executeCode` permite que Claude *proponga* ejecutar una celda; la Quick Pick dentro de VS Code es lo que permite que *realmente* se ejecute.841 La confirmación de Quick Pick es independiente de los hooks `PreToolUse`. Una entrada de lista de permitidos para `mcp__ide__executeCode` permite que Claude *proponga* ejecutar una celda; la Quick Pick dentro de VS Code es lo que permite que *realmente* se ejecute.


845 Solucionar problemas comunes847 Solucionar problemas comunes

846</h2>848</h2>

847 849 

850Los errores de inicio de sesión, de red y de inicio tienen sus propias entradas en las páginas de solución de problemas de instalación y de referencia de errores. Busca lo que ves en la tabla y luego sigue el enlace.

851 

852| Lo que ves | Adónde ir |

853| - | - |

854| `API Error: 403 Request not allowed` después de iniciar sesión | [403 Forbidden después de iniciar sesión](/docs/es/troubleshoot-install#403-forbidden-after-login) |

855| Se te pide iniciar sesión de nuevo después de haber iniciado sesión | [No has iniciado sesión o el token expiró](/docs/es/troubleshoot-install#not-logged-in-or-token-expired) |

856| Las credenciales del proveedor de nube funcionan en tu terminal pero no en la extensión | [Las credenciales de Bedrock, Agent Platform o Foundry no se cargan](/docs/es/troubleshoot-install#bedrock-agent-platform-or-foundry-credentials-not-loading) |

857| `SSL certificate verification failed` o `Self-signed certificate detected` | [Errores de certificado SSL](/docs/es/errors#ssl-certificate-errors) |

858| `Claude Code process exited with code 1`, u otro código | [Claude Code process exited with code N](/docs/es/errors#claude-code-process-exited-with-code-n) |

859| `Could not locate the Claude CLI on PATH` | [Could not locate the Claude CLI on PATH](/docs/es/errors#could-not-locate-the-claude-cli-on-path) |

860| `The connection to Claude Code ended before this message completed` | [The connection to Claude Code ended before this message completed](/docs/es/errors#the-connection-to-claude-code-ended-before-this-message-completed) |

861| No se encuentra `claude` en la terminal integrada de VS Code | [Ejecutar la CLI en VS Code](#run-cli-in-vs-code) |

862 

848<h3 id="extension-won’t-install">863<h3 id="extension-won’t-install">

849 La extensión no se instala864 La extensión no se instala

850</h3>865</h3>

workflows.md +6 −1

Details

522 522 

523Para desactivar workflows para toda su organización, establezca `"disableWorkflows": true` en [configuración administrada](/docs/es/server-managed-settings), o use el botón de alternancia en la página [configuración de administrador de Claude Code](https://claude.ai/admin-settings/claude-code).523Para desactivar workflows para toda su organización, establezca `"disableWorkflows": true` en [configuración administrada](/docs/es/server-managed-settings), o use el botón de alternancia en la página [configuración de administrador de Claude Code](https://claude.ai/admin-settings/claude-code).

524 524 

525Cuando los workflows están desactivados, los comandos de workflow incluidos y la skill `/workflow-authoring` no están disponibles, la palabra clave `ultracode` ya no activa una ejecución, y el botón **Ultracode** se elimina de `/effort`. Una ejecución que ya estaba en progreso continúa.525Cuando los workflows están desactivados:

526 

527* `/workflows`, los comandos de workflow y el skill `/workflow-authoring` no están disponibles

528* La palabra clave `ultracode` ya no activa una ejecución, y el botón **Ultracode** se elimina de `/effort`

529 

530Una ejecución que ya estaba en progreso continúa.

526 531 

527Desactivar workflows también hace que [ultracode](#let-claude-decide-with-ultracode) no esté disponible. No hay ninguna configuración administrada que descarte solo ultracode: dondequiera que esté [disponible](/docs/es/model-config#when-ultracode-is-available), los usuarios pueden activarlo con `/effort ultracode`. Un [límite de esfuerzo](/docs/es/model-config#organization-effort-limits) reduce el nivel de esfuerzo que una sesión con ultracode activado ejecuta, pero no desactiva ultracode.532Desactivar workflows también hace que [ultracode](#let-claude-decide-with-ultracode) no esté disponible. No hay ninguna configuración administrada que descarte solo ultracode: dondequiera que esté [disponible](/docs/es/model-config#when-ultracode-is-available), los usuarios pueden activarlo con `/effort ultracode`. Un [límite de esfuerzo](/docs/es/model-config#organization-effort-limits) reduce el nivel de esfuerzo que una sesión con ultracode activado ejecuta, pero no desactiva ultracode.

528 533 

worktrees.md +3 −1

Details

6 6 

7> Aisle sesiones paralelas de Claude Code en worktrees de git separados para que los cambios no colisionen. Cubre la bandera `--worktree`, aislamiento de subagentes, `.worktreeinclude`, limpieza y hooks de VCS no-git.7> Aisle sesiones paralelas de Claude Code en worktrees de git separados para que los cambios no colisionen. Cubre la bandera `--worktree`, aislamiento de subagentes, `.worktreeinclude`, limpieza y hooks de VCS no-git.

8 8 

9Un [git worktree](https://git-scm.com/docs/git-worktree) es un directorio de trabajo separado con sus propios archivos y rama, compartiendo el mismo historial de repositorio y remoto que su checkout principal. Ejecutar cada sesión de Claude Code en su propio worktree significa que las ediciones en una sesión nunca tocan archivos en otra, por lo que una sesión puede construir una característica mientras una segunda corrige un error.9Un [git worktree](https://git-scm.com/docs/git-worktree) es un directorio de trabajo separado con sus propios archivos y rama, que comparte el mismo historial de repositorio y remoto que tu checkout principal. Ejecutar cada sesión de Claude Code en su propio worktree le da una copia separada de los archivos para editar, por lo que una sesión puede crear una funcionalidad mientras una segunda corrige un error.

10 10 

11<Note>11<Note>

12 Los worktrees requieren un repositorio de git; para otros sistemas de control de versiones, [configure hooks para reemplazar la lógica de git](#non-git-version-control). En la [aplicación de escritorio](/docs/es/desktop#work-in-parallel-with-sessions), seleccione la opción **worktree** cuando inicie una sesión para darle su propio worktree.12 Los worktrees requieren un repositorio de git; para otros sistemas de control de versiones, [configure hooks para reemplazar la lógica de git](#non-git-version-control). En la [aplicación de escritorio](/docs/es/desktop#work-in-parallel-with-sessions), seleccione la opción **worktree** cuando inicie una sesión para darle su propio worktree.


104* **Redirecciones de git**: Claude Code bloquea un comando Bash o Monitor que redirige git al checkout principal. La redirección puede venir a través de `git -C`, `--git-dir`, una variable `GIT_DIR` o `GIT_WORK_TREE`, o un `cd` al checkout principal antes de ejecutar git.104* **Redirecciones de git**: Claude Code bloquea un comando Bash o Monitor que redirige git al checkout principal. La redirección puede venir a través de `git -C`, `--git-dir`, una variable `GIT_DIR` o `GIT_WORK_TREE`, o un `cd` al checkout principal antes de ejecutar git.

105* **Forma del comando**: Claude Code bloquea un comando Bash o Monitor cuando no puede verificar desde el texto del comando que cualquier git que ejecute el comando permanece dentro del worktree. Eso sucede, por ejemplo, cuando el nombre del comando se calcula en tiempo de ejecución, cuando la sintaxis no se puede analizar, o cuando una expansión como `${!name}` o `${ command; }` podría ejecutar un comando que el texto no especifica. Claude Code le dice a Claude cómo reescribir el comando rechazado, como dividirlo en comandos simples y separados. No puede desactivar esta verificación.105* **Forma del comando**: Claude Code bloquea un comando Bash o Monitor cuando no puede verificar desde el texto del comando que cualquier git que ejecute el comando permanece dentro del worktree. Eso sucede, por ejemplo, cuando el nombre del comando se calcula en tiempo de ejecución, cuando la sintaxis no se puede analizar, o cuando una expansión como `${!name}` o `${ command; }` podría ejecutar un comando que el texto no especifica. Claude Code le dice a Claude cómo reescribir el comando rechazado, como dividirlo en comandos simples y separados. No puede desactivar esta verificación.

106 106 

107Estas verificaciones leen la ruta a la que apunta una edición, el directorio en el que se ejecuta un comando y el texto del comando. Ninguna de ellas rastrea qué archivos escribe un comando de shell, por lo que un comando que escribe en el checkout principal sin ejecutar git allí, como `cp` o una redirección del shell, no es rechazado por ellas. Claude Code trata ese comando como cualquier otro comando de shell, así que si se ejecuta o te solicita permiso depende de tu [modo de permisos](/docs/es/permission-modes) y de tus reglas.

108 

107Las verificaciones se aplican al repositorio desde el que lanzó Claude Code. También cubren el checkout principal desde el que está vinculado un worktree vinculado. Para comandos PowerShell, Claude Code aplica solo la verificación del directorio de trabajo.109Las verificaciones se aplican al repositorio desde el que lanzó Claude Code. También cubren el checkout principal desde el que está vinculado un worktree vinculado. Para comandos PowerShell, Claude Code aplica solo la verificación del directorio de trabajo.

108 110 

109Claude ve cada rechazo como un error de herramienta que nombra el worktree y dice cómo proceder. Para un comando rechazado, consulte [qué significa el mensaje de rechazo y cómo borrarlo](/docs/es/errors#command-blocked-by-the-worktree-isolation-checks).111Claude ve cada rechazo como un error de herramienta que nombra el worktree y dice cómo proceder. Para un comando rechazado, consulte [qué significa el mensaje de rechazo y cómo borrarlo](/docs/es/errors#command-blocked-by-the-worktree-isolation-checks).