SpyBara
Go Premium

Documentation 2026-10-03 23:57 UTC to 2026-10-04 21:58 UTC

53 files changed +1,645 −1,234. View all changes and history on the product overview
2026
Sun 4 21:58 Sat 3 23:57 Fri 2 22:59 Thu 1 23:59

admin-setup.md +2 −2

Details

137 Cuentas de GitHub conectadas137 Cuentas de GitHub conectadas

138</h3>138</h3>

139 139 

140En los planes Team y Enterprise, [**Admin settings > GitHub**](https://claude.ai/admin-settings/github) enumera las organizaciones de GitHub y las cuentas personales vinculadas a tu organización de Claude a través de la [Claude GitHub App](https://github.com/apps/claude). Claude Code, [Claude Tag](https://claude.com/docs/claude-tag/admins/configure-github) y Claude Security comparten la lista. Abrirla requiere un rol de administrador en tu organización de Claude.140En los planes Team y Enterprise, [**Organization settings > GitHub**](https://claude.ai/admin-settings/github) enumera las organizaciones de GitHub y las cuentas personales vinculadas a tu organización de Claude a través de la [Claude GitHub App](https://github.com/apps/claude). Claude Code, [Claude Tag](https://claude.com/docs/claude-tag/admins/configure-github) y Claude Security comparten la lista. Abrirla requiere un rol de administrador en tu organización de Claude.

141 141 

142Un administrador o un miembro puede vincular una cuenta:142Un administrador o un miembro puede vincular una cuenta:

143 143 


161| Usage monitoring | Exportación de OpenTelemetry de sesiones, herramientas y tokens | Todos los proveedores | [Monitoring usage](/docs/es/monitoring-usage) |161| Usage monitoring | Exportación de OpenTelemetry de sesiones, herramientas y tokens | Todos los proveedores | [Monitoring usage](/docs/es/monitoring-usage) |

162| Analytics dashboard | Métricas de adopción y contribución con una tabla de clasificación en Teams / Enterprise; métricas de uso y gasto por usuario en Console | Teams / Enterprise en [claude.ai/analytics](https://claude.ai/analytics/claude-code), Console en [platform.claude.com/claude-code](https://platform.claude.com/claude-code) | [Analytics](/docs/es/analytics) |162| Analytics dashboard | Métricas de adopción y contribución con una tabla de clasificación en Teams / Enterprise; métricas de uso y gasto por usuario en Console | Teams / Enterprise en [claude.ai/analytics](https://claude.ai/analytics/claude-code), Console en [platform.claude.com/claude-code](https://platform.claude.com/claude-code) | [Analytics](/docs/es/analytics) |

163| Programmatic reporting | Datos de uso y costo por usuario a través de una API | [Enterprise Analytics API](https://platform.claude.com/docs/en/api/admin/analytics) para Enterprise, [Claude Code Analytics API](https://platform.claude.com/docs/en/build-with-claude/claude-code-analytics-api) para Console | [Costs](/docs/es/costs#manage-costs-for-your-organization) |163| Programmatic reporting | Datos de uso y costo por usuario a través de una API | [Enterprise Analytics API](https://platform.claude.com/docs/en/api/admin/analytics) para Enterprise, [Claude Code Analytics API](https://platform.claude.com/docs/en/build-with-claude/claude-code-analytics-api) para Console | [Costs](/docs/es/costs#manage-costs-for-your-organization) |

164| Spend controls | Límites de gasto y límites de velocidad | Configuración de administrador para Teams / Enterprise, límites de espacio de trabajo para Console; en nubes de terceros, controles de presupuesto en la nube o una [Claude apps gateway](/docs/es/claude-apps-gateway) con [límites de gasto](/docs/es/claude-apps-gateway-spend-limits) por usuario | [Costs](/docs/es/costs#manage-costs-for-your-organization) |164| Spend controls | Límites de gasto y rate limits | Configuración de la organización para Teams / Enterprise, límites de espacio de trabajo para Console; en nubes de terceros, controles de presupuesto en la nube o un [Claude apps gateway](/docs/es/claude-apps-gateway) con [límites de gasto](/docs/es/claude-apps-gateway-spend-limits) por usuario | [Costs](/docs/es/costs#manage-costs-for-your-organization) |

165 165 

166En Teams y Enterprise, los números de uso y gasto por usuario provienen del [informe de gasto](https://support.claude.com/en/articles/12883420-view-usage-analytics-for-team-and-enterprise-plans) en la configuración de análisis de su organización, no del panel de análisis. Los proveedores de nube exponen el gasto a través de AWS Cost Explorer, GCP Billing o Azure Cost Management. Para planificar presupuestos empresariales en Claude chat, Claude Code y Cowork, consulte la [guía de consumo de Claude Enterprise](https://support.claude.com/en/articles/14782391-claude-enterprise-consumption-guide).166En Teams y Enterprise, los números de uso y gasto por usuario provienen del [informe de gasto](https://support.claude.com/en/articles/12883420-view-usage-analytics-for-team-and-enterprise-plans) en la configuración de análisis de su organización, no del panel de análisis. Los proveedores de nube exponen el gasto a través de AWS Cost Explorer, GCP Billing o Azure Cost Management. Para planificar presupuestos empresariales en Claude chat, Claude Code y Cowork, consulte la [guía de consumo de Claude Enterprise](https://support.claude.com/en/articles/14782391-claude-enterprise-consumption-guide).

167 167 

agent-sdk/mcp.md +14 −0

Details

919 ```919 ```

920</CodeGroup>920</CodeGroup>

921 921 

922<h3 id="a-tool-is-missing-from-an-sdk-mcp-server">

923 Falta una herramienta en un servidor MCP del SDK

924</h3>

925 

926En el SDK de TypeScript, cuando el esquema de entrada de una herramienta no se puede convertir a JSON Schema, el servidor que creaste con [`createSdkMcpServer()`](/docs/es/agent-sdk/typescript#createsdkmcpserver) omite esa herramienta al listar sus herramientas. En ese momento, el SDK emite una advertencia. En Node.js, la advertencia es una advertencia de proceso con el código `CLAUDE_SDK_MCP_TOOL_SCHEMA_UNCONVERTIBLE`, y comienza con este texto:

927 

928```text theme={null}

929Tool "<name>" on SDK MCP server "<server>" was left out of the server's tool list, because its input schema cannot be converted to JSON Schema

930```

931 

932El resto de la advertencia incluye el mensaje del error de conversión cuando lo hay y, a continuación, indica qué revisar y cambiar.

933 

934Antes de la versión v0.3.286 del Agent SDK de TypeScript, un solo esquema no convertible hacía que fallara todo el listado de herramientas del servidor sin esta advertencia, por lo que ninguna de las herramientas de ese servidor llegaba a Claude.

935 

922<h3 id="connection-timeouts">936<h3 id="connection-timeouts">

923 Tiempos de espera de conexión937 Tiempos de espera de conexión

924</h3>938</h3>

Details

13| Síntoma | Ir a |13| Síntoma | Ir a |

14| :- | :- |14| :- | :- |

15| Skills no encontradas, una skill no se está utilizando, error `Invalid skill name` | [Solución de problemas de skills](/docs/es/agent-sdk/skills#troubleshooting) |15| Skills no encontradas, una skill no se está utilizando, error `Invalid skill name` | [Solución de problemas de skills](/docs/es/agent-sdk/skills#troubleshooting) |

16| El servidor MCP muestra estado `failed`, las herramientas no se están llamando, tiempos de espera de conexión, salida de herramienta que excede el máximo de tokens permitidos | [Solución de problemas de MCP](/docs/es/agent-sdk/mcp#troubleshooting) |16| El servidor MCP muestra estado `failed`, las herramientas no se están llamando, falta una herramienta en un servidor MCP del SDK, tiempos de espera de conexión, salida de herramienta que excede el máximo de tokens permitidos | [Solución de problemas de MCP](/docs/es/agent-sdk/mcp#troubleshooting) |

17| Plugin no se carga, las skills del plugin no aparecen | [Solución de problemas de plugins](/docs/es/agent-sdk/plugins#troubleshooting) |17| Plugin no se carga, las skills del plugin no aparecen | [Solución de problemas de plugins](/docs/es/agent-sdk/plugins#troubleshooting) |

18| Claude no delega a subagentes, los agentes basados en sistema de archivos no se cargan | [Solución de problemas de subagentes](/docs/es/agent-sdk/subagents#troubleshooting) |18| Claude no delega a subagentes, los agentes basados en sistema de archivos no se cargan | [Solución de problemas de subagentes](/docs/es/agent-sdk/subagents#troubleshooting) |

19| Las opciones de checkpointing no se reconocen, mensajes de usuario sin UUID, `No file checkpoint found`, `File rewinding is not enabled`, `ProcessTransport is not ready for writing` | [Solución de problemas de checkpointing de archivos](/docs/es/agent-sdk/file-checkpointing#troubleshooting) |19| Las opciones de checkpointing no se reconocen, mensajes de usuario sin UUID, `No file checkpoint found`, `File rewinding is not enabled`, `ProcessTransport is not ready for writing` | [Solución de problemas de checkpointing de archivos](/docs/es/agent-sdk/file-checkpointing#troubleshooting) |

Details

539| Propiedad | Tipo | Predeterminado | Descripción |539| Propiedad | Tipo | Predeterminado | Descripción |

540| :- | :- | :- | :- |540| :- | :- | :- | :- |

541| `abortController` | `AbortController` | `new AbortController()` | Controlador para cancelar operaciones |541| `abortController` | `AbortController` | `new AbortController()` | Controlador para cancelar operaciones |

542| `additionalDirectories` | `string[]` | `[]` | Directorios adicionales a los que Claude puede acceder. El SDK pasa cada entrada a Claude Code como `--add-dir`, por lo que con la 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) |542| `additionalDirectories` | `string[]` | `[]` | 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) |

543| `agent` | `string` | `undefined` | Nombre del agente para el hilo principal. El agente debe estar definido en la opción `agents` o en la configuración |543| `agent` | `string` | `undefined` | Nombre del agente para el hilo principal. El agente debe estar definido en la opción `agents` o en la configuración |

544| `agents` | `Record<string, [`AgentDefinition`](#agentdefinition)>` | `undefined` | Defina subagentes mediante programación |544| `agents` | `Record<string, [`AgentDefinition`](#agentdefinition)>` | `undefined` | Define subagentes mediante programación |

545| `agentProgressSummaries` | `boolean` | `false` | Cuando es `true`, genere resúmenes de progreso de una línea para subagentes y reenvíelos en eventos [`task_progress`](#sdktaskprogressmessage) a través del campo `summary`. Se aplica a subagentes en primer plano y en segundo plano |545| `agentProgressSummaries` | `boolean` | `false` | Cuando es `true`, genera resúmenes de progreso de una línea para los subagentes y los reenvía en los eventos [`task_progress`](#sdktaskprogressmessage) mediante el campo `summary`. Se aplica a subagentes en primer plano y en segundo plano |

546| `allowDangerouslySkipPermissions` | `boolean` | `false` | Habilite omitir permisos. Requerido cuando se usa `permissionMode: 'bypassPermissions'`, al inicio o posteriormente a través de `setPermissionMode()`. Vea [Plan Mode](/docs/es/agent-sdk/permissions#plan-mode-plan) para cómo interactúa con `permissionMode: 'plan'` |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'` |

547| `allowedTools` | `string[]` | `[]` | Herramientas para aprobar automáticamente sin solicitar. Esto no restringe Claude a solo 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 optar por la sesión. Las herramientas no listadas caen en `permissionMode` y `canUseTool`. Use `disallowedTools` para bloquear herramientas. Vea [Permissions](/docs/es/agent-sdk/permissions#allow-and-deny-rules) |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) |

548| `betas` | [`SdkBeta`](#sdkbeta)`[]` | `[]` | Habilite características beta |548| `betas` | [`SdkBeta`](#sdkbeta)`[]` | `[]` | Habilita funciones beta |

549| `canUseTool` | [`CanUseTool`](#canusetool) | `undefined` | Función de permiso personalizado, invocada solo cuando el [flujo de permisos](/docs/es/agent-sdk/permissions#how-permissions-are-evaluated) cae en un mensaje. No se invoca para llamadas preaprobadas por `allowedTools`, reglas de permiso, o `permissionMode`. Una regla de permiso no preaprueba las [acciones que ningún modo aprueba automáticamente](/docs/es/permission-modes#actions-no-mode-auto-approves). Vea [`CanUseTool`](#canusetool) para detalles |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 |

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

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

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

553| `debugFile` | `string` | `undefined` | Escriba registros de depuración en una ruta de archivo específica. Habilita implícitamente el modo de depuración |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 |

554| `disallowedTools` | `string[]` | `[]` | Herramientas a negar. Un nombre simple como `"Bash"` elimina la herramienta del contexto de Claude. Una regla con alcance como `"Bash(rm *)"` deja la herramienta disponible y niega las llamadas coincidentes en cada modo de permiso, incluyendo `bypassPermissions`, para el comando [tal como está escrito](/docs/es/permissions#bash-rule-limits). Vea [Permissions](/docs/es/agent-sdk/permissions#allow-and-deny-rules) |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) |

555| `effort` | `'low' \| 'medium' \| 'high' \| 'xhigh' \| 'max'` | `undefined` | Controla cuánto esfuerzo pone Claude en su respuesta. Funciona con el pensamiento adaptativo para guiar la profundidad del pensamiento. Vea [adjust the effort level](/docs/es/model-config#adjust-effort-level) |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) |

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

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

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

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

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

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

562| `forkSession` | `boolean` | `false` | Cuando se reanuda con `resume`, bifurque a un nuevo ID de sesión en lugar de continuar la sesión original |562| `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íe bloques de texto y pensamiento de subagentes como mensajes de asistente y usuario con `parent_tool_use_id` establecido, para que los consumidores puedan renderizar una transcripción anidada. Sin esta opción, Claude Code emite bloques `tool_use` y `tool_result` de subagentes pero no texto o pensamiento. Los mensajes de subagentes en cada profundidad de anidamiento se reenvían en Claude Code v2.1.219 y posterior; antes de v2.1.219, solo aparecían mensajes de subagentes de profundidad 1. Los mensajes de subagentes que un skill bifurcado genera, y de skills bifurcados anidados, requieren v2.1.275 o posterior |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 |

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

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

566| `includePartialMessages` | `boolean` | `false` | Incluya eventos de mensaje parcial |566| `includePartialMessages` | `boolean` | `false` | Incluye eventos de mensajes parciales |

567| `loadTimeoutMs` | `number` | `60000` | *Alpha.* Tiempo de espera en milisegundos para cada llamada `sessionStore.load()` y `sessionStore.listSubkeys()` durante la materialización de reanudación. Si el adaptador no se resuelve dentro de esta ventana, la consulta falla en lugar de colgarse. Se ignora cuando `sessionStore` no está establecido |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 |

568| `managedSettings` | `Settings` | `undefined` | Configuración de nivel de política suministrada por el proceso padre que genera la sesión. En máquinas con configuración administrada implementada por administrador, Claude Code ignora estas a menos que la fuente administrada de mayor prioridad del administrador establezca `parentSettingsBehavior: 'merge'`, y nunca las fusiona mientras un [`policyHelper`](/docs/es/settings-reference#policyhelper) suministra configuración administrada. Los valores fusionados pasan a través de un filtro de solo restrictivo; [Restrict parent settings](/docs/es/claude-apps-gateway#restrict-parent-settings) cubre lo que el filtro admite y los bloqueos `allowManaged*Only`. Un host que establece [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/es/env-vars) tiene tres claves leídas directamente de esta carga en su lugar: su [configuración de modelo](/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 la establece en v2.1.246 o posterior, y su entrada `ENABLE_TOOL_SEARCH` env en v2.1.247 o posterior |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 |

569| `maxBudgetUsd` | `number` | `undefined` | Detenga la consulta cuando la estimación de costo del lado del cliente alcance este valor en USD. Comparado con la misma estimación que `total_cost_usd`. Para advertencias de precisión y comportamiento de reinicio, vea [Track cost and usage](/docs/es/agent-sdk/cost-tracking) |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) |

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

571| `maxTurns` | `number` | `undefined` | Número máximo de turnos agentes (viajes de ronda de uso de herramientas) |571| `maxTurns` | `number` | `undefined` | Máximo de turnos agénticos (idas y vueltas de uso de herramientas) |

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

573| `model` | `string` | Predeterminado de CLI | Alias de modelo Claude o nombre de modelo completo. Vea [accepted values and provider-specific IDs](/docs/es/model-config#available-models) |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) |

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

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

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

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

578| `permissionMode` | [`PermissionMode`](#permissionmode) | `undefined` | Modo de permiso para la sesión. Si lo omite, la sesión puede comenzar en modo automático. Vea [Permission modes](/docs/es/agent-sdk/permissions#permission-modes) para cómo Claude Code elige el modo de permiso inicial |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 |

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

580| `permissionPrompts` | `'host' \| 'none'` | `'host'` | Quién responde a los mensajes de permiso: `'host'` los enruta a su devolución de llamada [`canUseTool`](#canusetool) o a la herramienta `permissionPromptToolName`, y `'none'` [niega las llamadas que habrían solicitado](/docs/es/agent-sdk/permissions#how-permissions-are-evaluated). Requiere Claude Code v2.1.259 o posterior |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 |

581| `persistSession` | `boolean` | `true` | Cuando es `false`, deshabilita la persistencia de sesión en disco. Las sesiones no se pueden reanudar más tarde |581| `persistSession` | `boolean` | `true` | Cuando es `false`, deshabilita 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 personalizado para Plan Mode. Cuando `permissionMode` es `'plan'`, esta cadena reemplaza el cuerpo de flujo de trabajo de Plan Mode predeterminado. La CLI aún lo envuelve con el preámbulo de cumplimiento de solo lectura y el pie de página del protocolo ExitPlanMode |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 |

583| `plugins` | [`SdkPluginConfig`](#sdkpluginconfig)`[]` | `[]` | Cargue plugins personalizados desde rutas locales. Vea [Plugins](/docs/es/agent-sdk/plugins) para detalles |583| `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 del proyecto `.claude/` desde este directorio en lugar de `cwd`, y establece `CLAUDE_PROJECT_DIR` en él. Los hooks, scripts auxiliares como `apiKeyHelper`, y servidores MCP de stdio comienzan con este directorio como su directorio de trabajo. Los archivos `CLAUDE.md` y `.claude/rules/` aún se cargan desde `cwd`. Requiere Claude Code v2.1.275 o posterior |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 |

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

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

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

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

589| `sandbox` | [`SandboxSettings`](#sandboxsettings) | `undefined` | Configure el comportamiento de sandbox mediante programación. Vea [Sandbox settings](#sandboxsettings) para detalles |589| `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` | Auto-generado | Use un UUID específico para la sesión en lugar de generar uno automáticamente |590| `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` | Refleje transcripciones de sesión en un backend externo para que otro host pueda reanudarlas. Vea [Persist sessions to external storage](/docs/es/agent-sdk/session-storage) |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) |

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

593| `settings` | `string \| Settings` | `undefined` | Objeto de [settings](/docs/es/settings) en línea, ruta a un archivo de configuración, o cadena JSON en línea. Completa la capa de configuración de marca en el [orden de precedencia](/docs/es/settings#settings-precedence). Cambie en tiempo de ejecución con [`applyFlagSettings()`](#applyflagsettings) |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) |

594| `settingSources` | [`SettingSource`](#settingsource)`[]` | Valores predeterminados de CLI (todas las fuentes) | Controle qué configuración del sistema de archivos cargar. Pase `[]` para deshabilitar la configuración de usuario, proyecto y local. La [política administrada por punto final](/docs/es/managed-settings#delivery-mechanisms) 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). Vea [Use Claude Code features](/docs/es/agent-sdk/claude-code-features#what-settingsources-does-not-control) |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) |

595| `skills` | `string[] \| 'all'` | `undefined` | Skills disponibles para la sesión. Pase `'all'` para habilitar cada skill descubierto, o una lista de nombres de skills. Pase solo nombres exactos. En Agent SDK v0.3.221 o posterior, el SDK rechaza nombres malformados y de forma comodín con un error antes de iniciar el proceso de Claude Code. Cuando se establece, el SDK agrega la herramienta Skill a `allowedTools` automáticamente. Si también pasa `tools`, incluya `'Skill'` en esa lista. Vea [Skills](/docs/es/agent-sdk/skills) |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) |

596| `spawnClaudeCodeProcess` | `(options: SpawnOptions) => SpawnedProcess` | `undefined` | Función personalizada para generar el proceso de Claude Code. Use para ejecutar Claude Code en máquinas virtuales, contenedores o entornos remotos |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 |

597| `stderr` | `(data: string) => void` | `undefined` | Devolución de llamada para salida de stderr |597| `stderr` | `(data: string) => void` | `undefined` | Callback para la salida de stderr |

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

599| `systemPrompt` | `string \| string[] \| { type: 'custom'; prompt: string \| string[]; snapshot?: boolean } \| { type: 'preset'; preset: 'claude_code'; append?: string; excludeDynamicSections?: boolean; snapshot?: boolean }` | `undefined` (mensaje mínimo) | Configuración de mensaje del sistema. Pase una cadena para un mensaje personalizado, o `{ type: 'preset', preset: 'claude_code' }` para usar el mensaje del sistema de Claude Code. Pase una matriz de cadenas con la constante exportada `SYSTEM_PROMPT_DYNAMIC_BOUNDARY` entre las partes estática y por solicitud para [cachear la parte estática de un mensaje personalizado](/docs/es/agent-sdk/modifying-system-prompts#cache-the-static-part-of-a-custom-prompt). Cuando use la forma de objeto preestablecido, agregue `append` para extenderlo con instrucciones adicionales, y establezca `excludeDynamicSections: true` para mover el contexto por sesión al primer mensaje de usuario para [mejor reutilización de caché de mensaje en máquinas](/docs/es/agent-sdk/modifying-system-prompts#improve-prompt-caching-across-users-and-machines). Establezca `snapshot: false` para reconstruir el mensaje en cada solicitud en lugar de [reutilizar el mensaje 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 mensaje personalizado, pase la forma `{ type: 'custom', prompt }`. La forma `{ type: 'custom' }` y el campo `snapshot` requieren TypeScript Agent SDK v0.3.257 o posterior |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 |

600| `taskBudget` | `{ total: number }` | `undefined` | *Alpha.* Presupuesto de tarea del lado de la API en tokens. Cuando se establece, se le dice al modelo su presupuesto de token restante para que pueda controlar el uso de herramientas y terminar antes del límite |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 |

601| `thinking` | [`ThinkingConfig`](#thinkingconfig) | `{ type: 'adaptive' }` para modelos compatibles | Controla el comportamiento de pensamiento/razonamiento de Claude. Vea [`ThinkingConfig`](#thinkingconfig) para opciones |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 |

602| `title` | `string` | `undefined` | Título de visualización para la sesión. Cuando se reanuda a través de `resume` o `continue`, el título persistente de la sesión reanudada tiene precedencia; use [`renameSession()`](#renamesession) para cambiar el título de una sesión existente |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 |

603| `toolAliases` | `Record<string, string>` | `undefined` | Mapee nombres de herramientas integradas a nombres de herramientas MCP para que Claude llame a su implementación MCP en lugar de la integrada. Por ejemplo, `{ Bash: 'mcp__workspace__bash' }` |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' }` |

604| `toolConfig` | [`ToolConfig`](#toolconfig) | `undefined` | Configuración para el comportamiento de herramientas integradas. Vea [`ToolConfig`](#toolconfig) para detalles |604| `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. Pase una matriz de nombres de herramientas o use el preestablecido para obtener las herramientas predeterminadas de Claude Code |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 |

606| `verbatimPrompts` | `boolean` | `false` | Entregue cada mensaje tal como está escrito. El SDK envía cada mensaje de usuario con `client_composed: true`. Vea [`client_composed`](#sdkusermessage) para lo que Claude Code omite en esos mensajes. Use esta opción cuando el texto de su mensaje incluya contenido que el usuario final no escribió. Para control por turno, déjelo desactivado y establezca `client_composed` en mensajes individuales transmitidos en su lugar. 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 de SDK satisface el requisito de versión 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 |

607 607 

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

609 Manejo de respuestas de API lentas o estancadas609 Manejar respuestas de API lentas o detenidas

610</h4>610</h4>

611 611 

612El 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 la opción `env`: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`:

613 613 

614```typescript theme={null}614```typescript theme={null}

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


627});627});

628```628```

629 629 

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

631* `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 retroceso. 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 transitorios 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.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.

632* `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS`: perro guardián de estancamiento para subagentes. Mientras el perro guardián de transmisión está activado, el predeterminado es `CLAUDE_STREAM_IDLE_TIMEOUT_MS` más 5 minutos, que suma `600000` a menos que eleve esa variable. Con el perro guardián de transmisión desactivado, el predeterminado es `600000`. Antes de v2.1.257, el predeterminado era siempre `600000`.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`.

633 633 

634 El temporizador se reinicia en cada evento de transmisión. En caso de estancamiento, Claude Code aborta el subagente e informa el estancamiento al padre. Para un subagente de fondo, también marca la tarea como fallida y adjunta cualquier resultado parcial.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.

635* `CLAUDE_ENABLE_STREAM_WATCHDOG` con `CLAUDE_STREAM_IDLE_TIMEOUT_MS`: perro guardián de transmisión 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 valor predeterminado de `300000` y se fija a ese mínimo. Después de la anulación, [Automatic retries](/docs/es/errors#automatic-retries) cubre lo que Claude Code hace, basado en cuán lejos había progresado la respuesta.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.

636 636 

637 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 `includePartialMessages` sigue recibiendo eventos de transmisión `ping` [stream events](#sdkpartialassistantmessage), así que lea esos marcos como vivacidad en lugar de agotar el tiempo de espera de la sesión en silencio. Antes de v2.1.257, los marcos se detenían 5 minutos después del último evento de transmisión real.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.

638 638 

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

640 Objeto `Query`640 Objeto `Query`

641</h3>641</h3>

642 642 

643Interfaz devuelta por la función `query()`.643Interfaz que devuelve la función `query()`.

644 644 

645```typescript theme={null}645```typescript theme={null}

646interface Query extends AsyncGenerator<SDKMessage, void> {646interface Query extends AsyncGenerator<SDKMessage, void> {


696 696 

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

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

699| `interrupt()` | Interrumpe la consulta. Solo disponible en modo de entrada de transmisión. 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 a `undefined` en CLIs anteriores a v2.1.205 |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 |

700| `rewindFiles(userMessageId, options?)` | Restaura archivos a su estado en el mensaje de usuario especificado. Pase `{ dryRun: true }` para obtener una vista previa de los cambios. Requiere `enableFileCheckpointing: true`. Vea [File checkpointing](/docs/es/agent-sdk/file-checkpointing) |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) |

701| `setPermissionMode()` | Cambia el modo de permiso (solo disponible en modo de entrada de transmisión) |701| `setPermissionMode()` | Cambia el modo de permisos (solo disponible en el modo de entrada en streaming) |

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

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

704| `applyFlagSettings(settings)` | Fusiona la configuración en la capa de configuración de marca de la sesión en tiempo de ejecución (solo disponible en modo de entrada de transmisión). Vea [`applyFlagSettings()`](#applyflagsettings) |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) |

705| `updateSettings(source, settings)` | Escribe una clave permitida en el archivo de configuración local del proyecto o en su archivo de configuración de usuario, para que el valor persista para sesiones posteriores. Vea [`updateSettings()`](#updatesettings). Requiere TypeScript SDK v0.3.257 o posterior, que incluye Claude Code v2.1.257 |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 |

706| `initializationResult()` | Devuelve el resultado de inicialización completo incluyendo comandos compatibles, modelos, información de cuenta y configuración de estilo de salida |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 |

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

708| `supportedCommands()` | Devuelve comandos disponibles. Desde Agent SDK v0.3.216 la lista refleja cambios de comandos a mitad de sesión; vea [`SDKCommandsChangedMessage`](#sdkcommandschangedmessage) |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) |

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

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

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

712| `getContextUsage(opts?)` | Devuelve un [`SDKControlGetContextUsageResponse`](#sdkcontrolgetcontextusageresponse) desglosando el uso de la ventana de contexto de la sesión por categoría, skill y herramienta. Con el `detail` predeterminado, es el mismo dato que `/context` muestra en una sesión interactiva, calculado con solicitudes de API de conteo de tokens que no aparecen en la transmisión de mensajes; vea [cómo se manejan estas solicitudes](#sdkcontrolgetcontextusageresponse). La [opción `detail`](#sdkcontrolgetcontextusageresponse) requiere Agent SDK v0.3.257 o posterior |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 |

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

714| `reloadPlugins(options?)` | Recarga plugins desde el disco, por lo que los plugins que instala o edita a mitad de sesión llegan a la sesión en ejecución. Se resuelve con un [`SDKControlReloadPluginsResponse`](#sdkcontrolreloadpluginsresponse) que enumera los comandos, subagentes, plugins y estado del servidor 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 |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 |

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

716| `reloadOutputStyles()` | Re-lee [estilos de salida](/docs/es/output-styles) desde el disco, por lo que un archivo de estilo que agrega o edita a mitad de sesión se pone a disposición de la sesión en ejecución. Se resuelve con un [`SDKControlReloadOutputStylesResponse`](#sdkcontrolreloadoutputstylesresponse) que enumera los nombres de estilo disponibles después de la recarga. Requiere Agent SDK v0.3.261 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 |

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

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

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 se necesita para cada tipo de servidor |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 |

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

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

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

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

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

725 725 

726<h4 id="applyflagsettings">726<h4 id="applyflagsettings">

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

728</h4>728</h4>

729 729 

730Cambia [settings](/docs/es/settings) en una sesión en ejecución sin reiniciar la consulta. Úselo cuando una configuración que no tiene un setter dedicado necesite cambiar a mitad de sesión, como restringir `permissions` después de que el agente lea 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()`.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()`.

731 731 

732Solo algunas claves tienen efecto a mitad de sesión:732Solo algunas claves surten efecto a mitad de sesión:

733 733 

734* **Aplicadas en el siguiente turno**: `effortLevel`, `ultracode`, `permissions`, `hooks`, `skillOverrides`, `fastMode`, `agent`. Cambiar `agent` también aplica la anulación de modelo y hooks de ese agente en el siguiente turno. Su mensaje del sistema se aplica en el siguiente turno, o, en una sesión que [reutiliza un mensaje 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.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.

735* **Aplicadas durante el turno actual**: `model`. Si cambia `model` mientras Claude está trabajando en un turno, la respuesta que Claude ya está generando finaliza en el modelo anterior, y el resto del turno, comenzando con la siguiente llamada que Claude Code hace al modelo, usa el nuevo. Los subagentes mantienen su propio modelo. Antes de v2.1.212, un cambio a mitad de turno esperaba el siguiente turno.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.

736* **Sin efecto a mitad de sesión**: las opciones de mensaje del sistema. Estos se resuelven una vez al inicio, por lo que la sesión en ejecución mantiene el valor original aunque la llamada tenga éxito. Para cambiarlos, inicie una nueva sesión.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.

737 737 

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

739 739 

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

741 741 

742Las llamadas sucesivas fusionan superficialmente las claves de nivel superior. Una segunda llamada con `{ permissions: {...} }` reemplaza el objeto `permissions` completo de la llamada anterior en lugar de fusionarse profundamente en él.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.

743 743 

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

745 745 

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

747 747 

748* `effortLevel: null` devuelve la sesión al nivel de esfuerzo predeterminado del modelo, no a la opción `effort` de `query()` o un `effortLevel` de un archivo de configuración.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.

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

750* `ultracode: null` desactiva ultracode, como lo hace `false`, en lugar de restaurar un valor `ultracode` de un archivo de configuración. La sesión mantiene su nivel de esfuerzo actual, así que pase `effortLevel` en la misma llamada para cambiarlo.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.

751 751 

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

753 753 

754El ejemplo a continuación cambia el modelo activo a mitad de sesión, luego borra la anulación para que el modelo se reinicie al [modelo predeterminado de Claude Code](/docs/es/model-config).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).

755 755 

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

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

758 758 

759const q = query({ prompt: messageStream });759const q = query({ prompt: messageStream });

760 760 

761// Anule el modelo para el resto de la sesión761// Override the model for the rest of the session

762await q.applyFlagSettings({ model: "claude-opus-4-6" });762await q.applyFlagSettings({ model: "claude-opus-4-6" });

763 763 

764// Más tarde: borre la anulación; el modelo se reinicia al modelo predeterminado de Claude Code764// Later: clear the override; the model resets to Claude Code's default

765await q.applyFlagSettings({ model: null });765await q.applyFlagSettings({ model: null });

766```766```

767 767 

768<Note>768<Note>

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

770</Note>770</Note>

771 771 

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

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

774</h4>774</h4>

775 775 

776Escribe una clave permitida en un archivo de configuración en disco, para que el valor persista para sesiones posteriores que carguen esa fuente. Cada fuente acepta una clave, con un valor de cadena: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:

777 777 

778* **`"localSettings"`**: acepta `outputStyle` y lo fusiona en el archivo de configuración local del proyecto, `.claude/settings.local.json`. El nuevo estilo entra en vigor en la siguiente solicitud de la sesión.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.

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

780 780 

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

782 782 

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

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


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

788 788 

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

790* Un servidor en proceso que creaste con [`createSdkMcpServer()`](#createsdkmcpserver), tanto si lo pasaste en `mcpServers` como 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 están en ejecución, de modo que Claude recibe de inmediato un resultado de error para cada una, sin esperar a que tu controlador regrese.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.

791 791 

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

793 `WarmQuery`793 `WarmQuery`

794</h3>794</h3>

795 795 

796Identificador devuelto por [`startup()`](#startup). El subproceso ya está generado e inicializado, por lo que llamar a `query()` en este identificador escribe el mensaje directamente en un proceso listo sin latencia de inicio.796Handle que devuelve [`startup()`](#startup). El subproceso ya está generado e inicializado, por lo que llamar a `query()` en este handle escribe el prompt directamente en un proceso listo, sin latencia de inicio.

797 797 

798```typescript theme={null}798```typescript theme={null}

799interface WarmQuery extends AsyncDisposable {799interface WarmQuery extends AsyncDisposable {


808 808 

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

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

811| `query(prompt)` | Envíe un mensaje al subproceso precalentado y devuelva un [`Query`](#query-object). Solo se puede llamar una vez por `WarmQuery` |811| `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()` | Cierre el subproceso sin enviar un mensaje. Use esto para descartar una consulta cálida que ya no es necesaria |812| `close()` | Cierra el subproceso sin enviar un prompt. Úsalo para descartar una consulta precalentada que ya no necesitas |

813 813 

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

815 815 

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

817 `SpareProcess`817 `SpareProcess`

818</h3>818</h3>

819 819 

820*Alpha.* Identificador devuelto por [`prewarm()`](#prewarm): un proceso de Claude Code iniciado que aún no está vinculado a una sesión y se puede reclamar una vez. Requiere TypeScript Agent SDK v0.3.282 o posterior.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.

821 821 

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

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


837 837 

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

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

840| `claim({ prompt, options })` | Vincule el repuesto a una sesión en `options.cwd` y envíe su primer mensaje. Devuelve un [`Query`](#query-object) de forma síncrona, como lo hace `query()`. Solo se puede llamar una vez |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 |

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. Rechaza cuando Claude Code rechaza la reclamación, cuando el proceso salió o fue cerrado primero, y, con un mensaje que comienza con `option_not_applied`, cuando la sesión se ejecuta sin el `model` o `maxThinkingTokens` que solicitó |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 |

842| `exited` | Se resuelve cuando el proceso sale, reclamado o no. Reemplace un repuesto que sale antes de que lo reclame |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 |

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

844 844 

845`options.cwd` es requerido. Una reclamación también puede establecer `additionalDirectories`, `model`, `permissionMode`, `maxThinkingTokens`, una superposición de configuración de marca en `settings`, `appendSystemPrompt`, `title`, `agents`, y tokens por sesión en `env`.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`.

846 846 

847Claude Code puede rechazar una reclamación, por ejemplo para una carpeta que no existe o una cuya configuración del proyecto establece `env`, `agent`, o `model`. Cuando `claimed` rechaza con un mensaje que comienza con `option_not_applied`, la sesión se ejecuta sin el `model` o `maxThinkingTokens` que solicitó. Después de cualquier otro rechazo su mensaje no ha ejecutado, así que inicie la sesión con `query()` en su lugar.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.

848 848 

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

850 `SDKControlInitializeResponse`850 `SDKControlInitializeResponse`

851</h3>851</h3>

852 852 

853Tipo de retorno de `initializationResult()`. Contiene datos de inicialización de sesión.853Tipo de retorno de `initializationResult()`. Contiene los datos de inicialización de la sesión.

854 854 

855```typescript theme={null}855```typescript theme={null}

856type SDKControlInitializeResponse = {856type SDKControlInitializeResponse = {


863 fast_mode_state?: "off" | "cooldown" | "on";863 fast_mode_state?: "off" | "cooldown" | "on";

864 fast_mode_disabled_reason?: FastModeDisabledReason;864 fast_mode_disabled_reason?: FastModeDisabledReason;

865 hooks_applied?: boolean;865 hooks_applied?: boolean;

866 sdk_mcp_manifests_parked?: Record<

867 string,

868 | "parked"

869 | "already_connected"

870 | "protocol_version_mismatch"

871 | "malformed"

872 | "not_honoured"

873 >;

866};874};

867```875```

868 876 

869`hooks_applied` informa si Claude Code registró los `hooks` que la solicitud `initialize` llevaba. El SDK envía esa solicitud una vez cuando la sesión comienza y nuevamente en cada llamada [`reinitialize()`](#query-object). El campo requiere Agent SDK v0.3.238 o posterior.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.

878 

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:

870 880 

871Claude Code omite el campo cuando la solicitud no llevaba hooks. Cuando la solicitud llevaba hooks, el valor depende de si la solicitud es la primera inicialización de la sesión y, para una repetida, de cómo llegó a la sesión: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.

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.

872 883 

873* `true`: Claude Code registró los hooks. Una primera inicialización de sesión devuelve este valor. También lo hace una inicialización repetida enviada sobre stdin de la CLI. En ese caso los hooks en la nueva solicitud reemplazan los hooks registrados anteriormente.884Antes de Agent SDK v0.3.238, la respuesta nunca contenía el campo, y Claude Code ignoraba `hooks` en cada inicialización repetida.

874* `false`: Claude Code ignoró los hooks. Una inicialización repetida enviada a una sesión remota devuelve este valor, por lo que un segundo cliente que se une a una sesión no puede reemplazar los hooks que el primer cliente registró.

875 885 

876Antes de Agent SDK v0.3.238, la respuesta nunca llevaba el campo, y Claude Code ignoraba `hooks` en cada inicialización repetida.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.

877 887 

878La respuesta siempre informa `fast_mode_state`, y cuando algo bloquea [fast mode](/docs/es/fast-mode), `fast_mode_disabled_reason` lleva el código de razón junto con él, para que pueda explicar el estado bloqueado en lugar de re-derivar 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 fast mode no estaba disponible y nunca llevaba una razón. Para los códigos de razón y sus significados, vea [`fast_mode_disabled_reason`](#sdkresultmessage) en el mensaje de resultado.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.

879 889 

880El contenedor de respuesta de control para una `initialize` exitosa también lleva una matriz `pending_permission_requests`. El campo está en el contenedor de respuesta en sí, no en la carga `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 para solicitudes de permiso mientras se ejecuta.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.

881 891 

882La matriz enumera las solicitudes de permiso que este proceso de Claude Code ha emitido y aún no ha resuelto. El SDK lee la matriz para usted y envía cada entrada a su devolución de llamada [`canUseTool`](#canusetool), el mismo reenvío que [`reinitialize()`](#query-object) activa después de una brecha de transporte. Maneje IDs de solicitud repetidos de forma idempotente, porque una entrada puede repetir una solicitud que la devolución de llamada ya recibió antes de que se cayera la conexión.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.

883 893 

884La matriz siempre está presente en una respuesta `initialize` exitosa y está vacía cuando este proceso no tiene solicitud de permiso sin resolver. Requiere Claude Code v2.1.268 o posterior. Las versiones anteriores podrían omitir el campo, así que si analiza el protocolo de cable usted mismo, trate un campo faltante como una CLI más antigua en lugar de como prueba de que nada está pendiente.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.

885 895 

886<h3 id="sdkcontrolinterruptresponse">896<h3 id="sdkcontrolinterruptresponse">

887 `SDKControlInterruptResponse`897 `SDKControlInterruptResponse`

888</h3>898</h3>

889 899 

890El recibo de interrupción: el valor que [`interrupt()`](#query-object) se resuelve con 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 una carga de éxito vacía, por lo que `interrupt()` se resuelve a `undefined`.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`.

891 901 

892```typescript theme={null}902```typescript theme={null}

893type SDKControlInterruptResponse = {903type SDKControlInterruptResponse = {


896};906};

897```907```

898 908 

899`still_queued` enumera los UUIDs de los mensajes de usuario que estaban pendientes cuando llegó la interrupción: mensajes aú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 cancele primero, y puede fusionar varios en un turno. Si interrumpe antes de que comience el primer turno, Claude Code aborta ese turno tan pronto como comienza, y los mensajes listados en ese turno no obtienen respuesta.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.

900 910 

901Use el recibo para decidir si debe reenviar algo. Un mensaje listado que no cancele entra en la conversación independientemente de si obtiene una respuesta, por lo que reenviarlo lo entrega a Claude dos veces.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.

902 912 

903Interprete la lista con estas advertencias:913Interpreta la lista teniendo en cuenta estas advertencias:

904 914 

905* Solo los mensajes que fueron encolados con un UUID aparecen. Una matriz vacía no significa que nada más se ejecutará.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.

906* Solo se enumeran los mensajes del hilo principal. Los mensajes dirigidos a un subagente están fuera del alcance.916* Solo se listan los mensajes del hilo principal. Los mensajes dirigidos a un subagente quedan fuera del alcance.

907* La lista puede incluir UUIDs que su cliente nunca envió, como [activadores de tareas programadas](/docs/es/scheduled-tasks). Ignore los UUIDs que no reconozca en lugar de tratarlos como un error.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.

908 918 

909Un cliente que controla el protocolo de control de la CLI directamente, en lugar de a través de `interrupt()`, puede establecer `cancel_queued: true` en la solicitud de control `interrupt`. Claude Code v2.1.219 y posterior anuncia soporte con la capacidad `interrupt_cancel_queued_v1` en [`SDKSystemMessage.capabilities`](#sdksystemmessage); las CLIs más antiguas ignoran el campo y dejan que los mensajes en cola se ejecuten como de costumbre. Tal interrupción también cancela cada mensaje que de otro modo sería listado bajo `still_queued`: el recibo los lista bajo `cancelled` en su lugar, `still_queued` está vacío, y ninguno de ellos se ejecuta.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.

910 920 

911La lista `cancelled` lleva las mismas advertencias que `still_queued`. El método `interrupt()` nunca envía `cancel_queued`, por lo que los recibos que se resuelve no llevan `cancelled`.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`.

912 922 

913El 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. Lea el recibo en lugar de inspeccionar la cola después de ese resultado: el bucle inicia el siguiente turno en cola inmediatamente, por lo que la cola que inspecciona después del resultado ya ha cambiado.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.

914 924 

915<h3 id="sdkcontrolgetcontextusageresponse">925<h3 id="sdkcontrolgetcontextusageresponse">

916 `SDKControlGetContextUsageResponse`926 `SDKControlGetContextUsageResponse`

917</h3>927</h3>

918 928 

919Tipo de retorno de [`getContextUsage()`](#query-object). Con el `detail` predeterminado, esta es la misma carga 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`.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`.

920 930 

921El argumento `detail` opcional del método elige cómo Claude Code cuenta cada categoría. El argumento `detail` requiere Agent SDK v0.3.257 o posterior.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.

922 932 

923* **`'full'`**: el 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 la transmisión de mensajes, por lo que el seguimiento de costos que lee la transmisión no las verá. En la API de Anthropic, el conteo de tokens no se factura.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.

924* **`'summary'`**: pase `{ detail: 'summary' }` para obtener una respuesta del uso de la última respuesta y estimaciones locales en su lugar. No se realizan solicitudes de conteo de tokens, y los números por categoría son aproximados.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.

925 935 

926Cuando envía `/context` como un mensaje en lugar de llamar al método, Claude Code adjunta una carga [`SDKContextUsage`](#sdkcontextusage) al campo `context_usage` del mensaje del asistente que entrega el resultado. Ese campo requiere Agent SDK v0.3.232 o posterior.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.

927 937 

928```typescript theme={null}938```typescript theme={null}

929type SDKControlGetContextUsageResponse = {939type SDKControlGetContextUsageResponse = {


1020};1030};

1021```1031```

1022 1032 

1023Lea la atribución de tokens de los campos de colección:1033Lee la atribución de tokens en los campos de colección:

1024 1034 

1025* `categories` contiene los totales por categoría. Cada entrada `kind` clasifica la fila con los mismos valores que [`SDKContextUsageCategory`](#sdkcontextusagecategory). Clasifique las filas en él en lugar de en el `name` de visualización. El campo requiere Agent SDK v0.3.268 o posterior.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.

1026* `mcpTools` y `agents` atribuyen tokens a herramientas MCP individuales y subagentes.1036* `mcpTools` y `agents` atribuyen tokens a herramientas MCP y subagentes individuales.

1027* `memoryFiles` enumera cada archivo de memoria cargado con su costo.1037* `memoryFiles` enumera cada archivo de memoria cargado con su costo.

1028* `skills.skillFrontmatter` atribuye los tokens de la lista de skills a cada skill incluido. Los conteos por skill miden la entrada de cada skill tal como Claude Code realmente la envía, que puede ser más corta que el frontmatter completo del skill. Compare `skills.totalSkills` con `skills.includedSkills` para ver si cada skill descubierto hizo en la lista.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.

1029 1039 

1030`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 auto-compactación más baja cuando se aplica una. `rawMaxTokens` lleva el mismo valor que `maxTokens`, y `percentage` es `totalTokens` como un porcentaje redondeado de esa ventana. `apiUsage` contiene el uso de la respuesta de API más reciente, no un total acumulado para la sesión.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.

1031 1041 

1032Claude Code deja los diagnósticos opcionales `deferredBuiltinTools`, `systemTools`, y `systemPromptSections` sin establecer, así que espere que estén ausentes incluso aunque el tipo los declare.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.

1033 1043 

1034<h3 id="sdkcontrolreadfileresponse">1044<h3 id="sdkcontrolreadfileresponse">

1035 `SDKControlReadFileResponse`1045 `SDKControlReadFileResponse`


1046};1056};

1047```1057```

1048 1058 

1049`contents` contiene el texto del archivo, o datos base64 cuando solicitó `encoding: 'base64'`; el campo `encoding` de la respuesta se establece en `'base64'` en ese caso. `absPath` es la ruta absoluta resuelta. `truncated` se establece cuando el archivo era más largo que el límite `maxBytes` y el contenido fue cortado en ese límite.1059`contents` contiene el texto del archivo, o datos en base64 cuando solicitaste `encoding: 'base64'`; en ese caso, el campo `encoding` de la respuesta se establece en `'base64'`. `absPath` es la ruta absoluta resuelta. `truncated` se establece cuando el archivo era más largo que el límite `maxBytes` y el contenido se cortó en ese límite.

1050 1060 

1051<h4 id="what-readfile-can-read">1061<h4 id="what-readfile-can-read">

1052 Lo que `readFile()` puede leer1062 Qué puede leer `readFile()`

1053</h4>1063</h4>

1054 1064 

1055`readFile()` sirve un conjunto más estrecho de archivos que la herramienta Read:1065`readFile()` sirve un conjunto de archivos más reducido que la herramienta Read:

1056 1066 

1057* Un archivo regular dentro de uno de los directorios de trabajo de la sesión, como `cwd` y `additionalDirectories`1067* Un archivo normal dentro de uno de los directorios de trabajo de la sesión, como `cwd` y `additionalDirectories`

1058* Algunos de los propios archivos de Claude Code para la sesión, como resultados de herramientas1068* Algunos de los archivos propios de Claude Code para la sesión, como los resultados de herramientas

1059 1069 

1060Las reglas de negación y solicitud de Read aún bloquean 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`.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`.

1061 1071 

1062<h3 id="sdkcontrolreloadpluginsresponse">1072<h3 id="sdkcontrolreloadpluginsresponse">

1063 `SDKControlReloadPluginsResponse`1073 `SDKControlReloadPluginsResponse`


1088 1098 

1089Los campos de colección describen la sesión después de la llamada:1099Los campos de colección describen la sesión después de la llamada:

1090 1100 

1091* `commands`, `agents`, y `mcpServers`: los comandos, subagentes y estado del servidor MCP de la sesión, en las mismas formas que `supportedCommands()`, `supportedAgents()`, y `mcpServerStatus()` devuelven. `supportedAgents()` sigue devolviendo la lista capturada en la inicialización, así que lea `agents` aquí para el conjunto después de una recarga1101* `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 recarga

1092* `plugins`: cada plugin cargado con su `name` e instalación `path`. `version` repite lo que el manifiesto del plugin declara y está controlado por el autor del plugin, así que valídelo antes de confiar en él. Se omite cuando el manifiesto no declara ninguno1102* `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

1093* `error_count`: el número de errores al cargar plugins1103* `error_count`: el número de errores al cargar los plugins

1094 1104 

1095Pase `{ holdOnCacheImpact: true }` a `reloadPlugins()` para retener una recarga que invalidaría el caché de mensaje de la conversación en lugar de aplicarla. Claude Code ejecuta la verificación que el comando interactivo `/reload-plugins` hace antes de [advertir sobre el costo del 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 más antiguo que v2.1.268, como uno que señala `pathToClaudeCodeExecutable`, ignora la opción y aplica la recarga.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.

1096 1106 

1097Cuando pasa la opción, lea `held` para aprender qué sucedió:1107Cuando pasas la opción, lee `held` para saber qué ocurrió:

1098 1108 

1099* `true`: la recarga no se aplicó, y los campos de colección describen la sesión tal como aún es. `cache_impact` dice qué aplicar cambiaría. Para aplicar de todas formas, llame a `reloadPlugins()` nuevamente sin la opción.1109* `true`: la recarga no se aplicó, y los campos de colección describen la sesión tal como sigue estando. `cache_impact` indica qué cambiaría al aplicarla. Para aplicarla de todos modos, vuelve a llamar a `reloadPlugins()` sin la opción.

1100* `false`: la verificación no encontró impacto en el caché, y la recarga se aplicó.1110* `false`: la comprobación no encontró impacto en la caché, y la recarga se aplicó.

1101* Ausente: no pasó la opción, o el ejecutable de Claude Code es más antiguo que v2.1.268 y aplicó la recarga.1111* Ausente: no pasaste la opción, o el ejecutable de Claude Code es anterior a v2.1.268 y aplicó la recarga.

1102 1112 

1103`cache_impact` está presente solo junto a `held: true`. `mcp_servers_added` y `mcp_servers_removed` nombran los servidores MCP de plugin que la recarga registraría o eliminaría, como nombres con alcance `plugin:<plugin>:<server>`. Los nombres están creados por el plugin, así que valídelos antes de mostrarlos. `lsp_tool_change` dice si aplicar agregaría o eliminaría la herramienta LSP, o `null` cuando no haría ninguno. Las formas `may-` significan que la verificación no pudo ver completamente el conjunto de plugins pendiente.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.

1104 1114 

1105<h3 id="sdkcontrolreloadskillsresponse">1115<h3 id="sdkcontrolreloadskillsresponse">

1106 `SDKControlReloadSkillsResponse`1116 `SDKControlReloadSkillsResponse`


1114};1124};

1115```1125```

1116 1126 

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

1118 1128 

1119<h3 id="sdkcontrolreloadoutputstylesresponse">1129<h3 id="sdkcontrolreloadoutputstylesresponse">

1120 `SDKControlReloadOutputStylesResponse`1130 `SDKControlReloadOutputStylesResponse`


1134 `SDKControlMcpReadResourceResponse`1144 `SDKControlMcpReadResourceResponse`

1135</h3>1145</h3>

1136 1146 

1137Tipo de retorno de [`readMcpResource()`](#query-object), que lleva el resultado `resources/read` del servidor MCP. Requiere TypeScript Agent SDK v0.3.280 o posterior.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.

1138 1148 

1139```typescript theme={null}1149```typescript theme={null}

1140type SDKControlMcpReadResourceResponse = {1150type SDKControlMcpReadResourceResponse = {


1148};1158};

1149```1159```

1150 1160 

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

1152 1162 

1153Cada entrada `contents` es un elemento de contenido tal como el servidor lo envió, menos cualquier clave `_meta` bajo el prefijo `com.anthropic/`, que está reservado para Claude Code. `blob` contiene datos base64 para un elemento binario, y `_meta` es el `_meta` del elemento, donde un servidor MCP Apps pone el `ui.csp` y `ui.permissions` del recurso.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.

1154 1164 

1155El contenido es HTML de terceros no confiable, así que renderícelo en un sandbox.1165El contenido es HTML de terceros que no es de confianza, así que renderízalo en un sandbox.

1156 1166 

1157<h3 id="agentdefinition">1167<h3 id="agentdefinition">

1158 `AgentDefinition`1168 `AgentDefinition`

1159</h3>1169</h3>

1160 1170 

1161Configuración para un subagente definido mediante programación.1171Configuración de un subagente definido mediante programación.

1162 1172 

1163```typescript theme={null}1173```typescript theme={null}

1164type AgentDefinition = {1174type AgentDefinition = {


1180};1190};

1181```1191```

1182 1192 

1183| Campo | Requerido | Descripción |1193| Campo | Obligatorio | Descripción |

1184| :- | :- | :- |1194| :- | :- | :- |

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

1186| `tools` | No | Matriz de nombres de herramientas permitidas. Si se omite, hereda cada [herramienta disponible para subagentes](/docs/es/sub-agents#available-tools). Para precargar Skills en el contexto del agente, use el campo `skills` en lugar de enumerar `'Skill'` aquí |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í |

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

1188| `prompt` | Sí | El mensaje del sistema del agente |1198| `prompt` | Sí | El prompt del sistema del agente |

1189| `model` | No | Anulación de 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 omite, Claude Code elige el modelo en el [orden de modelo de subagente](/docs/es/sub-agents#choose-a-model) |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) |

1190| `mcpServers` | No | Especificaciones de servidor MCP para este agente |1200| `mcpServers` | No | Especificaciones de servidores MCP para este agente |

1191| `skills` | No | Matriz de nombres de skills a precargar en el contexto del agente |1201| `skills` | No | Array de nombres de skills que se precargan en el contexto del agente |

1192| `initialPrompt` | No | Auto-enviado como el primer turno de usuario cuando este agente se ejecuta como el agente del hilo principal |1202| `initialPrompt` | No | Se envía automáticamente como el primer turno del usuario cuando este agente se ejecuta como agente del hilo principal |

1193| `maxTurns` | No | Número máximo de turnos agentes (viajes de ronda de API) antes de detener |1203| `maxTurns` | No | Número máximo de turnos agénticos (idas y vueltas a la API) antes de detenerse |

1194| `background` | No | Ejecute este agente como una tarea de fondo no bloqueante cuando se invoque |1204| `background` | No | Ejecuta este agente como una tarea en segundo plano no bloqueante cuando se invoca |

1195| `omitClaudeMd` | No | Ejecute este agente sin los archivos CLAUDE.md de usuario, proyecto y local cuando se ejecuta como un subagente; los archivos de política administrada aún se cargan. Úselo para agentes que toman todo lo que necesitan del mensaje de solicitud de herramienta del agente. Se ignora cuando este agente se ejecuta como el agente del hilo principal. Requiere TypeScript Agent SDK v0.3.271 o posterior |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 |

1196| `memory` | No | Fuente de memoria para este agente: `'user'`, `'project'`, o `'local'` |1206| `memory` | No | Fuente de memoria para este agente: `'user'`, `'project'` o `'local'` |

1197| `effort` | No | Nivel de esfuerzo de razonamiento para este agente. Acepta un nivel nombrado o un entero |1207| `effort` | No | Nivel de esfuerzo de razonamiento para este agente. Acepta un nivel con nombre o un entero |

1198| `permissionMode` | No | Modo de permiso para la ejecución de herramientas dentro de este agente. Las [reglas de herencia de subagente](/docs/es/agent-sdk/permissions#available-modes) deciden cuándo se aplica. Vea [`PermissionMode`](#permissionmode) |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) |

1199| `criticalSystemReminder_EXPERIMENTAL` | No | Experimental: Recordatorio crítico agregado al mensaje del sistema |1209| `criticalSystemReminder_EXPERIMENTAL` | No | Experimental: recordatorio crítico que se agrega al prompt del sistema |

1200 1210 

1201<h3 id="agentmcpserverspec">1211<h3 id="agentmcpserverspec">

1202 `AgentMcpServerSpec`1212 `AgentMcpServerSpec`

1203</h3>1213</h3>

1204 1214 

1205Especifica servidores MCP disponibles para un subagente. Puede ser un nombre de servidor (cadena que hace referencia a un servidor de la configuración `mcpServers` del padre) o una configuración de servidor en línea que mapea nombres de servidor a configuraciones.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.

1206 1216 

1207```typescript theme={null}1217```typescript theme={null}

1208type AgentMcpServerSpec = string | Record<string, McpServerConfigForProcessTransport>;1218type AgentMcpServerSpec = string | Record<string, McpServerConfigForProcessTransport>;


1214 `SettingSource`1224 `SettingSource`

1215</h3>1225</h3>

1216 1226 

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

1218 1228 

1219```typescript theme={null}1229```typescript theme={null}

1220type SettingSource = "user" | "project" | "local";1230type SettingSource = "user" | "project" | "local";


1223| Valor | Descripción | Ubicación |1233| Valor | Descripción | Ubicación |

1224| :- | :- | :- |1234| :- | :- | :- |

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

1226| `'project'` | Configuración de proyecto compartida (controlada por versión) | `.claude/settings.json` |1236| `'project'` | Configuración compartida del proyecto (bajo control de versiones) | `.claude/settings.json` |

1227| `'local'` | Configuración de proyecto local, ignorada por git cuando Claude Code guarda una configuración en ella | `.claude/settings.local.json` |1237| `'local'` | Configuración local del proyecto, incluida en gitignore cuando Claude Code guarda un ajuste en ella | `.claude/settings.local.json` |

1228 1238 

1229<h4 id="default-behavior">1239<h4 id="default-behavior">

1230 Comportamiento predeterminado1240 Comportamiento predeterminado

1231</h4>1241</h4>

1232 1242 

1233Cuando `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. Vea [What settingSources does not control](/docs/es/agent-sdk/claude-code-features#what-settingsources-does-not-control) para entradas que se leen independientemente de esta opción, y cómo deshabilitarlas.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.

1234 1244 

1235<h4 id="why-use-settingsources">1245<h4 id="why-use-settingsources">

1236 Por qué usar settingSources1246 Por qué usar settingSources

1237</h4>1247</h4>

1238 1248 

1239**Deshabilitar configuración del sistema de archivos:**1249**Desactivar la configuración del sistema de archivos:**

1240 1250 

1241```typescript theme={null}1251```typescript theme={null}

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

1243 1253 

1244// No cargue la configuración de usuario, proyecto o local desde el disco1254// Do not load user, project, or local settings from disk

1245const result = query({1255const result = query({

1246 prompt: "Analyze this code",1256 prompt: "Analyze this code",

1247 options: { settingSources: [] }1257 options: { settingSources: [] }

1248});1258});

1249```1259```

1250 1260 

1251**Cargue solo fuentes de configuración específicas:**1261**Cargar solo fuentes de configuración específicas:**

1252 1262 

1253```typescript theme={null}1263```typescript theme={null}

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

1255 1265 

1256// Cargue solo la configuración del proyecto, ignore usuario y local1266// Load only project settings, ignore user and local

1257const result = query({1267const result = query({

1258 prompt: "Run CI checks",1268 prompt: "Run CI checks",

1259 options: {1269 options: {

1260 settingSources: ["project"] // Solo .claude/settings.json1270 settingSources: ["project"] // Only .claude/settings.json

1261 }1271 }

1262});1272});

1263```1273```

1264 1274 

1265Para cargar instrucciones de proyecto CLAUDE.md, incluya `"project"` en `settingSources`. Vea [Modify system prompts](/docs/es/agent-sdk/modifying-system-prompts#claude-md-files-for-project-level-instructions) para cómo la carga de CLAUDE.md interactúa con las opciones de mensaje del sistema.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.

1266 1276 

1267<h4 id="settings-precedence">1277<h4 id="settings-precedence">

1268 Precedencia de configuración1278 Precedencia de la configuración

1269</h4>1279</h4>

1270 1280 

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

1272 1282 

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

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

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

1276 1286 

1277Las opciones programáticas como `agents`, `allowedTools`, 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.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.

1278 1288 

1279<h3 id="permissionmode">1289<h3 id="permissionmode">

1280 `PermissionMode`1290 `PermissionMode`


1282 1292 

1283```typescript theme={null}1293```typescript theme={null}

1284type PermissionMode =1294type PermissionMode =

1285 | "default" // Comportamiento de permiso estándar1295 | "default" // Standard permission behavior

1286 | "acceptEdits" // Auto-aceptar ediciones de archivo1296 | "acceptEdits" // Auto-accept file edits

1287 | "bypassPermissions" // Omitir todas las verificaciones de permiso; las reglas de solicitud explícita aún solicitan1297 | "bypassPermissions" // Bypass permission checks; explicit ask rules still prompt

1288 | "plan" // Modo de planificación - explorar sin editar1298 | "plan" // Planning mode - explore without editing

1289 | "dontAsk" // No solicitar permisos, negar si no está preaprobado1299 | "dontAsk" // Don't prompt for permissions, deny if not pre-approved

1290 | "auto"; // Clasificador de modelo aprueba o niega mensajes de permiso1300 | "auto"; // A model classifier reviews actions such as shell commands and network requests

1291```1301```

1292 1302 

1293<h3 id="canusetool">1303<h3 id="canusetool">

1294 `CanUseTool`1304 `CanUseTool`

1295</h3>1305</h3>

1296 1306 

1297Tipo de función de permiso personalizado para controlar el uso de herramientas.1307Tipo de función de permisos personalizada para controlar el uso de herramientas.

1298 1308 

1299La función es el reemplazo del SDK para el mensaje de permiso interactivo: se invoca solo cuando el [flujo de evaluación de permisos](/docs/es/agent-sdk/permissions#how-permissions-are-evaluated) se resuelve en un mensaje. Las llamadas de herramientas ya aprobadas por una entrada `allowedTools`, una regla de configuración de permiso, o el modo de permiso, como `acceptEdits` o `bypassPermissions`, nunca la invocan. Para controlar cada llamada de herramienta, use un [hook `PreToolUse`](/docs/es/agent-sdk/hooks) en su lugar.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).

1300 1310 

1301Una regla de permiso no preaprueba las [acciones que ningún modo aprueba automáticamente](/docs/es/permission-modes#actions-no-mode-auto-approves); vea [How permissions are evaluated](/docs/es/agent-sdk/permissions#how-permissions-are-evaluated) para cuál de ellas llega a la devolución de llamada y qué sucede en modo `dontAsk` y `auto`.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`.

1302 1312 

1303```typescript theme={null}1313```typescript theme={null}

1304type CanUseTool = (1314type CanUseTool = (


1321 1331 

1322| Opción | Tipo | Descripción |1332| Opción | Tipo | Descripción |

1323| :- | :- | :- |1333| :- | :- | :- |

1324| `signal` | `AbortSignal` | Señalizado si la operación debe abortarse |1334| `signal` | `AbortSignal` | Se activa si la operación debe abortarse |

1325| `suggestions` | [`PermissionUpdate`](#permissionupdate)`[]` | Actualizaciones de permiso sugeridas para que el usuario no sea solicitado nuevamente para esta herramienta. Los mensajes de Bash incluyen una sugerencia con el destino `localSettings` [destination](#permissionupdatedestination), por lo que devolverlo en `updatedPermissions` escribe la regla en `.claude/settings.local.json` y persiste entre sesiones. |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. |

1326| `blockedPath` | `string` | La ruta de archivo que activó la solicitud de permiso, si corresponde |1336| `blockedPath` | `string` | La ruta de archivo que activó la solicitud de permiso, si corresponde |

1327| `mcpServer` | `{ name: string; source: string }` | Para una herramienta `mcp__*`, el servidor MCP que la sirve y de dónde vino la definición de ese servidor, con los campos de [`McpServerProvenance`](#mcpserverprovenance). Ausente para otras herramientas. Requiere Agent SDK v0.3.274 o posterior |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 |

1328| `decisionReason` | `string` | Explica por qué se activó esta solicitud de permiso |1338| `decisionReason` | `string` | Explica por qué se activó esta solicitud de permiso |

1329| `defaultToNo` | `boolean` | Cuando es `true`, una sola pulsación de tecla extraviada no debe aprobar esta solicitud: abra su mensaje en su opción de rechazo, no preseleccione aprobar, y no ofrezca un atajo de aprobación de una sola tecla. Requiere Agent SDK v0.3.268 o posterior |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 |

1330| `suppressAlwaysAllowRule` | `boolean` | Cuando es `true`, no ofrezca una opción de siempre permitir persistente para esta solicitud, porque la regla que escribiría otorga más que la acción de la solicitud. 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 |

1331| `toolUseID` | `string` | Identificador único para esta llamada de herramienta específica dentro del mensaje del asistente |1341| `toolUseID` | `string` | Identificador único de esta llamada a herramienta específica dentro del mensaje del asistente |

1332| `agentID` | `string` | Si se ejecuta dentro de un sub-agente, el ID del sub-agente |1342| `agentID` | `string` | Si se ejecuta dentro de un subagente, el ID del subagente |

1333| `requestId` | `string` | El `request_id` del sobre `control_request`. Una `control_response` que su aplicación envía fuera del SDK, como un POST HTTP firmado, debe repetir este valor para que el proceso de Claude Code pueda coincidir la respuesta con la solicitud |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 |

1334 1344 

1335La devolución de llamada normalmente resuelve la solicitud devolviendo un [`PermissionResult`](#permissionresult), que el SDK escribe de vuelta sobre su transporte como `control_response`. Devuelva `null` solo cuando su aplicación ya haya enviado `control_response` para esta solicitud sobre su propio canal, repitiendo `requestId`; el SDK luego omite escribir la respuesta a su transporte. Devolver `null` en cualquier otro caso deja la llamada de herramienta bloqueada indefinidamente, porque nunca se envía `control_response` y los mensajes de permiso no tienen tiempo de espera.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.

1336 1346 

1337La opción `requestId` y el valor de retorno `null` requieren Claude Code v2.1.199 o posterior.1347La opción `requestId` y el valor de retorno `null` requieren Claude Code v2.1.199 o posterior.

1338 1348 


1340 `PermissionResult`1350 `PermissionResult`

1341</h3>1351</h3>

1342 1352 

1343Resultado de una verificación de permiso.1353Resultado de una verificación de permisos.

1344 1354 

1345```typescript theme={null}1355```typescript theme={null}

1346type PermissionResult =1356type PermissionResult =


1362 `ToolConfig`1372 `ToolConfig`

1363</h3>1373</h3>

1364 1374 

1365Configuración para el comportamiento de herramientas integradas.1375Configuración del comportamiento de las herramientas integradas.

1366 1376 

1367```typescript theme={null}1377```typescript theme={null}

1368type ToolConfig = {1378type ToolConfig = {


1374 1384 

1375| Campo | Tipo | Descripción |1385| Campo | Tipo | Descripción |

1376| :- | :- | :- |1386| :- | :- | :- |

1377| `askUserQuestion.previewFormat` | `'markdown' \| 'html'` | Opte por el campo `preview` en las opciones de [`AskUserQuestion`](/docs/es/agent-sdk/user-input#question-format) y establezca su formato de contenido. Cuando no está establecido, Claude no emite vistas previas |1387| `askUserQuestion.previewFormat` | `'markdown' \| 'html'` | Habilita el campo `preview` en las opciones de [`AskUserQuestion`](/docs/es/agent-sdk/user-input#question-format) y establece el formato de su contenido. Cuando no está definido, Claude no emite vistas previas |

1378 1388 

1379<h3 id="mcpserverconfig">1389<h3 id="mcpserverconfig">

1380 `McpServerConfig`1390 `McpServerConfig`


1468 1478 

1469| Campo | Tipo | Descripción |1479| Campo | Tipo | Descripción |

1470| :- | :- | :- |1480| :- | :- | :- |

1471| `type` | `'local'` | Debe ser `'local'` (actualmente solo se soportan plugins locales) |1481| `type` | `'local'` | Debe ser `'local'` (actualmente solo se admiten plugins locales) |

1472| `path` | `string` | Ruta absoluta o relativa al directorio del plugin |1482| `path` | `string` | Ruta absoluta o relativa al directorio del plugin |

1473| `skipMcpDiscovery` | `boolean` | Cuando es `true`, el SDK carga skills, hooks, agentes y comandos de este plugin pero no lee su `.mcp.json` o manifest `mcpServers`. Establezca esto cuando su aplicación sea propietaria de las conexiones MCP del plugin. |1483| `skipMcpDiscovery` | `boolean` | Cuando es `true`, el SDK carga los skills, hooks, agentes y comandos de este plugin, pero no lee su `.mcp.json` ni los `mcpServers` del manifiesto. Establécelo cuando tu aplicación gestione las conexiones MCP del plugin. |

1474 1484 

1475**Ejemplo:**1485**Ejemplo:**

1476 1486 


1481];1491];

1482```1492```

1483 1493 

1484Para información completa sobre la creación y uso de plugins, vea [Plugins](/docs/es/agent-sdk/plugins).1494Para obtener información completa sobre cómo crear y usar plugins, consulta [Plugins](/docs/es/agent-sdk/plugins).

1485 1495 

1486<h2 id="message-types">1496<h2 id="message-types">

1487 Tipos de Mensajes1497 Tipos de Mensajes


1955| - | - |1965| - | - |

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

1957| `interrupt_cancel_queued_v1` | La solicitud de control `interrupt` respeta `cancel_queued: true`: cancela los mensajes que el recibo enumeraría en `still_queued` y, en su lugar, los enumera en `cancelled`. Consulta [`SDKControlInterruptResponse`](#sdkcontrolinterruptresponse). Requiere Claude Code v2.1.219 o posterior |1967| `interrupt_cancel_queued_v1` | La solicitud de control `interrupt` respeta `cancel_queued: true`: cancela los mensajes que el recibo enumeraría en `still_queued` y, en su lugar, los enumera en `cancelled`. Consulta [`SDKControlInterruptResponse`](#sdkcontrolinterruptresponse). Requiere Claude Code v2.1.219 o posterior |

1968| `sdk_mcp_manifests` | La solicitud de control `initialize` acepta `sdkMcpServerManifests`, resultados del handshake MCP capturados de tus [servidores MCP del SDK](/docs/es/agent-sdk/custom-tools) en proceso. Claude Code anuncia esta capacidad en v2.1.286 o posterior |

1969| `sdk_mcp_tools_list_changed` | Una notificación `tools/list_changed` de un [servidor MCP del SDK](/docs/es/agent-sdk/custom-tools) hace que Claude Code vuelva a listar las herramientas de ese servidor, para que una herramienta que el servidor añade a mitad de sesión llegue a Claude. Claude Code anuncia esta capacidad en v2.1.286 o posterior |

1958 1970 

1959La matriz `plugin_errors` enumera los fallos de carga de plugins. Una entrada describe o bien un plugin que no se cargó y está ausente de `plugins`, o bien un plugin que se cargó sin una de sus partes, como su archivo de hooks. La clave se omite cuando nada falló. `SDKSystemMessage` declara `plugin_errors` en Agent SDK v0.3.283 o posterior.1971La matriz `plugin_errors` enumera los fallos de carga de plugins. Una entrada describe o bien un plugin que no se cargó y está ausente de `plugins`, o bien un plugin que se cargó sin una de sus partes, como su archivo de hooks. La clave se omite cuando nada falló. `SDKSystemMessage` declara `plugin_errors` en Agent SDK v0.3.283 o posterior.

1960 1972 

agent-view.md +5 −2

Details

347 347 

348Para combinar filtros, comienza con `a:`, `s:`, `n:` u `o:` y agrega más, separados por espacios. La lista muestra las sesiones que coinciden con todos ellos. Por ejemplo, `s:blocked a:reviewer` enumera las sesiones `reviewer` que te están esperando.348Para combinar filtros, comienza con `a:`, `s:`, `n:` u `o:` y agrega más, separados por espacios. La lista muestra las sesiones que coinciden con todos ellos. Por ejemplo, `s:blocked a:reviewer` enumera las sesiones `reviewer` que te están esperando.

349 349 

350Mientras hay un filtro activo, los grupos que contrajiste se expanden para mostrar sus coincidencias y se selecciona la primera coincidencia, de modo que al presionar `Enter` se abre. Borra la entrada para quitar el filtro, y esos grupos se vuelven a contraer.350Mientras hay un filtro activo, los grupos que contrajiste se expanden para mostrar sus coincidencias y se selecciona una coincidencia, de modo que al presionar `Enter` se abre. Borra la entrada para quitar el filtro, y esos grupos se vuelven a contraer.

351 351 

352<h3 id="keyboard-shortcuts">352<h3 id="keyboard-shortcuts">

353 Atajos de teclado353 Atajos de teclado


369| `Tab` | En una entrada vacía, examinar todos los subagentes. De lo contrario, aplicar la sugerencia resaltada |369| `Tab` | En una entrada vacía, examinar todos los subagentes. De lo contrario, aplicar la sugerencia resaltada |

370| `Ctrl+S` | Cambiar agrupación entre estado y directorio |370| `Ctrl+S` | Cambiar agrupación entre estado y directorio |

371| `Ctrl+T` | Fijar o desfijar la sesión seleccionada |371| `Ctrl+T` | Fijar o desfijar la sesión seleccionada |

372| `Ctrl+F` | Buscar sesiones por nombre, con el [filtro `n:`](#filter-sessions) |

373| `Alt+↑` / `Alt+↓` | Saltar al encabezado de grupo anterior o siguiente |

372| `Ctrl+R` | Renombrar la sesión seleccionada |374| `Ctrl+R` | Renombrar la sesión seleccionada |

373| `Ctrl+G` | Abrir el mensaje de envío en su `$VISUAL` o `$EDITOR` |375| `Ctrl+G` | Abrir el mensaje de envío en su `$VISUAL` o `$EDITOR` |

374| `Ctrl+J` | Insertar una nueva línea en la entrada de envío |376| `Ctrl+J` | Insertar una nueva línea en la entrada de envío |


378| `Ctrl+C` | Borrar la entrada; presione dos veces para salir |380| `Ctrl+C` | Borrar la entrada; presione dos veces para salir |

379| `?` | Mostrar todos los atajos |381| `?` | Mostrar todos los atajos |

380 382 

381`Ctrl+S`, `Ctrl+T` y `Ctrl+G` siguen su [`keybindings.json`](/docs/es/keybindings). Reenlace o desenlace `Ctrl+S` y `Ctrl+T` con las acciones `agents:switchView` y `agents:togglePin` en el [contexto `Agents`](/docs/es/keybindings#agents-actions), y `Ctrl+G` a través del enlace `chat:externalEditor` del contexto `Chat`. Los otros atajos en la tabla no se pueden reenlazar.383Los atajos que tienen una acción en el [contexto `Agents`](/docs/es/keybindings#agents-actions) siguen tu [`keybindings.json`](/docs/es/keybindings). También lo hace `Ctrl+G`, a través del atajo `chat:externalEditor` del contexto `Chat`.

382 384 

383<h2 id="dispatch-new-agents">385<h2 id="dispatch-new-agents">

384 Enviar nuevos agentes386 Enviar nuevos agentes


1087 1089 

1088| Versión | Cambio |1090| Versión | Cambio |

1089| - | - |1091| - | - |

1092| v2.1.288 | `Ctrl+F` encuentra sesiones por nombre, y `Alt+↑` / `Alt+↓` saltan entre los encabezados de grupo. Ambos, y `Ctrl+R`, se pueden [reasignar](/docs/es/keybindings#agents-actions). |

1090| v2.1.287 | El [filtro `n:<text>`](#filter-sessions) encuentra sesiones por nombre o por primer prompt. Mientras cualquier filtro está activo, los grupos que contrajiste se expanden para mostrar sus coincidencias y se selecciona la primera coincidencia, por lo que `Enter` la abre. |1093| v2.1.287 | El [filtro `n:<text>`](#filter-sessions) encuentra sesiones por nombre o por primer prompt. Mientras cualquier filtro está activo, los grupos que contrajiste se expanden para mostrar sus coincidencias y se selecciona la primera coincidencia, por lo que `Enter` la abre. |

1091| v2.1.287 | Un comando enviado como [respuesta desde el panel de vista previa](#peek-and-reply) se ejecuta cuando termina el turno actual de la sesión, incluidos los comandos que se ejecutan en cuanto los escribes en el propio prompt de una sesión. Una respuesta que es exactamente `/stop` detiene la sesión de inmediato. |1094| v2.1.287 | Un comando enviado como [respuesta desde el panel de vista previa](#peek-and-reply) se ejecuta cuando termina el turno actual de la sesión, incluidos los comandos que se ejecutan en cuanto los escribes en el propio prompt de una sesión. Una respuesta que es exactamente `/stop` detiene la sesión de inmediato. |

1092| v2.1.281 | Una restricción [`--setting-sources`](/docs/es/cli-reference#cli-flags) [se traslada](#what-carries-over-when-you-background) a una sesión que envía al segundo plano con `←` o `/bg` y a las sesiones que distribuye desde la vista de agentes. Antes de esta versión, la sesión generada cargaba cada fuente de configuración. |1095| v2.1.281 | Una restricción [`--setting-sources`](/docs/es/cli-reference#cli-flags) [se traslada](#what-carries-over-when-you-background) a una sesión que envía al segundo plano con `←` o `/bg` y a las sesiones que distribuye desde la vista de agentes. Antes de esta versión, la sesión generada cargaba cada fuente de configuración. |

Details

386 386 

387Cuando estas verificaciones encuentran un modelo que su cuenta no puede invocar, Claude Code recuerda el rechazo en esta máquina durante hasta un día, e inicia durante ese tiempo omitiendo el modelo recordado sin consultar a Amazon Bedrock nuevamente. Claude Code verifica un rechazo recordado de un modelo predeterminado actual nuevamente al iniciar una vez que han pasado diez minutos desde la última verificación, por lo que una predeterminada que su administrador vuelve a habilitar regresa. Para desactivar la memoria, establezca [`CLAUDE_CODE_SKIP_MODEL_ACCESS_MEMORY=1`](/docs/es/env-vars).387Cuando estas verificaciones encuentran un modelo que su cuenta no puede invocar, Claude Code recuerda el rechazo en esta máquina durante hasta un día, e inicia durante ese tiempo omitiendo el modelo recordado sin consultar a Amazon Bedrock nuevamente. Claude Code verifica un rechazo recordado de un modelo predeterminado actual nuevamente al iniciar una vez que han pasado diez minutos desde la última verificación, por lo que una predeterminada que su administrador vuelve a habilitar regresa. Para desactivar la memoria, establezca [`CLAUDE_CODE_SKIP_MODEL_ACCESS_MEMORY=1`](/docs/es/env-vars).

388 388 

389<h3 id="when-your-organization-enforces-a-model-allowlist">

390 Cuando tu organización aplica una lista de modelos permitidos

391</h3>

392 

393Si estableces [`enforceAvailableModels`](/docs/es/model-config#enforce-the-allowlist-for-the-default-model) en la configuración administrada, las verificaciones de modelo al iniciar usan solo los modelos que permite tu lista `availableModels`. Esto se aplica en la API Invoke de Amazon Bedrock y requiere Claude Code v2.1.287 o posterior. Una lista sin `enforceAvailableModels` no restringe estas verificaciones.

394 

395Las verificaciones comparan cada entrada con el ID de perfil de inferencia que enviarían, incluido su [prefijo de región](#cross-region-inference-profile-prefixes), así que escribe la lista con esos IDs. Este ejemplo permite Opus 4.8 y Sonnet 4.5 para un despliegue cuyos modelos se resuelven en perfiles `us.`:

396 

397```json theme={null}

398{

399 "availableModels": ["us.anthropic.claude-opus-4-8", "us.anthropic.claude-sonnet-4-5-20250929-v1:0"],

400 "enforceAvailableModels": true

401}

402```

403 

404Para alias, prefijos de versión y entradas de `modelOverrides`, consulta [Fijar modelos para despliegues de terceros](/docs/es/model-config#pin-models-for-third-party-deployments).

405 

389<h3 id="when-a-model-is-disabled-mid-session">406<h3 id="when-a-model-is-disabled-mid-session">

390 Cuando un modelo se deshabilita durante la sesión407 Cuando un modelo se deshabilita durante la sesión

391</h3>408</h3>

artifacts.md +3 −1

Details

156 Permitir que Claude responda a comentarios por su cuenta156 Permitir que Claude responda a comentarios por su cuenta

157</h3>157</h3>

158 158 

159Después de que su sesión publica un artefacto, Claude Code observa ese artefacto en busca de comentarios mientras la sesión se ejecute. Cuando alguien que puede editar el artefacto envía un comentario a Claude, llega a su sesión de inmediato, y Claude puede leer el hilo y responder sin que usted lo pida.159Después de que tu sesión publica un artefacto, Claude Code observa ese artefacto en busca de comentarios. Cuando alguien que puede editar el artefacto envía un comentario a Claude, llega a tu sesión de inmediato, y Claude puede leer el hilo y responder sin que tú lo pidas.

160 160 

161Necesita Claude Code v2.1.228 o posterior. Si desactivó la [obtención de indicadores de características](/docs/es/env-vars#features-that-need-feature-flag-fetching), Claude Code no observa comentarios.161Necesita Claude Code v2.1.228 o posterior. Si desactivó la [obtención de indicadores de características](/docs/es/env-vars#features-that-need-feature-flag-fetching), Claude Code no observa comentarios.

162 162 


174* **Detenga la tarea en `/tasks`**: Claude deja de responder en ese artefacto hasta que le pida que reanude las respuestas allí. Publicar el artefacto de nuevo no inicia las respuestas de nuevo, y la parada aún se aplica cuando reanuda la sesión más tarde.174* **Detenga la tarea en `/tasks`**: Claude deja de responder en ese artefacto hasta que le pida que reanude las respuestas allí. Publicar el artefacto de nuevo no inicia las respuestas de nuevo, y la parada aún se aplica cuando reanuda la sesión más tarde.

175* **Presione `Ctrl+X Ctrl+K` dos veces dentro de 3 segundos**: el acorde que [detiene cada subagente de fondo en ejecución](/docs/es/interactive-mode#general-controls) también detiene a Claude de responder en cada artefacto para el resto de la sesión. Pedirle a Claude que reanude las respuestas no deshace esta parada.175* **Presione `Ctrl+X Ctrl+K` dos veces dentro de 3 segundos**: el acorde que [detiene cada subagente de fondo en ejecución](/docs/es/interactive-mode#general-controls) también detiene a Claude de responder en cada artefacto para el resto de la sesión. Pedirle a Claude que reanude las respuestas no deshace esta parada.

176 176 

177Una observación que Claude Code inició por su cuenta puede terminar después de que el artefacto pase varias horas sin actividad. Para iniciar la observación de nuevo, publica el artefacto otra vez o pídele a Claude que lo observe.

178 

177Si el servicio que entrega comentarios no está disponible o deja de responder, Claude Code sigue intentando reconectarse por un tiempo, luego deja de observar cada artefacto que su sesión estaba observando.179Si el servicio que entrega comentarios no está disponible o deja de responder, Claude Code sigue intentando reconectarse por un tiempo, luego deja de observar cada artefacto que su sesión estaba observando.

178 180 

179<h2 id="pull-live-data-with-mcp-connectors">181<h2 id="pull-live-data-with-mcp-connectors">

best-practices.md +29 −28

Details

479 Automatizar y escalar479 Automatizar y escalar

480</h2>480</h2>

481 481 

482Una vez que sea efectivo con un Claude, multiplique su salida con sesiones paralelas, modo no interactivo y patrones de distribución.482Una vez que seas efectivo con un Claude, multiplica tu salida con sesiones paralelas, modo no interactivo y patrones de distribución.

483 483 

484<h3 id="run-non-interactive-mode">484<h3 id="run-non-interactive-mode">

485 Ejecutar modo no interactivo485 Ejecutar modo no interactivo

486</h3>486</h3>

487 487 

488<Tip>488<Tip>

489 Use `claude -p "prompt"` en CI, hooks de pre-commit o scripts. Agregue `--output-format stream-json --verbose` para salida JSON en streaming.489 Usa `claude -p "prompt"` en CI, hooks de pre-commit o scripts. Agrega `--output-format stream-json --verbose` para salida JSON en streaming.

490</Tip>490</Tip>

491 491 

492Con `claude -p "su prompt"`, puede ejecutar Claude de forma no interactiva, sin un prompt interactivo. La ejecución aún crea una sesión reanudable a menos que pase `--no-session-persistence`. [El modo no interactivo](/docs/es/headless) es cómo integra Claude en canalizaciones de CI, hooks de pre-commit o cualquier flujo de trabajo automatizado. Los formatos de salida le permiten analizar resultados mediante programación: texto sin formato, JSON o JSON en streaming.492Con `claude -p "your prompt"`, puedes ejecutar Claude de forma no interactiva, sin un prompt interactivo. La ejecución aún crea una sesión reanudable a menos que pases `--no-session-persistence`. [El modo no interactivo](/docs/es/headless) es cómo integras Claude en canalizaciones de CI, hooks de pre-commit o cualquier flujo de trabajo automatizado. Los formatos de salida te permiten analizar resultados mediante programación: texto sin formato, JSON o JSON en streaming.

493 493 

494```bash theme={null}494```bash theme={null}

495# Consultas puntuales495# One-off queries

496claude -p "Explain what this project does"496claude -p "Explain what this project does"

497 497 

498# Salida estructurada para scripts498# Structured output for scripts

499claude -p "List all API endpoints" --output-format json499claude -p "List all API endpoints" --output-format json

500 500 

501# Streaming para procesamiento en tiempo real501# Streaming for real-time processing

502claude -p "Analyze this log file" --output-format stream-json --verbose502claude -p "Analyze this log file" --output-format stream-json --verbose

503```503```

504 504 


509</h3>509</h3>

510 510 

511<Tip>511<Tip>

512 Ejecute múltiples sesiones de Claude en paralelo para acelerar el desarrollo, ejecutar experimentos aislados o iniciar flujos de trabajo complejos.512 Ejecuta múltiples sesiones de Claude en paralelo para acelerar el desarrollo, ejecutar experimentos aislados o iniciar flujos de trabajo complejos.

513</Tip>513</Tip>

514 514 

515Elija el enfoque paralelo que se ajuste a cuánta coordinación desea hacer usted mismo, y agregue mensajería cuando las sesiones necesiten pasar hallazgos entre ellas:515Elige el enfoque paralelo que se ajuste a cuánta coordinación deseas hacer tú mismo, y agrega mensajería cuando las sesiones necesiten pasar hallazgos entre ellas:

516 516 

517* [Git Worktrees](/docs/es/worktrees): ejecute sesiones de CLI separadas en checkouts de git aislados para que las ediciones no choquen517* [Worktrees](/docs/es/worktrees): ejecuta sesiones de CLI separadas en checkouts de git aislados para que las ediciones no choquen

518* [Mensajería entre sesiones](/docs/es/cross-session-messaging): permita que las sesiones que ejecuta usted mismo pasen hallazgos entre sí518* [Mensajería entre sesiones](/docs/es/cross-session-messaging): permite que las sesiones que ejecutas tú mismo pasen hallazgos entre sí

519* [Aplicación de escritorio](/docs/es/desktop#work-in-parallel-with-sessions): administre múltiples sesiones locales visualmente, opcionalmente cada una en su propio worktree519* [Aplicación de escritorio](/docs/es/desktop#work-in-parallel-with-sessions): administra múltiples sesiones locales visualmente, opcionalmente cada una en su propio worktree

520* [Claude Code en la web](/docs/es/claude-code-on-the-web): ejecute sesiones en la nube, en infraestructura administrada por Anthropic de forma predeterminada520* [Usar Claude Code en la nube](/docs/es/claude-code-on-the-web): ejecuta sesiones en infraestructura administrada por Anthropic de forma predeterminada

521* [Vista de agente](/docs/es/agent-view): vista previa de investigación. Ejecute `claude agents` para enviar sesiones que sigan ejecutándose en segundo plano y obsérvelas desde una pantalla521* [Vista de agente](/docs/es/agent-view): vista previa de investigación. Ejecuta `claude agents` para enviar sesiones que sigan ejecutándose en segundo plano y obsérvalas desde una pantalla

522* [Equipos de agentes](/docs/es/agent-teams): experimental y deshabilitado de forma predeterminada. Coordinación automatizada de múltiples sesiones con tareas compartidas, mensajería y un líder de equipo522* [Equipos de agentes](/docs/es/agent-teams): experimental y deshabilitado de forma predeterminada. Coordinación automatizada de múltiples sesiones con tareas compartidas, mensajería y un líder de equipo

523 523 

524Más allá de paralelizar el trabajo, múltiples sesiones permiten flujos de trabajo enfocados en la calidad. Un contexto fresco mejora la revisión de código ya que Claude no estará sesgado hacia el código que acaba de escribir.524Más allá de paralelizar el trabajo, múltiples sesiones permiten flujos de trabajo enfocados en la calidad. Un contexto fresco mejora la revisión de código ya que Claude no estará sesgado hacia el código que acaba de escribir.

525 525 

526Por ejemplo, use un patrón Escritor/Revisor:526Por ejemplo, usa un patrón Escritor/Revisor:

527 527 

528| Sesión A (Escritor) | Sesión B (Revisor) |528| Sesión A (Escritor) | Sesión B (Revisor) |

529| - | - |529| - | - |


531| | `Review the rate limiter implementation in @src/middleware/rateLimiter.ts. Look for edge cases, race conditions, and consistency with our existing middleware patterns.` |531| | `Review the rate limiter implementation in @src/middleware/rateLimiter.ts. Look for edge cases, race conditions, and consistency with our existing middleware patterns.` |

532| `Here's the review feedback: [Session B output]. Address these issues.` | |532| `Here's the review feedback: [Session B output]. Address these issues.` | |

533 533 

534Puede hacer algo similar con pruebas: haga que un Claude escriba pruebas, luego otro escriba código para pasarlas.534Puedes hacer algo similar con pruebas: haz que un Claude escriba pruebas, luego otro escriba código para pasarlas.

535 535 

536<h3 id="fan-out-across-files">536<h3 id="fan-out-across-files">

537 Distribuir entre archivos537 Distribuir entre archivos

538</h3>538</h3>

539 539 

540<Tip>540<Tip>

541 Recorra tareas llamando a `claude -p` para cada una. Use `--allowedTools` para limitar permisos para operaciones por lotes.541 Recorre tareas llamando a `claude -p` para cada una. Usa `--allowedTools` para aprobar previamente herramientas para operaciones por lotes.

542</Tip>542</Tip>

543 543 

544Para migraciones o análisis grandes, puede distribuir el trabajo entre muchas invocaciones paralelas de Claude. Ejecute [`/batch <instruction>`](/docs/es/commands#all-commands) para que Claude divida el cambio entre 5 a 30 subagentes. Cada subagente trabaja en su propio worktree. Para impulsar la distribución desde su propio script en su lugar, recorra `claude -p`:544Para migraciones o análisis grandes, puedes distribuir el trabajo entre muchas invocaciones paralelas de Claude. Ejecuta [`/batch <instruction>`](/docs/es/commands#all-commands) para que Claude divida el cambio entre 5 a 30 subagentes. Cada subagente trabaja en su propio worktree. Para impulsar la distribución desde tu propio script en su lugar, recorre `claude -p`:

545 545 

546<Steps>546<Steps>

547 <Step title="Generar una lista de tareas">547 <Step title="Generar una lista de tareas">

548 Haga que Claude escriba la lista de archivos que necesitan migración en un archivo, para que el bucle en el siguiente paso pueda leerlo, con un prompt como `list all 2,000 Python files that need migrating and save the list to files.txt`548 Haz que Claude escriba la lista de archivos que necesitan migración en un archivo, para que el bucle en el siguiente paso pueda leerlo, con un prompt como `list all 2,000 Python files that need migrating and save the list to files.txt`

549 </Step>549 </Step>

550 550 

551 <Step title="Escribir un script para recorrer la lista">551 <Step title="Escribir un script para recorrer la lista">

552 ```bash theme={null}552 ```bash theme={null}

553 for file in $(cat files.txt); do553 for file in $(cat files.txt); do

554 claude -p "Migrate $file from Python 2 to Python 3. Return OK or FAIL." \554 claude -p "Migrate $file from Python 2 to Python 3. Return OK or FAIL." \

555 --allowedTools "Edit,Bash(git commit *)"555 --allowedTools "Edit,Bash(git commit *)" \

556 --permission-mode dontAsk

556 done557 done

557 ```558 ```

558 </Step>559 </Step>

559 560 

560 <Step title="Probar en algunos archivos, luego ejecutar en todos ellos">561 <Step title="Probar en algunos archivos, luego ejecutar en todos ellos">

561 Refine su prompt basándose en lo que sale mal con los primeros 2-3 archivos, luego ejecute en el conjunto completo. La bandera `--allowedTools` restringe lo que Claude puede hacer, lo que importa cuando está ejecutando sin supervisión.562 Refina tu prompt basándote en lo que sale mal con los primeros 2-3 archivos, luego ejecuta en el conjunto completo. El flag `--allowedTools` aprueba previamente las herramientas que necesita la migración, y [`--permission-mode dontAsk`](/docs/es/permission-modes#allow-only-pre-approved-tools-with-dontask-mode) deniega cualquier otra cosa que requeriría aprobación, lo que importa cuando estás ejecutando sin supervisión.

562 </Step>563 </Step>

563</Steps>564</Steps>

564 565 

565También puede integrar Claude en canalizaciones de datos/procesamiento existentes:566También puedes integrar Claude en canalizaciones de datos/procesamiento existentes:

566 567 

567```bash theme={null}568```bash theme={null}

568claude -p "<your prompt>" --output-format json | your_command569claude -p "<your prompt>" --output-format json | your_command


572 Ejecutar de forma autónoma con modo automático573 Ejecutar de forma autónoma con modo automático

573</h3>574</h3>

574 575 

575Para ejecución ininterrumpida con comprobaciones de seguridad en segundo plano, use [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode). Un modelo clasificador revisa los comandos antes de que se ejecuten, bloqueando escalada de alcance, infraestructura desconocida y acciones impulsadas por contenido hostil mientras permite que el trabajo rutinario continúe sin prompts.576Para ejecución ininterrumpida con comprobaciones de seguridad en segundo plano, usa el [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode). Un modelo clasificador revisa los comandos antes de que se ejecuten, bloqueando escalada de alcance, infraestructura desconocida y acciones impulsadas por contenido hostil mientras permite que el trabajo habitual continúe sin solicitudes de permiso.

576 577 

577```bash theme={null}578```bash theme={null}

578claude --permission-mode auto -p "fix all lint errors"579claude --permission-mode auto -p "fix all lint errors"

579```580```

580 581 

581Cuando el clasificador bloquea repetidamente acciones en una ejecución no interactiva con la bandera `-p`, Claude Code no detiene la ejecución. Vea [cuándo el modo automático retrocede](/docs/es/permission-modes#when-auto-mode-falls-back) para saber qué sucede en su lugar y para los umbrales.582Cuando el clasificador bloquea repetidamente acciones en una ejecución no interactiva con el flag `-p`, Claude Code no detiene la ejecución. Consulta [cuándo el modo automático retrocede](/docs/es/permission-modes#when-auto-mode-falls-back) para saber qué sucede en su lugar y para los umbrales.

582 583 

583<h3 id="add-an-adversarial-review-step">584<h3 id="add-an-adversarial-review-step">

584 Agregar un paso de revisión adversarial585 Agregar un paso de revisión adversarial

585</h3>586</h3>

586 587 

587<Tip>588<Tip>

588 Antes de tratar una tarea como completada, haga que un subagente revise el diff en un contexto fresco e informe sobre brechas.589 Antes de tratar una tarea como completada, haz que un subagente revise el diff en un contexto fresco e informe sobre brechas.

589</Tip>590</Tip>

590 591 

591Cuanto más tiempo trabaje Claude sin supervisión, más importa una verificación independiente antes de contar el trabajo como completado. Un revisor que se ejecuta en un contexto de [subagente](/docs/es/sub-agents) fresco ve solo el diff y los criterios que le proporciona, no el razonamiento que produjo el cambio, por lo que evalúa el resultado en sus propios términos.592Cuanto más tiempo trabaje Claude sin supervisión, más importa una verificación independiente antes de contar el trabajo como completado. Un revisor que se ejecuta en un contexto de [subagente](/docs/es/sub-agents) fresco ve solo el diff y los criterios que le proporcionas, no el razonamiento que produjo el cambio, por lo que evalúa el resultado en sus propios términos.

592 593 

593Para una verificación de corrección, ejecute la [skill `/code-review`](/docs/es/commands) incluida, que revisa el diff actual en busca de errores en un subagente fresco y devuelve hallazgos a la sesión. Para verificar el diff contra su plan en su lugar, escriba el prompt de revisión usted mismo. Nombre el trabajo a verificar, el plan a verificar contra él y qué cuenta como un hallazgo:594Para una verificación de corrección, ejecuta el [skill `/code-review`](/docs/es/commands) incluido, que revisa el diff actual en busca de errores en un subagente fresco y devuelve hallazgos a la sesión. Para verificar el diff contra tu plan en su lugar, escribe el prompt de revisión tú mismo. Nombra el trabajo a verificar, el plan contra el cual verificarlo y qué cuenta como un hallazgo:

594 595 

595```text wrap theme={null}596```text wrap theme={null}

596Use a subagent to review the rate limiter diff against PLAN.md. Check that597Use a subagent to review the rate limiter diff against PLAN.md. Check that


598nothing outside the task's scope changed. Report gaps, not style preferences.599nothing outside the task's scope changed. Report gaps, not style preferences.

599```600```

600 601 

601Debido a que el revisor se ejecuta como un subagente, la sesión de implementación recibe las brechas directamente y puede corregirlas y revisar nuevamente sin que usted copie hallazgos entre ventanas.602Debido a que el revisor se ejecuta como un subagente, la sesión de implementación recibe las brechas directamente y puede corregirlas y revisar nuevamente sin que tú copies hallazgos entre ventanas.

602 603 

603<Callout>604<Callout>

604 Un revisor indicado para encontrar brechas generalmente reportará algunas, incluso cuando el trabajo es sólido, porque eso es lo que se le pidió que hiciera. Perseguir cada hallazgo conduce a sobre-ingeniería: capas de abstracción adicionales, código defensivo y pruebas para casos que no pueden suceder. Dígale al revisor que marque solo brechas que afecten la corrección o los requisitos establecidos, y trate el resto como opcional.605 Un revisor al que se le pide encontrar brechas generalmente reportará algunas, incluso cuando el trabajo es sólido, porque eso es lo que se le pidió que hiciera. Perseguir cada hallazgo conduce a sobreingeniería: capas de abstracción adicionales, código defensivo y pruebas para casos que no pueden suceder. Dile al revisor que marque solo brechas que afecten la corrección o los requisitos establecidos, y trata el resto como opcional.

605</Callout>606</Callout>

606 607 

607***608***

channels.md +1 −1

Details

326 Habilitar channels para su organización326 Habilitar channels para su organización

327</h3>327</h3>

328 328 

329Habilite channels para su organización desde [**claude.ai → Configuración de administrador → Claude Code → Channels**](https://claude.ai/admin-settings/claude-code), que requiere el rol de Propietario, o estableciendo `channelsEnabled` en `true` en la configuración administrada.329Habilita los canales para tu organización desde [**Configuración de la organización > Claude Code > Channels**](https://claude.ai/admin-settings/claude-code), que requiere el rol de Owner, o estableciendo `channelsEnabled` en `true` en la configuración administrada.

330 330 

331Una vez habilitado, los usuarios de su organización pueden usar `--channels` para optar por servidores de channel en sesiones individuales. Si la configuración está deshabilitada o no está establecida, el servidor MCP aún se conecta y sus herramientas funcionan, pero los mensajes de channel no llegarán. Un mensaje de advertencia de inicio le dice al usuario que un administrador habilite la configuración.331Una vez habilitado, los usuarios de su organización pueden usar `--channels` para optar por servidores de channel en sesiones individuales. Si la configuración está deshabilitada o no está establecida, el servidor MCP aún se conecta y sus herramientas funcionan, pero los mensajes de channel no llegarán. Un mensaje de advertencia de inicio le dice al usuario que un administrador habilite la configuración.

332 332 

Details

263 Conectar desarrolladores263 Conectar desarrolladores

264</h2>264</h2>

265 265 

266Los desarrolladores se conectan desde sus propias computadoras portátiles con un inicio de sesión de navegador, usando su cuenta de trabajo corporativa. No necesitan una cuenta de claude.ai, una clave API, o una suscripción, porque las solicitudes al modelo van a través de la puerta de enlace usando la credencial ascendente de la organización. La conexión es impulsada por la [configuración administrada del lado del cliente](/docs/es/claude-apps-gateway-config#client-side-managed-settings) que inserta a través de MDM, por lo que no hay configuración manual en el lado del desarrollador; esta sección cubre lo que configura el administrador.266Los desarrolladores se conectan desde sus propias laptops con un único inicio de sesión en el navegador, usando su cuenta de trabajo corporativa. No necesitan una cuenta de claude.ai, una clave de API ni una suscripción, porque las solicitudes al modelo pasan por el gateway usando la credencial ascendente de la organización. La conexión se controla mediante la [configuración administrada del lado del cliente](/docs/es/claude-apps-gateway-config#client-side-managed-settings) que distribuyes a través de MDM, por lo que no hay configuración manual del lado del desarrollador; esta sección cubre lo que configura el administrador.

267 267 

268La CLI toma la huella digital del certificado TLS de hoja de la puerta de enlace en la primera conexión y la fija por nombre de host. Verifica esa fijación nuevamente durante el inicio de sesión, en actualizaciones silenciosas de sesión, y en obtenciones de configuración administrada, mientras que las solicitudes de inferencia usan validación TLS estándar sin la fijación. Las solicitudes enrutadas a través de un proxy HTTPS omiten la verificación de fijación, por lo que agregue el host de la puerta de enlace a `NO_PROXY` para mantenerlas directas.268La CLI toma la huella digital del certificado TLS hoja del gateway en la primera conexión y la fija por nombre de host. Vuelve a verificar esa fijación durante el inicio de sesión, en las actualizaciones silenciosas de la sesión y en las obtenciones de configuración administrada, mientras que las solicitudes de inferencia usan la validación TLS estándar sin la fijación. Las solicitudes enrutadas a través de un proxy HTTPS omiten la verificación de la fijación, así que agrega el host del gateway a `NO_PROXY` para mantenerlas directas.

269 269 

270Publique la huella digital SHA-256 esperada junto con la URL de la puerta de enlace para que los desarrolladores tengan algo con lo que comparar. El indicador `/login` muestra los primeros 16 caracteres de la huella digital como hexadecimal minúscula sin dos puntos. Para imprimir la huella digital completa en esa forma desde el archivo de certificado, ejecute:270Publica la huella digital SHA-256 esperada junto con la URL del gateway para que los desarrolladores tengan algo con qué compararla. El prompt de `/login` muestra los primeros 16 caracteres de la huella digital en hexadecimal en minúsculas, sin dos puntos. Para imprimir la huella digital completa en ese formato a partir del archivo del certificado, ejecuta:

271 271 

272```bash theme={null}272```bash theme={null}

273openssl x509 -noout -fingerprint -sha256 -in cert.pem | cut -d= -f2 | tr -d : | tr 'A-F' 'a-f'273openssl x509 -noout -fingerprint -sha256 -in cert.pem | cut -d= -f2 | tr -d : | tr 'A-F' 'a-f'

274```274```

275 275 

276Cuando el certificado rota, cada desarrollador ve el indicador de confianza nuevamente, por lo que trate las rotaciones como un evento planificado y republique la huella digital. Si su política de puerta de enlace incluye [configuración que necesita aprobación](/docs/es/server-managed-settings#security-approval-dialogs), el desarrollador también ve ese diálogo de aprobación nuevamente después de aceptar el nuevo certificado, porque Claude Code vincula [memoria de aprobación](/docs/es/server-managed-settings#approval-memory) al certificado fijado.276Cuando el certificado rota, todos los desarrolladores vuelven a ver el prompt de confianza, así que trata las rotaciones como un evento planificado y vuelve a publicar la huella digital. Si la política de tu gateway incluye [ajustes que requieren aprobación](/docs/es/server-managed-settings#security-approval-dialogs), el desarrollador también vuelve a ver ese diálogo de aprobación después de aceptar el nuevo certificado, porque Claude Code vincula la [memoria de aprobación](/docs/es/server-managed-settings#approval-memory) al certificado fijado.

277 277 

278Una puerta de enlace puede devolver el campo opcional `email` en su respuesta de token para nombrar la cuenta que usó un inicio de sesión. Cuando lo hace, el desarrollador confirma la cuenta antes de que Claude Code guarde la credencial. Después de un inicio de sesión confirmado, `/status` muestra la cuenta.278Un gateway puede devolver el campo opcional `email` en su respuesta de token para indicar la cuenta que usó un inicio de sesión. Cuando lo hace, el desarrollador confirma la cuenta antes de que Claude Code guarde la credencial. Después de un inicio de sesión confirmado, `/status` muestra la cuenta.

279 279 

280La confirmación requiere Claude Code v2.1.275 o posterior en la máquina del desarrollador; un cliente por debajo de esa versión ignora el campo. El servidor de la puerta de enlace en el binario `claude` no devuelve el campo, por lo que sus inicios de sesión se completan sin la confirmación.280La confirmación requiere Claude Code v2.1.275 o posterior en la máquina del desarrollador; un cliente con una versión anterior ignora el campo. El servidor de gateway incluido en el binario `claude` no devuelve el campo, por lo que sus inicios de sesión se completan sin la confirmación.

281 281 

282Una vez que el desarrollador inicia sesión, el [selector de modelos](/docs/es/model-config) muestra los modelos en su lista de permitidos `availableModels`. La configuración administrada se aplica al inicio y se actualiza cada hora, y la telemetría se enruta a su recopilador.282Una vez que el desarrollador inicia sesión, el [selector de modelos](/docs/es/model-config) muestra los modelos de su lista de permitidos `availableModels`. La configuración administrada se aplica al inicio y se actualiza cada hora, y la telemetría se enruta a tu recopilador.

283 283 

284Las sesiones se actualizan silenciosamente antes de la expiración de `ttl_hours`. Cuando una actualización falla después del desaprovisionamiento de IdP, Claude Code solicita al desarrollador que inicie sesión nuevamente.284Las sesiones se actualizan silenciosamente antes de que venza `ttl_hours`. Cuando una actualización falla después del desaprovisionamiento en el IdP, Claude Code le pide al desarrollador que vuelva a iniciar sesión.

285 285 

286<h3 id="set-the-gateway-url">286<h3 id="set-the-gateway-url">

287 Establecer la URL de la puerta de enlace287 Establecer la URL del gateway

288</h3>288</h3>

289 289 

290Tres claves van en el archivo de [configuración administrada](/docs/es/managed-settings#delivery-mechanisms) por sistema operativo que implementa a través de MDM o directamente en el disco. `forceLoginMethod` y `forceLoginGatewayUrl` abren `/login` directamente en la pantalla **Cloud gateway** con la URL rellenada, y `parentSettingsBehavior: "merge"` permite que Claude Desktop entregue la lista de permitidos de salida de la puerta de enlace a las sesiones de Claude Code que lanza, explicado en [Entregar política a sesiones de Claude Desktop](#deliver-policy-to-claude-desktop-sessions):290Tres claves van en el [archivo de configuración administrada](/docs/es/managed-settings#delivery-mechanisms) de cada sistema operativo que implementas a través de MDM o directamente en el disco. `forceLoginMethod` y `forceLoginGatewayUrl` abren `/login` directamente en la pantalla **Cloud gateway** con la URL ya completada, y `parentSettingsBehavior: "merge"` permite que Claude Desktop entregue la lista de permitidos de salida del gateway a las sesiones de Claude Code que inicia, como se explica en [Entregar la política a las sesiones de Claude Desktop](#deliver-policy-to-claude-desktop-sessions):

291 291 

292```json theme={null}292```json theme={null}

293{293{


297}297}

298```298```

299 299 

300El desarrollador presiona Intro para conectarse. El [indicador de huella digital TLS de primera conexión](#connect-developers) aún aparece. Una vez que el archivo está en una máquina, un desarrollador que no ha completado el inicio de sesión de la puerta de enlace ve uno de los mensajes descritos en [La política del administrador requiere un inicio de sesión de Cloud gateway](/docs/es/errors#administrator-policy-requires-a-cloud-gateway-sign-in). Los desarrolladores que seleccionan un proveedor de nube a través de una variable de entorno como `CLAUDE_CODE_USE_BEDROCK` no necesitan el inicio de sesión de la puerta de enlace.300El desarrollador presiona Enter para conectarse. El [prompt de huella digital TLS de la primera conexión](#connect-developers) sigue apareciendo. Una vez que el archivo está en una máquina, un desarrollador que no ha completado el inicio de sesión en el gateway ve uno de los mensajes descritos en [Administrator policy requires a Cloud gateway sign-in](/docs/es/errors#administrator-policy-requires-a-cloud-gateway-sign-in). Los desarrolladores que seleccionan un proveedor de nube mediante una variable de entorno como `CLAUDE_CODE_USE_BEDROCK` no necesitan el inicio de sesión en el gateway.

301 301 

302Un desarrollador no puede configurar esto manualmente. El selector de inicio de sesión no tiene opción de puerta de enlace, y `forceLoginGatewayUrl` se ignora en los archivos de configuración propios de un desarrollador. `forceLoginMethod` solo, sin una URL, deja al desarrollador en un mensaje "Contacte a su administrador de TI". Las claves de inicio de sesión pertenecen al archivo que inserta en máquinas, no en el bloque `managed.policies[].cli` de la puerta de enlace, que solo llega a clientes que ya están conectados.302Un desarrollador no puede configurar esto manualmente. El selector de inicio de sesión no tiene una opción de gateway, y `forceLoginGatewayUrl` se ignora en los archivos de configuración propios de un desarrollador. `forceLoginMethod` por sí solo, sin una URL, deja al desarrollador ante un mensaje "Contact your IT administrator". Las claves de inicio de sesión van en el archivo que distribuyes a las máquinas, no en el bloque `managed.policies[].cli` del gateway, que solo llega a los clientes que ya están conectados.

303 303 

304<h3 id="allow-a-gateway-on-public-address-space-you-own">304<h3 id="allow-a-gateway-on-public-address-space-you-own">

305 Permitir una puerta de enlace en espacio de direcciones público que usted posee305 Permitir un gateway en un espacio de direcciones público de tu propiedad

306</h3>306</h3>

307 307 

308Algunas organizaciones numeran su red interna desde un bloque IPv4 público que poseen, como el espacio de direcciones propio de un operador o un `/8` heredado, por lo que su puerta de enlace no puede tener una dirección privada. Liste esos bloques en la configuración administrada `gatewayInternalNetworks`. `/login` entonces acepta una puerta de enlace dentro de un bloque listado cuando la máquina del desarrollador se conecta a ella desde una dirección dentro del mismo bloque. Esto requiere Claude Code v2.1.268 o posterior en la máquina del desarrollador; las versiones anteriores ignoran la clave y aplican la regla de dirección privada.308Algunas organizaciones numeran su red interna a partir de un bloque IPv4 público de su propiedad, como el espacio de direcciones propio de un operador o un `/8` heredado, por lo que su gateway no puede tener una dirección privada. Enumera esos bloques en el ajuste de configuración administrada `gatewayInternalNetworks`. Entonces `/login` acepta un gateway dentro de un bloque enumerado cuando la máquina del desarrollador se conecta a él desde una dirección dentro del mismo bloque. Esto requiere Claude Code v2.1.268 o posterior en la máquina del desarrollador; las versiones anteriores ignoran la clave y aplican la regla de direcciones privadas.

309 309 

310<Warning>310<Warning>

311 `gatewayInternalNetworks` es para redes internas que resultan estar numeradas desde espacio de direcciones público. No hace que sea seguro exponer una puerta de enlace a internet: una puerta de enlace confiable puede insertar configuración que ejecute comandos en máquinas de desarrolladores.311 `gatewayInternalNetworks` es para redes internas que resultan estar numeradas a partir de un espacio de direcciones público. No hace que sea seguro exponer un gateway a internet: un gateway de confianza puede distribuir ajustes que ejecutan comandos en las máquinas de los desarrolladores.

312 312 

313 Mantenga la puerta de enlace inaccesible desde fuera de su red con sus reglas de firewall o balanceador de carga. Establezca el [`access_control.allow_cidrs`](/docs/es/claude-apps-gateway-config#http-tuning) de la puerta de enlace a los mismos bloques que declara aquí, para que la puerta de enlace en sí rechace clientes desde cualquier otro lugar. Detrás de un balanceador de carga o ingress, establezca también `listen.trusted_proxies` a ese front end, porque la puerta de enlace de otro modo coincide con `allow_cidrs` contra la dirección del front end en sí en lugar de la del desarrollador.313 Mantén el gateway inaccesible desde fuera de tu red con las reglas de tu firewall o balanceador de carga. Establece el [`access_control.allow_cidrs`](/docs/es/claude-apps-gateway-config#http-tuning) del gateway en los mismos bloques que declaras aquí, para que el propio gateway rechace clientes desde cualquier otro lugar. Detrás de un balanceador de carga o ingress, establece también `listen.trusted_proxies` en ese front end, porque de lo contrario el gateway compara `allow_cidrs` con la dirección del propio front end en lugar de la del desarrollador.

314</Warning>314</Warning>

315 315 

316Agregue la clave a la misma fuente de configuración administrada que las claves de inicio de sesión: el archivo de configuración administrada, perfil MDM, o política de registro. Claude Code la ignora en configuración administrada por el usuario, proyecto, y servidor.316Agrega la clave a la misma fuente de configuración administrada que las claves de inicio de sesión: el archivo de configuración administrada, el perfil de MDM o la política del registro. Claude Code la ignora en la configuración de usuario, de proyecto y administrada por el servidor.

317 317 

318Este ejemplo declara un bloque. Reemplace `203.0.113.0/24` con su propio bloque. Es un rango de documentación, y Claude Code rechaza esos.318Este ejemplo declara un bloque. Reemplaza `203.0.113.0/24` por tu propio bloque. Es un rango de documentación, y Claude Code los rechaza.

319 319 

320```json theme={null}320```json theme={null}

321{321{


323}323}

324```324```

325 325 

326Claude Code valida la lista en `/login` antes de que contacte a cualquier puerta de enlace:326Claude Code valida la lista en `/login` antes de contactar a cualquier gateway:

327 327 

328* Cada entrada es un bloque IPv4 escrito como su primera dirección y un prefijo de `/8` a `/32`.328* Cada entrada es un bloque IPv4 escrito como su primera dirección y un prefijo de `/8` a `/32`.

329* La lista contiene como máximo cuatro bloques, y ninguno dos se superponen.329* La lista contiene como máximo cuatro bloques, y no hay dos que se superpongan.

330* Ningún bloque se superpone con espacio de direcciones privadas: `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`, `127.0.0.0/8`, `169.254.0.0/16`, y `100.64.0.0/10`. `/login` ya acepta una puerta de enlace allí sin esta clave.330* Ningún bloque se superpone con el espacio de direcciones privadas: `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`, `127.0.0.0/8`, `169.254.0.0/16` y `100.64.0.0/10`. `/login` ya acepta un gateway ahí sin esta clave.

331* Ningún bloque se superpone con espacio que nunca es la red de una organización: `198.18.0.0/15` y `192.0.0.0/24`, que clientes VPN y NAT64 mantienen como direcciones locales; los rangos de documentación `192.0.2.0/24`, `198.51.100.0/24`, y `203.0.113.0/24`; y los rangos reservados `0.0.0.0/8`, `192.88.99.0/24`, y multidifusión `224.0.0.0/4`. Puede declarar bloques dentro de `240.0.0.0/4`, que algunas redes grandes usan como espacio de unidifusión interno.331* Ningún bloque se superpone con espacio que nunca es la red de una organización: `198.18.0.0/15` y `192.0.0.0/24`, que los clientes de VPN y NAT64 usan como direcciones locales; los rangos de documentación `192.0.2.0/24`, `198.51.100.0/24` y `203.0.113.0/24`; y los rangos reservados `0.0.0.0/8`, `192.88.99.0/24` y el de multidifusión `224.0.0.0/4`. Puedes declarar bloques dentro de `240.0.0.0/4`, que algunas redes grandes usan como espacio interno de unidifusión.

332 332 

333Los bloques de `managed-settings.json` y sus archivos drop-in `managed-settings.d/` se combinan en una lista, y estos límites se aplican a la lista combinada. Para estrechar un bloque, reemplace su entrada en lugar de agregar una segunda, superpuesta en un drop-in; `/login` rechaza la superposición.333Los bloques de `managed-settings.json` y sus archivos drop-in `managed-settings.d/` se combinan en una sola lista, y estos límites se aplican a la lista combinada. Para reducir un bloque, reemplaza su entrada en lugar de agregar una segunda que se superponga en un drop-in; `/login` rechaza la superposición.

334 334 

335Si una entrada rompe una regla, o el valor no es una lista de cadenas, Claude Code rechaza cada nuevo inicio de sesión de puerta de enlace en esa máquina y nombra el problema en el mensaje. El inicio de sesión a una puerta de enlace en una dirección privada también falla, y los inicios de sesión existentes siguen funcionando. Intente el valor en una máquina antes de implementarlo. Claude Code también lista un valor tipado incorrectamente entre la [configuración administrada inválida que reporta](/docs/es/managed-settings#keys-that-fail-closed).335Si una entrada incumple una regla, o el valor no es una lista de cadenas, Claude Code rechaza todo nuevo inicio de sesión en un gateway en esa máquina e indica el problema en el mensaje. El inicio de sesión en un gateway con una dirección privada también falla, y los inicios de sesión existentes siguen funcionando. Prueba el valor en una máquina antes de implementarlo. Claude Code también incluye un valor con un tipo incorrecto entre la [configuración administrada no válida que informa](/docs/es/managed-settings#keys-that-fail-closed).

336 336 

337Con una lista válida, `/login` aplica tres verificaciones a una puerta de enlace cuya dirección está dentro de un bloque listado:337Con una lista válida, `/login` aplica tres verificaciones a un gateway cuya dirección está dentro de un bloque enumerado:

338 338 

339* Cada dirección a la que se resuelve el nombre de host de la puerta de enlace está dentro de ese bloque. Claude Code rechaza un nombre que también tiene registros fuera de él, direcciones privadas e IPv6 incluidas.339* Todas las direcciones a las que resuelve el nombre de host del gateway están dentro de ese mismo bloque. Claude Code rechaza un nombre que también tiene registros fuera de él, incluidas direcciones privadas e IPv6.

340* La máquina del desarrollador se conecta desde dentro del mismo bloque. Claude Code rechaza una máquina detrás de NAT, dentro de un contenedor o WSL2, o en una VPN cuyo grupo de direcciones se encuentra fuera del bloque, y nombra la dirección desde la que se conectó la máquina.340* La máquina del desarrollador se conecta desde dentro del mismo bloque. Claude Code rechaza una máquina detrás de NAT, dentro de un contenedor o de WSL2, o en una VPN cuyo grupo de direcciones está fuera del bloque, e indica la dirección desde la que se conectó la máquina.

341* La conexión es directa. Si `HTTPS_PROXY` se aplica al host de la puerta de enlace, `/login` rechaza y nombra la entrada `NO_PROXY` a agregar.341* La conexión es directa. Si `HTTPS_PROXY` se aplica al host del gateway, `/login` la rechaza e indica la entrada de `NO_PROXY` que debes agregar.

342 342 

343Cuando los tres pasan, el [indicador de confianza](#connect-developers) agrega una línea nombrando la dirección de la máquina, la dirección de la puerta de enlace, y el bloque declarado que contiene ambas.343Cuando las tres se cumplen, el [prompt de confianza](#connect-developers) agrega una línea que indica la dirección de la máquina, la dirección del gateway y el bloque declarado que contiene ambas.

344 344 

345La clave no cambia nada para otras puertas de enlace: el inicio de sesión a una en una dirección privada funciona como antes, y el inicio de sesión a una en una dirección pública fuera de cada bloque listado se rechaza como antes.345La clave no cambia nada para otros gateways: el inicio de sesión en uno con una dirección privada funciona como antes, y el inicio de sesión en uno con una dirección pública fuera de todos los bloques enumerados se rechaza como antes.

346 346 

347Un bloque declarado estrecha quién puede iniciar sesión pero no prueba dónde está una máquina, por lo que declare solo espacio de direcciones que su organización controla. Un bloque compartido con otros inquilinos, como un rango público de un proveedor de nube, permite que cualquiera en él pase la misma verificación.347Un bloque declarado restringe quién puede iniciar sesión, pero no prueba dónde está una máquina, así que declara solo espacio de direcciones que controla tu organización. Un bloque compartido con otros inquilinos, como el rango público de un proveedor de nube, permite que cualquiera dentro de él pase la misma verificación.

348 348 

349<h3 id="deliver-policy-to-claude-desktop-sessions">349<h3 id="deliver-policy-to-claude-desktop-sessions">

350 Entregar política a sesiones de Claude Desktop350 Entregar la política a las sesiones de Claude Desktop

351</h3>351</h3>

352 352 

353Claude Desktop ejecuta sus pestañas Cowork y Code, más la pestaña Chat cuando la habilita, en sesiones de Claude Code incrustadas y envía sus solicitudes de modelo a través de la puerta de enlace. Pasa política a cada una de esas sesiones, construida a partir de la configuración que la puerta de enlace le sirve en `/user/bootstrap`: la lista de permitidos de modelos, herramientas deshabilitadas, y lista de permitidos de salida derivada del bloque `cli` de la política coincidente, más la [superposición `desktop`](/docs/es/claude-apps-gateway-config#claude-desktop-overlay).353Claude Desktop ejecuta sus pestañas Cowork y Code, además de la pestaña Chat cuando la activas, sobre sesiones de Claude Code integradas y envía sus solicitudes al modelo a través del gateway. Pasa la política a cada una de esas sesiones, construida a partir de la configuración que el gateway le sirve en `/user/bootstrap`: la lista de modelos permitidos, las herramientas deshabilitadas y la lista de permitidos de salida derivadas del bloque `cli` de la política coincidente, además de la [superposición `desktop`](/docs/es/claude-apps-gateway-config#claude-desktop-overlay).

354 354 

355Otras claves `cli`, como hooks, `env`, y reglas de permiso con alcance como `Bash(npm *)`, llegan solo a clientes que inician sesión a través de `/login`. Claude Desktop lee la URL de la puerta de enlace de su propia configuración administrada e inicia sesión con su propio flujo, separado de las claves `forceLoginMethod` y `forceLoginGatewayUrl` en [Establecer la URL de la puerta de enlace](#set-the-gateway-url).355Otras claves de `cli`, como los hooks, `env` y las reglas de permisos con alcance como `Bash(npm *)`, solo llegan a los clientes que inician sesión a través de `/login`. Claude Desktop lee la URL del gateway de su propia configuración administrada e inicia sesión con su propio flujo, independiente de las claves `forceLoginMethod` y `forceLoginGatewayUrl` de [Establecer la URL del gateway](#set-the-gateway-url).

356 356 

357La configuración pasada por un proceso de lanzamiento son configuración principal. Claude Code ignora la configuración principal en cualquier máquina que tenga una fuente administrada implementada por el administrador, a menos que la [fuente que entrega la política](/docs/es/managed-settings#which-managed-source-claude-code-uses) establezca `parentSettingsBehavior: "merge"`.357Los ajustes que pasa un proceso que inicia Claude Code son la configuración del proceso padre. Claude Code ignora la configuración del proceso padre en cualquier máquina que tenga una fuente administrada implementada por un administrador, a menos que la [fuente que entrega la política](/docs/es/managed-settings#which-managed-source-claude-code-uses) establezca `parentSettingsBehavior: "merge"`.

358 358 

359<h4 id="which-machines-need-the-opt-in">359<h4 id="which-machines-need-the-opt-in">

360 Qué máquinas necesitan la opción de participación360 Qué máquinas necesitan la activación

361</h4>361</h4>

362 362 

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

364 364 

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

366 366 

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

368 368 

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

370 370 

371<h4 id="set-the-opt-in">371<h4 id="set-the-opt-in">

372 Establecer la opción de participación372 Configurar la activación

373</h4>373</h4>

374 374 

375Implemente el fragmento de configuración administrada de [Establecer la URL de la puerta de enlace](#set-the-gateway-url), espéjelo a cualquier fuente del lado del cliente que supere al archivo, luego verifique.375Implementa el fragmento de configuración administrada de [Establecer la URL del gateway](#set-the-gateway-url), replícalo en cualquier fuente del lado del cliente que tenga prioridad sobre el archivo y luego verifica.

376 376 

377<Steps>377<Steps>

378 <Step title="Implemente la opción de participación en el archivo de configuración administrada">378 <Step title="Implementa la activación en el archivo de configuración administrada">

379 El [fragmento anterior](#set-the-gateway-url) ya incluye `parentSettingsBehavior: "merge"`, por lo que el archivo que inserta en máquinas lo lleva.379 El [fragmento anterior](#set-the-gateway-url) ya incluye `parentSettingsBehavior: "merge"`, así que el archivo que distribuyes a las máquinas lo contiene.

380 </Step>380 </Step>

381 381 

382 <Step title="Espeje el fragmento a cualquier fuente que supere al archivo">382 <Step title="Replica el fragmento en cualquier fuente que tenga prioridad sobre el archivo">

383 Claude Code lee `parentSettingsBehavior` solo de la [fuente seleccionada](/docs/es/managed-settings#which-managed-source-claude-code-uses). Agregar cualquier clave de política a una fuente puede hacer que esa fuente sea la seleccionada, por lo que en una fuente del lado del cliente, espeje el fragmento completo en lugar de solo `parentSettingsBehavior`. [Configuración administrada del lado del cliente](/docs/es/claude-apps-gateway-config#client-side-managed-settings) cubre flotas que entregan política a través de Group Policy o perfiles de configuración. Un plist de preferencias administradas en macOS o una política HKLM en Windows supera al archivo `managed-settings.json`, y la configuración administrada remota de la puerta de enlace supera a ambas, por lo que en máquinas que inician sesión en la puerta de enlace, también establezca `parentSettingsBehavior` en el bloque [`cli`](/docs/es/claude-apps-gateway-config#managed) de la política de la puerta de enlace.383 Claude Code lee `parentSettingsBehavior` solo de la [fuente seleccionada](/docs/es/managed-settings#which-managed-source-claude-code-uses). Agregar cualquier clave de política a una fuente puede convertirla en la seleccionada, así que en una fuente del lado del cliente replica el fragmento completo en lugar de solo `parentSettingsBehavior`. [Configuración administrada del lado del cliente](/docs/es/claude-apps-gateway-config#client-side-managed-settings) cubre las flotas que entregan la política a través de Group Policy o de perfiles de configuración. Un plist de preferencias administradas en macOS o una política HKLM en Windows tiene prioridad sobre el archivo `managed-settings.json`, y la configuración administrada remota del propio gateway tiene prioridad sobre ambos, así que en las máquinas que inician sesión en el gateway establece también `parentSettingsBehavior` en el [bloque `cli`](/docs/es/claude-apps-gateway-config#managed) de la política del gateway.

384 </Step>384 </Step>

385 385 

386 <Step title="Verifique qué fuente está seleccionada">386 <Step title="Verifica qué fuente está seleccionada">

387 En una máquina que solo ejecuta Claude Desktop, llame al [`resolveSettings()`](/docs/es/agent-sdk/typescript#resolvesettings) del SDK del Agente y lea `policyOrigin` en la entrada `managed` en su lista `sources`. El valor nombra la fuente del lado del cliente seleccionada, `plist`, `hklm`, o `file`, que es la fuente que debe llevar el fragmento. Las sesiones incrustadas de Claude Desktop no obtienen la política de la puerta de enlace, por lo que el bloque `cli` de la puerta de enlace nunca cuenta como la fuente seleccionada para ellas.387 En una máquina que solo ejecuta Claude Desktop, llama a [`resolveSettings()`](/docs/es/agent-sdk/typescript#resolvesettings) del Agent SDK y lee `policyOrigin` en la entrada `managed` de su lista `sources`. El valor indica la fuente del lado del cliente seleccionada, `plist`, `hklm` o `file`, que es la fuente que debe contener el fragmento. Las sesiones integradas de Claude Desktop no obtienen la política del gateway, por lo que el bloque `cli` del gateway nunca cuenta como la fuente seleccionada para ellas.

388 </Step>388 </Step>

389</Steps>389</Steps>

390 390 

391<h3 id="restrict-parent-settings">391<h3 id="restrict-parent-settings">

392 Restringir configuración principal392 Restringir la configuración del proceso padre

393</h3>393</h3>

394 394 

395Una vez que implemente `parentSettingsBehavior: "merge"`, cualquier proceso de host que lance Claude Code puede suministrar configuración principal, no solo Claude Desktop sino también una aplicación del SDK del Agente o una extensión de IDE.395Una vez que implementas `parentSettingsBehavior: "merge"`, cualquier proceso host que inicie Claude Code puede proporcionar configuración del proceso padre; no solo Claude Desktop, sino también una aplicación del Agent SDK o una extensión de IDE.

396 396 

397Claude Code filtra la configuración principal contra una lista de permitidos de claves restrictivas, pero algunas claves permitidas pueden otorgar acceso en lugar de restringirlo. A menos que establezca los bloqueos `allowManaged*Only`, las reglas de permiso de permitir y las listas de permitidos de sandbox suministradas por el host aún se aplican. Las reglas de negación y pregunta de su política permanecen en vigor de cualquier manera; [se evalúan antes de cualquier regla de permitir](/docs/es/permissions#manage-permissions).397Claude Code filtra la configuración del proceso padre con una lista de permitidos de claves restrictivas, pero algunas claves permitidas pueden conceder acceso en lugar de restringirlo. A menos que establezcas los bloqueos `allowManaged*Only`, las reglas de permisos de tipo allow y las listas de permitidos del sandbox que proporciona el host siguen aplicándose. Las reglas deny y ask de tu política siguen vigentes en cualquier caso; [se evalúan antes que cualquier regla allow](/docs/es/permissions#manage-permissions).

398 398 

399Claude Code reenvía entradas [`sandbox.credentials`](/docs/es/settings-reference#sandbox-credentials) suministradas por el principal en forma despojada:399Claude Code reenvía las entradas de [`sandbox.credentials`](/docs/es/settings-reference#sandbox-credentials) proporcionadas por el proceso padre en forma reducida:

400 400 

401* **Entradas `deny`**: reenviadas solo con su `path` o `name` y el modo.401* **Entradas `deny`**: se reenvían solo con su `path` o `name` y el modo.

402* **Entradas de archivo con [`mode: mask`](/docs/es/sandboxing#mask-credential-files)**: reenviadas solo centinela, como una máscara de archivo completo cuyo `injectHosts` es la lista vacía, por lo que el proxy nunca sustituye el valor real por una entrada suministrada por el principal en ninguna plataforma. Todos los campos de enmascaramiento estructurado también se descartan, por lo que un patrón de extracción suministrado por el principal no puede desplazar una máscara más estricta que otra fuente establece para la misma ruta.402* **Entradas de archivo con [`mode: mask`](/docs/es/sandboxing#mask-credential-files)**: se reenvían solo como centinela, como una máscara de archivo completo cuyo `injectHosts` es la lista vacía, de modo que el proxy nunca sustituye el valor real en una entrada proporcionada por el proceso padre en ninguna plataforma. También se descartan todos los campos de enmascaramiento estructurado, de modo que un patrón de extracción proporcionado por el proceso padre no puede desplazar una máscara más estricta que otra fuente establece para la misma ruta.

403* **Entradas `envVars` con `mode: mask`**: no reenviadas. `deny` es la única restricción que el canal principal puede expresar a través de entradas `envVars`.403* **Entradas `envVars` con `mode: mask`**: no se reenvían. `deny` es la única restricción que el canal del proceso padre puede expresar mediante entradas `envVars`.

404* **[`awsPairs` y `sigv4`](/docs/es/sandboxing#re-sign-aws-requests)**: reenviadas solo restricción. De `sigv4`, solo se mantienen valores `deny`, y un principal que define un bloque `sigv4` en absoluto fija las tres formas de solicitud, `streaming`, `presigned`, y `sigv4a`, a `deny`. Un par `awsPairs` nunca se reenvía en una forma que pueda volver a firmar; un par que nombra una de las variables AWS convencionales se reemplaza por una entrada inerte que mantiene el emparejamiento automático de `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY`, y `AWS_SESSION_TOKEN` suprimido.404* **[`awsPairs` y `sigv4`](/docs/es/sandboxing#re-sign-aws-requests)**: se reenvían solo como restricciones. De `sigv4` solo se conservan los valores `deny`, y un proceso padre que define cualquier bloque `sigv4` fija las tres formas de solicitud, `streaming`, `presigned` y `sigv4a`, en `deny`. Un par de `awsPairs` nunca se reenvía en una forma que pueda volver a firmar; un par que nombra una de las variables convencionales de AWS se reemplaza por una entrada inerte que mantiene suprimido el emparejamiento automático de `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY` y `AWS_SESSION_TOKEN`.

405 405 

406<h4 id="deploy-the-locks">406<h4 id="deploy-the-locks">

407 Implemente los bloqueos407 Implementar los bloqueos

408</h4>408</h4>

409 409 

410Para mantener la configuración principal lo más cercana a solo restricción como el filtro admite, agregue los cinco bloqueos `allowManaged*Only`, y las listas de permitidos que rigen, a las mismas fuentes que la opción de participación de fusión:410Para que la configuración del proceso padre sea lo más restrictiva posible según lo que admite el filtro, agrega los cinco bloqueos `allowManaged*Only`, y las listas de permitidos que controlan, a las mismas fuentes que la activación de merge:

411 411 

412```json theme={null}412```json theme={null}

413{413{


432}432}

433```433```

434 434 

435Una política del sistema operativo, como una política de registro HKLM o un plist de preferencias administradas, supera a este archivo, por lo que entregue el fragmento completo a través de él en lugar del archivo. La configuración administrada remota de la puerta de enlace supera a las fuentes de política del sistema operativo y archivo pero llega solo a clientes conectados. Espeje los bloqueos, las listas de permitidos, y la opción de participación de fusión en el bloque [`cli`](/docs/es/claude-apps-gateway-config#managed) de la política y mantenga este archivo implementado, porque las máquinas que nunca se conectan, incluidas las que solo ejecutan Claude Desktop, obtienen su política solo del archivo.435Una política del sistema operativo, como una política de registro HKLM o un plist de preferencias administradas, tiene prioridad sobre este archivo, así que en ese caso entrega el fragmento completo a través de ella en lugar del archivo. La configuración administrada remota del gateway tiene prioridad sobre las fuentes de política del sistema operativo y de archivo, pero solo llega a los clientes conectados. Replica los bloqueos, las listas de permitidos y la activación de merge en el [bloque `cli`](/docs/es/claude-apps-gateway-config#managed) de la política y mantén este archivo implementado, porque las máquinas que nunca se conectan, incluidas las que solo ejecutan Claude Desktop, obtienen su política únicamente del archivo.

436 436 

437<h4 id="lock-behavior-across-sources">437<h4 id="lock-behavior-across-sources">

438 Comportamiento de bloqueo entre fuentes438 Comportamiento de los bloqueos entre fuentes

439</h4>439</h4>

440 440 

441Establecer un bloqueo no restringe los otros; cada clave está documentada en la [referencia de configuración](/docs/es/settings-reference#all-settings).441Establecer un bloqueo no restringe los demás; cada clave está documentada en la [referencia de configuración](/docs/es/settings-reference#all-settings).

442 442 

443De una fuente de administrador por debajo del ganador, los dos bloqueos de sandbox aún se aplican, y `allowManagedPermissionRulesOnly` aún bloquea reglas de permitir suministradas por el principal y `additionalDirectories`. En Claude Code v2.1.273 o posterior, el bloqueo de servidor MCP también se aplica desde una fuente por debajo del ganador, y mientras esté activado, la lista administrada `allowedMcpServers` proviene de la fuente de administrador de mayor prioridad que establece una.443Desde una fuente de administrador por debajo de la ganadora, los dos bloqueos del sandbox siguen aplicándose, y `allowManagedPermissionRulesOnly` sigue bloqueando las reglas allow y los `additionalDirectories` proporcionados por el proceso padre. En Claude Code v2.1.273 o posterior, el bloqueo de servidores MCP también se aplica desde una fuente por debajo de la ganadora, y mientras está activado, la lista administrada `allowedMcpServers` proviene de la fuente de administrador de mayor prioridad que establece una.

444 444 

445El bloqueo de hooks y el efecto de `allowManagedPermissionRulesOnly` en las reglas propias del desarrollador necesitan la fuente ganadora por defecto; bajo la opción de participación de fusión `managedSourcesBehavior` en [cómo Claude Code combina fuentes administradas](/docs/es/managed-settings#how-claude-code-combines-managed-sources), Claude Code aplica el valor más estricto que cualquier fuente establece para cada bloqueo. En flotas [`policyHelper`](/docs/es/settings-reference#policyhelper), Claude Code lee los bloqueos solo de la salida del asistente.445El bloqueo de hooks y el efecto de `allowManagedPermissionRulesOnly` sobre las reglas propias del desarrollador requieren, de forma predeterminada, la fuente ganadora; con la activación de merge de `managedSourcesBehavior` descrita en [cómo combina Claude Code las fuentes administradas](/docs/es/managed-settings#how-claude-code-combines-managed-sources), Claude Code aplica para cada bloqueo el valor más estricto que establezca cualquier fuente. En las flotas con [`policyHelper`](/docs/es/settings-reference#policyhelper), Claude Code lee los bloqueos únicamente de la salida del helper.

446 446 

447Cada bloqueo hace que Claude Code ignore las entradas propias del desarrollador para esa configuración, por lo que incluya las listas de permitidos de su organización junto a los bloqueos:447Cada bloqueo hace que Claude Code ignore las entradas propias del desarrollador para ese ajuste, así que incluye las listas de permitidos de tu organización junto a los bloqueos:

448 448 

449* **Dominios de red**: bloquear con una lista de dominios administrados vacía bloquea todo el tráfico saliente en sandbox.449* **Dominios de red**: bloquear con una lista de dominios administrados vacía bloquea todo el tráfico saliente del sandbox.

450* **Servidores MCP**: bloquear sin `allowedMcpServers` en ninguna fuente de administrador o en la configuración suministrada por el principal carga cada servidor que `deniedMcpServers` no bloquea.450* **Servidores MCP**: bloquear sin `allowedMcpServers` en ninguna fuente de administrador ni en la configuración proporcionada por el proceso padre carga todos los servidores que `deniedMcpServers` no bloquea.

451* **Rutas de lectura**: las entradas `allowRead` solo vuelven a permitir rutas dentro de regiones `denyRead`, por lo que emparéjelas con un `denyRead` administrado.451* **Rutas de lectura**: las entradas `allowRead` solo vuelven a permitir rutas dentro de las regiones de `denyRead`, así que combínalas con un `denyRead` administrado.

452 452 

453<h4 id="settings-the-locks-don’t-cover">453<h4 id="settings-the-locks-don’t-cover">

454 Configuración que los bloqueos no cubren454 Ajustes que los bloqueos no cubren

455</h4>455</h4>

456 456 

457Seis configuraciones suministradas por el principal pasan el filtro incluso con los cinco bloqueos establecidos. Bajo la configuración de primer ganador predeterminada, el valor de administrador que bloquea el del principal es el de la fuente de administrador de mayor prioridad, excepto para `allowedMcpServers` mientras el [bloqueo de servidor MCP](#lock-behavior-across-sources) esté activado. Bajo la opción de participación de fusión `managedSourcesBehavior`, [cómo Claude Code combina fuentes administradas](/docs/es/managed-settings#how-claude-code-combines-managed-sources) dice qué valor de fuente se aplica en su lugar.457Estos ajustes proporcionados por el proceso padre pasan el filtro incluso con los cinco bloqueos establecidos:

458 458 

459* **`forceLoginOrgUUID`**: Claude Code honra un valor suministrado por el principal cuando la fuente de administrador de mayor prioridad no establece un UUID de organización. El inicio de sesión de la puerta de enlace no verifica esta clave. Un UUID de organización en la fuente de administrador de mayor prioridad bloquea el valor del principal y es el que Claude Code aplica.459* **`forceLoginOrgUUID`**: Claude Code respeta un valor proporcionado por el proceso padre cuando la fuente de administrador de mayor prioridad no establece un UUID de organización. El inicio de sesión en el gateway no verifica esta clave. Un UUID de organización en la fuente de administrador de mayor prioridad bloquea el valor del proceso padre y es el que Claude Code aplica.

460* **`allowedMcpServers`**: Claude Code honra una lista de permitidos suministrada por el principal cuando ninguna lista de administrador está en vigor. `allowManagedMcpServersOnly` no la bloquea, porque el bloqueo aplica cualquier lista que gane como el valor administrado, incluida una lista suministrada por el principal cuando ninguna fuente de administrador suministra una. Una lista en la fuente de administrador de mayor prioridad bloquea la del principal y es la lista que Claude Code aplica, por lo que establezca `allowedMcpServers` allí, junto al bloqueo. Antes de v2.1.223, un valor para cualquiera de las claves en cualquier fuente de administrador bloqueaba la del principal.460* **`allowedMcpServers`**: Claude Code respeta una lista de permitidos proporcionada por el proceso padre cuando no hay ninguna lista de administrador vigente. `allowManagedMcpServersOnly` no la bloquea, porque el bloqueo aplica la lista que resulte ganadora como valor administrado, incluida una proporcionada por el proceso padre cuando ninguna fuente de administrador proporciona una lista. Una lista en la fuente de administrador de mayor prioridad bloquea la del proceso padre y es la que Claude Code aplica, así que establece `allowedMcpServers` ahí, junto al bloqueo. Antes de v2.1.223, un valor para cualquiera de las dos claves en cualquier fuente de administrador bloqueaba el del proceso padre.

461* **`availableModels`**: Claude Code honra una lista de modelos suministrada por el principal cuando la fuente administrada ganadora no establece una. Si su flota restringe modelos, establezca `availableModels` en la fuente ganadora.461* **`availableModels`**: Claude Code respeta una lista de modelos proporcionada por el proceso padre cuando la fuente administrada ganadora no establece una. Si tu flota restringe los modelos, establece `availableModels` en la fuente ganadora.

462* **`strictKnownMarketplaces`**: Claude Code honra una lista de permitidos de mercado de plugins suministrada por el principal cuando la fuente administrada ganadora no establece una. Claude Desktop 2.16120.0 o posterior envía una cuando su configuración administrada desactiva los mercados de plugins agregados por el usuario. Si su flota restringe mercados, establezca `strictKnownMarketplaces` en la fuente ganadora. Requiere Claude Code v2.1.282 o posterior.462* **`allowedProviders`**: Claude Code respeta una lista de proveedores de API permitidos proporcionada por el proceso padre cuando la fuente administrada ganadora no establece una. Si tu flota restringe qué proveedores de API pueden usar los desarrolladores, establece `allowedProviders` en la fuente ganadora. Requiere Claude Code v2.1.285 o posterior.

463* **`blockedMarketplaces`**: una lista de bloqueo de mercado suministrada por el principal pasa y se suma a cualquier lista de bloqueo que una fuente administrada establece, ya que una lista de bloqueo solo puede restringir más. Requiere Claude Code v2.1.282 o posterior.463* **`strictKnownMarketplaces`**: Claude Code respeta una lista de marketplaces de plugins permitidos proporcionada por el proceso padre cuando la fuente administrada ganadora no establece una. Claude Desktop 2.16120.0 o posterior envía una cuando su configuración administrada desactiva los marketplaces de plugins agregados por el usuario. Si tu flota restringe los marketplaces, establece `strictKnownMarketplaces` en la fuente ganadora. Requiere Claude Code v2.1.282 o posterior.

464* **`strictPluginOnlyCustomization`**: esta clave pasa el filtro independientemente de cualquier bloqueo, y hace que Claude Code ignore la personalización propia del desarrollador, incluidos hooks protectores. Ningún bloqueo la bloquea.464* **`blockedMarketplaces`**: una lista de marketplaces bloqueados proporcionada por el proceso padre pasa el filtro y se suma a cualquier lista de bloqueados que establezca una fuente administrada, ya que una lista de bloqueados solo puede restringir más. Requiere Claude Code v2.1.282 o posterior.

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

466 

467Con el ajuste predeterminado de "gana el primero", un valor de administrador bloquea el del proceso padre solo cuando está en la fuente de administrador de mayor prioridad, excepto en el caso de `allowedMcpServers` mientras el [bloqueo de servidores MCP](#lock-behavior-across-sources) está activado. Con la activación de merge de `managedSourcesBehavior`, [cómo combina Claude Code las fuentes administradas](/docs/es/managed-settings#how-claude-code-combines-managed-sources) indica qué valor de fuente se aplica en su lugar.

465 468 

466<h3 id="connect-claude-desktop">469<h3 id="connect-claude-desktop">

467 Conectar Claude Desktop470 Conectar Claude Desktop

468</h3>471</h3>

469 472 

470[Claude Desktop](/docs/es/desktop) se conecta a la misma puerta de enlace a través de una clave MDM diferente: establezca `bootstrapUrl` en la [configuración administrada](https://claude.com/docs/third-party/claude-desktop/configuration) de Claude Desktop a `<listen.public_url>/user/bootstrap`, y opte por la política del usuario con una clave `desktop`. [Superposición de Claude Desktop](/docs/es/claude-apps-gateway-config#claude-desktop-overlay) cubre ambas mitades. Requiere Claude Code v2.1.203 o posterior en el servidor de la puerta de enlace.473[Claude Desktop](/docs/es/desktop) se conecta al mismo gateway mediante una clave de MDM diferente: establece `bootstrapUrl` en la [configuración administrada](https://claude.com/docs/third-party/claude-desktop/configuration) de Claude Desktop en `<listen.public_url>/user/bootstrap`, y activa la política del usuario con una clave `desktop`. [Superposición de Claude Desktop](/docs/es/claude-apps-gateway-config#claude-desktop-overlay) cubre ambas partes. Requiere Claude Code v2.1.203 o posterior en el servidor del gateway.

471 474 

472Claude Desktop firma al desarrollador a través del proveedor de identidad de la puerta de enlace con el mismo paso de SSO del navegador, luego obtiene su configuración de la puerta de enlace en lugar de Anthropic. El acceso a modelos y la política siguen las mismas reglas por grupo que la CLI. Un desarrollador que usa tanto la CLI como Claude Desktop inicia sesión en cada uno por separado; la sesión de la puerta de enlace no se comparte entre ellas.475Claude Desktop inicia la sesión del desarrollador a través del proveedor de identidad del gateway con el mismo paso de SSO en el navegador y luego obtiene su configuración del gateway en lugar de Anthropic. El acceso a los modelos y la política siguen las mismas reglas por grupo que la CLI. Un desarrollador que usa tanto la CLI como Claude Desktop inicia sesión en cada uno por separado; la sesión del gateway no se comparte entre ellos.

473 476 

474Una vez conectado, Claude Desktop envía solicitudes de modelo de cada pestaña habilitada a través de la puerta de enlace. Muestra las pestañas Cowork y Code por defecto. Para activar también la pestaña Chat, establezca `chatTabEnabled` a `true` en la [configuración administrada](https://claude.com/docs/third-party/claude-desktop/configuration) de Claude Desktop, o en el bloque [`desktop`](/docs/es/claude-apps-gateway-config#claude-desktop-overlay) de la política en una puerta de enlace que ejecuta Claude Code v2.1.227 o posterior.477Una vez conectado, Claude Desktop envía las solicitudes al modelo de todas las pestañas activadas a través del gateway. De forma predeterminada muestra las pestañas Cowork y Code. Para activar también la pestaña Chat, establece `chatTabEnabled` en `true` en la [configuración administrada](https://claude.com/docs/third-party/claude-desktop/configuration) de Claude Desktop, o en el [bloque `desktop`](/docs/es/claude-apps-gateway-config#claude-desktop-overlay) de la política en un gateway que ejecute Claude Code v2.1.227 o posterior.

475 478 

476<h3 id="ci-pipelines-and-remote-machines">479<h3 id="ci-pipelines-and-remote-machines">

477 Canalizaciones de CI y máquinas remotas480 Pipelines de CI y máquinas remotas

478</h3>481</h3>

479 482 

480No hay flujo de token de servicio para canalizaciones desatendidas. El inicio de sesión de la puerta de enlace siempre ejecuta el flujo de dispositivo del navegador, por lo que un trabajo de CI sin un desarrollador para aprobar el inicio de sesión no puede autenticarse; configure esos contra su proveedor directamente.483No existe un flujo de token de servicio para pipelines desatendidos. El inicio de sesión en el gateway siempre ejecuta el flujo de dispositivo del navegador, por lo que un trabajo de CI sin un desarrollador que apruebe el inicio de sesión no puede autenticarse; configura esos trabajos directamente con tu proveedor.

481 484 

482Una vez que un desarrollador ha iniciado sesión, cada sesión de Claude Code en esa máquina usa la sesión de la puerta de enlace, incluidas las ejecuciones no interactivas de `claude -p` y sesiones iniciadas por el SDK del Agente. Claude Code aplica la [política de la puerta de enlace](/docs/es/claude-apps-gateway-config#managed) a cada una de ellas.485Una vez que un desarrollador inicia sesión, cada sesión de Claude Code en esa máquina usa la sesión del gateway, incluidas las ejecuciones no interactivas de `claude -p` y las sesiones iniciadas por el Agent SDK. Claude Code aplica la [política del gateway](/docs/es/claude-apps-gateway-config#managed) a cada una de ellas.

483 486 

484El flujo de dispositivo separa la CLI de sondeo de la aprobación del navegador, por lo que una caja de desarrollo remota sin pantalla aún funciona: el desarrollador ejecuta `/login` sobre SSH en la máquina remota y abre el enlace de verificación en el navegador en su computadora portátil.487El flujo de dispositivo separa la CLI que consulta del navegador que aprueba, así que una máquina de desarrollo remota sin pantalla también funciona: el desarrollador ejecuta `/login` por SSH en la máquina remota y abre el enlace de verificación en el navegador de su laptop.

485 488 

486<h3 id="whats-enforced-on-developers">489<h3 id="whats-enforced-on-developers">

487 Qué se aplica en los desarrolladores490 Qué se aplica a los desarrolladores

488</h3>491</h3>

489 492 

490Estas garantías se aplican a cada sesión conectada a través de `/login`. Las sesiones incrustadas que Claude Desktop lanza obtienen su política como se describe en [Entregar política a sesiones de Claude Desktop](#deliver-policy-to-claude-desktop-sessions), y la viñeta de telemetría dice dónde van sus exportaciones.493Estas garantías se aplican a todas las sesiones iniciadas a través de `/login`. Las sesiones integradas que inicia Claude Desktop reciben su política como se describe en [Entregar la política a las sesiones de Claude Desktop](#deliver-policy-to-claude-desktop-sessions), y el punto sobre telemetría indica adónde van sus exportaciones.

491 494 

492* **Acceso a modelos**: las solicitudes de modelos que la política no otorga devuelven 400, y el selector `/model` se filtra a la lista de permitidos `availableModels` de la política. Establezca [`enforceAvailableModels: true`](/docs/es/model-config#default-model-behavior) en la política para que la opción Predeterminado se resuelva a un modelo dentro de `availableModels` en lugar de al predeterminado integrado de Claude Code; sin él, Predeterminado permanece seleccionable y se rechaza en el tiempo de solicitud si ese modelo no se otorga.495* **Acceso a modelos**: las solicitudes de modelos que la política no concede devuelven 400, y el selector de `/model` se filtra según la lista de permitidos `availableModels` de la política. Esto incluye el modelo con el que se inicia una sesión antes de que el desarrollador elija uno; consulta [Iniciar sesiones con un modelo que la política permite](/docs/es/claude-apps-gateway-config#start-sessions-on-a-model-the-policy-allows).

493* **Destino de telemetría**: en sesiones conectadas a través de `/login`, la CLI envía sus exportaciones OTLP/HTTP a la puerta de enlace en lugar de a un `OTEL_EXPORTER_OTLP_ENDPOINT` establecido localmente, a menos que una política [nombre su recopilador como el punto final](/docs/es/claude-apps-gateway-config#export-directly-to-your-collector). La puerta de enlace retransmite las exportaciones que recibe a los destinos en [`telemetry.forward_to`](/docs/es/claude-apps-gateway-config#telemetry).496* **Destino de la telemetría**: en las sesiones iniciadas a través de `/login`, la CLI envía sus exportaciones OTLP/HTTP al gateway en lugar de a un `OTEL_EXPORTER_OTLP_ENDPOINT` establecido localmente, a menos que una política [indique tu recopilador como endpoint](/docs/es/claude-apps-gateway-config#export-directly-to-your-collector). El gateway reenvía las exportaciones que recibe a los destinos de [`telemetry.forward_to`](/docs/es/claude-apps-gateway-config#telemetry).

494 * En las sesiones incrustadas que [Claude Desktop lanza](#connect-claude-desktop), la CLI envía sus exportaciones al `OTEL_EXPORTER_OTLP_ENDPOINT` configurado. La CLI adjunta el token de sesión de la puerta de enlace a esas exportaciones solo cuando ese punto final apunta a la puerta de enlace en sí.497 * En las sesiones integradas que [inicia Claude Desktop](#connect-claude-desktop), la CLI envía sus exportaciones al `OTEL_EXPORTER_OTLP_ENDPOINT` configurado. La CLI adjunta el token de sesión del gateway a esas exportaciones solo cuando ese endpoint apunta al propio gateway.

495 * Sin destino configurado para una señal, la puerta de enlace la acepta y descarta.498 * Si no hay un destino configurado para una señal, el gateway la acepta y la descarta.

496 * Si ya recopila telemetría de Claude Code directamente, agregue su recopilador como destino `forward_to`, o nombre su recopilador en una política para omitir el relé.499 * Si ya recopilas la telemetría de Claude Code directamente, agrega tu recopilador como destino de `forward_to`, o indícalo en una política para omitir el reenvío.

497* **Credenciales**: el token de la puerta de enlace es la única credencial de la sesión. [Perfiles de Anthropic](/docs/es/authentication#anthropic-profiles-and-federation-credentials) y cualquier inicio de sesión anterior de claude.ai se ignoran mientras se conecta, por lo que los desarrolladores no necesitan cerrar sesión de claude.ai primero. Para una credencial `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN`, o `apiKeyHelper` configurada, vea [La política del administrador requiere un inicio de sesión de Cloud gateway](/docs/es/errors#administrator-policy-requires-a-cloud-gateway-sign-in).500* **Credenciales**: el token del gateway es la única credencial de la sesión. Los [perfiles de Anthropic](/docs/es/authentication#anthropic-profiles-and-federation-credentials) y cualquier inicio de sesión anterior en claude.ai se ignoran mientras la sesión está iniciada, así que los desarrolladores no necesitan cerrar primero la sesión de claude.ai. Para una credencial configurada de `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN` o `apiKeyHelper`, o una clave de API guardada por un inicio de sesión anterior en Claude Console, consulta [Administrator policy requires a Cloud gateway sign-in](/docs/es/errors#administrator-policy-requires-a-cloud-gateway-sign-in).

498* **Configuración administrada**: las claves bloqueadas no se pueden anular localmente. La CLI aplica la política al inicio y aplica cambios en cada sondeo cada hora, aparte de los [cambios que se aplican solo en el siguiente lanzamiento](/docs/es/server-managed-settings#fetch-and-caching-behavior).501* **Configuración administrada**: las claves bloqueadas no se pueden anular localmente. La CLI aplica la política al inicio y aplica los cambios en cada consulta horaria, salvo los [cambios que solo se aplican en el siguiente inicio](/docs/es/server-managed-settings#fetch-and-caching-behavior).

499* **Inicio con la puerta de enlace inaccesible**: las sesiones conectadas salen al inicio con un error después de aproximadamente 10 segundos en lugar de iniciarse sin su configuración.502* **Inicio con el gateway inaccesible**: las sesiones iniciadas terminan al arrancar con un error después de unos 10 segundos en lugar de iniciarse sin su configuración.

500* **Inicio después de que la puerta de enlace termina la sesión**: vea [Aplicar inicio cerrado por fallo](/docs/es/server-managed-settings#enforce-fail-closed-startup) para los lanzamientos que se abren desconectados de la puerta de enlace y los que salen cuando la puerta de enlace responde con un `401`.503* **Inicio después de que el gateway finaliza la sesión**: consulta [Aplicar un inicio con cierre ante fallos](/docs/es/server-managed-settings#enforce-fail-closed-startup) para ver qué inicios se abren sin sesión en el gateway y cuáles terminan cuando el gateway responde con un `401`.

501* **Desaprovisionamiento**: una sesión cuyo usuario está deshabilitado en el IdP expira dentro de `ttl_hours` cuando la siguiente actualización falla.504* **Desaprovisionamiento**: una sesión cuyo usuario está deshabilitado en el IdP vence dentro de `ttl_hours` cuando falla la siguiente actualización.

502* **Cierre de sesión**: `/logout` elimina la credencial de la puerta de enlace de la máquina del desarrollador.505* **Cierre de sesión**: `/logout` elimina la credencial del gateway de la máquina del desarrollador.

503 * Cuando el documento de descubrimiento de la puerta de enlace anuncia un `revocation_endpoint` en el esquema, host y puerto propios de la URL de la puerta de enlace, `/logout` también envía los tokens almacenados a ese punto final para que la puerta de enlace pueda terminar la sesión en su lado. La solicitud es de mejor esfuerzo, por lo que el cierre de sesión se completa en la máquina del desarrollador independientemente de si el punto final responde. La revocación requiere Claude Code v2.1.275 o posterior en la máquina del desarrollador.506 * Cuando el documento de descubrimiento del gateway anuncia un `revocation_endpoint` en el mismo esquema, host y puerto que la URL del gateway, `/logout` también envía los tokens almacenados a ese endpoint para que el gateway pueda finalizar la sesión de su lado. La solicitud se hace con el mejor esfuerzo, así que el cierre de sesión se completa en la máquina del desarrollador tanto si el endpoint responde como si no. La revocación requiere Claude Code v2.1.275 o posterior en la máquina del desarrollador.

504 * El servidor de la puerta de enlace en el binario `claude` no anuncia ninguno, por lo que un cierre de sesión desde él termina la sesión en la máquina del desarrollador solamente. Para forzar sesiones fuera del lado del servidor, vea [Rotación de secreto JWT](/docs/es/claude-apps-gateway-deploy#jwt-secret-rotation).507 * El servidor de gateway incluido en el binario `claude` no anuncia ninguno, así que un cierre de sesión en él finaliza la sesión solo en la máquina del desarrollador. Para forzar el cierre de las sesiones del lado del servidor, consulta [Rotación del secreto JWT](/docs/es/claude-apps-gateway-deploy#jwt-secret-rotation).

505 508 

506<h3 id="what-the-organization-can-see">509<h3 id="what-the-organization-can-see">

507 Qué puede ver la organización510 Qué puede ver la organización

508</h3>511</h3>

509 512 

510La telemetría de uso lleva la identidad del desarrollador, recuentos de tokens, modelo y latencia al recopilador de la organización. La puerta de enlace no registra ni almacena contenido de indicación o finalización. Si se recopila telemetría más rica como registros y trazas, que puede incluir comandos y rutas de archivo, es la [opción por destino](/docs/es/claude-apps-gateway-config#telemetry) de la organización.513La telemetría de uso lleva al recopilador de la organización la identidad del desarrollador, los recuentos de tokens, el modelo y la latencia. El gateway no registra ni almacena el contenido de los prompts ni de las respuestas. Si se recopila telemetría más detallada, como registros y trazas, que puede incluir comandos y rutas de archivos, es una [elección por destino](/docs/es/claude-apps-gateway-config#telemetry) de la organización.

511 514 

512<h2 id="availability-and-limitations">515<h2 id="availability-and-limitations">

513 Disponibilidad y limitaciones516 Disponibilidad y limitaciones

514</h2>517</h2>

515 518 

516La tabla cubre qué características de Claude Code funcionan cuando los desarrolladores se conectan a través de la puerta de enlace, y qué soporta el servidor de puerta de enlace en sí. Donde algo no es compatible, la columna Notas proporciona la alternativa.519La tabla cubre qué características de Claude Code funcionan cuando los desarrolladores se conectan a través del gateway, y qué soporta el servidor del gateway en sí. Donde algo no es compatible, la columna Notas proporciona la alternativa.

517 520 

518La puerta de enlace entrega los valores [`anthropic-beta`](https://platform.claude.com/docs/es/api/beta-headers) que la CLI envía a cada ascendente, por lo que los operadores no mantienen una lista de permitidos de beta. Para Amazon Bedrock, que ignora el encabezado, la puerta de enlace mueve los valores al campo `anthropic_beta` del cuerpo de la solicitud; los otros ascendentes reciben el encabezado como se envía.521El gateway entrega los valores [`anthropic-beta`](https://platform.claude.com/docs/es/api/beta-headers) que la CLI envía a cada ascendente, por lo que los operadores no mantienen una lista de permitidos de betas. Para Amazon Bedrock, que ignora el encabezado, el gateway mueve los valores al campo `anthropic_beta` del cuerpo de la solicitud; los otros ascendentes reciben el encabezado tal como se envía.

519 522 

520| Característica | Estado | Notas |523| Característica | Estado | Notas |

521| - | - | - |524| - | - | - |

522| Reenvío de inferencia (Amazon Bedrock, Claude Platform en AWS, Agent Platform de Google Cloud, Microsoft Foundry, Anthropic) | Disponible | Con traducción de modelos por ascendente y conmutación por error. El ascendente de Amazon Bedrock utiliza el punto final `bedrock-runtime` y la cadena de credenciales predeterminada de AWS; el [punto final Mantle](/docs/es/amazon-bedrock#use-the-mantle-endpoint) de Amazon Bedrock no es un ascendente compatible. El [ascendente 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 puerta de enlace. |525| Reenvío de inferencia (Amazon Bedrock, Claude Platform en AWS, Agent Platform de Google Cloud, Microsoft Foundry, Anthropic) | Disponible | Con traducción de modelos por ascendente y conmutación por error. El ascendente de Amazon Bedrock utiliza el endpoint `bedrock-runtime` y la cadena de credenciales predeterminada de AWS. El [ascendente Amazon Bedrock Mantle](/docs/es/claude-apps-gateway-config#amazon-bedrock-mantle-endpoint) requiere Claude Code v2.1.283 o posterior en el servidor del gateway, y el [ascendente Claude Platform en AWS](/docs/es/claude-apps-gateway-config#claude-platform-on-aws) requiere v2.1.198 o posterior. |

523| Acceso a modelos y configuración administrada por grupo de IdP | Disponible | El acceso a modelos se aplica del lado del servidor; la configuración administrada se entrega por grupo de IdP y se aplica por la CLI en el [nivel de configuración administrada](/docs/es/settings#settings-precedence) |526| Acceso a modelos y configuración administrada por grupo de IdP | Disponible | El acceso a modelos se aplica del lado del servidor; la configuración administrada se entrega por grupo de IdP y la CLI la aplica en el [nivel de configuración administrada](/docs/es/settings#settings-precedence) |

524| Claude Desktop | Disponible con participación opcional | La puerta de enlace sirve la configuración de Claude Desktop en `/user/bootstrap` una vez que una política [participa con una clave `desktop`](/docs/es/claude-apps-gateway-config#claude-desktop-overlay), y Claude Desktop envía solicitudes de modelo desde sus pestañas Cowork y Code, y desde la pestaña Chat cuando la habilita, a través de la puerta de enlace. Para activar la pestaña Chat, consulte [Conectar Claude Desktop](#connect-claude-desktop). Requiere Claude Code v2.1.203 o posterior en el servidor de puerta de enlace. |527| Claude Desktop | Disponible con participación opcional | El gateway sirve la configuración de Claude Desktop en `/user/bootstrap` una vez que una política [participa con una clave `desktop`](/docs/es/claude-apps-gateway-config#claude-desktop-overlay), y Claude Desktop envía solicitudes de modelo desde sus pestañas Cowork y Code, y desde la pestaña Chat cuando la habilitas, a través del gateway. Para activar la pestaña Chat, consulta [Conectar Claude Desktop](#connect-claude-desktop). Requiere Claude Code v2.1.203 o posterior en el servidor del gateway. |

525| Distribución de telemetría (OTLP/HTTP) | Disponible | Identidad marcada por exportación; ambas codificaciones protobuf y JSON |528| Distribución de telemetría (OTLP/HTTP) | Disponible | Marcada con la identidad en cada exportación; codificaciones protobuf y JSON |

526| Proveedores de identidad OIDC | Disponible | Cualquier IdP compatible con OIDC; la puerta de enlace ejecuta el descubrimiento OIDC estándar y el flujo de código de autorización. Consulte [Configuración del proveedor de identidad](/docs/es/claude-apps-gateway-deploy#identity-provider-setup) para la configuración por IdP |529| Proveedores de identidad OIDC | Disponible | Cualquier IdP compatible con OIDC; el gateway ejecuta el descubrimiento OIDC estándar y el flujo de código de autorización. Consulta [Configuración del proveedor de identidad](/docs/es/claude-apps-gateway-deploy#identity-provider-setup) para la configuración por IdP |

527| Límites de gasto por usuario y por grupo | Disponible | Consulte [Límites de gasto](/docs/es/claude-apps-gateway-spend-limits) |530| Límites de gasto por usuario y por grupo | Disponible | Consulta [Límites de gasto](/docs/es/claude-apps-gateway-spend-limits) |

528| Búsqueda web del lado del servidor | No disponible | La CLI no puede ver qué proveedor ascendente enruta la puerta de enlace, por lo que no puede verificar la compatibilidad de búsqueda web y deshabilita WebSearch en sesiones de puerta de enlace |531| Búsqueda web del lado del servidor | No disponible | La CLI no puede ver a qué proveedor ascendente enruta el gateway, por lo que no puede verificar la compatibilidad con la búsqueda web y deshabilita WebSearch en las sesiones del gateway |

529| [Remote Control](/docs/es/remote-control) | No disponible | La CLI muestra [un error que nombra la puerta de enlace](/docs/es/errors#remote-control-requires-the-anthropic-api) |532| [Remote Control](/docs/es/remote-control) | No disponible | La CLI muestra [un error que nombra el gateway](/docs/es/errors#remote-control-requires-the-anthropic-api) |

530| [`/design-sync`](/docs/es/commands#all-commands) y `/design-login` | No disponible | Ambos necesitan claude.ai, que la CLI no contacta en sesiones de puerta de enlace, por lo que ninguno de los dos comandos aparece allí |533| [`/design-sync`](/docs/es/commands#all-commands) y `/design-login` | No disponible | Ambos necesitan claude.ai, que la CLI no contacta en las sesiones del gateway, por lo que ninguno de los dos comandos aparece allí |

531| Características que necesitan obtención de indicadores de características, como `/import` e `claude import` | No disponible | La CLI omite la obtención de indicadores en sesiones de puerta de enlace. [Características que necesitan obtención de indicadores de características](/docs/es/env-vars#features-that-need-feature-flag-fetching) enumera lo que eso desactiva |534| Características que necesitan obtener flags de características, como `/import` y `claude import` | No disponible | La CLI omite la obtención de flags en las sesiones del gateway. [Características que necesitan obtener flags de características](/docs/es/env-vars#features-that-need-feature-flag-fetching) enumera lo que eso desactiva |

532| Almacenamiento en caché de indicación estándar | Disponible | La puerta de enlace reenvía los puntos de interrupción `cache_control` a cada ascendente. [Dónde vive el caché](/docs/es/prompt-caching#where-the-cache-lives) cubre qué bloques marca la CLI, incluido el contexto del sistema que añade a mitad de la conversación |535| Caché de prompts estándar | Disponible | El gateway reenvía los puntos de interrupción `cache_control` a cada ascendente. [Dónde vive la caché](/docs/es/prompt-caching#where-the-cache-lives) cubre qué bloques marca la CLI, incluido el contexto del sistema que añade a mitad de la conversación |

533| TTL de caché de 1 hora | No disponible | La CLI omite la beta de ttl de caché extendido en sesiones de puerta de enlace, porque no todos los ascendentes a los que la puerta de enlace puede enrutar soportan el TTL de 1 hora, por lo que el almacenamiento en caché de indicación a través de la puerta de enlace utiliza el TTL de 5 minutos; consulte la nota de encabezado de beta anterior |536| TTL de caché de 1 hora | No disponible | La CLI omite la beta de TTL de caché extendido en las sesiones del gateway, porque no todos los ascendentes a los que el gateway puede enrutar soportan el TTL de 1 hora, por lo que la caché de prompts a través del gateway utiliza el TTL de 5 minutos; consulta la nota sobre el encabezado beta anterior |

534| Modo automático | Disponible | Sigue las [reglas del proveedor de terceros](/docs/es/permission-modes#enable-auto-mode-on-bedrock-agent-platform-or-foundry): solo los modelos elegibles en proveedores de terceros pueden usarlo. Antes de v2.1.207, el modo automático en sesiones de puerta de enlace requería establecer `CLAUDE_CODE_ENABLE_AUTO_MODE=1`, entregable a través del bloque `env` de política administrada |537| Modo automático | Disponible | Sigue las [reglas de proveedores de terceros](/docs/es/permission-modes#enable-auto-mode-on-bedrock-agent-platform-or-foundry): solo los modelos elegibles en proveedores de terceros pueden usarlo. Antes de v2.1.207, el modo automático en las sesiones del gateway requería establecer `CLAUDE_CODE_ENABLE_AUTO_MODE=1`, que se podía entregar a través del bloque `env` de la política administrada |

535| Optimizaciones solo de primera parte como alcance de caché global y herramientas eficientes en tokens | No disponible | La CLI no las habilita en sesiones de puerta de enlace; consulte la nota de encabezado de beta anterior |538| Optimizaciones exclusivas de primera parte, como el alcance de caché global y las herramientas eficientes en tokens | No disponible | La CLI no las habilita en las sesiones del gateway; consulta la nota sobre el encabezado beta anterior |

536| OTLP/gRPC | No compatible | OTLP sobre HTTP solo |539| OTLP/gRPC | No compatible | Solo OTLP sobre HTTP |

537| SAML, LDAP y otra autenticación no OIDC | No compatible | Solo OIDC. Frente con un puente OIDC si es necesario |540| SAML, LDAP y otra autenticación no OIDC | No compatible | Solo OIDC. Coloca un puente OIDC delante si es necesario |

538| Multi-inquilino (múltiples emisores OIDC) | No compatible | Un emisor por puerta de enlace. Ejecute instancias separadas |541| Multiinquilino (múltiples emisores OIDC) | No compatible | Un emisor por gateway. Ejecuta instancias separadas |

539| Servidor Windows | No compatible | Implemente en Linux. macOS solo para desarrollo local |542| Servidor Windows | No compatible | Despliega en Linux. macOS solo para desarrollo local |

540| Gráfico Helm | No disponible | La puerta de enlace se ejecuta como un Deployment sin estado estándar; consulte la [guía de implementación](/docs/es/claude-apps-gateway-deploy#kubernetes) |543| Gráfico Helm | No disponible | El gateway se ejecuta como un Deployment estándar sin estado; consulta la [guía de despliegue](/docs/es/claude-apps-gateway-deploy#kubernetes) |

541| Interfaz de usuario de administrador | No disponible | La configuración es el archivo YAML; reimplemente para cambiarlo |544| Interfaz de administración | No disponible | La configuración es el archivo YAML; vuelve a desplegar para cambiarla |

542 545 

543<h2 id="next-steps">546<h2 id="next-steps">

544 Próximos pasos547 Próximos pasos

Details

58 `listen`58 `listen`

59</h3>59</h3>

60 60 

61El bloque `listen` controla dónde sirve la puerta de enlace: la dirección de enlace y el puerto, el origen visible externamente, y la terminación TLS opcional.61El bloque `listen` controla dónde sirve el gateway: la dirección de enlace y el puerto, el origen visible externamente, y la terminación TLS opcional.

62 62 

63| Campo | Requerido | Descripción |63| Campo | Requerido | Descripción |

64| - | - | - |64| - | - | - |

65| `host` | No | Dirección de enlace. Por defecto `0.0.0.0`. |65| `host` | No | Dirección de enlace. Por defecto `0.0.0.0`. |

66| `port` | No | Puerto de enlace. Por defecto `8080`. |66| `port` | No | Puerto de enlace. Por defecto `8080`. |

67| `public_url` | A menos que `host` sea loopback | El origen `https://` visible externamente, utilizado para construir el `redirect_uri` del IdP y los metadatos de descubrimiento. Requerido siempre que `host` no sea una dirección loopback, ya sea que TLS termine en un proxy como ALB, Ingress o Cloud Run o en la puerta de enlace misma a través de `tls`, porque la puerta de enlace nunca deriva su propio origen de los encabezados `X-Forwarded-*`; son falsificables por el cliente. El arranque falla sin él. `trusted_proxies` a continuación rige solo la resolución de IP del cliente. También es requerido para habilitar [telemetría](#telemetry), porque la puerta de enlace construye el punto final OTLP que envía a los clientes a partir de esta URL. |67| `public_url` | A menos que `host` sea loopback | El origen `https://` visible externamente, utilizado para construir el `redirect_uri` del IdP y los metadatos de descubrimiento. Requerido siempre que `host` no sea una dirección loopback, ya sea que TLS termine en un proxy como ALB, Ingress o Cloud Run o en el propio gateway a través de `tls`, porque el gateway nunca deriva su propio origen de los encabezados `X-Forwarded-*`; son falsificables por el cliente. El arranque falla sin él. `trusted_proxies` a continuación rige solo la resolución de IP del cliente. También es requerido para habilitar la [telemetría](#telemetry), porque el gateway construye a partir de esta URL el endpoint OTLP que envía a los clientes. |

68| `tls.cert` / `tls.key` | No | Rutas PEM si la puerta de enlace termina TLS por sí misma |68| `tls.cert` / `tls.key` | No | Rutas PEM si el gateway termina TLS por sí mismo |

69| `trusted_proxies` | No | CIDRs o IPs de equilibradores de carga frente a la puerta de enlace. Cuando se establece, la puerta de enlace confía en `X-Forwarded-For` solo desde estos pares y registra la IP del cliente real para limitación de velocidad por IP y auditoría. Equivalente a `set_real_ip_from` de nginx. Las entradas `X-Forwarded-For` escritas como `ipv4:port` o `[ipv6]:port`, como hacen algunos equilibradores de carga, se leen con el puerto eliminado. Una dirección IPv6 con un puerto añadido y sin corchetes puede leerse como una dirección diferente o no leerse en absoluto, así que desactive la opción de puerto en cualquier proxy que escriba esa forma. |69| `trusted_proxies` | No | CIDRs o IPs de los balanceadores de carga frente al gateway. Cuando se establece, el gateway confía en `X-Forwarded-For` solo desde estos pares y registra la IP real del cliente para el rate limit por IP y la auditoría. Equivalente a `set_real_ip_from` de nginx. Las entradas `X-Forwarded-For` escritas como `ipv4:port` o `[ipv6]:port`, como hacen algunos balanceadores de carga, se leen descartando el puerto. Una dirección IPv6 con un puerto añadido y sin corchetes puede leerse como una dirección diferente o no leerse en absoluto, así que desactiva la opción de puerto en cualquier proxy que escriba esa forma. |

70 70 

71<h3 id="oidc">71<h3 id="oidc">

72 `oidc`72 `oidc`

73</h3>73</h3>

74 74 

75El bloque `oidc` conecta la puerta de enlace a su proveedor de identidad y decide quién puede iniciar sesión. Nombra el emisor y el cliente OAuth, asigna las reclamaciones que llevan correo electrónico y grupos, y restringe el inicio de sesión por dominio de correo electrónico o grupo.75El bloque `oidc` conecta el gateway con tu proveedor de identidad y decide quién puede iniciar sesión. Nombra el emisor y el cliente OAuth, asigna las reclamaciones que llevan el correo electrónico y los grupos, y restringe el inicio de sesión por dominio de correo electrónico o grupo.

76 76 

77OpenID Connect (OIDC) es el protocolo SSO que la puerta de enlace utiliza con su proveedor de identidad; consulte [Configuración del proveedor de identidad](/docs/es/claude-apps-gateway-deploy#identity-provider-setup) para saber qué registrar en el lado del IdP.77OpenID Connect (OIDC) es el protocolo SSO que el gateway utiliza con tu proveedor de identidad; consulta [Configuración del proveedor de identidad](/docs/es/claude-apps-gateway-deploy#identity-provider-setup) para saber qué registrar en el lado del IdP.

78 78 

79| Campo | Requerido | Descripción |79| Campo | Requerido | Descripción |

80| - | - | - |80| - | - | - |

81| `issuer` | Sí | Base de descubrimiento OIDC. Debe servir el descubrimiento en `/.well-known/openid-configuration`. Use HTTPS en producción; la puerta de enlace acepta un emisor `http://`. Un emisor loopback como `http://localhost:8081` es rechazado por la [protección SSRF](/docs/es/claude-apps-gateway-deploy#threat-model-summary) a menos que `CLAUDE_GATEWAY_ALLOW_LOOPBACK=1` esté establecido en el entorno de la puerta de enlace. |81| `issuer` | Sí | Base de descubrimiento OIDC. Debe servir el descubrimiento en `/.well-known/openid-configuration`. Usa HTTPS en producción; el gateway acepta un emisor `http://`. Un emisor loopback como `http://localhost:8081` es rechazado por la [protección SSRF](/docs/es/claude-apps-gateway-deploy#threat-model-summary) a menos que `CLAUDE_GATEWAY_ALLOW_LOOPBACK=1` esté establecido en el entorno del gateway. |

82| `client_id` | Sí | De tu registro de cliente OAuth |82| `client_id` | Sí | De tu registro de cliente OAuth |

83| `client_secret` | A menos que `token_endpoint_auth_method` sea `private_key_jwt` | De tu registro de cliente OAuth. Omítelo cuando uses [autenticación de cliente con certificado](#certificate-client-authentication). |83| `client_secret` | A menos que `token_endpoint_auth_method` sea `private_key_jwt` | De tu registro de cliente OAuth. Omítelo cuando uses [autenticación de cliente con certificado](#certificate-client-authentication). |

84| `allowed_email_domains` | No | Rechace id\_tokens cuya reclamación `email` no esté en uno de estos dominios, sin distinción de mayúsculas y minúsculas. Defensa en profundidad contra configuración errónea del IdP multiinquilino. Independientemente de esta configuración, un id\_token cuya reclamación `email_verified` es explícitamente `false` siempre se rechaza. |84| `allowed_email_domains` | No | Rechaza los id\_tokens cuya reclamación `email` no esté en uno de estos dominios, sin distinguir mayúsculas de minúsculas. Defensa en profundidad contra configuraciones erróneas del IdP multiinquilino. Independientemente de este ajuste, un id\_token cuya reclamación `email_verified` sea explícitamente `false` siempre se rechaza. |

85| `allowed_groups` | No | Restrinja el inicio de sesión a miembros de estos grupos del IdP, comparados contra `groups_claim`. Un usuario en un dominio de correo electrónico permitido pero en ninguno de estos grupos es rechazado. Requiere que el IdP emita la reclamación de grupos. La coincidencia es una comparación de cadena exacta y sensible a mayúsculas y minúsculas contra los valores en esa reclamación, y la puerta de enlace no expande grupos anidados: para admitir miembros de un subgrupo, enumere el subgrupo aquí o configure el IdP para emitir membresía aplanada. |85| `allowed_groups` | No | Restringe el inicio de sesión a miembros de estos grupos del IdP, comparados contra `groups_claim`. Un usuario en un dominio de correo electrónico permitido pero en ninguno de estos grupos es rechazado. Requiere que el IdP emita la reclamación de grupos. La coincidencia es una comparación de cadena exacta y sensible a mayúsculas y minúsculas contra los valores de esa reclamación, y el gateway no expande grupos anidados: para admitir miembros de un subgrupo, enumera el subgrupo aquí o configura el IdP para emitir la membresía aplanada. |

86| `groups_claim` | No | Qué reclamación id\_token lleva la membresía del grupo. Por defecto `groups`. Microsoft Entra emite roles de aplicación bajo `roles`. Acepta una clave plana o un Puntero JSON RFC 6901 como `/resource_access/gateway/roles` para reclamaciones anidadas. |86| `groups_claim` | No | Qué reclamación del id\_token lleva la membresía de grupo. Por defecto `groups`. Microsoft Entra emite roles de aplicación bajo `roles`. Acepta una clave plana o un puntero JSON RFC 6901 como `/resource_access/gateway/roles` para reclamaciones anidadas. |

87| `google_groups` | No | Busque los grupos del usuario que inició sesión a través de la API del Directorio del SDK de administración de Google Workspace, porque el id\_token de Google no lleva reclamación de grupos. Establezca `service_account_json_path` en un archivo de clave de cuenta de servicio con delegación en todo el dominio en el alcance `https://www.googleapis.com/auth/admin.directory.group.readonly`, y `admin_email` en un administrador de Workspace que la cuenta de servicio suplanta; la API del Directorio requiere un asunto administrador real. Las direcciones de correo electrónico del grupo de cada usuario se convierten en su reclamación de grupos, así que `allowed_groups` y `managed.policies.match.groups` coinciden en correos electrónicos de grupo. |87| `google_groups` | No | Busca los grupos del usuario que inició sesión a través de la API de Directorio del SDK de administración de Google Workspace, porque el id\_token de Google no lleva reclamación de grupos. Establece `service_account_json_path` en un archivo de clave de cuenta de servicio con delegación en todo el dominio en el alcance `https://www.googleapis.com/auth/admin.directory.group.readonly`, y `admin_email` en un administrador de Workspace que la cuenta de servicio suplanta; la API de Directorio requiere un sujeto administrador real. Las direcciones de correo electrónico de los grupos de cada usuario se convierten en su reclamación de grupos, así que `allowed_groups` y `managed.policies.match.groups` coinciden con correos electrónicos de grupo. |

88| `email_claim` | No | Qué reclamación id\_token lleva el correo electrónico del usuario. Por defecto `email`. Algunos IdPs, como ADFS y Entra B2C, emiten `upn` o `preferred_username` en su lugar. Acepta una clave plana, un Puntero JSON, o una lista de claves de respaldo donde se utiliza la primera clave presente. |88| `email_claim` | No | Qué reclamación del id\_token lleva el correo electrónico del usuario. Por defecto `email`. Algunos IdPs, como ADFS y Entra B2C, emiten `upn` o `preferred_username` en su lugar. Acepta una clave plana, un puntero JSON, o una lista de claves de respaldo donde se utiliza la primera clave presente. |

89| `scopes` | No | Anulación completa de los alcances OIDC que solicita la puerta de enlace. Por defecto `[openid, profile, email, offline_access]`. Establezca cuando su IdP rechace alcances que no reconoce, o requiera un alcance personalizado para emitir grupos o correo electrónico. Debe incluir `openid`. Eliminar `offline_access` desactiva los tokens de actualización, por lo que los desarrolladores vuelven a ejecutar el inicio de sesión del navegador cada `session.ttl_hours`. Consulte [Configuración del proveedor de identidad](/docs/es/claude-apps-gateway-deploy#identity-provider-setup) para recetas de alcance por IdP como el flujo de token de actualización de Google. |89| `scopes` | No | Sobrescritura completa de los alcances OIDC que solicita el gateway. Por defecto `[openid, profile, email, offline_access]`. Establécelo cuando tu IdP rechace alcances que no reconoce, o requiera un alcance personalizado para emitir grupos o correo electrónico. Debe incluir `openid`. Eliminar `offline_access` desactiva los tokens de actualización, por lo que los desarrolladores vuelven a ejecutar el inicio de sesión en el navegador cada `session.ttl_hours`. Consulta [Configuración del proveedor de identidad](/docs/es/claude-apps-gateway-deploy#identity-provider-setup) para ver recetas de alcances por IdP, como el flujo de token de actualización de Google. |

90| `scope_on_refresh` | No | También envíe `scope`, con la misma lista que la solicitud de inicio de sesión, cuando la puerta de enlace intercambia un token de actualización. Por defecto `false`: la solicitud de actualización omite `scope`. La mayoría de los IdPs devuelven un id\_token en cada actualización y no necesitan esto. Establezca `true` cuando su IdP devuelve un id\_token en la actualización solo si se solicita `openid` nuevamente, que Okta documenta para su concesión de actualización. Sin un id\_token, cada actualización depende del punto final de userinfo del IdP que acepta el token de acceso actualizado. Si controla el inicio de sesión o las políticas de coincidencia en grupos y el id\_token del IdP en tiempo de actualización los omite, también establezca `userinfo_fallback: true` para que la puerta de enlace los complete desde el punto final de userinfo. Un IdP que otorgó menos alcances de los solicitados puede rechazar la actualización con `invalid_scope`, incluso para sesiones existentes si agrega entradas a `scopes` mientras esto está activado. Desestablezca la clave si las actualizaciones comienzan a fallar en `token_endpoint` después de establecerla. Requiere Claude Code v2.1.260 o posterior en el servidor de la puerta de enlace. |90| `scope_on_refresh` | No | Envía también `scope`, con la misma lista que la solicitud de inicio de sesión, cuando el gateway intercambia un token de actualización. Por defecto `false`: la solicitud de actualización omite `scope`. La mayoría de los IdPs devuelven un id\_token en cada actualización y no necesitan esto. Establece `true` cuando tu IdP devuelva un id\_token en la actualización solo si se vuelve a pedir `openid`, algo que Okta documenta para su concesión de actualización. Sin un id\_token, cada actualización depende de que el endpoint de userinfo del IdP acepte el token de acceso actualizado. Si restringes el inicio de sesión o haces coincidir políticas por grupos y el id\_token del IdP en la actualización los omite, establece también `userinfo_fallback: true` para que el gateway los complete desde el endpoint de userinfo. Un IdP que otorgó menos alcances de los solicitados puede rechazar la actualización con `invalid_scope`, incluso para sesiones existentes si agregas entradas a `scopes` mientras esto está activado. Quita la clave si las actualizaciones empiezan a fallar en `token_endpoint` después de establecerla. Requiere Claude Code v2.1.260 o posterior en el servidor del gateway. |

91| `extra_auth_params` | No | Parámetros de consulta adicionales añadidos a la solicitud de autorización del IdP, textualmente. Este es el mecanismo de anulación para comportamiento específico del IdP, como `access_type: offline` para tokens de actualización de Google, `domain_hint` para algunos inquilinos de Entra, o `acr_values` para flujos de escalada. No puede anular los parámetros de protocolo gestionados por la puerta de enlace: `state`, `nonce`, `redirect_uri`, PKCE, `scope`, `response_type`, `response_mode`, y `client_id`. |91| `extra_auth_params` | No | Parámetros de consulta adicionales añadidos textualmente a la solicitud de autorización del IdP. Este es el mecanismo de sobrescritura para el comportamiento específico del IdP, como `access_type: offline` para los tokens de actualización de Google, `domain_hint` para algunos inquilinos de Entra, o `acr_values` para flujos de autenticación escalonada. No puede sobrescribir los parámetros de protocolo gestionados por el gateway: `state`, `nonce`, `redirect_uri`, PKCE, `scope`, `response_type`, `response_mode` y `client_id`. |

92| `userinfo_fallback` | No | Cuando el id\_token omite correo electrónico o grupos, búsquelos en `/userinfo`. Necesario para tokens de acceso ligeros de Keycloak, el servidor org de Okta, y tokens mínimos de ADFS. El id\_token sigue siendo autoritario; userinfo solo llena vacíos. Por defecto `false`. |92| `userinfo_fallback` | No | Cuando el id\_token omite el correo electrónico o los grupos, búscalos en `/userinfo`. Necesario para los tokens de acceso ligeros de Keycloak, el servidor org de Okta y los tokens mínimos de ADFS. El id\_token sigue siendo la fuente autoritativa; userinfo solo llena vacíos. Por defecto `false`. |

93| `use_pkce` | No | Envíe un desafío PKCE (S256) en la solicitud de autorización. Por defecto `true`. Establezca `false` solo si su IdP rechaza PKCE para este cliente confidencial. |93| `use_pkce` | No | Envía un desafío PKCE (S256) en la solicitud de autorización. Por defecto `true`. Establece `false` solo si tu IdP rechaza PKCE para este cliente confidencial. |

94| `clock_skew_seconds` | No | Tolere la desviación del reloj al validar reclamaciones de tiempo id\_token. Por defecto `0`, que es estricto. Aumente si ve errores "token expirado / aún no válido" justo después del inicio de sesión debido a desviación del reloj del host/IdP. |94| `clock_skew_seconds` | No | Tolera la desviación del reloj al validar las reclamaciones de tiempo del id\_token. Por defecto `0`, que es estricto. Auméntalo si ves errores de "token expirado / aún no válido" justo después del inicio de sesión debido a la desviación de reloj entre el host y el IdP. |

95| `token_endpoint_auth_method` | No | Cómo se autentica el gateway ante el endpoint de token del IdP: `client_secret_basic`, `client_secret_post` o `private_key_jwt` para la [autenticación de cliente con certificado](#certificate-client-authentication). Por defecto, el gateway elige uno de los dos métodos `client_secret` según lo que anuncie el IdP. |95| `token_endpoint_auth_method` | No | Cómo se autentica el gateway ante el endpoint de token del IdP: `client_secret_basic`, `client_secret_post` o `private_key_jwt` para la [autenticación de cliente con certificado](#certificate-client-authentication). Por defecto, el gateway elige uno de los dos métodos `client_secret` según lo que anuncie el IdP. |

96| `client_assertion` | Con `private_key_jwt` | Un bloque con `private_key_pem` y `certificate_pem`: la clave privada y el certificado para la [autenticación de cliente con certificado](#certificate-client-authentication). Requiere v2.1.284 o posterior. |96| `client_assertion` | Con `private_key_jwt` | Un bloque con `private_key_pem` y `certificate_pem`: la clave privada y el certificado para la [autenticación de cliente con certificado](#certificate-client-authentication). Requiere v2.1.284 o posterior. |

97| `id_token_signed_response_alg` | No | Algoritmo de firma id\_token esperado. Por defecto `RS256`. Establezca para IdPs que firman con ES256, PS256, o EdDSA. |97| `id_token_signed_response_alg` | No | Algoritmo de firma esperado del id\_token. Por defecto `RS256`. Establécelo para IdPs que firman con ES256, PS256 o EdDSA. |

98| `additional_authorized_parties` | No | Valores `azp` adicionales para aceptar más allá de `client_id`, para flujos de intermediario de Keycloak e intercambio de tokens |98| `additional_authorized_parties` | No | Valores `azp` adicionales que aceptar además de `client_id`, para flujos de intermediario de Keycloak e intercambio de tokens |

99| `discovery_url` | No | Busque el documento de descubrimiento desde esta URL en lugar de derivarlo de `issuer`, para IdPs detrás de un proxy que reescribe el host del emisor. La ruta debe contener `/.well-known/`. |99| `discovery_url` | No | Obtén el documento de descubrimiento desde esta URL en lugar de derivarlo de `issuer`, para IdPs detrás de un proxy que reescribe el host del emisor. La ruta debe contener `/.well-known/`. |

100| `use_proxy` | No | Envíe las propias solicitudes del IdP de la puerta de enlace a través del proxy directo en `HTTPS_PROXY` o `HTTP_PROXY`, respetando `NO_PROXY`. `false` mantiene esas solicitudes directas. Requiere v2.1.227 o posterior; consulte [Solicitudes del IdP a través de un proxy directo](#idp-requests-through-a-forward-proxy) a continuación. |100| `use_proxy` | No | Envía las propias solicitudes del gateway al IdP a través del proxy de reenvío de `HTTPS_PROXY` o `HTTP_PROXY`, respetando `NO_PROXY`. `false` mantiene esas solicitudes directas. Requiere v2.1.227 o posterior; consulta [Solicitudes al IdP a través de un proxy de reenvío](#idp-requests-through-a-forward-proxy) más abajo. |

101| `form_action_origins` | No | Orígenes adicionales para la directiva `Content-Security-Policy: form-action` de la página `/device`. La puerta de enlace ya permite `'self'` y el origen `authorization_endpoint` descubierto, pero Chrome aplica `form-action` contra toda la cadena de redirección. Si su IdP redirige a través de un segundo host, como Azure AD federado a ADFS, Okta de concentrador y radio, o un interceptor SSO corporativo, enumere cada origen por el que la solicitud de autorización puede redirigir. |101| `form_action_origins` | No | Orígenes adicionales para la directiva `Content-Security-Policy: form-action` de la página `/device`. El gateway ya permite `'self'` y el origen del `authorization_endpoint` descubierto, pero Chrome aplica `form-action` a toda la cadena de redirección. Si tu IdP redirige a través de un segundo host, como Azure AD federado con ADFS, Okta en topología hub-spoke o un interceptor SSO corporativo, enumera cada origen por el que pueda redirigir la solicitud de autorización. |

102| `ca_cert_pem` | No | El certificado CA codificado en PEM en sí, no una ruta a un archivo. Reemplaza el almacén de confianza del sistema solo para solicitudes del IdP. Para cargar un archivo montado, escriba `${file:/etc/gateway/idp-ca.pem}`. Úselo para Keycloak o Dex detrás de PKI corporativa. |102| `ca_cert_pem` | No | El propio certificado de CA codificado en PEM, no una ruta a un archivo. Reemplaza el almacén de confianza del sistema solo para las solicitudes al IdP. Para cargar un archivo montado, escribe `${file:/etc/gateway/idp-ca.pem}`. Úsalo para Keycloak o Dex detrás de una PKI corporativa. |

103 103 

104<h4 id="certificate-client-authentication">104<h4 id="certificate-client-authentication">

105 Autenticación de cliente con certificado105 Autenticación de cliente con certificado


1623. Elimina el certificado antiguo del IdP.1623. 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 del IdP a través de un proxy directo165 Solicitudes al IdP a través de un proxy de reenvío

166</h4>166</h4>

167 167 

168Los upstreams de inferencia respetan `HTTPS_PROXY` e `HTTP_PROXY` en cada versión. Las propias solicitudes de la puerta de enlace al IdP, descubrimiento, JWKS, token y userinfo, van directas a menos que establezca `oidc.use_proxy: true`, que requiere v2.1.227 o posterior. Cuando se establece una variable de proxy, `use_proxy` no se establece, y el emisor no está cubierto por `NO_PROXY`, la puerta de enlace mantiene esas solicitudes directas y registra un aviso al arranque pidiéndole que elija; `use_proxy: false` las mantiene directas y silencia el aviso.168Los upstreams de inferencia respetan `HTTPS_PROXY` y `HTTP_PROXY` en todas las versiones. Las propias solicitudes del gateway al IdP (descubrimiento, JWKS, token y userinfo) van directas a menos que establezcas `oidc.use_proxy: true`, que requiere v2.1.227 o posterior. Cuando hay una variable de proxy establecida, `use_proxy` no está establecido y el emisor no está cubierto por `NO_PROXY`, el gateway mantiene esas solicitudes directas y registra un aviso al arrancar pidiéndote que elijas; `use_proxy: false` las mantiene directas y silencia el aviso.

169 169 

170Con `use_proxy: true`, el pod resuelve el nombre de host de cada punto final del IdP por sí mismo y pide al proxy que `CONNECT` a la dirección IP resuelta, por lo que el proxy debe aceptar `CONNECT` a la dirección IP de cada host que el documento de descubrimiento nombra, no solo el emisor. Use una URL de proxy `http://`. `ca_cert_pem` y la [protección SSRF](/docs/es/claude-apps-gateway-deploy#threat-model-summary) se aplican en la ruta proxificada también.170Con `use_proxy: true`, el pod resuelve por sí mismo el nombre de host de cada endpoint del IdP y pide al proxy que haga `CONNECT` a la dirección IP resuelta, por lo que el proxy debe aceptar `CONNECT` a la dirección IP de cada host que nombra el documento de descubrimiento, no solo del emisor. Usa una URL de proxy `http://`. `ca_cert_pem` y la [protección SSRF](/docs/es/claude-apps-gateway-deploy#threat-model-summary) también se aplican en la ruta a través del proxy.

171 171 

172[Solo egreso de proxy](#proxy-only-egress) cambia ambos: mientras está activo, las solicitudes del IdP siguen el proxy a menos que establezca `use_proxy: false`, y la puerta de enlace entrega al proxy cada nombre de host del IdP sin resolverlo primero.172La [salida solo a través del proxy](#proxy-only-egress) cambia ambas cosas: mientras está activa, las solicitudes al IdP siguen el proxy a menos que establezcas `use_proxy: false`, y el gateway entrega al proxy cada nombre de host del IdP sin resolverlo primero.

173 173 

174<h4 id="proxy-only-egress">174<h4 id="proxy-only-egress">

175 Solo egreso de proxy175 Salida solo a través del proxy

176</h4>176</h4>

177 177 

178Establezca `CLAUDE_GATEWAY_PROXY_IS_EGRESS_BOUNDARY=1` en el entorno de la puerta de enlace, junto a `HTTPS_PROXY`, cuando el pod alcanza otros hosts solo a través de ese proxy directo y no puede resolver nombres DNS públicos por sí mismo, o cuando el proxy rechaza `CONNECT` a una dirección IP. Requiere v2.1.277 o posterior. Es una variable de entorno en lugar de una clave `gateway.yaml` para que nada en el archivo de configuración pueda relajar la verificación de dirección de la puerta de enlace.178Establece `CLAUDE_GATEWAY_PROXY_IS_EGRESS_BOUNDARY=1` en el entorno del gateway, junto a `HTTPS_PROXY`, cuando el pod llegue a otros hosts solo a través de ese proxy de reenvío y no pueda resolver nombres DNS públicos por sí mismo, o cuando el proxy rechace `CONNECT` a una dirección IP. Requiere v2.1.277 o posterior. Es una variable de entorno en lugar de una clave de `gateway.yaml` para que nada en el archivo de configuración pueda relajar la verificación de direcciones del gateway.

179 179 

180```bash theme={null}180```bash theme={null}

181export HTTPS_PROXY=http://proxy.corp.example.com:3128181export HTTPS_PROXY=http://proxy.corp.example.com:3128


184export CLAUDE_GATEWAY_PROXY_IS_EGRESS_BOUNDARY=1184export CLAUDE_GATEWAY_PROXY_IS_EGRESS_BOUNDARY=1

185```185```

186 186 

187La puerta de enlace registra una línea `network:` al arranque mientras el egreso solo de proxy está activo.187El gateway registra una línea `network:` al arrancar mientras la salida solo a través del proxy está activa.

188 188 

189Cada fila a continuación es una clase de solicitud saliente en una puerta de enlace con `HTTPS_PROXY` establecido, por defecto y mientras el egreso solo de proxy está activo.189Cada fila a continuación es una clase de solicitud saliente en un gateway con `HTTPS_PROXY` establecido, por defecto y mientras la salida solo a través del proxy está activa.

190 190 

191| Solicitud saliente | Por defecto | Egreso solo de proxy activo |191| Solicitud saliente | Por defecto | Salida solo a través del proxy activa |

192| - | - | - |192| - | - | - |

193| Upstreams `provider: anthropic`, intercambio de tokens de Workload Identity Federation, exportaciones `telemetry.forward_to` | Resuelto y verificado localmente, luego `CONNECT` a la dirección IP verificada a través del proxy. Un recopilador de telemetría listado en `NO_PROXY` se alcanza directamente en su lugar | Nombre de host entregado al proxy |193| Upstreams `provider: anthropic`, intercambio de tokens de Workload Identity Federation, exportaciones `telemetry.forward_to` | Resuelto y verificado localmente, luego `CONNECT` a la dirección IP verificada a través del proxy. A un recopilador de telemetría listado en `NO_PROXY` se llega directamente | Nombre de host entregado al proxy |

194| Descubrimiento del IdP, JWKS, token y userinfo | Directo a menos que [`oidc.use_proxy: true`](#idp-requests-through-a-forward-proxy), luego `CONNECT` a la dirección IP verificada | Nombre de host entregado al proxy, a menos que `oidc.use_proxy: false` mantenga un IdP interno directo |194| Descubrimiento del IdP, JWKS, token y userinfo | Directo a menos que [`oidc.use_proxy: true`](#idp-requests-through-a-forward-proxy), en cuyo caso `CONNECT` a la dirección IP verificada | Nombre de host entregado al proxy, a menos que `oidc.use_proxy: false` mantenga directo un IdP interno |

195| Upstreams de Amazon Bedrock, Claude Platform en AWS, Agent Platform de Google Cloud, y Foundry de Microsoft; búsquedas de grupos de Google | Nombre de host entregado al proxy | Sin cambios |195| Upstreams de Amazon Bedrock, Claude Platform on AWS, Agent Platform de Google Cloud y Microsoft Foundry; búsquedas de grupos de Google | Nombre de host entregado al proxy | Sin cambios |

196 196 

197El egreso solo de proxy se mantiene desactivado a menos que el entorno de la puerta de enlace cumpla con las tres condiciones siguientes:197La salida solo a través del proxy permanece desactivada a menos que el entorno del gateway cumpla las tres condiciones siguientes:

198 198 

199* `HTTPS_PROXY` o `HTTP_PROXY` está establecido.199* `HTTPS_PROXY` o `HTTP_PROXY` está establecido.

200* `NO_PROXY` y `no_proxy` están vacíos. Si su plataforma inyecta cualquiera en pods, establezca ambos en un valor vacío en el contenedor de la puerta de enlace. Listar un recopilador de telemetría en `NO_PROXY` mantiene el egreso solo de proxy desactivado.200* `NO_PROXY` y `no_proxy` están vacíos. Si tu plataforma inyecta cualquiera de ellos en los pods, establece ambos en un valor vacío en el contenedor del gateway. Listar un recopilador de telemetría en `NO_PROXY` mantiene desactivada la salida solo a través del proxy.

201* `CLAUDE_GATEWAY_ALLOW_LOOPBACK` no está activado. Un recopilador o IdP en el propio loopback del pod no se puede combinar con egreso solo de proxy, porque una dirección loopback entregada al proxy sería la del propio host del proxy, así que dé a esos servicios una dirección que el proxy pueda alcanzar en su lugar. Por la misma razón, la puerta de enlace rechaza nombres de estilo `localhost` directamente mientras el egreso solo de proxy está activo.201* `CLAUDE_GATEWAY_ALLOW_LOOPBACK` no está activado. Un recopilador o IdP en el propio loopback del pod no se puede combinar con la salida solo a través del proxy, porque una dirección loopback entregada al proxy sería la del propio host del proxy, así que da a esos servicios una dirección que el proxy pueda alcanzar. Por la misma razón, el gateway rechaza directamente los nombres de estilo `localhost` mientras la salida solo a través del proxy está activa.

202 202 

203Cuando una de esas condiciones no se cumple, la puerta de enlace registra una advertencia al arranque nombrando la variable que lo detuvo y mantiene el comportamiento por defecto.203Cuando una de esas condiciones no se cumple, el gateway registra al arrancar una advertencia que nombra la variable que lo impidió y mantiene el comportamiento por defecto.

204 204 

205Una vez que el egreso solo de proxy está activo, permita cada destino en el proxy, incluyendo un recopilador interno y cualquier host configurado por dirección IP. Aún puede mantener un IdP interno directo con [`oidc.use_proxy: false`](#idp-requests-through-a-forward-proxy).205Una vez activa la salida solo a través del proxy, permite en el proxy cada destino, incluidos un recopilador interno y cualquier host configurado por dirección IP. Aún puedes mantener directo un IdP interno con [`oidc.use_proxy: false`](#idp-requests-through-a-forward-proxy).

206 206 

207<Warning>207<Warning>

208 Active esto solo cuando la lista de permitidos del proxy sea al menos tan estricta como la verificación propia de la puerta de enlace. El proxy debe rechazar puntos finales de metadatos en la nube como `169.254.169.254` y `metadata.google.internal`, direcciones de enlace local, y el propio loopback del host del proxy, y debe rechazarlos por la dirección a la que se resuelve un nombre, no solo por nombre, porque la puerta de enlace ya no detecta un nombre de host que se resuelve a uno de ellos. Un proxy que se conecta a cualquier lugar que se le pida elimina la [protección SSRF](/docs/es/claude-apps-gateway-deploy#threat-model-summary) de la puerta de enlace para estas solicitudes.208 Activa esto solo cuando la lista de permitidos del proxy sea al menos tan estricta como la propia verificación del gateway. El proxy debe rechazar los endpoints de metadatos de la nube como `169.254.169.254` y `metadata.google.internal`, las direcciones de enlace local y el propio loopback del host del proxy, y debe rechazarlos por la dirección a la que se resuelve un nombre, no solo por el nombre, porque el gateway ya no detecta un nombre de host que se resuelve a uno de ellos. Un proxy que se conecta a cualquier lugar que se le pida elimina la [protección SSRF](/docs/es/claude-apps-gateway-deploy#threat-model-summary) del gateway para estas solicitudes.

209</Warning>209</Warning>

210 210 

211<h3 id="session">211<h3 id="session">

212 `session`212 `session`

213</h3>213</h3>

214 214 

215El bloque `session` forma los tokens portadores que la puerta de enlace acuña después del inicio de sesión: el secreto que los firma y cuánto tiempo viven.215El bloque `session` define los tokens bearer que el gateway emite después del inicio de sesión: el secreto que los firma y cuánto tiempo duran.

216 216 

217| Campo | Requerido | Descripción |217| Campo | Requerido | Descripción |

218| - | - | - |218| - | - | - |

219| `jwt_secret` | Sí | Al menos 32 bytes de entropía, por ejemplo de `openssl rand -base64 32`. Firma los tokens portadores HS256 de la puerta de enlace. Acepta una cadena única o una matriz para rotación: el índice 0 firma y todas las entradas verifican. Para rotar, anteponga un nuevo secreto, espere `ttl_hours`, luego elimine el antiguo. |219| `jwt_secret` | Sí | Al menos 32 bytes de entropía, por ejemplo de `openssl rand -base64 32`. Firma los tokens bearer HS256 del gateway. Acepta una sola cadena o un arreglo para la rotación: el índice 0 firma y todas las entradas verifican. Para rotar, antepón un nuevo secreto, espera `ttl_hours` y luego elimina el antiguo. |

220| `ttl_hours` | No | Vida útil del token portador de la puerta de enlace. Por defecto `1`. El CLI se actualiza silenciosamente antes de la expiración cuando el IdP emite tokens de actualización. Una vida útil más corta desprovisiona más rápido; una más larga hace menos viajes de ida y vuelta del IdP. Si su IdP no puede emitir tokens de actualización porque `offline_access` no está disponible, no hay actualización silenciosa, así que aumente esto a `8` o `12` para evitar enviar desarrolladores de vuelta al inicio de sesión del navegador cada hora. |220| `ttl_hours` | No | Duración del token bearer del gateway. Por defecto `1`. La CLI se actualiza silenciosamente antes de la expiración cuando el IdP emite tokens de actualización. Una duración más corta revoca el acceso más rápido; una más larga requiere menos viajes de ida y vuelta al IdP. Si tu IdP no puede emitir tokens de actualización porque `offline_access` no está disponible, no hay actualización silenciosa, así que auméntalo a `8` o `12` para no enviar a los desarrolladores de vuelta al inicio de sesión en el navegador cada hora. |

221 221 

222<h3 id="store">222<h3 id="store">

223 `store`223 `store`

224</h3>224</h3>

225 225 

226El bloque `store` apunta la puerta de enlace a su base de datos PostgreSQL, que contiene concesiones de dispositivos y contadores de límite de velocidad.226El bloque `store` apunta el gateway a su base de datos PostgreSQL, que contiene las concesiones de dispositivos y los contadores de rate limit.

227 227 

228| Campo | Requerido | Descripción |228| Campo | Requerido | Descripción |

229| - | - | - |229| - | - | - |

230| `postgres_url` | Sí | URL `postgres://` o `postgresql://`. Requerido: el encuentro de concesión de dispositivos, donde la devolución del navegador escribe y el CLI de sondeo lee, necesita estado entre réplicas. La puerta de enlace ejecuta sus propias migraciones de esquema al arranque y en la actualización, por lo que el rol necesita derechos para crear y alterar tablas en el esquema de destino. Consulte [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://`. 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). |

231| `username` | No | Anula el usuario en `postgres_url` |231| `username` | No | Sobrescribe el usuario en `postgres_url` |

232| `password` | No | Credencial de base de datos. Establézcala aquí en lugar de en `postgres_url` para que la credencial se mantenga fuera de la URL. Acepta cualquier carácter y tiene precedencia sobre las credenciales de 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 grupo de conexiones de Postgres por réplica. Por defecto `5`, que es conservador y amigable con bases de datos compartidas. Con [límites de gasto](#admin) habilitados, la ruta activa realiza algunas operaciones por solicitud de inferencia, así que auméntelo para una base de datos dedicada bajo carga, y mantenga réplicas × esto por debajo de `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. |

234| `connect_timeout_seconds` | No | Segundos que la puerta de enlace espera cuando abre una conexión de Postgres. Un número entero de `1` a `60`, por defecto `5`. Auméntelo si los intentos de conexión agotan el tiempo de espera cuando comienza una nueva instancia de puerta de enlace. Requiere Claude Code v2.1.274 o posterior en el servidor de la puerta de enlace. Las versiones anteriores se niegan a iniciar cuando se establece la clave. |234| `connect_timeout_seconds` | No | Segundos que el gateway espera al abrir una conexión de Postgres. Un número entero de `1` a `60`, por defecto `5`. Auméntalo si se agota el tiempo de espera de los intentos de conexión cuando se inicia una nueva instancia del gateway. Requiere Claude Code v2.1.274 o posterior en el servidor del gateway. Las versiones anteriores se niegan a iniciar cuando la clave está establecida. |

235| `readiness_grace_seconds` | No | Cuántos segundos `/readyz` sigue reportando listo después de que Postgres deja de responder. Un número entero de `0` a `3600`, por defecto `0`. Consulte [Comportamiento de interrupción](/docs/es/claude-apps-gateway-deploy#outage-behavior) para saber cómo elegir un valor. Requiere Claude Code v2.1.282 o posterior en el servidor de la puerta de enlace. Las versiones anteriores se niegan a iniciar cuando se establece la clave. |235| `readiness_grace_seconds` | No | Cuántos segundos `/readyz` sigue reportando listo después de que Postgres deja de responder. Un número entero de `0` a `3600`, por defecto `0`. Consulta [Comportamiento ante interrupciones](/docs/es/claude-apps-gateway-deploy#outage-behavior) para saber cómo elegir un valor. Requiere Claude Code v2.1.282 o posterior en el servidor del gateway. Las versiones anteriores se niegan a iniciar cuando la clave está establecida. |

236 236 

237Para desarrollo local, apunte `postgres_url` a un contenedor de Postgres desechable, por ejemplo `docker run --rm -p 5432:5432 -e POSTGRES_HOST_AUTH_METHOD=trust postgres`.237Para el desarrollo local, apunta `postgres_url` a un contenedor de Postgres desechable, por ejemplo `docker run --rm -p 5432:5432 -e POSTGRES_HOST_AUTH_METHOD=trust postgres`.

238 238 

239<h3 id="upstreams">239<h3 id="upstreams">

240 `upstreams`240 `upstreams`

241</h3>241</h3>

242 242 

243`upstreams` es una lista ordenada. La puerta de enlace reenvía la inferencia al primer upstream que resuelve el modelo solicitado.243`upstreams` es una lista ordenada. El gateway reenvía la inferencia al primer upstream que resuelve el modelo solicitado.

244 244 

245En `5xx`, `429`, `401`, `403`, `404`, o tiempo de espera agotado, la puerta de enlace conmuta por error al siguiente upstream; otros `4xx` no, porque esos errores son atribuibles a la solicitud en lugar del upstream. Un `401` o `403` significa que la credencial que la puerta de enlace utilizó contra ese upstream falló. Un `404` significa que ese upstream no sirve el modelo solicitado, por lo que un upstream posterior en la lista aún puede hacerlo.245Ante `5xx`, `429`, `401`, `403`, `404` o un tiempo de espera agotado, el gateway conmuta por error al siguiente upstream; ante otros `4xx` no lo hace, porque esos errores son atribuibles a la solicitud y no al upstream. Un `401` o `403` significa que el upstream rechazó la credencial que usó el gateway, o le denegó el acceso, por ejemplo al modelo solicitado. Un `404` significa que ese upstream no sirve el modelo solicitado, por lo que un upstream posterior de la lista todavía puede hacerlo.

246 246 

247Si establece `forward_user_identity: true` en un upstream, un `429` que devuelve a una solicitud que llevaba el correo electrónico del desarrollador no conmuta por error. Consulte [cómo una denegación de límite por usuario llega al desarrollador](#per-user-identity-headers-for-a-proxy-you-run).247Si estableces `forward_user_identity: true` en un upstream, un `429` que este devuelva a una solicitud que llevaba el correo electrónico del desarrollador no conmuta por error. Consulta [cómo una denegación de límite por usuario llega al desarrollador](#per-user-identity-headers-for-a-proxy-you-run).

248 248 

249La conmutación por error en `404` requiere la puerta de enlace v2.1.198 o posterior. Las versiones anteriores devolvieron el primer `404` al cliente incluso cuando un upstream posterior en la lista sirvió el modelo.249La conmutación por error ante `404` requiere el gateway v2.1.198 o posterior. Las versiones anteriores devolvían el primer `404` al cliente incluso cuando un upstream posterior de la lista servía el modelo.

250 250 

251Múltiples upstreams del mismo proveedor deben establecer un `name:` distinto.251Varios upstreams del mismo proveedor deben establecer un `name:` distinto.

252 252 

253Los clientes de Amazon Bedrock, Claude Platform en AWS, Agent Platform de Google Cloud, y Foundry de Microsoft se construyen una vez al inicio, y sus SDKs actualizan credenciales internamente, por lo que rotar credenciales en la nube no requiere un reinicio. Las claves API estáticas de Anthropic y los portadores se leen al inicio; consulte [API de Anthropic](#anthropic-api).253Los clientes de Amazon Bedrock, Claude Platform on AWS, Agent Platform de Google Cloud y Microsoft Foundry se construyen una vez al inicio, y sus SDKs actualizan las credenciales internamente, por lo que rotar las credenciales de la nube no requiere un reinicio. Las claves de API estáticas y los tokens bearer de Anthropic se leen al inicio; consulta [API de Anthropic](#anthropic-api).

254 254 

255<h4 id="upstream-error-messages">255<h4 id="upstream-error-messages">

256 Mensajes de error de upstream256 Mensajes de error de upstream

257</h4>257</h4>

258 258 

259La puerta de enlace devuelve la respuesta de error de un upstream, o su propio `502`, dependiendo de cómo respondieron los upstreams:259El gateway devuelve la respuesta de error de un upstream, o su propio `502`, según cómo respondieron los upstreams:

260 260 

261* **Un upstream devolvió un estado en el que la puerta de enlace no [conmuta por error](#multiple-upstreams)**: esa respuesta del upstream. La puerta de enlace no intenta más upstreams.261* **Un upstream devolvió un estado ante el que el gateway no [conmuta por error](#multiple-upstreams)**: la respuesta de ese upstream. El gateway no intenta más upstreams.

262* **Cada upstream que la puerta de enlace intentó falló de una manera en la que [conmuta por error](#multiple-upstreams)**: el último `429`. Cuando ninguno devolvió un `429`, la puerta de enlace prefiere, en orden, el último `401` o `403`, el último `404`, y el último `501`. Cuando ninguno devolvió ninguno de esos, el propio `502` de la puerta de enlace, `all upstreams failed (N attempted)`, donde N cuenta cada entrada en [`upstreams`](#upstreams), incluyendo entradas que la puerta de enlace omitió porque no sirven el modelo solicitado.262* **Cada upstream que el gateway intentó falló de una manera ante la que [conmuta por error](#multiple-upstreams)**: el último `429`. Cuando ninguno devolvió un `429`, el gateway prefiere, en orden, el último `401` o `403`, el último `404` y el último `501`. Cuando ninguno devolvió ninguno de esos, el propio `502` del gateway, `all upstreams failed (N attempted)`, donde N cuenta cada entrada de [`upstreams`](#upstreams), incluidas las entradas que el gateway omitió porque no sirven el modelo solicitado.

263 263 

264Cuando la puerta de enlace devuelve la respuesta de un upstream, mantiene el código de estado del upstream. Si mantiene el mensaje del upstream depende del proveedor. El cuerpo de error de un upstream de API de Anthropic llega al desarrollador sin cambios.264Cuando el gateway devuelve la respuesta de un upstream, conserva el código de estado del upstream. Que conserve el mensaje del upstream depende del proveedor. El cuerpo de error de un upstream de la API de Anthropic llega al desarrollador sin cambios.

265 265 

266Los upstreams de Amazon Bedrock, Claude Platform en AWS, Agent Platform de Google Cloud, y Foundry de Microsoft pueden nombrar sus IDs de cuenta, ARNs de rol, e IDs de proyecto en su texto de error. La puerta de enlace registra ese texto completo en el [registro operacional](/docs/es/claude-apps-gateway-deploy#logs). Lo que el desarrollador ve de esos upstreams depende del rechazo:266Los upstreams de Amazon Bedrock, Claude Platform on AWS, Agent Platform de Google Cloud y Microsoft Foundry pueden nombrar tus IDs de cuenta, ARNs de rol e IDs de proyecto en su texto de error. El gateway registra ese texto completo en el [registro operativo](/docs/es/claude-apps-gateway-deploy#logs). Lo que el desarrollador ve de esos upstreams depende del rechazo:

267 267 

268* `400` o `413` en el sobre de error estándar de Anthropic: el mensaje del upstream, como `prompt is too long`. Claude Platform en AWS, Agent Platform, y Foundry de Microsoft devuelven este sobre para rechazos de API de modelo.268* `400` o `413` en el sobre de error estándar de Anthropic: el propio mensaje del upstream, como `prompt is too long`. Claude Platform on AWS, Agent Platform y Microsoft Foundry devuelven este sobre para los rechazos de la API del modelo.

269* `400` o `413` en la forma propia del proveedor: un token `capability_rejected:`. Cuando la puerta de enlace no puede clasificar el rechazo, `upstream rejected the request` en un `400` o `request too large for this upstream` en un `413`.269* `400` o `413` en el formato propio del proveedor: un token `capability_rejected:`. Cuando el gateway no puede clasificar el rechazo, `upstream rejected the request` en un `400` o `request too large for this upstream` en un `413`.

270* Cualquier otro estado: copia genérica por estado, como `upstream rate limit exceeded` en un `429`.270* Cualquier otro estado: un texto genérico por estado, como `upstream rate limit exceeded` en un `429`.

271 271 

272Por ejemplo, la puerta de enlace reemplaza `Input is too long for requested model.` de Amazon Bedrock con `capability_rejected: prompt_too_long`. Claude Code [compacta automáticamente](/docs/es/errors#prompt-is-too-long) en ese token, como lo hace en `prompt is too long`.272Por ejemplo, el gateway reemplaza `Input is too long for requested model.` de Amazon Bedrock por `capability_rejected: prompt_too_long`. Claude Code [compacta automáticamente](/docs/es/errors#prompt-is-too-long) ante ese token, como lo hace ante `prompt is too long`.

273 273 

274Mantener el mensaje `400` o `413` de un upstream en la nube, o reemplazarlo con un token `capability_rejected:`, requiere la puerta de enlace v2.1.233 o posterior.274Conservar el mensaje `400` o `413` de un upstream en la nube, o reemplazarlo por un token `capability_rejected:`, requiere el gateway v2.1.233 o posterior.

275 275 

276<h4 id="anthropic-api">276<h4 id="anthropic-api">

277 API de Anthropic277 API de Anthropic

278</h4>278</h4>

279 279 

280El upstream mínimo de Anthropic es una clave API de la [Consola de Claude](https://platform.claude.com):280El upstream mínimo de Anthropic es una clave de API de la [Claude Console](https://platform.claude.com):

281 281 

282```yaml theme={null}282```yaml theme={null}

283upstreams:283upstreams:

284 - provider: anthropic284 - provider: anthropic

285 auth:285 auth:

286 api_key: ${ANTHROPIC_API_KEY}286 api_key: ${ANTHROPIC_API_KEY}

287 # O un portador OAuth (p. ej. un token intercambiado por Workload-Identity-Federation):287 # O un bearer OAuth (p. ej. un token obtenido por intercambio de Workload-Identity-Federation):

288 # oauth_token: ${file:/var/run/secrets/anthropic-oauth-token}288 # oauth_token: ${file:/var/run/secrets/anthropic-oauth-token}

289 # base_url: https://api.anthropic.com # por defecto; anule para un proxy directo289 # base_url: https://api.anthropic.com # por defecto; sobrescríbelo para un proxy de reenvío

290```290```

291 291 

292Las dos formas de credencial difieren en el encabezado que envían:292Las dos formas de credencial difieren en el encabezado que envían:

293 293 

294* **`api_key`**: envía `x-api-key`. Rótela en la Consola de Claude y actualice la variable de entorno.294* **`api_key`**: envía `x-api-key`. Rótala en la Claude Console y actualiza la variable de entorno.

295* **`oauth_token`**: envía `Authorization: Bearer`. Use la forma de portador cuando su organización emite tokens de corta duración en lugar de claves API de larga duración. El portador se lee una vez al inicio, así que actualice remontando el secreto e reiniciando.295* **`oauth_token`**: envía `Authorization: Bearer`. Usa la forma bearer cuando tu organización emita tokens de corta duración en lugar de claves de API de larga duración. El bearer se lee una vez al inicio, así que actualízalo volviendo a montar el secreto y reiniciando.

296 296 

297En lugar de una clave estática o portador, puede usar Workload Identity Federation. Cree una regla de federación siguiendo la [guía de Workload Identity Federation](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation), luego monte su JWT de OIDC de carga de trabajo como un archivo, como un token de cuenta de servicio proyectado de Kubernetes o un id-token de plataforma de CI. La puerta de enlace intercambia el JWT por un portador de corta duración y lo actualiza automáticamente. El archivo de token se relee en cada intercambio, por lo que los tokens proyectados rotados se recogen sin un reinicio.297En lugar de una clave estática o un bearer, puedes usar Workload Identity Federation. Crea una regla de federación siguiendo la [guía de Workload Identity Federation](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation) y luego monta el JWT de OIDC de tu carga de trabajo como un archivo, como un token de cuenta de servicio proyectado de Kubernetes o el id-token de una plataforma de CI. El gateway intercambia el JWT por un bearer de corta duración y lo actualiza automáticamente. El archivo de token se vuelve a leer en cada intercambio, por lo que los tokens proyectados rotados se recogen sin reiniciar.

298 298 

299```yaml theme={null}299```yaml theme={null}

300upstreams:300upstreams:


304 organization_id: ${ANTHROPIC_ORGANIZATION_ID}304 organization_id: ${ANTHROPIC_ORGANIZATION_ID}

305 identity_token_file: /var/run/secrets/anthropic/id-token305 identity_token_file: /var/run/secrets/anthropic/id-token

306 # workspace_id: wrkspc_... # requerido si la regla cubre >1 espacio de trabajo306 # workspace_id: wrkspc_... # requerido si la regla cubre >1 espacio de trabajo

307 # service_account_id: svac_... # verificación de destino esperado opcional307 # service_account_id: svac_... # verificación opcional del destino esperado

308```308```

309 309 

310<a id="per-user-identity-headers-for-a-proxy-you-run" />310<a id="per-user-identity-headers-for-a-proxy-you-run" />

311 311 

312<h5 id="per-user-identity-headers-for-a-proxy-you-run">312<h5 id="per-user-identity-headers-for-a-proxy-you-run">

313 Encabezados de identidad por usuario para un proxy que ejecuta313 Encabezados de identidad por usuario para un proxy que ejecutas

314</h5>314</h5>

315 315 

316Puede apuntar el `base_url` de un upstream `provider: anthropic` a un proxy que ejecuta en lugar de a la API de Anthropic. Para decirle a ese proxy qué desarrollador envió cada solicitud, establezca `forward_user_identity: true` en ese upstream. El proxy puede entonces atribuir gasto por desarrollador. Requiere una puerta de enlace que ejecute Claude Code v2.1.233 o posterior.316Puedes apuntar el `base_url` de un upstream `provider: anthropic` a un proxy que ejecutas en lugar de a la API de Anthropic. Para indicarle a ese proxy qué desarrollador envió cada solicitud, establece `forward_user_identity: true` en ese upstream. El proxy puede entonces atribuir el gasto por desarrollador. Requiere un gateway que ejecute Claude Code v2.1.233 o posterior.

317 317 

318Por ejemplo, para un proxy en `upstream-gateway.internal.example.com`:318Por ejemplo, para un proxy en `upstream-gateway.internal.example.com`:

319 319 


326 forward_user_identity: true # por defecto false326 forward_user_identity: true # por defecto false

327```327```

328 328 

329La puerta de enlace añade estos encabezados a cada solicitud que reenvía a ese upstream.329El gateway añade estos encabezados a cada solicitud que reenvía a ese upstream.

330 330 

331| Encabezado | Valor |331| Encabezado | Valor |

332| - | - |332| - | - |

333| `x-litellm-end-user-id` | El correo electrónico del desarrollador, cuando el IdP proporcionó uno. |333| `x-litellm-end-user-id` | El correo electrónico del desarrollador, cuando el IdP proporcionó uno. |

334| `x-claude-gateway-user-id` | El asunto del IdP del desarrollador, de la reclamación `sub` del token. |334| `x-claude-gateway-user-id` | El sujeto del IdP del desarrollador, de la reclamación `sub` del token. |

335| `x-claude-gateway-user-email` | El correo electrónico del desarrollador, cuando el IdP proporcionó uno. |335| `x-claude-gateway-user-email` | El correo electrónico del desarrollador, cuando el IdP proporcionó uno. |

336 336 

337Cuando el token del IdP no lleva correo electrónico, la puerta de enlace envía solo `x-claude-gateway-user-id` y omite los dos encabezados de correo electrónico. Si su IdP pone el correo electrónico en una reclamación diferente, establezca [`oidc.email_claim`](#oidc) en esa reclamación.337Cuando el token del IdP no lleva correo electrónico, el gateway envía solo `x-claude-gateway-user-id` y omite los dos encabezados de correo electrónico. Si tu IdP pone el correo electrónico en otra reclamación, establece [`oidc.email_claim`](#oidc) en esa reclamación.

338 338 

339Cuando su proxy responde `429` a una solicitud que llevaba el correo electrónico del desarrollador, la puerta de enlace devuelve esa respuesta al desarrollador tal como está en lugar de conmutar por error al siguiente upstream, por lo que el presupuesto por usuario o límite de velocidad de su proxy se mantiene. Las otras respuestas del proxy siguen las [reglas de conmutación por error](#upstreams) ordinarias. Si el token del IdP de un desarrollador no lleva correo electrónico, la puerta de enlace reenvía sus solicitudes sin los encabezados de correo electrónico, por lo que un `429` a una de esas solicitudes cuenta como capacidad de upstream y conmuta por error. Antes de v2.1.267 en el servidor de la puerta de enlace, cada `429` conmutaba por error.339Cuando tu proxy responde `429` a una solicitud que llevaba el correo electrónico del desarrollador, el gateway devuelve esa respuesta al desarrollador tal cual en lugar de conmutar por error al siguiente upstream, de modo que se respetan el presupuesto o el rate limit por usuario de tu proxy. Las demás respuestas del proxy siguen las [reglas de conmutación por error](#upstreams) habituales. Si el token del IdP de un desarrollador no lleva correo electrónico, el gateway reenvía sus solicitudes sin los encabezados de correo electrónico, por lo que un `429` a una de esas solicitudes cuenta como capacidad del upstream y conmuta por error. Antes de v2.1.267 en el servidor del gateway, todo `429` conmutaba por error.

340 340 

341Establezca `forward_user_identity` solo en un upstream cuyo `base_url` sea un proxy que opera. La puerta de enlace envía correos electrónicos de desarrollador a cualquier servidor que ese `base_url` nombre. Si el `base_url` es la API de Anthropic, que es el por defecto, la puerta de enlace se niega a iniciar.341Establece `forward_user_identity` solo en un upstream cuyo `base_url` sea un proxy que operas. El gateway envía los correos electrónicos de los desarrolladores a cualquier servidor que nombre ese `base_url`. Si el `base_url` es la API de Anthropic, que es el valor por defecto, el gateway se niega a iniciar.

342 342 

343<h4 id="amazon-bedrock">343<h4 id="amazon-bedrock">

344 Amazon Bedrock344 Amazon Bedrock

345</h4>345</h4>

346 346 

347Para la implementación de Amazon Bedrock del lado del cliente que la puerta de enlace reemplaza o fronts, consulte [Claude Code en Amazon Bedrock](/docs/es/amazon-bedrock). El upstream del lado de la puerta de enlace:347Para el despliegue de Amazon Bedrock del lado del cliente que el gateway reemplaza o al que se antepone, consulta [Claude Code en Amazon Bedrock](/docs/es/amazon-bedrock). El upstream del lado del gateway:

348 348 

349```yaml theme={null}349```yaml theme={null}

350upstreams:350upstreams:

351 - provider: bedrock351 - provider: bedrock

352 region: us-east-1352 region: us-east-1

353 auth: {} # preferido: cadena de credencial por defecto de AWS353 auth: {} # preferido: cadena de credenciales por defecto de AWS

354 # O credenciales explícitas:354 # O credenciales explícitas:

355 # auth:355 # auth:

356 # aws_access_key_id: ${AWS_AKID}356 # aws_access_key_id: ${AWS_AKID}

357 # aws_secret_access_key: ${AWS_SK}357 # aws_secret_access_key: ${AWS_SK}

358 # aws_session_token: ${AWS_ST}358 # aws_session_token: ${AWS_ST}

359 # O un token portador de API de Bedrock:359 # O un token bearer de la API de Bedrock:

360 # auth:360 # auth:

361 # aws_bearer_token: ${AWS_BEARER_TOKEN}361 # aws_bearer_token: ${AWS_BEARER_TOKEN}

362 # Anule el punto final de bedrock-runtime para implementaciones FIPS o de punto final de VPC:362 # Sobrescribe el endpoint de bedrock-runtime para despliegues FIPS o con endpoint de VPC:

363 # base_url: https://bedrock-runtime-fips.us-east-1.amazonaws.com363 # base_url: https://bedrock-runtime-fips.us-east-1.amazonaws.com

364```364```

365 365 

366Un bloque `auth` vacío usa la cadena de credencial por defecto del SDK de AWS: variables de entorno, `~/.aws/credentials`, rol de tarea de ECS, metadatos de instancia de EC2, o IRSA en EKS. En producción, dé al pod de la puerta de enlace un rol de IAM en lugar de incrustar claves estáticas en una imagen de contenedor.366Un bloque `auth` vacío usa la cadena de credenciales por defecto del SDK de AWS: variables de entorno, `~/.aws/credentials`, rol de tarea de ECS, metadatos de instancia de EC2 o IRSA en EKS. En producción, asigna al pod del gateway un rol de IAM en lugar de incrustar claves estáticas en una imagen de contenedor.

367 367 

368Las credenciales explícitas deben ser completas: la puerta de enlace falla al arranque cuando `aws_access_key_id` y `aws_secret_access_key` no se establecen juntos, o cuando `aws_session_token` se establece sin ellos. Antes de v2.1.207, un bloque `auth:` parcial pasó la validación.368Las credenciales explícitas deben estar completas: el gateway falla al arrancar cuando `aws_access_key_id` y `aws_secret_access_key` no se establecen juntos, o cuando `aws_session_token` se establece sin ellos. Antes de v2.1.207, un bloque `auth:` parcial pasaba la validación.

369 369 

370| Configuración | Cómo |370| Configuración | Cómo |

371| - | - |371| - | - |

372| Permisos de IAM | Otorgue al principal de la puerta de enlace `bedrock:InvokeModel` y `bedrock:InvokeModelWithResponseStream` en los ARNs de perfil de inferencia y los ARNs de modelo de fundación subyacentes. Para el catálogo integrado en regiones de EE.UU.: `arn:aws:bedrock:<region>:<account>:inference-profile/us.anthropic.*` y `arn:aws:bedrock:*::foundation-model/anthropic.*`. También otorgue `bedrock:CountTokens` en los ARNs de modelo de fundación. La puerta de enlace lo usa, sin cargo, para contar los tokens de entrada de una solicitud que el cliente abandonó, por lo que [límites de gasto](#admin) se mantienen precisos. Sin él, la puerta de enlace vuelve a una solicitud de Bedrock de un token para ese conteo. |372| Permisos de IAM | Otorga al principal del gateway `bedrock:InvokeModel` y `bedrock:InvokeModelWithResponseStream` tanto en los ARNs de perfil de inferencia como en los ARNs de modelo fundacional subyacentes. Para el catálogo integrado en regiones de EE. UU.: `arn:aws:bedrock:<region>:<account>:inference-profile/us.anthropic.*` y `arn:aws:bedrock:*::foundation-model/anthropic.*`. Otorga también `bedrock:CountTokens` en los ARNs de modelo fundacional. El gateway lo usa, sin costo, para contar los tokens de entrada de una solicitud que el cliente abandonó, de modo que los [límites de gasto](#admin) se mantengan precisos. Sin él, el gateway recurre a una solicitud de Bedrock de un token para ese conteo. |

373| Acceso a modelo | Amazon Bedrock habilita el acceso a modelo por defecto en regiones comerciales. La puerta de enlace de nivel de cuenta restante es la de Anthropic: si nadie en su cuenta de AWS la ha enviado, abra la consola de Amazon Bedrock, seleccione un modelo de Anthropic del catálogo de modelos, y complete el formulario. Consulte [Enviar detalles de caso de uso](/docs/es/amazon-bedrock#1-submit-use-case-details) para el formulario de AWS Organizations y los permisos que el remitente necesita. |373| Acceso a modelos | Amazon Bedrock habilita el acceso a modelos por defecto en las regiones comerciales. El requisito restante a nivel de cuenta es el formulario de caso de uso de Anthropic, que se envía una sola vez: si nadie en tu cuenta de AWS lo ha enviado, abre la consola de Amazon Bedrock, selecciona un modelo de Anthropic en el catálogo de modelos y completa el formulario. Consulta [Enviar detalles del caso de uso](/docs/es/amazon-bedrock#1-submit-use-case-details) para ver el formulario de AWS Organizations y los permisos que necesita quien lo envía. |

374| EKS (IRSA) | Cree un rol de IAM con la política anterior y una política de confianza para el proveedor de OIDC de su clúster limitado a la cuenta de servicio de la puerta de enlace. Anote la cuenta de servicio con `eks.amazonaws.com/role-arn: arn:aws:iam::<acct>:role/claude-gateway`. `auth: {}` la recoge. |374| EKS (IRSA) | Crea un rol de IAM con la política anterior y una política de confianza para el proveedor de OIDC de tu clúster limitada a la cuenta de servicio del gateway. Anota la cuenta de servicio con `eks.amazonaws.com/role-arn: arn:aws:iam::<acct>:role/claude-gateway`. `auth: {}` la recoge. |

375| ECS / EC2 | Adjunte el rol de IAM a la definición de tarea o perfil de instancia. `auth: {}` la recoge. |375| ECS / EC2 | Adjunta el rol de IAM a la definición de tarea o al perfil de instancia. `auth: {}` lo recoge. |

376| En cualquier otro lugar | Pase credenciales a través de las variables de entorno `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY`, y `AWS_SESSION_TOKEN`, o establézcalas 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 punto final de API. Los perfiles de inferencia entre regiones se enrutan a través de la geografía (EE.UU., UE, APAC) independientemente de cuál elija. Para regiones no estadounidenses o ARNs de rendimiento aprovisionado, agregue 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<h5 id="apply-an-amazon-bedrock-guardrail">379<h5 id="apply-an-amazon-bedrock-guardrail">

380 Aplicar una protección de Amazon Bedrock380 Aplicar una barrera de protección de Amazon Bedrock

381</h5>381</h5>

382 382 

383Para aplicar una protección de Amazon Bedrock a cada solicitud de inferencia que la puerta de enlace envía a través de un upstream de Bedrock, agregue un bloque `guardrail` a ese upstream. Requiere Claude Code v2.1.281 o posterior en el servidor de la puerta de enlace.383Para aplicar una barrera de protección (guardrail) de Amazon Bedrock a cada solicitud de inferencia que el gateway envía a través de un upstream de Bedrock, agrega un bloque `guardrail` a ese upstream. Requiere Claude Code v2.1.281 o posterior en el servidor del gateway.

384 384 

385```yaml theme={null}385```yaml theme={null}

386upstreams:386upstreams:


388 region: us-east-1388 region: us-east-1

389 auth: {}389 auth: {}

390 guardrail:390 guardrail:

391 id: gr-abc123 # ID de protección o ARN completo391 id: gr-abc123 # ID de la barrera de protección o ARN completo

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

393 # mantenga las comillas: un 1 desnudo falla al arranque393 # conserva las comillas: un 1 sin comillas falla al arrancar

394```394```

395 395 

396<Warning>396<Warning>

397 La puerta de enlace no admite etiquetas de entrada de protección. No añade etiquetas de contenido de protección a los avisos, por lo que un filtro de protección que Amazon Bedrock aplica solo a entrada etiquetada no se ejecuta en el tráfico a través de la puerta de enlace. Para qué filtros dependen de etiquetas de entrada, consulte [etiquetas de entrada](https://docs.aws.amazon.com/bedrock/latest/userguide/guardrails-tagging.html) en la documentación de Amazon Bedrock.397 El gateway no admite etiquetas de entrada de barreras de protección. No añade etiquetas de contenido de protección a los prompts, por lo que un filtro de barrera de protección que Amazon Bedrock aplica solo a la entrada etiquetada no se ejecuta sobre el tráfico que pasa por el gateway. Para saber qué filtros dependen de las etiquetas de entrada, consulta [input tags](https://docs.aws.amazon.com/bedrock/latest/userguide/guardrails-tagging.html) en la documentación de Amazon Bedrock.

398</Warning>398</Warning>

399 399 

400También otorgue `bedrock:ApplyGuardrail` en la protección al principal que firma las solicitudes de este upstream: el principal de AWS de la puerta de enlace, o con [`assume_role`](#bedrock-in-another-aws-account) el rol nombrado en `role_arn`.400Otorga también `bedrock:ApplyGuardrail` sobre la barrera de protección al principal que firma las solicitudes de este upstream: el principal de AWS del gateway o, con [`assume_role`](#bedrock-in-another-aws-account), el rol nombrado en `role_arn`.

401 401 

402Establezca `guardrail` en cada upstream `bedrock` o en ninguno. La puerta de enlace se niega a iniciar en una mezcla, porque [conmutación por error](#multiple-upstreams) podría enviar una solicitud a un upstream de Bedrock que no tiene protección.402Establece `guardrail` en todos los upstreams `bedrock` o en ninguno. El gateway se niega a iniciar con una mezcla, porque de lo contrario la [conmutación por error](#multiple-upstreams) podría enviar una solicitud a un upstream de Bedrock sin barrera de protección.

403 403 

404La protección cubre solo upstreams de Bedrock. Si enumera otro proveedor en `upstreams`, la puerta de enlace envía solicitudes a ese proveedor sin la protección.404La barrera de protección cubre solo los upstreams de Bedrock. Si enumeras otro proveedor en `upstreams`, el gateway envía las solicitudes a ese proveedor sin la barrera de protección, o se niega a iniciar si ese proveedor es [`mantle`](#amazon-bedrock-mantle-endpoint).

405 405 

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

407 407 

408<a id="bedrock-in-another-aws-account" />408<a id="bedrock-in-another-aws-account" />

409 409 


411 Bedrock en otra cuenta de AWS411 Bedrock en otra cuenta de AWS

412</h5>412</h5>

413 413 

414Establezca `assume_role` en un upstream de Bedrock y la puerta de enlace usa su propia identidad de AWS solo para llamar a `sts:AssumeRole` en un rol que nombre, que puede estar en una cuenta de AWS diferente de la puerta de enlace. Cada solicitud de Bedrock de ese upstream se firma con las credenciales de una hora que STS devuelve, por lo que ninguna clave de acceso de larga duración cruza cuentas.414Establece `assume_role` en un upstream de Bedrock y el gateway usará su propia identidad de AWS solo para llamar a `sts:AssumeRole` sobre un rol que nombres, que puede estar en una cuenta de AWS distinta de la del gateway. Cada solicitud de Bedrock de ese upstream se firma con las credenciales de una hora que devuelve STS, por lo que ninguna clave de acceso de larga duración cruza entre cuentas.

415 415 

416Requiere una puerta de enlace que ejecute Claude Code v2.1.281 o posterior. Una puerta de enlace anterior se niega a iniciar cuando encuentra la clave.416Requiere un gateway que ejecute Claude Code v2.1.281 o posterior. Un gateway anterior se niega a iniciar cuando encuentra la clave.

417 417 

418```yaml theme={null}418```yaml theme={null}

419upstreams:419upstreams:

420 - name: bedrock-isolated420 - name: bedrock-isolated

421 provider: bedrock421 provider: bedrock

422 region: us-east-1422 region: us-east-1

423 auth: {} # el rol propio de la puerta de enlace: solo llama a STS423 auth: {} # el rol propio del gateway: solo llama a STS

424 assume_role:424 assume_role:

425 role_arn: arn:aws:iam::222222222222:role/claude-gateway-bedrock425 role_arn: arn:aws:iam::222222222222:role/claude-gateway-bedrock

426 # external_id: ${BEDROCK_ROLE_EXTERNAL_ID} # cuando la política de confianza del rol lo requiere426 # external_id: ${BEDROCK_ROLE_EXTERNAL_ID} # cuando la política de confianza del rol lo requiere

427```427```

428 428 

429El bloque `assume_role` toma tres claves:429El bloque `assume_role` admite tres claves:

430 430 

431| Clave | Significado |431| Clave | Significado |

432| - | - |432| - | - |

433| `role_arn` | El rol de IAM que la puerta de enlace asume, como un ARN `arn:aws:iam::` o `arn:aws-us-gov:iam::`. Dé los [permisos de Bedrock](#amazon-bedrock) que este upstream necesita, `bedrock:CountTokens` incluido, más `bedrock:ApplyGuardrail` cuando el upstream establece `guardrail`. |433| `role_arn` | El rol de IAM que asume el gateway, como un ARN `arn:aws:iam::` o `arn:aws-us-gov:iam::`. Otórgale los [permisos de Bedrock](#amazon-bedrock) que necesita este upstream, incluido `bedrock:CountTokens`, además de `bedrock:ApplyGuardrail` cuando el upstream establece `guardrail`. |

434| `external_id` | Opcional. Enviado como el ID externo en cada llamada `sts:AssumeRole`. Establézcalo cuando la política de confianza del rol lo requiera, y cítelo si son todos dígitos. |434| `external_id` | Opcional. Se envía como el ID externo en cada llamada a `sts:AssumeRole`. Establécelo cuando la política de confianza del rol lo requiera, y ponlo entre comillas si son solo dígitos. |

435| `session_name` | Opcional. `email` o `sub` da a cada desarrollador su propia sesión: consulte [Atribución de costo de AWS por desarrollador](#per-developer-aws-cost-attribution). Sin establecer, cada solicitud usa una sesión nombrada `claude-apps-gateway`. |435| `session_name` | Opcional. `email` o `sub` da a cada desarrollador su propia sesión: consulta [Atribución de costos de AWS por desarrollador](#per-developer-aws-cost-attribution). Sin establecer, todas las solicitudes usan una sola sesión llamada `claude-apps-gateway`. |

436 436 

437La política de confianza del rol nombra el principal propio de la puerta de enlace, como su IRSA o rol de tarea de ECS. Ese principal necesita `sts:AssumeRole` en el rol y ningún permiso de Bedrock por sí mismo. Elimine la `Condition` si no establece `external_id`.437La política de confianza del rol nombra el principal propio del gateway, como su rol de IRSA o de tarea de ECS. Ese principal necesita `sts:AssumeRole` sobre el rol y ningún permiso de Bedrock propio. Elimina la `Condition` si no estableces `external_id`.

438 438 

439```json theme={null}439```json theme={null}

440{440{


448}448}

449```449```

450 450 

451* Si STS rechaza o es inaccesible, la puerta de enlace no envía la solicitud con las credenciales propias del upstream. Registra el error de STS con qué verificar, luego intenta el siguiente upstream que enumeró. [Mensajes de error de upstream](#upstream-error-messages) cubre lo que el cliente recibe cuando ningún upstream tiene éxito. Un upstream posterior sin `assume_role` serviría la solicitud con sus propias credenciales, así que enumere uno solo si eso es lo que desea.451* Si STS rechaza la llamada o no es accesible, el gateway no envía la solicitud con las credenciales propias del upstream. Registra el error de STS con lo que hay que revisar y luego intenta el siguiente upstream que enumeraste. [Mensajes de error de upstream](#upstream-error-messages) explica lo que recibe el cliente cuando ningún upstream tiene éxito. Un upstream posterior sin `assume_role` serviría la solicitud con sus propias credenciales, así que enumera uno solo si eso es lo que quieres.

452* La puerta de enlace llama al punto final de STS regional `sts.<region>.amazonaws.com`, que su red debe alcanzar. Para el punto final de FIPS, establezca `AWS_USE_FIPS_ENDPOINT=true` en el entorno de la puerta de enlace en lugar de `use_fips_endpoint` en un archivo de configuración de AWS.452* El gateway llama al endpoint regional de STS `sts.<region>.amazonaws.com`, al que su red debe poder llegar. Para el endpoint FIPS, establece `AWS_USE_FIPS_ENDPOINT=true` en el entorno del gateway en lugar de `use_fips_endpoint` en un archivo de configuración de AWS.

453* `assume_role` se aplica solo a `provider: bedrock` y necesita credenciales de origen de SigV4: la puerta de enlace se niega a iniciar cuando se establece junto a `aws_bearer_token`.453* `assume_role` se aplica solo a `provider: bedrock` y necesita credenciales de origen SigV4: el gateway se niega a iniciar cuando se establece junto a `aws_bearer_token`.

454* Cada desarrollador que la puerta de enlace admite puede usar este upstream; [`managed`](#managed) rige qué desarrolladores pueden usar qué modelos. Para mantener un modelo servido a través del rol de también ser servido desde otra cuenta, dé un ID personalizado cuyo mapa `upstream_model` tiene solo el `name` de este upstream. Para tal ID, la puerta de enlace omite cada otro upstream, por lo que ni la solicitud ni el conteo de tokens para una solicitud abortada pueden conmutar por error a otra cuenta. Los nombres de modelo integrados aún se intentan en cada upstream en orden, este incluido, y una solicitud que lo alcanza se firma con el mismo rol, así que enumere este upstream último a menos que su cuenta también deba servirlos.454* Cualquier desarrollador que el gateway admita puede usar este upstream; [`managed`](#managed) rige qué desarrolladores pueden usar qué modelos. Para evitar que un modelo servido a través del rol se sirva también desde otra cuenta, asígnale un ID personalizado cuyo mapa `upstream_model` contenga solo el nombre de este upstream. Para un ID así, el gateway omite todos los demás upstreams, de modo que ni la solicitud ni el conteo de tokens de una solicitud abortada pueden conmutar por error a otra cuenta. Una solicitud para un nombre de modelo integrado aún puede [llegar a este upstream](#multiple-upstreams), y el gateway la firma con el mismo rol. Enumera este upstream al final a menos que su cuenta también deba servir esos modelos.

455 455 

456Este ejemplo da a un modelo un ID personalizado que solo el upstream aislado sirve:456Este ejemplo asigna a un modelo un ID personalizado que solo sirve el upstream aislado:

457 457 

458```yaml theme={null}458```yaml theme={null}

459models:459models:


465<a id="per-developer-aws-cost-attribution" />465<a id="per-developer-aws-cost-attribution" />

466 466 

467<h5 id="per-developer-aws-cost-attribution">467<h5 id="per-developer-aws-cost-attribution">

468 Atribución de costo de AWS por desarrollador468 Atribución de costos de AWS por desarrollador

469</h5>469</h5>

470 470 

471Por defecto, la puerta de enlace firma cada solicitud de Bedrock con una credencial, por lo que AWS ve todas las solicitudes de los desarrolladores bajo un único principal de IAM. Agregue `session_name: email` a [`assume_role`](#bedrock-in-another-aws-account) y la puerta de enlace llama a `sts:AssumeRole` una vez por desarrollador por hora, con el nombre de sesión establecido en el correo electrónico de ese desarrollador, y firma sus solicitudes con las credenciales devueltas, por lo que las solicitudes de cada desarrollador llegan a AWS bajo su propia sesión de rol asumido. El rol puede estar en la cuenta propia de la puerta de enlace.471Por defecto, el gateway firma cada solicitud de Bedrock con una sola credencial, por lo que AWS ve las solicitudes de todos los desarrolladores bajo un único principal de IAM. Agrega `session_name: email` a [`assume_role`](#bedrock-in-another-aws-account) y el gateway llamará a `sts:AssumeRole` una vez por desarrollador por hora, con el nombre de sesión establecido en el correo electrónico de ese desarrollador, y firmará sus solicitudes con las credenciales devueltas, de modo que las solicitudes de cada desarrollador lleguen a AWS bajo su propia sesión de rol asumido. El rol puede estar en la propia cuenta del gateway.

472 472 

473Requiere una puerta de enlace que ejecute Claude Code v2.1.281 o posterior. [Atribución de costo en AWS](/docs/es/claude-apps-gateway-on-aws#cost-attribution) cubre el rol de IAM y dónde la facturación de AWS muestra las sesiones.473Requiere un gateway que ejecute Claude Code v2.1.281 o posterior. [Atribución de costos en AWS](/docs/es/claude-apps-gateway-on-aws#cost-attribution) explica el rol de IAM y dónde muestra la facturación de AWS las sesiones.

474 474 

475```yaml theme={null}475```yaml theme={null}

476upstreams:476upstreams:

477 - provider: bedrock477 - provider: bedrock

478 region: us-east-1478 region: us-east-1

479 auth: {} # el rol propio de la puerta de enlace: solo llama a STS479 auth: {} # el rol propio del gateway: solo llama a STS

480 assume_role:480 assume_role:

481 role_arn: arn:aws:iam::123456789012:role/claude-gateway-bedrock-user481 role_arn: arn:aws:iam::123456789012:role/claude-gateway-bedrock-user

482 session_name: email # o sub482 session_name: email # o sub

483```483```

484 484 

485`session_name` selecciona qué reclamación verificada se convierte en el `RoleSessionName` de AWS: `email` o `sub`. La puerta de enlace escribe cualquier carácter que no sea letras ASCII, dígitos, y `_+,.@-` como `=XX` hex por byte UTF-8, y acorta un resultado más largo que 64 caracteres a un prefijo más un hash, por lo que el nombre de sesión de cada desarrollador se mantiene válido y único. Una solicitud de un desarrollador cuyo token carece de la reclamación no se envía a través de este upstream, y el registro del operador dice cambiar a `sub` o establecer [`oidc.email_claim`](#oidc).485`session_name` selecciona qué reclamación verificada se convierte en el `RoleSessionName` de AWS: `email` o `sub`. El gateway escribe cualquier carácter que no sea una letra ASCII, un dígito o uno de `_+,.@-` como `=XX` en hexadecimal por cada byte UTF-8, y acorta un resultado de más de 64 caracteres a un prefijo más un hash, de modo que el nombre de sesión de cada desarrollador sigue siendo válido y único. Una solicitud de un desarrollador cuyo token carece de la reclamación no se envía a través de este upstream, y el registro del operador indica que cambies a `sub` o establezcas [`oidc.email_claim`](#oidc).

486 486 

487Un desarrollador activo cuesta una llamada de STS por hora por réplica de puerta de enlace, y las solicitudes de primer tiempo concurrentes comparten una llamada.487Un desarrollador activo cuesta una llamada a STS por hora por réplica del gateway, y las primeras solicitudes concurrentes comparten una llamada.

488 488 

489La puerta de enlace también hace una llamada de su propio en este rol: el conteo de tokens para una solicitud que el cliente abandonó, por lo que [límites de gasto](/docs/es/claude-apps-gateway-spend-limits) se mantienen precisos. Ese conteo y su [solicitud de respaldo de un token](#amazon-bedrock) se firman por la sesión compartida `claude-apps-gateway`, por lo que AWS atribuye el respaldo a `claude-apps-gateway` en lugar de al desarrollador.489El gateway también hace una llamada propia con este rol: el conteo de tokens de una solicitud que el cliente abandonó, para que los [límites de gasto](/docs/es/claude-apps-gateway-spend-limits) se mantengan precisos. Ese conteo y su [solicitud de respaldo de un token](#amazon-bedrock) se firman con la sesión compartida `claude-apps-gateway`, por lo que AWS atribuye el respaldo a `claude-apps-gateway` en lugar de al desarrollador.

490 490 

491Para atribución estricta por desarrollador, establezca `assume_role` con `session_name` en cada upstream de Bedrock que enumere. Un upstream sin él firma las solicitudes que sirve con sus propias credenciales.491Para una atribución estricta por desarrollador, establece `assume_role` con `session_name` en cada upstream de Bedrock que enumeres. Un upstream sin él firma las solicitudes que sirve con sus propias credenciales.

492 

493<h4 id="amazon-bedrock-mantle-endpoint">

494 Endpoint Mantle de Amazon Bedrock

495</h4>

496 

497El proveedor `mantle` envía la inferencia al [endpoint Mantle](/docs/es/amazon-bedrock#use-the-mantle-endpoint) de Amazon Bedrock. Requiere Claude Code v2.1.283 o posterior en el servidor del gateway. Las versiones anteriores del gateway lo rechazan al arrancar, así que actualiza todas las réplicas antes de agregarlo.

498 

499El ejemplo siguiente pone Mantle primero, con un upstream de Amazon Bedrock detrás para servir todos los modelos que el campo `models` deja fuera:

500 

501```yaml theme={null}

502upstreams:

503 - provider: mantle

504 region: us-east-1

505 models: [claude-opus-4-7, claude-haiku-4-5] # requerido

506 auth: {} # cadena de credenciales por defecto de AWS

507 - provider: bedrock

508 region: us-east-1

509 auth: {}

510```

511 

512La tabla siguiente enumera los campos específicos de un upstream `mantle`.

513 

514| Campo | Requerido | Descripción |

515| - | - | - |

516| `region` | Sí | Región de AWS. El gateway deriva de ella el endpoint como `https://bedrock-mantle.<region>.api.aws/anthropic`. |

517| `models` | Sí | Los modelos a los que tu cuenta de AWS tiene acceso en Mantle, nombrados como los envían los clientes, por ejemplo `claude-haiku-4-5`. Solo estos van a este upstream, y cualquier otro modelo pasa al siguiente. |

518| `auth` | No | Admite las mismas claves que el bloque `auth` del upstream de [Amazon Bedrock](#amazon-bedrock), con las mismas reglas. |

519| `base_url` | No | Sobrescribe el endpoint derivado. Conserva la ruta `/anthropic` al final. |

520 

521Otorga a la identidad de AWS del upstream las acciones de IAM propias de Mantle para la inferencia y el conteo de tokens, que se enumeran en [Usar el endpoint Mantle](/docs/es/amazon-bedrock#use-the-mantle-endpoint).

522 

523Para un ID de modelo de Mantle que el gateway no conoce, agrega una entrada al bloque [`models:`](#models) de nivel superior cuyo `upstream_model` asigne el nombre de este upstream a ese ID. Luego pon también el `id` de esa entrada en el campo `models` de este upstream.

524 

525Los ajustes `guardrail` y `assume_role` de un upstream `bedrock` no se extienden a las solicitudes que sirve Mantle:

526 

527* **`guardrail`**: el gateway no aplica ninguna [barrera de protección de Bedrock](#apply-an-amazon-bedrock-guardrail) a las solicitudes que envía a Mantle, por lo que se niega a iniciar cuando hay un upstream `mantle` en la lista mientras algún upstream `bedrock` establece `guardrail`.

528* **`assume_role`**: un upstream `mantle` no admite [`assume_role`](#bedrock-in-another-aws-account). Las solicitudes que sirve Mantle se envían con las credenciales de `auth` propias del upstream `mantle` y no se [atribuyen por desarrollador](#per-developer-aws-cost-attribution).

529 

530Para saber qué significan las respuestas de error propias de Mantle, consulta [Errores del endpoint Mantle](/docs/es/amazon-bedrock#mantle-endpoint-errors).

492 531 

493<h4 id="claude-platform-on-aws">532<h4 id="claude-platform-on-aws">

494 Claude Platform en AWS533 Claude Platform on AWS

495</h4>534</h4>

496 535 

497Claude Platform en AWS sirve la API de Anthropic de primera parte en infraestructura de AWS en `aws-external-anthropic.<region>.api.aws`. Usa IDs de modelo de primera parte, honra encabezados `anthropic-beta` tal como se envían, y sirve `count_tokens`, por lo que ninguna de la traducción específica de Bedrock se aplica. El proveedor `anthropicAws` requiere Claude Code v2.1.198 o posterior; las versiones anteriores de la puerta de enlace lo rechazan al arranque.536Claude Platform on AWS sirve la API de Anthropic de primera parte sobre infraestructura de AWS en `aws-external-anthropic.<region>.api.aws`. Usa IDs de modelo de primera parte, respeta los encabezados `anthropic-beta` tal como se envían y sirve `count_tokens`, por lo que no se aplica ninguna de las traducciones específicas de Bedrock. El proveedor `anthropicAws` requiere Claude Code v2.1.198 o posterior; las versiones anteriores del gateway lo rechazan al arrancar.

498 537 

499Para la implementación del lado del cliente de la misma plataforma, consulte [Claude Code en Claude Platform en AWS](/docs/es/claude-platform-on-aws). El upstream del lado de la puerta de enlace:538Para el despliegue del lado del cliente de la misma plataforma, consulta [Claude Code en Claude Platform on AWS](/docs/es/claude-platform-on-aws). El upstream del lado del gateway:

500 539 

501```yaml theme={null}540```yaml theme={null}

502upstreams:541upstreams:


504 region: us-east-1543 region: us-east-1

505 workspace_id: wrkspc_...544 workspace_id: wrkspc_...

506 auth:545 auth:

507 api_key: ${ANTHROPIC_AWS_API_KEY} # enviado como x-api-key546 api_key: ${ANTHROPIC_AWS_API_KEY} # enviada como x-api-key

508 # O SigV4 a través de la cadena de credencial por defecto de AWS:547 # O SigV4 mediante la cadena de credenciales por defecto de AWS:

509 # auth: {}548 # auth: {}

510 # O credenciales de SigV4 explícitas:549 # O credenciales SigV4 explícitas:

511 # auth:550 # auth:

512 # aws_access_key_id: ${AWS_ACCESS_KEY_ID}551 # aws_access_key_id: ${AWS_ACCESS_KEY_ID}

513 # aws_secret_access_key: ${AWS_SECRET_ACCESS_KEY}552 # aws_secret_access_key: ${AWS_SECRET_ACCESS_KEY}

514 # Anule el punto final derivado:553 # Sobrescribe el endpoint derivado:

515 # base_url: https://aws-external-anthropic.us-east-1.api.aws554 # base_url: https://aws-external-anthropic.us-east-1.api.aws

516```555```

517 556 

518La plataforma se ejecuta en una cuenta de AWS separada de Amazon Bedrock y firma solicitudes de SigV4 para su propio nombre de servicio, `aws-external-anthropic`, por lo que un rol de IAM limitado a Bedrock no lo autoriza. Una clave API en `auth.api_key` tiene precedencia cuando las credenciales de SigV4 también se establecen. Un bloque `auth` vacío usa la cadena de credencial por defecto del SDK de AWS, la misma cadena que el upstream [Amazon Bedrock](#amazon-bedrock) usa.557La plataforma se ejecuta en una cuenta de AWS separada de Amazon Bedrock y firma las solicitudes SigV4 para su propio nombre de servicio, `aws-external-anthropic`, por lo que un rol de IAM limitado a Bedrock no la autoriza. Una clave de API en `auth.api_key` tiene precedencia cuando también se establecen credenciales SigV4. Un bloque `auth` vacío usa la cadena de credenciales por defecto del SDK de AWS, la misma cadena que usa el upstream de [Amazon Bedrock](#amazon-bedrock).

519 558 

520| Campo | Requerido | Descripción |559| Campo | Requerido | Descripción |

521| - | - | - |560| - | - | - |

522| `region` | Sí | Región de AWS, letras minúsculas, dígitos, y guiones. La puerta de enlace deriva el punto final de él como `https://aws-external-anthropic.<region>.api.aws`. |561| `region` | Sí | Región de AWS, en letras minúsculas, dígitos y guiones. El gateway deriva de ella el endpoint como `https://aws-external-anthropic.<region>.api.aws`. |

523| `workspace_id` | Sí | Enviado como un encabezado en cada solicitud; la plataforma lo requiere |562| `workspace_id` | Sí | Se envía como encabezado en cada solicitud; la plataforma lo requiere |

524| `auth.api_key` | No | Clave API para la plataforma, enviada como `x-api-key`. No es un token portador: los dos modos de autenticación son una clave API o SigV4. |563| `auth.api_key` | No | Clave de API para la plataforma, enviada como `x-api-key`. No es un token bearer: los dos modos de autenticación son una clave de API o SigV4. |

525| `auth.aws_access_key_id` / `auth.aws_secret_access_key` | No | Credenciales de SigV4 explícitas. Establecer una sin la otra falla al arranque. `auth.aws_session_token` se acepta junto a ellas. |564| `auth.aws_access_key_id` / `auth.aws_secret_access_key` | No | Credenciales SigV4 explícitas. Establecer una sin la otra falla al arrancar. `auth.aws_session_token` se acepta junto a ellas. |

526| `base_url` | No | Anule el punto final derivado |565| `base_url` | No | Sobrescribe el endpoint derivado |

527 566 

528Porque la plataforma resuelve IDs de modelo de primera parte, el catálogo integrado se enruta a ella sin un bloque [`models:`](#models). Cuando cura una lista `models:`, clave la entrada `anthropicAws:` con el ID de primera parte.567Como la plataforma resuelve IDs de modelo de primera parte, el catálogo integrado se enruta a ella sin un bloque [`models:`](#models). Cuando prepares tu propia lista `models:`, usa `anthropicAws:` como clave de la entrada con el ID de primera parte.

529 568 

530<h4 id="google-cloud-agent-platform">569<h4 id="google-cloud-agent-platform">

531 Agent Platform de Google Cloud570 Agent Platform de Google Cloud

532</h4>571</h4>

533 572 

534Para la configuración equivalente del lado del cliente, consulte [Claude Code en Google Cloud](/docs/es/google-vertex-ai). El upstream del lado de la puerta de enlace:573Para la configuración equivalente del lado del cliente, consulta [Claude Code en Google Cloud](/docs/es/google-vertex-ai). El upstream del lado del gateway:

535 574 

536```yaml theme={null}575```yaml theme={null}

537upstreams:576upstreams:

538 - provider: vertex577 - provider: vertex

539 region: us-east5578 region: us-east5

540 project_id: example-prod579 project_id: example-prod

541 auth: {} # preferido: Credenciales por defecto de aplicación580 auth: {} # preferido: Application Default Credentials

542 # O un archivo de clave de cuenta de servicio:581 # O un archivo de clave de cuenta de servicio:

543 # auth: { service_account_json: /secrets/sa.json }582 # auth: { service_account_json: /secrets/sa.json }

544 # Anule el punto final de aiplatform para Conexión de servicio privada:583 # Sobrescribe el endpoint de aiplatform para Private Service Connect:

545 # base_url: https://us-east5-aiplatform.p.googleapis.com584 # base_url: https://us-east5-aiplatform.p.googleapis.com

546```585```

547 586 

548Un bloque `auth` vacío usa Credenciales por defecto de aplicación: `GOOGLE_APPLICATION_CREDENTIALS`, metadatos de GCE, o Workload Identity de GKE. Los archivos de clave JSON de cuenta de servicio se admiten pero se desaconsejan; use Workload Identity o adjunte una cuenta de servicio a la instancia de GCE o Cloud Run.587Un bloque `auth` vacío usa Application Default Credentials: `GOOGLE_APPLICATION_CREDENTIALS`, metadatos de GCE o Workload Identity de GKE. Los archivos de clave JSON de cuenta de servicio se admiten pero se desaconsejan; usa Workload Identity o adjunta una cuenta de servicio a la instancia de GCE o Cloud Run.

549 588 

550Establezca `region: global` para usar el [punto final global para Agent Platform de Google Cloud](https://cloud.google.com/vertex-ai/generative-ai/docs/learn/locations) en lugar de uno regional. Google entonces enruta cada solicitud a una región disponible, por lo que no rastrea disponibilidad de modelo por región. Establecer una región específica fija cada solicitud a ella.589Establece `region: global` para usar el [endpoint global de Agent Platform de Google Cloud](https://cloud.google.com/vertex-ai/generative-ai/docs/learn/locations) en lugar de uno regional. Google enruta entonces cada solicitud a una región disponible, así que no tienes que seguir la disponibilidad de modelos por región. Establecer una región específica fija todas las solicitudes a ella.

551 590 

552| Configuración | Cómo |591| Configuración | Cómo |

553| - | - |592| - | - |

554| Permisos de IAM | Otorgue a la cuenta de servicio de la puerta de enlace `roles/aiplatform.user` en el proyecto, o un rol personalizado con `aiplatform.endpoints.predict`. Habilite la API de Agent Platform de Google Cloud (`aiplatform.googleapis.com`). |593| Permisos de IAM | Otorga a la cuenta de servicio del gateway `roles/aiplatform.user` en el proyecto, o un rol personalizado con `aiplatform.endpoints.predict`. Habilita la API de Agent Platform de Google Cloud (`aiplatform.googleapis.com`). |

555| Acceso a modelo | En Model Garden, habilite los modelos de Claude para su proyecto. Se publican en regiones específicas; verifique la tarjeta del modelo para regiones admitidas. |594| Acceso a modelos | En Model Garden, habilita los modelos de Claude para tu proyecto. Se publican en regiones específicas; revisa la ficha del modelo para ver las regiones admitidas. |

556| GKE (Workload Identity) | Vincule una cuenta de servicio de GCP a la cuenta de servicio de Kubernetes de la puerta de enlace y anote la KSA con `iam.gke.io/gcp-service-account: claude-gateway@<proj>.iam.gserviceaccount.com`. `auth: {}` la recoge. |595| GKE (Workload Identity) | Vincula una cuenta de servicio de GCP a la cuenta de servicio de Kubernetes del gateway y anota la KSA con `iam.gke.io/gcp-service-account: claude-gateway@<proj>.iam.gserviceaccount.com`. `auth: {}` la recoge. |

557| Cloud Run / GCE | Establezca la cuenta de servicio del servicio en una con `roles/aiplatform.user`. `auth: {}` la recoge. |596| Cloud Run / GCE | Establece como cuenta de servicio del servicio una que tenga `roles/aiplatform.user`. `auth: {}` la recoge. |

558| En cualquier otro lugar | `auth: { service_account_json: /secrets/sa.json }`, la ruta a un archivo de clave JSON montado como secreto. El campo toma una ruta de archivo, no el contenido de la clave, por lo que no hay expansión `${file:…}` involucrada. |597| En cualquier otro lugar | `auth: { service_account_json: /secrets/sa.json }`, la ruta a un archivo de clave JSON montado como secreto. El campo toma una ruta de archivo, no el contenido de la clave, así que no interviene ninguna expansión `${file:…}`. |

559 598 

560<h4 id="microsoft-foundry">599<h4 id="microsoft-foundry">

561 Microsoft Foundry600 Microsoft Foundry

562</h4>601</h4>

563 602 

564Para la implementación de Microsoft Foundry del lado del cliente, consulte [Claude Code en Microsoft Foundry](/docs/es/microsoft-foundry). El upstream del lado de la puerta de enlace:603Para el despliegue de Microsoft Foundry del lado del cliente, consulta [Claude Code en Microsoft Foundry](/docs/es/microsoft-foundry). El upstream del lado del gateway:

565 604 

566```yaml theme={null}605```yaml theme={null}

567upstreams:606upstreams:

568 - provider: foundry607 - provider: foundry

569 resource: example-foundry # https://example-foundry.services.ai.azure.com608 resource: example-foundry # https://example-foundry.services.ai.azure.com

570 auth: { use_azure_ad: true } # preferido: DefaultAzureCredential / Identidad administrada609 auth: { use_azure_ad: true } # preferido: DefaultAzureCredential / Managed Identity

571 # O una clave API:610 # O una clave de API:

572 # auth:611 # auth:

573 # api_key: ${FOUNDRY_API_KEY}612 # api_key: ${FOUNDRY_API_KEY}

574```613```

575 614 

576`use_azure_ad: true` resuelve a través de `DefaultAzureCredential`: Identidad administrada en AKS, ACI, o App Service; la CLI de Azure; o credenciales de entorno. Las claves API funcionan pero son de todo el proyecto y no se rotan automáticamente. El punto final de Microsoft Foundry se deriva de `resource:`; establezca el `base_url` opcional para anularlo para nubes soberanas como Azure Government.615`use_azure_ad: true` se resuelve a través de `DefaultAzureCredential`: Managed Identity en AKS, ACI o App Service; la CLI de Azure; o credenciales de entorno. Las claves de API funcionan, pero abarcan todo el proyecto y no se rotan automáticamente. El endpoint de Microsoft Foundry se deriva de `resource:`; establece el `base_url` opcional para sobrescribirlo en nubes soberanas como Azure Government.

577 616 

578| Configuración | Cómo |617| Configuración | Cómo |

579| - | - |618| - | - |

580| RBAC | Otorgue a la identidad de la puerta de enlace `Azure AI User` o `Cognitive Services User` en el recurso de Microsoft Foundry |619| RBAC | Otorga a la identidad del gateway `Azure AI User` o `Cognitive Services User` sobre el recurso de Microsoft Foundry |

581| Implementaciones | Microsoft Foundry usa nombres de implementación elegidos por administrador, no IDs de modelo canónicos. Agregue un bloque [`models:`](#models) asignando cada ID canónico a su nombre de implementación. |620| Despliegues | Microsoft Foundry usa nombres de despliegue elegidos por el administrador, no IDs de modelo canónicos. Agrega un bloque [`models:`](#models) que asigne cada ID canónico a tu nombre de despliegue. |

582| AKS (workload identity) | Federe una Identidad administrada asignada por el usuario con el emisor de OIDC del clúster y vincúlela a la cuenta de servicio de la puerta de enlace. `use_azure_ad: true` la recoge a través de `WorkloadIdentityCredential`. |621| AKS (workload identity) | Federa una User-Assigned Managed Identity con el emisor de OIDC del clúster y vincúlala a la cuenta de servicio del gateway. `use_azure_ad: true` la recoge a través de `WorkloadIdentityCredential`. |

583| ACI / App Service | Habilite identidad administrada asignada por el sistema o por el usuario en el recurso. `use_azure_ad: true` la recoge. |622| ACI / App Service | Habilita la managed identity asignada por el sistema o por el usuario en el recurso. `use_azure_ad: true` la recoge. |

584| En cualquier otro lugar | `auth: { api_key: "${FOUNDRY_API_KEY}" }`. Cite `${…}` dentro de `{ }`. |623| En cualquier otro lugar | `auth: { api_key: "${FOUNDRY_API_KEY}" }`. Pon `${…}` entre comillas dentro de `{ }`. |

585 624 

586<h4 id="static-headers-on-upstream-requests">625<h4 id="static-headers-on-upstream-requests">

587 Encabezados estáticos en solicitudes de upstream626 Encabezados estáticos en las solicitudes a upstreams

588</h4>627</h4>

589 628 

590Para agregar encabezados fijos a las solicitudes que la puerta de enlace envía a un upstream, establezca `headers:` en ese upstream. Úselo cuando un proxy que ejecuta frente al proveedor enruta o atribuye tráfico por un encabezado.629Para agregar encabezados fijos a las solicitudes que el gateway envía a un upstream, establece `headers:` en ese upstream. Úsalo cuando un proxy que ejecutas delante del proveedor enrute o atribuya el tráfico según un encabezado.

591 630 

592`headers:` requiere Claude Code v2.1.277 o posterior en el servidor de la puerta de enlace. Una puerta de enlace anterior se niega a iniciar cuando encuentra la clave. Actualice cada réplica antes de agregar la clave, y elimine la clave antes de revertir a una versión anterior.631`headers:` requiere Claude Code v2.1.277 o posterior en el servidor del gateway. Un gateway anterior se niega a iniciar cuando encuentra la clave. Actualiza todas las réplicas antes de agregar la clave, y elimina la clave antes de volver a una versión anterior.

593 632 

594Los encabezados van al servidor que `base_url` nombra, o al punto final propio del proveedor cuando `base_url` no se establece. El proveedor también los recibe a menos que su proxy los elimine.633Los encabezados van al servidor que nombra `base_url`, o al endpoint propio del proveedor cuando `base_url` no está establecido. El proveedor también los recibe a menos que tu proxy los elimine.

595 634 

596Este ejemplo alcanza un upstream `provider: vertex` a través de un proxy en `upstream-proxy.internal.example.com`. Establece el encabezado `x-source` que el proxy lee, y envía un token de la variable de entorno `PROXY_TOKEN` como `x-proxy-token`:635Este ejemplo llega a un upstream `provider: vertex` a través de un proxy en `upstream-proxy.internal.example.com`. Establece el encabezado `x-source` que lee el proxy y envía un token de la variable de entorno `PROXY_TOKEN` como `x-proxy-token`:

597 636 

598```yaml theme={null}637```yaml theme={null}

599upstreams:638upstreams:


607 x-proxy-token: ${PROXY_TOKEN}646 x-proxy-token: ${PROXY_TOKEN}

608```647```

609 648 

610Los valores son texto ASCII imprimible sin espacio en ninguno de los extremos. Cite un número, `true`, o `false` para que YAML lo lea como texto.649Los valores son texto ASCII imprimible sin espacios en ninguno de los extremos. Pon entre comillas un número, `true` o `false` para que YAML lo lea como texto.

611 650 

612Para mantener un secreto fuera del archivo de configuración, use [expansión de secreto](#secret-expansion) para cargar el valor de una variable de entorno con `${VAR}` o de un archivo con `${file:/path}`. Un `${VAR}` que se resuelve a un valor vacío detiene el inicio de la puerta de enlace.651Para mantener un secreto fuera del archivo de configuración, usa la [expansión de secretos](#secret-expansion) para cargar el valor desde una variable de entorno con `${VAR}` o desde un archivo con `${file:/path}`. Un `${VAR}` que se resuelve en un valor vacío impide que el gateway inicie.

613 652 

614`headers:` funciona en cada proveedor, y cada upstream envía solo el suyo.653`headers:` funciona con todos los proveedores, y cada upstream envía solo los suyos.

615 654 

616No cada solicitud que la puerta de enlace envía a un upstream los lleva:655No todas las solicitudes que el gateway envía a un upstream los llevan:

617 656 

618| Solicitud que la puerta de enlace envía a este upstream | Lleva `headers:` |657| Solicitud que el gateway envía a este upstream | Lleva `headers:` |

619| - | - |658| - | - |

620| `/v1/messages`, streaming o no, y `/v1/messages/count_tokens` | Sí |659| `/v1/messages`, en streaming o no, y `/v1/messages/count_tokens` | Sí |

621| Una solicitud que conmutó por error desde otro upstream | Sí, solo `headers:` de este upstream |660| Una solicitud que conmutó por error desde otro upstream | Sí, solo los `headers:` de este upstream |

622| Llamada `CountTokens` de Amazon Bedrock para una solicitud que el cliente abandonó | No |661| La llamada `CountTokens` de Amazon Bedrock para una solicitud que el cliente abandonó | No |

623| El intercambio de tokens de Workload Identity Federation | No |662| El intercambio de tokens de Workload Identity Federation | No |

624 663 

625En un upstream de Amazon Bedrock o Claude Platform en AWS que firma solicitudes con AWS SigV4, estos encabezados son parte de la firma, por lo que su proxy debe pasarlos sin cambios.664En un upstream de Amazon Bedrock o Claude Platform on AWS que firma las solicitudes con AWS SigV4, estos encabezados forman parte de la firma, por lo que tu proxy debe pasarlos sin cambios.

626 665 

627Si usa un nombre que la puerta de enlace reserva, se niega a iniciar, y el error de inicio nombra el encabezado. Los nombres reservados incluyen:666Si usas un nombre que el gateway reserva, se niega a iniciar, y el error de inicio nombra el encabezado. Los nombres reservados incluyen:

628 667 

629* `authorization` y `x-api-key`668* `authorization` y `x-api-key`

630* `host`, `content-type`, y `user-agent`669* `host`, `content-type` y `user-agent`

631* Cualquier nombre que comience con `anthropic-`, `x-goog-`, `x-amz-`, o `x-amzn-`670* Cualquier nombre que comience con `anthropic-`, `x-goog-`, `x-amz-` o `x-amzn-`

632 671 

633<h4 id="multiple-upstreams">672<h4 id="multiple-upstreams">

634 Múltiples upstreams673 Varios upstreams

635</h4>674</h4>

636 675 

637El mismo proveedor puede aparecer más de una vez con un `name:` distinto. Esto cubre diferentes regiones, diferentes cuentas a través de diferentes cadenas de credenciales, rendimiento aprovisionado versus bajo demanda, y conmutación por error entre proveedores.676El mismo proveedor puede aparecer más de una vez con un `name:` distinto. Esto cubre distintas regiones, distintas cuentas mediante distintas cadenas de credenciales, rendimiento aprovisionado frente a bajo demanda, y conmutación por error entre proveedores.

638 677 

639La puerta de enlace intenta upstreams en orden. `5xx`, `429`, `401`, `403`, `404`, tiempos de espera agotados, y punto final faltante (`501`) conmutan por error; otros `4xx` no.678El gateway intenta los upstreams en orden. `5xx`, `429`, `401`, `403`, `404`, los tiempos de espera agotados y el endpoint inexistente (`501`) conmutan por error; otros `4xx` no.

640 679 

641`429` es capacidad por upstream, por lo que el agotamiento de rendimiento aprovisionado (PT) conmuta por error a bajo demanda. Si establece [`forward_user_identity: true`](#per-user-identity-headers-for-a-proxy-you-run) en un upstream, un `429` a una solicitud que llevaba el correo electrónico del desarrollador es una denegación por usuario en su lugar y no conmuta por error.680`429` indica capacidad por upstream, por lo que el agotamiento del rendimiento aprovisionado (PT) conmuta por error a bajo demanda. Si estableces [`forward_user_identity: true`](#per-user-identity-headers-for-a-proxy-you-run) en un upstream, un `429` a una solicitud que llevaba el correo electrónico del desarrollador es en cambio una denegación por usuario y no conmuta por error.

642 681 

643Cada solicitud comienza en el primer upstream. Una solicitud alcanza un upstream posterior solo cuando cada upstream delante de él ha fallado o no sirve el modelo solicitado.682Cada solicitud comienza en el primer upstream. Una solicitud llega a un upstream posterior solo cuando todos los upstreams anteriores han fallado o no sirven el modelo solicitado.

644 683 

645La puerta de enlace no mantiene registro de upstreams fallidos, por lo que mientras un upstream está inactivo, cada solicitud que lo alcanza aún lo intenta y espera a que falle antes de pasar al siguiente.684El gateway no guarda registro de los upstreams que fallaron, así que mientras un upstream está caído, cada solicitud que llega a él lo sigue intentando y espera a que falle antes de pasar al siguiente.

646 685 

647Para un upstream de API de Anthropic, [`timeouts.upstream_ttfb_ms`](#http-tuning) limita la espera en un upstream inactivo. Esa configuración no se aplica a los otros proveedores, donde la puerta de enlace espera hasta una hora a que un upstream comience a responder.686Para un upstream de la API de Anthropic, [`timeouts.upstream_ttfb_ms`](#http-tuning) limita la espera en un upstream caído. Ese ajuste no se aplica a los demás proveedores, con los que el gateway espera hasta una hora a que un upstream empiece a responder.

648 687 

649`404` es disponibilidad de modelo por upstream, por lo que un upstream que no ha habilitado un modelo no bloquea un upstream posterior que lo sirve. Un upstream que no puede resolver el modelo solicitado se omite sin un viaje de ida y vuelta de red.688`404` indica disponibilidad de modelos por upstream, por lo que un upstream que no ha habilitado un modelo no bloquea a un upstream posterior que lo sirve. Un upstream que no puede resolver el modelo solicitado se omite sin un viaje de ida y vuelta por la red.

650 689 

651Este ejemplo enruta una asignación de rendimiento aprovisionado de Amazon Bedrock primero, desborda a bajo demanda y una segunda cuenta, y vuelve a la API de Anthropic último:690Este ejemplo enruta primero a una asignación de rendimiento aprovisionado de Amazon Bedrock, desborda a bajo demanda y a una segunda cuenta, y recurre a la API de Anthropic en último lugar:

652 691 

653```yaml theme={null}692```yaml theme={null}

654upstreams:693upstreams:

655 # Primario: rendimiento aprovisionado en su región de inicio.694 # Principal: rendimiento aprovisionado en tu región principal.

656 - name: bedrock-pt695 - name: bedrock-pt

657 provider: bedrock696 provider: bedrock

658 region: us-east-1697 region: us-east-1


662 provider: bedrock701 provider: bedrock

663 region: us-west-2702 region: us-west-2

664 auth: {}703 auth: {}

665 # Cuenta diferente: una asignación de Bedrock separada a través de claves estáticas.704 # Otra cuenta: una asignación de Bedrock separada mediante claves estáticas.

666 - name: bedrock-acct2705 - name: bedrock-acct2

667 provider: bedrock706 provider: bedrock

668 region: us-east-1707 region: us-east-1

669 auth:708 auth:

670 aws_access_key_id: ${ACCT2_AKID}709 aws_access_key_id: ${ACCT2_AKID}

671 aws_secret_access_key: ${ACCT2_SK}710 aws_secret_access_key: ${ACCT2_SK}

672 # Último recurso: API de Anthropic directo.711 # Último recurso: API de Anthropic directa.

673 - name: anthropic-fallback712 - name: anthropic-fallback

674 provider: anthropic713 provider: anthropic

675 auth:714 auth:

676 api_key: ${ANTHROPIC_API_KEY}715 api_key: ${ANTHROPIC_API_KEY}

677 716 

678# Los IDs de modelo por upstream se clave en el `name:` del upstream.717# Los IDs de modelo por upstream usan como clave el `name:` del upstream.

679models:718models:

680 - id: claude-opus-4-8719 - id: claude-opus-4-8

681 label: Claude Opus 4.8720 label: Claude Opus 4.8


688 727 

689| Palanca | Cómo |728| Palanca | Cómo |

690| - | - |729| - | - |

691| Diferentes regiones | Un upstream de Amazon Bedrock por región, cada uno con su propio `region:`. Con [`auto_include_builtin_models: true`](#models) los perfiles de inferencia entre regiones se enrutan automáticamente; para implementaciones fijas por región use un bloque `models:`. |730| Distintas regiones | Un upstream de Amazon Bedrock por región, cada uno con su propio `region:`. Con [`auto_include_builtin_models: true`](#models) los perfiles de inferencia entre regiones se enrutan automáticamente; para despliegues fijados a una región, usa un bloque `models:`. |

692| Diferentes cuentas | Un upstream de Amazon Bedrock por cuenta. La cadena por defecto (`auth: {}`) usa la identidad del pod; para una segunda cuenta, agregue [`assume_role`](#bedrock-in-another-aws-account) para alcanzarla con credenciales de corta duración, o establezca credenciales explícitas o un token portador en `auth:`. |731| Distintas cuentas | Un upstream de Amazon Bedrock por cuenta. La cadena por defecto (`auth: {}`) usa la identidad del pod; para una segunda cuenta, agrega [`assume_role`](#bedrock-in-another-aws-account) para acceder a ella con credenciales de corta duración, o establece credenciales explícitas o un token bearer en `auth:`. |

693| Rendimiento aprovisionado | Asigne el modelo al ARN de rendimiento aprovisionado en `models:` para el `name` de ese upstream. Otros upstreams mantienen el ID bajo demanda, por lo que la capacidad de PT se agota antes de conmutar por error. |732| Rendimiento aprovisionado | Asigna el modelo al ARN de rendimiento aprovisionado en `models:` para el nombre de ese upstream. Los demás upstreams conservan el ID bajo demanda, por lo que la capacidad de PT se agota antes de conmutar por error. |

694| Puntos finales de VPC / FIPS | Establezca `base_url:` en el upstream a su URL de punto final de VPC o FIPS |733| Endpoints de VPC / FIPS | Establece `base_url:` en el upstream con la URL de tu endpoint de VPC o FIPS |

695| Enrutamiento limitado a modelo | Solo un `id` de modelo personalizado, uno que no sea un nombre de modelo Claude integrado, omite los upstreams ausentes de su mapa `upstream_model:`. La puerta de enlace intenta modelos integrados en cada upstream en orden y usa el ID por defecto del proveedor donde el mapa no tiene entrada, por lo que para modelos integrados el mapa cambia qué ID un upstream recibe en lugar de si se intenta; un upstream que rechaza el ID sigue las mismas [reglas de conmutación por error](#upstreams) que cualquier otro error de upstream. |734| Enrutamiento limitado por modelo | Solo un `id` de modelo personalizado, es decir, uno que no sea un modelo Claude integrado, omite los upstreams ausentes de su mapa `upstream_model:`. Un upstream `mantle` se intenta solo para los modelos enumerados en su [campo `models`](#amazon-bedrock-mantle-endpoint). En todos los demás upstreams, el gateway intenta los modelos integrados en orden y usa el ID por defecto del proveedor donde el mapa no tiene entrada, por lo que para los modelos integrados el mapa cambia qué ID recibe un upstream y no si se intenta; un upstream que rechaza el ID sigue las mismas [reglas de conmutación por error](#upstreams) que cualquier otro error de upstream. |

696 735 

697La conmutación por error entre proveedores en la nube, o a la API de Anthropic directo, cambia qué acuerdo, geografía, y otros términos rigen la solicitud.736Conmutar por error entre proveedores de nube, o a la API de Anthropic directa, cambia qué acuerdo, geografía y demás términos rigen la solicitud.

698 737 

699El CLI aplica la misma puerta de características a puertas de enlace independientemente de qué upstream sirve una solicitud dada, por lo que la conmutación por error no envía un campo de cuerpo que un upstream rechazaría.738La CLI aplica la misma restricción de funciones a los gateways independientemente de qué upstream sirva una solicitud determinada, por lo que la conmutación por error no envía un campo del cuerpo que un upstream rechazaría.

700 739 

701<h2 id="optional-sections">740<h2 id="optional-sections">

702 Secciones opcionales741 Secciones opcionales


848 - match: {}887 - match: {}

849 cli:888 cli:

850 availableModels: [claude-opus-4-8, claude-sonnet-4-6, claude-haiku-4-5]889 availableModels: [claude-opus-4-8, claude-sonnet-4-6, claude-haiku-4-5]

890 # Hace que la opción Default de /model se resuelva dentro de la lista

891 # de cada política. La política eng-contractors hereda enforceAvailableModels.

892 enforceAvailableModels: true

851```893```

852 894 

853Una captura general `match: {}`, que por convención se coloca al final, se trata como una capa base. Todas las demás políticas heredan de la captura general cualquier clave que no establezcan, por lo que las entradas por rol solo necesitan enumerar lo que difiere del valor predeterminado de la organización. Las reglas de fusión dependen del tipo de clave:895Una captura general `match: {}`, que por convención se coloca al final, se trata como una capa base. Todas las demás políticas heredan de la captura general cualquier clave que no establezcan, por lo que las entradas por rol solo necesitan enumerar lo que difiere del valor predeterminado de la organización. Las reglas de fusión dependen del tipo de clave:


856* **Listas de denegación y arrays de hooks**: `permissions.deny`, `permissions.ask`, `disabledMcpjsonServers`, `deniedMcpServers`, `blockedMarketplaces` y cada array de tipo de evento de `hooks`. Estas toman la unión de la base y la política, por lo que una sobrescritura por rol no puede eliminar accidentalmente una denegación o un hook de auditoría de toda la organización.898* **Listas de denegación y arrays de hooks**: `permissions.deny`, `permissions.ask`, `disabledMcpjsonServers`, `deniedMcpServers`, `blockedMarketplaces` y cada array de tipo de evento de `hooks`. Estas toman la unión de la base y la política, por lo que una sobrescritura por rol no puede eliminar accidentalmente una denegación o un hook de auditoría de toda la organización.

857* **Claves de tipo registro**: `env`, `modelOverrides` y `skillOverrides`. Estas se fusionan superficialmente, por lo que un bloque `env` por rol sobrescribe las claves que establece y hereda el resto de la base.899* **Claves de tipo registro**: `env`, `modelOverrides` y `skillOverrides`. Estas se fusionan superficialmente, por lo que un bloque `env` por rol sobrescribe las claves que establece y hereda el resto de la base.

858 900 

859`availableModels` también se aplica del lado del servidor en `/v1/messages`, por lo que un modelo denegado devuelve `400` independientemente de lo que envíe el cliente.901`availableModels` también se aplica del lado del servidor en `/v1/messages`, por lo que un modelo denegado devuelve `400` independientemente de lo que envíe el cliente. Una lista vacía deniega todos los modelos. La comprobación también cubre el modelo con el que empieza una sesión antes de que el desarrollador elija uno, así que [inicia las sesiones en un modelo que la política permita](#start-sessions-on-a-model-the-policy-allows).

860 902 

861El gateway valida el propio valor de `model` antes de retransmitir una solicitud, por lo que un valor mal formado nunca llega a un upstream. Rechaza la solicitud con un `400` en dos casos:903El gateway valida el propio valor de `model` antes de retransmitir una solicitud, por lo que un valor mal formado nunca llega a un upstream. Rechaza la solicitud con un `400` en dos casos:

862 904 


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

884</Note>926</Note>

885 927 

928<h4 id="start-sessions-on-a-model-the-policy-allows">

929 Iniciar las sesiones en un modelo que la política permite

930</h4>

931 

932Si `availableModels` deja fuera el modelo predeterminado de Claude Code, las sesiones reciben respuestas `400` hasta que el desarrollador elige un modelo de la lista, por ejemplo con `/model`. En las sesiones del gateway, el predeterminado es el modelo Opus al que se resuelve el alias `opus`, y `availableModels` por sí solo no lo cambia.

933 

934Para solucionarlo, establece [`enforceAvailableModels: true`](/docs/es/model-config#enforce-the-allowlist-for-the-default-model) en el mismo bloque `cli` y luego comprueba qué tipo de entrada tiene la lista:

935 

936* **Un alias como `sonnet`, o un ID integrado como `claude-sonnet-4-6`**: las sesiones empiezan en uno de esos modelos, y la opción Default de `/model` se resuelve en él

937* **Ningún alias ni ID integrado en la lista**: las sesiones pueden seguir empezando en el modelo predeterminado integrado, así que establece también [`model`](/docs/es/model-config#control-the-model-users-run-on) en uno de los ID de la lista en el bloque `cli` de esa política

938 

939Esta política incluye un ID personalizado que define [`models`](#models) e inicia las sesiones en ese ID:

940 

941```yaml theme={null}

942managed:

943 policies:

944 - match: { groups: [restricted-projects] }

945 cli:

946 availableModels: [claude-opus-restricted]

947 enforceAvailableModels: true

948 model: claude-opus-restricted

949```

950 

886<h4 id="matcher-values-that-stop-the-gateway-at-boot">951<h4 id="matcher-values-that-stop-the-gateway-at-boot">

887 Valores de matcher que detienen el gateway al arrancar952 Valores de matcher que detienen el gateway al arrancar

888</h4>953</h4>


920 cli:985 cli:

921 # Acceso a modelos (también aplicado del lado del servidor en /v1/messages)986 # Acceso a modelos (también aplicado del lado del servidor en /v1/messages)

922 availableModels: [claude-opus-4-8, claude-sonnet-4-6, claude-haiku-4-5]987 availableModels: [claude-opus-4-8, claude-sonnet-4-6, claude-haiku-4-5]

988 enforceAvailableModels: true # Default se resuelve dentro de la lista

923 989 

924 # Política de permisos990 # Política de permisos

925 permissions:991 permissions:


1041 - match: { groups: [eng-contractors] }1107 - match: { groups: [eng-contractors] }

1042 cli:1108 cli:

1043 availableModels: [claude-sonnet-4-6]1109 availableModels: [claude-sonnet-4-6]

1110 enforceAvailableModels: true

1044 desktop:1111 desktop:

1045 isLocalDevMcpEnabled: false1112 isLocalDevMcpEnabled: false

1046 disableAutoUpdates: true1113 disableAutoUpdates: true


1342 Ejemplo completo1409 Ejemplo completo

1343</h2>1410</h2>

1344 1411 

1345Esta configuración de referencia completa ejercita cada sección central; los [bloques de ajuste HTTP](#http-tuning) mantienen sus valores predeterminados. Cópiela, elimine lo que no necesite y complete sus valores. La configuración en el [Inicio rápido](/docs/es/claude-apps-gateway#quickstart) es una versión mínima de esta.1412Esta configuración de referencia completa ejercita cada sección central; los [bloques de ajuste HTTP](#http-tuning) mantienen sus valores predeterminados. Cópiala, elimina lo que no necesites y completa tus valores. La configuración en el [Inicio rápido](/docs/es/claude-apps-gateway#quickstart) es una versión mínima de esta.

1346 1413 

1347```yaml gateway.yaml theme={null}1414```yaml gateway.yaml theme={null}

1348# Ejecutar con:1415# Ejecutar con:


1357 host: 0.0.0.01424 host: 0.0.0.0

1358 port: 80801425 port: 8080

1359 public_url: https://claude-gateway.internal.example.com1426 public_url: https://claude-gateway.internal.example.com

1360 # Omita el bloque tls cuando se ejecute detrás de una entrada que termina TLS.1427 # Omite el bloque tls cuando se ejecute detrás de una entrada que termina TLS.

1361 # tls:1428 # tls:

1362 # cert: /certs/gateway.crt1429 # cert: /certs/gateway.crt

1363 # key: /certs/gateway.key1430 # key: /certs/gateway.key


1371 allowed_email_domains:1438 allowed_email_domains:

1372 - example.com1439 - example.com

1373 # Requerido cuando el emisor es el servidor de la organización Okta, cuyos id_tokens1440 # Requerido cuando el emisor es el servidor de la organización Okta, cuyos id_tokens

1374 # pueden omitir correo electrónico y grupos; la puerta de enlace los completa desde /userinfo.1441 # pueden omitir correo electrónico y grupos; el gateway los completa desde /userinfo.

1375 userinfo_fallback: true1442 userinfo_fallback: true

1376 # allowed_groups: [claude-code-users]1443 # allowed_groups: [claude-code-users]

1377 # Okta emite grupos solo cuando se solicita el alcance `groups` y el1444 # Okta emite grupos solo cuando se solicita el alcance `groups` y el


1379 # coincide con grupos, por lo que el alcance se solicita aquí.1446 # coincide con grupos, por lo que el alcance se solicita aquí.

1380 scopes: [openid, profile, email, offline_access, groups]1447 scopes: [openid, profile, email, offline_access, groups]

1381 # extra_auth_params: { access_type: offline, prompt: consent } # Google1448 # extra_auth_params: { access_type: offline, prompt: consent } # Google

1382 # groups_claim: groups # Roles de aplicación de Entra: use `roles`1449 # groups_claim: groups # Roles de aplicación de Entra: usa `roles`

1383 # email_claim: email1450 # email_claim: email

1384 1451 

1385session:1452session:


1392 # connect_timeout_seconds: 51459 # connect_timeout_seconds: 5

1393 # readiness_grace_seconds: 300 # mantener pasando la verificación de disponibilidad durante una conmutación por error de base de datos1460 # readiness_grace_seconds: 300 # mantener pasando la verificación de disponibilidad durante una conmutación por error de base de datos

1394 1461 

1395# Habilita /v1/organizations/spend_limits (refleja la API de administrador de Anthropic)1462# Habilita /v1/organizations/spend_limits (refleja la API de administración de Anthropic)

1396# y cumplimiento de gasto por desarrollador en /v1/messages. Omita para deshabilitar.1463# y cumplimiento de gasto por desarrollador en /v1/messages. Omite para deshabilitar.

1397# Los límites en sí se establecen a través de la API de administrador, no aquí.1464# Los límites en sí se establecen a través de la API de administración, no aquí.

1398# admin:1465# admin:

1399# write_keys:1466# write_keys:

1400# - { id: terraform, key: "${GATEWAY_ADMIN_WRITE_KEY_TF}" }1467# - { id: terraform, key: "${GATEWAY_ADMIN_WRITE_KEY_TF}" }


1410# enforcement:1477# enforcement:

1411# fail_closed_on_error: false1478# fail_closed_on_error: false

1412 1479 

1413# Prueba de carga de esta implementación sin llamar a un proveedor de modelo. Nunca en una1480# Prueba de carga de este despliegue sin llamar a un proveedor de modelo. Nunca en un

1414# puerta de enlace que usen desarrolladores: cada solicitud obtiene una respuesta enlatada.1481# gateway que usen desarrolladores: cada solicitud obtiene una respuesta enlatada.

1415# load_test_mode:1482# load_test_mode:

1416# enabled: true1483# enabled: true

1417# # reply_tokens: 7501484# # reply_tokens: 750


1434 # region: us-east-11501 # region: us-east-1

1435 # auth: {}1502 # auth: {}

1436 1503 

1504 # - provider: mantle

1505 # region: us-east-1

1506 # models: [claude-opus-4-8, claude-opus-4-7, claude-haiku-4-5]

1507 # auth: {}

1508 

1437 # - provider: anthropicAws1509 # - provider: anthropicAws

1438 # region: us-east-11510 # region: us-east-1

1439 # workspace_id: wrkspc_...1511 # workspace_id: wrkspc_...


1456 upstream_model:1528 upstream_model:

1457 anthropic: claude-opus-4-81529 anthropic: claude-opus-4-8

1458 # bedrock: us.anthropic.claude-opus-4-81530 # bedrock: us.anthropic.claude-opus-4-8

1531 # mantle: anthropic.claude-opus-4-8

1459 # anthropicAws: claude-opus-4-81532 # anthropicAws: claude-opus-4-8

1460 # vertex: claude-opus-4-81533 # vertex: claude-opus-4-8

1461 # foundry: <your-opus-deployment-name>1534 # foundry: <your-opus-deployment-name>


1473 - match: { groups: [contractors] }1546 - match: { groups: [contractors] }

1474 cli:1547 cli:

1475 availableModels: [claude-haiku-4-5]1548 availableModels: [claude-haiku-4-5]

1476 # Restrinja la opción del selector predeterminado a availableModels en lugar de

1477 # el predeterminado de nivel, para que los contratistas no obtengan un 400 en el predeterminado.

1478 enforceAvailableModels: true

1479 # allow aprueba automáticamente estas herramientas; no bloquea el resto.1549 # allow aprueba automáticamente estas herramientas; no bloquea el resto.

1480 # Agregue reglas de negación para restringir herramientas.1550 # Agrega reglas de negación para restringir herramientas.

1481 permissions: { allow: [Read, Grep] }1551 permissions: { allow: [Read, Grep] }

1482 - match: {}1552 - match: {}

1483 cli:1553 cli:

1484 availableModels: [claude-opus-4-8, claude-sonnet-4-6, claude-haiku-4-5]1554 availableModels: [claude-opus-4-8, claude-sonnet-4-6, claude-haiku-4-5]

1555 # Restringe la opción Default del selector a los availableModels de cada política

1556 # en lugar del predeterminado integrado, para que ningún rol obtenga un 400 en Default.

1557 # La política de contratistas hereda esta clave.

1558 enforceAvailableModels: true

1485 permissions:1559 permissions:

1486 allow: [Read, Grep, Bash, Edit]1560 allow: [Read, Grep, Bash, Edit]

1487 deny: ["WebFetch"]1561 deny: ["WebFetch"]

Details

429 429 

430El gateway responde `431` cuando los encabezados de una solicitud suman más de 256 KiB, o más de [`limits.max_request_header_bytes`](/docs/es/claude-apps-gateway-config#http-tuning) si lo estableces. No escribe ninguna línea de registro ni evento de auditoría para estas solicitudes. Las versiones del gateway anteriores a v2.1.284 responden `431` por encima de 16 KiB.430El gateway responde `431` cuando los encabezados de una solicitud suman más de 256 KiB, o más de [`limits.max_request_header_bytes`](/docs/es/claude-apps-gateway-config#http-tuning) si lo estableces. No escribe ninguna línea de registro ni evento de auditoría para estas solicitudes. Las versiones del gateway anteriores a v2.1.284 responden `431` por encima de 16 KiB.

431 431 

432Lo que debes cambiar depende de la versión y la configuración de tu gateway:432Empieza por la primera de estas opciones que aplique a tu gateway:

433 433 

434* **Gateway anterior a v2.1.284**: actualiza el gateway434* **Gateway anterior a v2.1.284**: actualiza el gateway

435* **`limits.max_request_header_bytes` establecido**: aumenta el valor o elimina la clave435* **`limits.max_request_header_bytes` establecido**: aumenta el valor o elimina la clave

436* **No aplica ninguno de los dos, o el `431` continúa después**: haz que tu IdP emita menos grupos. [Configuración del proveedor de identidad](#identity-provider-setup) explica cómo Okta, Microsoft Entra ID y Google Workspace proporcionan los grupos436* **No aplica ninguno de los dos, o el `431` continúa después**: haz que tu IdP emita menos grupos. [Configuración del proveedor de identidad](#identity-provider-setup) explica cómo Okta, Microsoft Entra ID y Google Workspace proporcionan los grupos

437 437 

438Cuando recortes el claim de grupos, conserva los grupos que nombraste en estos ajustes, que deciden el acceso, la política y los límites de gasto de un desarrollador:

439 

440* **[`oidc.allowed_groups`](/docs/es/claude-apps-gateway-config#oidc)**: decide quién puede iniciar sesión

441* **[`admin.admin_groups`](/docs/es/claude-apps-gateway-config#admin)**: decide quién puede llamar a la API de administración con su sesión del gateway

442* **`match.groups` en [`managed.policies`](/docs/es/claude-apps-gateway-config#managed)**: decide qué política se aplica a un desarrollador

443* **[Límites de gasto](/docs/es/claude-apps-gateway-spend-limits) de `rbac_group`**: deciden qué límites de grupo se aplican a un desarrollador

444 

438<h2 id="related">445<h2 id="related">

439 Relacionado446 Relacionado

440</h2>447</h2>

Details

12 12 

13Una sesión en la nube es una sesión de Claude Code que se ejecuta en infraestructura en la nube en lugar de en su máquina. De forma predeterminada, se ejecuta en infraestructura que Anthropic administra, o en el [entorno autohospedado](/docs/es/self-hosted-environments) de su organización cuando se enruta allí. La sesión sigue ejecutándose después de cerrar su portátil, y puede verificarla o dirigirla desde cualquier dispositivo.13Una sesión en la nube es una sesión de Claude Code que se ejecuta en infraestructura en la nube en lugar de en su máquina. De forma predeterminada, se ejecuta en infraestructura que Anthropic administra, o en el [entorno autohospedado](/docs/es/self-hosted-environments) de su organización cuando se enruta allí. La sesión sigue ejecutándose después de cerrar su portátil, y puede verificarla o dirigirla desde cualquier dispositivo.

14 14 

15Para que las sesiones en la nube puedan clonar tu código desde GitHub y enviar ramas, conecta GitHub con uno de los [métodos de conexión de GitHub](#github-authentication-options). Si tu repositorio está en GitLab, Bitbucket u otro host, consulta [Restricciones de plataforma](#limitations) para saber qué funciona.

16 

15Puede iniciar una sesión en la nube desde cualquiera de estas superficies:17Puede iniciar una sesión en la nube desde cualquiera de estas superficies:

16 18 

17* **Navegador**: [claude.ai/code](https://claude.ai/code), también llamado Claude Code en la web19* **Navegador**: [claude.ai/code](https://claude.ai/code), también llamado Claude Code en la web


20* **Terminal**: [`claude --cloud`](#from-terminal-to-cloud)22* **Terminal**: [`claude --cloud`](#from-terminal-to-cloud)

21* **Rutinas**: [ejecuciones programadas y activadas](/docs/es/routines) cada una se ejecuta como una sesión en la nube23* **Rutinas**: [ejecuciones programadas y activadas](/docs/es/routines) cada una se ejecuta como una sesión en la nube

22 24 

23Para que Claude inicie y realice un seguimiento de muchas sesiones en la nube para un cuerpo de trabajo, use un [proyecto](/docs/es/claude-projects). Una sesión en su terminal, su IDE o la aplicación de escritorio con **Local** seleccionado se ejecuta en su propia máquina en su lugar. Para dirigir una de esas sesiones locales desde su teléfono o navegador, use [Control remoto](/docs/es/remote-control).25Una vez que lo tengas configurado, usa esta página para mover trabajo entre tu terminal y la nube, administrar y compartir sesiones, activar la corrección automática de pull requests y solucionar problemas.

24 

25<Tip>

26 ¿Nuevo en sesiones en la nube? Comience con [Primeros pasos](/docs/es/web-quickstart) para conectar su cuenta de GitHub y enviar su primera tarea.

27</Tip>

28 26 

29Esta página cubre:27<Note>

28 Estos casos se tratan en otras páginas:

30 29 

31* [Entornos en la nube](#cloud-environments): dónde se ejecutan las sesiones y dónde configurar eso30 * **Iniciar tu primera sesión en la nube**: [Primeros pasos con sesiones en la nube](/docs/es/web-quickstart) conecta GitHub y te guía por una tarea en el navegador

32* [Opciones de autenticación de GitHub](#github-authentication-options): dos formas de conectar GitHub31 * **Muchas sesiones en la nube para un cuerpo de trabajo**: un [proyecto](/docs/es/claude-projects) hace que Claude las inicie y les dé seguimiento por ti

33* [Mover tareas entre terminal y nube](#move-tasks-between-terminal-and-cloud) con `--cloud` y `--teleport`32 * **Dirigir una sesión local desde otro dispositivo**: las sesiones en tu terminal, tu IDE o la aplicación de escritorio con **Local** seleccionado se ejecutan en tu máquina, y [Remote Control](/docs/es/remote-control) te permite acceder a ellas desde tu teléfono o navegador

34* [Trabajar con sesiones](#work-with-sessions): modos de permisos, revisión, uso compartido, archivo, eliminación33</Note>

35* [Correcciones automáticas de solicitudes de extracción](#auto-fix-pull-requests): responder automáticamente a fallos de CI y comentarios de revisión

36* [Seguridad y aislamiento](#security-and-isolation): cómo se aíslan las sesiones

37* [Limitaciones](#limitations): límites de velocidad y restricciones de plataforma

38 34 

39<h2 id="cloud-environments">35<h2 id="cloud-environments">

40 Entornos en la nube36 Entornos en la nube

41</h2>37</h2>

42 38 

43Cada sesión en la nube se ejecuta en un [entorno en la nube](/docs/es/cloud-environments), la configuración guardada que controla el acceso a la red, las variables de entorno y los scripts de configuración. Si aún no tiene un entorno, la incorporación configura un entorno **Predeterminado** con [acceso a la red **Confiable**](/docs/es/cloud-environments#access-levels), ya sea creándolo para usted o pidiéndole que lo cree. Consulte [El entorno predeterminado](/docs/es/cloud-environments#the-default-environment) para ver cuál de esos sucede en su plan y cómo las sesiones eligen un entorno cuando tiene más de uno.39Cada sesión en la nube se ejecuta en un [entorno en la nube](/docs/es/cloud-environments), la configuración guardada que controla el acceso a la red, las variables de entorno y los scripts de configuración.

44 40 

45Los mismos entornos se aplican dondequiera que inicie una sesión en la nube: el navegador, la terminal, [Claude Tag](https://claude.com/docs/claude-tag/overview), [rutinas](/docs/es/routines) y las aplicaciones móvil y de escritorio. Las sesiones de canales de Claude Tag utilizan solo entornos a nivel de organización, ya sean [entornos compartidos](/docs/es/cloud-environments#organization-shared-environments) o [entornos autohospedados](/docs/es/self-hosted-environments).41* **Tu primer entorno**: si aún no tienes uno, la incorporación configura un entorno **Predeterminado** con [acceso a la red **Confiable**](/docs/es/cloud-environments#access-levels), ya sea creándolo por ti o pidiéndote que lo crees. Consulta [El entorno predeterminado](/docs/es/cloud-environments#the-default-environment) para ver cuál de esos sucede en tu plan

46 42* **Qué entorno usa una sesión**: consulta [El entorno predeterminado](/docs/es/cloud-environments#the-default-environment) para ver cómo las sesiones eligen un entorno cuando tienes más de uno

47Consulte [Configurar entornos en la nube](/docs/es/cloud-environments) para cambiar lo que permite un entorno, establecer variables o agregar un script de configuración, y [Herramientas instaladas](/docs/es/cloud-environments#installed-tools) para ver qué incluyen las sesiones sin ninguna configuración.43* **Cambiar lo que las sesiones pueden alcanzar o ejecutar al iniciar**: consulta [Configurar entornos en la nube](/docs/es/cloud-environments)

44* **Qué está instalado sin ninguna configuración**: consulta [Herramientas instaladas](/docs/es/cloud-environments#installed-tools)

48 45 

49<h2 id="github-authentication-options">46<h2 id="github-authentication-options">

50 Opciones de autenticación de GitHub47 Opciones de autenticación de GitHub


57| **GitHub App** | Autorice la aplicación Claude GitHub durante la [incorporación web](/docs/es/web-quickstart) | Cualquier repositorio público, y repositorios privados en los que está instalada la aplicación Claude GitHub | Incorporación en navegador; equipos que desean [Correcciones automáticas](#auto-fix-pull-requests) |54| **GitHub App** | Autorice la aplicación Claude GitHub durante la [incorporación web](/docs/es/web-quickstart) | Cualquier repositorio público, y repositorios privados en los que está instalada la aplicación Claude GitHub | Incorporación en navegador; equipos que desean [Correcciones automáticas](#auto-fix-pull-requests) |

58| **`/web-setup`** | Ejecute `/web-setup` en su terminal para enviar su token local de CLI `gh` a su cuenta Claude | Cualquier repositorio al que pueda acceder su token `gh`, independientemente de si está instalada la aplicación Claude GitHub | Desarrolladores individuales que ya usan `gh` |55| **`/web-setup`** | Ejecute `/web-setup` en su terminal para enviar su token local de CLI `gh` a su cuenta Claude | Cualquier repositorio al que pueda acceder su token `gh`, independientemente de si está instalada la aplicación Claude GitHub | Desarrolladores individuales que ya usan `gh` |

59 56 

60Instalar la aplicación Claude GitHub en un repositorio también habilita [Correcciones automáticas](#auto-fix-pull-requests) para solicitudes de extracción en él.57Estas funciones dependen de que la aplicación Claude GitHub esté instalada en el repositorio:

61 58 

62Los hilos en un [proyecto](/docs/es/claude-projects) necesitan que la aplicación Claude GitHub esté instalada en cada repositorio que clonan, independientemente del método con el que se conectó. Consulte [Configurar acceso a GitHub](/docs/es/claude-projects#set-up-github-access).59* **Correcciones automáticas**: instalar la aplicación Claude GitHub en un repositorio también habilita [Correcciones automáticas](#auto-fix-pull-requests) para los pull requests en él

60* **Proyectos**: los hilos en un [proyecto](/docs/es/claude-projects) necesitan que la aplicación Claude GitHub esté instalada en cada repositorio que clonan, independientemente del método con el que te conectaste. Consulta [Configurar acceso a GitHub](/docs/es/claude-projects#set-up-github-access)

63 61 

64En entornos alojados por Anthropic, sus credenciales de GitHub permanecen cifradas en los servidores de Anthropic y nunca entran en la máquina virtual de una sesión. Las operaciones de GitHub desde la máquina virtual se realizan a través del [proxy de GitHub](/docs/es/cloud-environments#github-proxy), que adjunta la credencial en el lado del servidor.62En entornos alojados por Anthropic, sus credenciales de GitHub permanecen cifradas en los servidores de Anthropic y nunca entran en la máquina virtual de una sesión. Las operaciones de GitHub desde la máquina virtual se realizan a través del [proxy de GitHub](/docs/es/cloud-environments#github-proxy), que adjunta la credencial en el lado del servidor.

65 63 

66Para ver cómo `/schedule` verifica el acceso al repositorio antes de crear una rutina, consulte [Repositorios y permisos de rama](/docs/es/routines#repositories-and-branch-permissions). Consulte [Conectar desde su terminal](/docs/es/web-quickstart#connect-from-your-terminal) para el tutorial de `/web-setup`, incluyendo qué almacena `/web-setup` y cómo eliminarlo.64Consulta [Conectar desde tu terminal](/docs/es/web-quickstart#connect-from-your-terminal) para el tutorial de `/web-setup`, incluyendo qué almacena `/web-setup` y cómo eliminarlo.

67 

68La configuración rápida de web es una configuración de organización que permite a los miembros conectar GitHub con `/web-setup`, omite la solicitud de instalación de la aplicación Claude GitHub durante la incorporación en navegador, y hace que la incorporación en navegador cree el entorno [**Predeterminado**](/docs/es/cloud-environments#the-default-environment) para ellos en lugar de mostrar el formulario de entorno. En planes Team y Enterprise está deshabilitada de forma predeterminada, lo que oculta `/web-setup`. Un [Propietario](/docs/es/server-managed-settings#access-control) la activa con el interruptor **Configuración rápida de web** en [**Configuración de administrador > Claude Code**](https://claude.ai/admin-settings/claude-code).

69 65 

70<Note>66<Note>

71 Las organizaciones con [Retención de datos cero](/docs/es/zero-data-retention) habilitada no pueden usar `/web-setup` u otras características de sesión en la nube.67 Las organizaciones con [Retención de datos cero](/docs/es/zero-data-retention) habilitada no pueden usar `/web-setup` u otras características de sesión en la nube.

72</Note>68</Note>

73 69 

70<h3 id="quick-setup-for-team-and-enterprise">

71 Configuración rápida para Team y Enterprise

72</h3>

73 

74La configuración rápida es un ajuste de organización que elimina pasos de la configuración de GitHub y del entorno de los miembros. En los planes Team y Enterprise está desactivada de forma predeterminada.

75 

76Esto es lo que cambia para los miembros cuando está activada:

77 

78* **`/web-setup`**: los miembros pueden conectar GitHub con `/web-setup`. Mientras el ajuste está desactivado, el comando está oculto

79* **Solicitud de la GitHub App**: la incorporación en navegador omite la solicitud de instalación de la aplicación Claude GitHub

80* **Primer entorno**: la incorporación en navegador crea el [entorno **Predeterminado**](/docs/es/cloud-environments#the-default-environment) para los miembros en lugar de mostrar el formulario de entorno

81 

82Un [Propietario](/docs/es/server-managed-settings#access-control) la activa con el interruptor **Configuración rápida** en [**Configuración de la organización > Claude Code**](https://claude.ai/admin-settings/claude-code).

83 

74<h2 id="move-tasks-between-terminal-and-cloud">84<h2 id="move-tasks-between-terminal-and-cloud">

75 Mover tareas entre terminal y nube85 Mover tareas entre terminal y nube

76</h2>86</h2>


78Estos flujos de trabajo requieren la [CLI de Claude Code](/docs/es/quickstart) conectada a la misma cuenta de claude.ai. Puede iniciar nuevas sesiones en la nube desde su terminal, o extraer sesiones en la nube en su terminal para continuar localmente. Las sesiones en la nube persisten incluso si cierra su portátil, y puede monitorearlas desde cualquier lugar, incluyendo la aplicación móvil Claude.88Estos flujos de trabajo requieren la [CLI de Claude Code](/docs/es/quickstart) conectada a la misma cuenta de claude.ai. Puede iniciar nuevas sesiones en la nube desde su terminal, o extraer sesiones en la nube en su terminal para continuar localmente. Las sesiones en la nube persisten incluso si cierra su portátil, y puede monitorearlas desde cualquier lugar, incluyendo la aplicación móvil Claude.

79 89 

80<Note>90<Note>

81 Desde la CLI, la transferencia de sesión es unidireccional: puede extraer sesiones en la nube en su terminal con `--teleport`, pero no puede insertar una sesión de terminal existente en la nube. La bandera `--cloud` con una descripción de tarea crea una nueva sesión en la nube para su repositorio actual; con `-p` y un ID de sesión o URL de claude.ai/code, en su lugar [pone en cola un mensaje en esa sesión existente](/docs/es/claude-code-on-the-web#send-follow-ups-from-the-cli). La [aplicación de escritorio](/docs/es/desktop#continue-in-another-surface) proporciona un menú **Continuar en** que puede enviar una sesión local a la nube.91 Desde la CLI, la transferencia de sesión es unidireccional: puedes traer sesiones en la nube a tu terminal con `--teleport`, pero no puedes enviar una sesión de terminal existente a la nube. El flag `--cloud` con una descripción de tarea crea una nueva sesión en la nube para tu repositorio actual; con `-p` y un ID de sesión o una URL de claude.ai/code, en cambio, [pone en cola un mensaje en esa sesión existente](/docs/es/claude-code-on-the-web#send-follow-ups-from-the-cli). La [aplicación de escritorio](/docs/es/desktop#continue-in-another-surface) puede enviar a la nube una sesión local de su pestaña Code desde su menú **Open in**.

82</Note>92</Note>

83 93 

84<h3 id="from-terminal-to-cloud">94<h3 id="from-terminal-to-cloud">


173 Envíe seguimientos desde la CLI183 Envíe seguimientos desde la CLI

174</h3>184</h3>

175 185 

176Una vez que una sesión en la nube se está ejecutando, dondequiera que se ejecute, envíele un mensaje de seguimiento desde la CLI `claude` en cualquier máquina donde esté conectado con `claude auth login`. La CLI se autentica con sus credenciales de cuenta de Anthropic y no envía estado de sesión local, por lo que el comando no necesita ejecutarse desde la máquina que inició la sesión, y es igual en cada shell, incluyendo PowerShell.186Una vez que una sesión en la nube está en ejecución, dondequiera que se ejecute, envíale un mensaje de seguimiento desde la CLI `claude` en cualquier máquina donde hayas iniciado sesión con `claude auth login`. La CLI se autentica con las credenciales de tu cuenta de Anthropic y no envía ningún estado de sesión local, por lo que el comando no necesita ejecutarse desde la máquina que inició la sesión.

177 187 

178El comando publica un mensaje y sale:188El comando publica un mensaje y sale:

179 189 


189 `--cloud` requiere una cuenta de Anthropic. No está disponible cuando Claude Code está configurado para Amazon Bedrock, Google Cloud's Agent Platform u otro proveedor de terceros. Una [puerta de enlace LLM](/docs/es/llm-gateway) configurada solo a través de `ANTHROPIC_BASE_URL` no cuenta como proveedor de terceros para esta verificación, pero aún necesita iniciar sesión con `claude auth login`. La política `allow_remote_sessions` de su organización también debe estar habilitada. Un Propietario puede activarla en la configuración de administrador de Claude Code en claude.ai/admin-settings/claude-code.199 `--cloud` requiere una cuenta de Anthropic. No está disponible cuando Claude Code está configurado para Amazon Bedrock, Google Cloud's Agent Platform u otro proveedor de terceros. Una [puerta de enlace LLM](/docs/es/llm-gateway) configurada solo a través de `ANTHROPIC_BASE_URL` no cuenta como proveedor de terceros para esta verificación, pero aún necesita iniciar sesión con `claude auth login`. La política `allow_remote_sessions` de su organización también debe estar habilitada. Un Propietario puede activarla en la configuración de administrador de Claude Code en claude.ai/admin-settings/claude-code.

190</Note>200</Note>

191 201 

192<h4 id="output-and-errors">202<h4 id="output">

193 Salida y errores203 Salida

194</h4>204</h4>

195 205 

196En caso de éxito, el comando imprime el ID de sesión y un enlace para ver la sesión:206En caso de éxito, el comando imprime el ID de sesión y un enlace para ver la sesión:


203 213 

204Pase `--output-format json` para un resultado legible por máquina: `{ok, session_id, url}` en caso de éxito, o `{ok: false, session_id, error}` cuando el envío falla, por ejemplo cuando falta la sesión o está archivada. Los errores de configuración, como un proveedor no compatible o una política de organización deshabilitada, se imprimen en stderr sin JSON. `--output-format stream-json` no es compatible con `--cloud <session-id>`.214Pase `--output-format json` para un resultado legible por máquina: `{ok, session_id, url}` en caso de éxito, o `{ok: false, session_id, error}` cuando el envío falla, por ejemplo cuando falta la sesión o está archivada. Los errores de configuración, como un proveedor no compatible o una política de organización deshabilitada, se imprimen en stderr sin JSON. `--output-format stream-json` no es compatible con `--cloud <session-id>`.

205 215 

206La CLI prefija los errores con `Error: `. Una entrega fallida se envuelve como `failed to send message to cloud session <id>: <reason>`.216Si el envío falla, consulta [Errores al enviar a una sesión en la nube](#errors-when-sending-to-a-cloud-session).

207 

208| Mensaje | Qué significa |

209| - | - |

210| `Cloud sessions aren't available with <provider>. They run on Anthropic's infrastructure and require an Anthropic account.` | Claude Code está configurado para un proveedor de terceros. El mensaje nombra el proveedor con la etiqueta que usa su configuración, como `Amazon Bedrock` o `Google Vertex AI`. Elimine la configuración de ese proveedor, por ejemplo desestableciendo `CLAUDE_CODE_USE_BEDROCK`, e inicie sesión con una cuenta de Anthropic (`claude auth login`). |

211| `Cloud sessions are disabled by your organization's policy. Contact your organization admin to enable them.` | La política de organización `allow_remote_sessions` está deshabilitada. |

212| `Couldn't verify your organization's policy for cloud sessions. Check your network connection and try again.` | Claude Code no pudo obtener la política de su organización, por lo que rechaza el envío en lugar de asumir que las sesiones en la nube están permitidas. Verifique su conexión de red e intente de nuevo. |

213| `Attaching to an existing cloud session is not enabled for your account.` | Ejecutó `--cloud <session-id>` sin `-p`. Envíe el mensaje con `claude -p "your message" --cloud <session-id>`. |

214| `Session not found: <id>` | El ID o URL no coincide con una sesión a la que pueda acceder. Verifíquelo contra la URL de claude.ai/code de la sesión. |

215| `cloud session <id> is archived and cannot accept new messages` | La sesión ha sido archivada. Inicie una nueva sesión en su lugar. |

216 217 

217<h3 id="from-cloud-to-terminal">218<h3 id="from-cloud-to-terminal">

218 De nube a terminal219 De nube a terminal


239| Requisito | Detalles |240| Requisito | Detalles |

240| - | - |241| - | - |

241| Estado de git limpio | Su directorio de trabajo no debe tener cambios sin confirmar. Teleport le pide que guarde los cambios si es necesario. |242| Estado de git limpio | Su directorio de trabajo no debe tener cambios sin confirmar. Teleport le pide que guarde los cambios si es necesario. |

242| Repositorio correcto | Debe ejecutar `--teleport` desde un checkout del mismo repositorio, no desde una bifurcación. Si lo ejecuta desde un checkout de un repositorio diferente, Claude Code muestra un error que nombra tanto el repositorio de la sesión como el repositorio de su checkout. Antes de v2.1.219, el error no nombraba el repositorio de su checkout. Si Claude Code no puede analizar su remoto en un nombre de host, por ejemplo un alias de host SSH como `git@work:owner/repo.git`, le pide que confirme, y acepta el checkout cuando el propietario del remoto y el nombre del repositorio coinciden con el repositorio de la sesión. |243| Repositorio correcto | Debes ejecutar `--teleport` desde un checkout del mismo repositorio, no desde un fork. Si lo ejecutas desde un checkout de un repositorio diferente, Claude Code muestra un error que nombra tanto el repositorio de la sesión como el de tu checkout. Si Claude Code no puede interpretar tu remoto como un nombre de host, por ejemplo un alias de host SSH como `git@work:owner/repo.git`, te pide que confirmes, y acepta el checkout cuando el propietario y el nombre del repositorio del remoto coinciden con el repositorio de la sesión. |

243| Rama disponible | La rama de la sesión en la nube debe haber sido insertada en el remoto. Teleport la obtiene y verifica automáticamente. |244| Rama disponible | La rama de la sesión en la nube debe haber sido insertada en el remoto. Teleport la obtiene y verifica automáticamente. |

244| Misma cuenta | Debe estar autenticado en la misma cuenta de claude.ai utilizada en la sesión en la nube. |245| Misma cuenta | Debe estar autenticado en la misma cuenta de claude.ai utilizada en la sesión en la nube. |

245 246 


249 `--teleport` no está disponible250 `--teleport` no está disponible

250</h4>251</h4>

251 252 

252Teleport requiere autenticación de suscripción de claude.ai. Si está autenticado a través de clave de API, ejecute `/login` para iniciar sesión con su cuenta de claude.ai en su lugar. Si el error nombra su proveedor en su lugar, las sesiones en la nube no están disponibles a través de proveedores de terceros; consulte la [tabla de errores](#output-and-errors). Si ya está conectado a través de claude.ai y `--teleport` aún no está disponible, su organización puede haber deshabilitado sesiones en la nube.253Teleport requiere autenticación con suscripción de claude.ai. Busca el caso que coincide con el tuyo:

254 

255* **Te autenticaste mediante una clave de API**: ejecuta `/login` para iniciar sesión con tu cuenta de claude.ai en su lugar

256* **El error nombra a tu proveedor**: las sesiones en la nube no están disponibles a través de proveedores de terceros. Consulta la [tabla de errores](#errors-when-sending-to-a-cloud-session)

257* **Ya iniciaste sesión mediante claude.ai**: es posible que tu organización haya deshabilitado las sesiones en la nube

253 258 

254<h2 id="work-with-sessions">259<h2 id="work-with-sessions">

255 Trabajar con sesiones260 Trabajar con sesiones


257 262 

258Las sesiones aparecen en la barra lateral en claude.ai/code. Desde allí puede revisar cambios, compartir con compañeros de equipo, archivar trabajo terminado o eliminar sesiones de forma permanente.263Las sesiones aparecen en la barra lateral en claude.ai/code. Desde allí puede revisar cambios, compartir con compañeros de equipo, archivar trabajo terminado o eliminar sesiones de forma permanente.

259 264 

260<h3 id="take-back-a-queued-message">265<h3 id="permission-modes-in-cloud-sessions">

261 Recuperar un mensaje en cola266 Modos de permisos en sesiones en la nube

262</h3>267</h3>

263 268 

264Si envía un mensaje mientras Claude está trabajando, el mensaje se pone en cola hasta que Claude lo lee. Para recuperar un mensaje en cola, haga clic en la ✕ que aparece en él. El texto vuelve al cuadro de mensaje para que pueda editarlo o enviar algo más.269Eliges el [modo de permisos](/docs/es/permission-modes) de una sesión en la nube desde el [menú desplegable de modo](/docs/es/permission-modes#switch-permission-modes), tanto cuando creas la tarea como mientras se ejecuta la sesión.

265 270 

266Si Claude ya ha leído el mensaje, permanece en la conversación.271Claude Code reanuda una sesión en el modo de permisos en el que estaba cuando haces cualquiera de estas acciones:

272 

273* Reabrir una sesión cuyo [entorno alojado por Anthropic ha expirado](#environment-expired)

274* Enviar un mensaje a una sesión que un ejecutor autohospedado [liberó mientras estaba inactivo](/docs/es/self-hosted-environments-reference#runner-cli-flags)

275 

276<h3 id="review-changes">

277 Revisar cambios

278</h3>

279 

280Cada sesión muestra un indicador de diff con líneas agregadas y eliminadas, como `+42 -18`. Selecciónalo para abrir la vista de diff, dejar comentarios en línea en líneas específicas y enviarlos a Claude con tu próximo mensaje.

281 

282La vista de diff compara los cambios de la sesión contra su rama base de forma predeterminada. Para comparar contra cualquier otra rama en el repositorio, selecciona **Compare against** y elige una.

283 

284Claude Code calcula estos diffs a partir del contenido de blob de git sin procesar, por lo que los controladores de diff y los filtros `textconv` configurados en el repositorio no se aplican.

285 

286Estos pasos se tratan en otras secciones:

287 

288* **El tutorial completo, incluida la creación de PR**: consulta [Revisar e iterar](/docs/es/web-quickstart#review-and-iterate)

289* **Hacer que Claude monitoree automáticamente el PR para detectar fallos de CI y comentarios de revisión**: consulta [Corregir automáticamente pull requests](#auto-fix-pull-requests)

267 290 

268<h3 id="manage-context">291<h3 id="manage-context">

269 Gestionar contexto292 Gestionar contexto


291 314 

292Los [equipos de agentes](/docs/es/agent-teams) están desactivados de forma predeterminada pero se pueden habilitar agregando `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` a sus [variables de entorno](/docs/es/cloud-environments#set-environment-variables).315Los [equipos de agentes](/docs/es/agent-teams) están desactivados de forma predeterminada pero se pueden habilitar agregando `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` a sus [variables de entorno](/docs/es/cloud-environments#set-environment-variables).

293 316 

294<h3 id="permission-modes-in-cloud-sessions">317<h3 id="take-back-a-queued-message">

295 Modos de permiso en sesiones en la nube318 Recuperar un mensaje en cola

296</h3>

297 

298Elige el [modo de permiso](/docs/es/permission-modes) de una sesión en la nube desde el [menú desplegable de modo](/docs/es/permission-modes#switch-permission-modes), tanto cuando crea la tarea como mientras se ejecuta la sesión. Cuando reabre una sesión cuyo [entorno alojado por Anthropic ha expirado](#environment-expired), o envía un mensaje a una sesión que un ejecutor autohospedado [liberó mientras estaba inactivo](/docs/es/self-hosted-environments-reference#runner-cli-flags), Claude Code reanuda la sesión en el modo de permiso en el que estaba.

299 

300<h3 id="review-changes">

301 Revisar cambios

302</h3>319</h3>

303 320 

304Cada sesión muestra un indicador de diferencia con líneas agregadas y eliminadas, como `+42 -18`. Selecciónelo para abrir la vista de diferencia, dejar comentarios en línea en líneas específicas y enviarlos a Claude con su próximo mensaje.321Si envías un mensaje mientras Claude está trabajando, el mensaje se pone en cola hasta que Claude lo lee. Para recuperar un mensaje en cola, haz clic en la ✕ que aparece en él. El texto vuelve al cuadro de mensaje para que puedas editarlo o enviar algo más.

305 

306La vista de diferencia compara los cambios de la sesión contra su rama base de forma predeterminada. Para comparar contra cualquier otra rama en el repositorio, seleccione **Compare against** y elija una.

307 

308Claude Code calcula estas diferencias, incluidas las diferencias por archivo mostradas mientras Claude edita, a partir del contenido de blob de git sin procesar, por lo que los controladores de diferencia y los filtros `textconv` configurados en el repositorio no se aplican. Para un archivo en un repositorio que no es uno de los propios checkouts de la sesión, como uno clonado dentro del espacio de trabajo durante la sesión, la diferencia por archivo muestra la edición de Claude en sí misma en lugar de una comparación de git.

309 322 

310Consulte [Revisar e iterar](/docs/es/web-quickstart#review-and-iterate) para el tutorial completo que incluye la creación de PR. Para que Claude monitoree automáticamente el PR para detectar fallos de CI y comentarios de revisión, consulte [Corregir automáticamente solicitudes de extracción](#auto-fix-pull-requests).323Si Claude ya ha leído el mensaje, permanece en la conversación.

311 324 

312<h3 id="share-sessions">325<h3 id="share-sessions">

313 Compartir sesiones326 Compartir sesiones


319 Compartir desde una cuenta Enterprise o Team332 Compartir desde una cuenta Enterprise o Team

320</h4>333</h4>

321 334 

322Para cuentas Enterprise y Team, las dos opciones de visibilidad son **Private** y **Team**. La visibilidad de Team hace que la sesión sea visible para otros miembros de su organización claude.ai. Las sesiones de [Claude en Slack](/docs/es/slack) se comparten automáticamente con visibilidad de Team.335Así funciona el uso compartido para cuentas Enterprise y Team:

323 336 

324La verificación de acceso al repositorio está habilitada de forma predeterminada, según la cuenta de GitHub conectada a la cuenta del destinatario. El nombre para mostrar de su cuenta es visible para todos los destinatarios con acceso.337* **Opciones de visibilidad**: **Private** y **Team**. La visibilidad de Team hace que la sesión sea visible para otros miembros de tu organización de claude.ai

338* **Acceso al repositorio**: la verificación está habilitada de forma predeterminada, según la cuenta de GitHub conectada a la cuenta del destinatario

339* **Tu nombre**: el nombre para mostrar de tu cuenta es visible para todos los destinatarios con acceso

340* **Sesiones de Slack**: las sesiones de [Claude en Slack](/docs/es/slack) se comparten automáticamente con visibilidad de Team

325 341 

326<h4 id="share-from-a-max-or-pro-account">342<h4 id="share-from-a-max-or-pro-account">

327 Compartir desde una cuenta Max o Pro343 Compartir desde una cuenta Max o Pro

328</h4>344</h4>

329 345 

330Para cuentas Max y Pro, las dos opciones de visibilidad son **Private** y **Public**. La visibilidad pública hace que la sesión sea visible para cualquier usuario que haya iniciado sesión en claude.ai.346Así funciona el uso compartido para cuentas Max y Pro:

331 347 

332Verifique su sesión para detectar contenido sensible antes de compartir. Las sesiones pueden contener código y credenciales de repositorios privados de GitHub. La verificación de acceso al repositorio no está habilitada de forma predeterminada.348* **Opciones de visibilidad**: **Private** y **Public**. La visibilidad pública hace que la sesión sea visible para cualquier usuario que haya iniciado sesión en claude.ai

349* **Acceso al repositorio**: la verificación no está habilitada de forma predeterminada

350* **Contenido sensible**: revisa tu sesión antes de compartirla. Las sesiones pueden contener código y credenciales de repositorios privados de GitHub

333 351 

334Para requerir que los destinatarios tengan acceso al repositorio, u ocultar su nombre de sesiones compartidas, vaya a [**Settings > Claude Code > Sharing settings**](https://claude.ai/settings/claude-code).352Para requerir que los destinatarios tengan acceso al repositorio, u ocultar su nombre de sesiones compartidas, vaya a [**Settings > Claude Code > Sharing settings**](https://claude.ai/settings/claude-code).

335 353 


421 No se puede obtener UUID de organización439 No se puede obtener UUID de organización

422</h3>440</h3>

423 441 

424`claude --cloud` y `claude --teleport` requieren iniciar sesión con una cuenta de claude.ai. Si se autentica con una clave de API, o sus detalles de cuenta almacenados están obsoletos, estos comandos fallan con `Unable to get organization UUID` o un mensaje de que la autenticación de clave de API no es suficiente. Con autenticación de clave de API o detalles de cuenta obsoletos, ejecutar `claude --teleport` sin un ID de sesión muestra `Error loading Claude Code sessions` en el selector de sesión en lugar de cualquiera de los dos mensajes, y se aplica la misma solución.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 

444* `Unable to get organization UUID`

445* Un mensaje de que la autenticación con clave de API no es suficiente

446* `Error loading Claude Code sessions` en el selector de sesiones, cuando ejecutas `claude --teleport` sin un ID de sesión

425 447 

426Ejecute `/login` para iniciar sesión con su cuenta de claude.ai, luego reintente el comando. Si el error nombra su proveedor en su lugar, consulte la [tabla de errores](#output-and-errors): las sesiones en la nube no están disponibles a través de proveedores de terceros.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.

427 449 

428<h3 id="remote-control-session-expired-or-access-denied">450<h3 id="remote-control-session-expired-or-access-denied">

429 Sesión de Control Remoto expirada o acceso denegado451 Sesión de Control Remoto expirada o acceso denegado


435* Confirme que está conectado a la misma cuenta que posee la sesión457* Confirme que está conectado a la misma cuenta que posee la sesión

436* Si ve `Remote Control may not be available for this organization`, un propietario no ha habilitado sesiones en la nube para su organización458* Si ve `Remote Control may not be available for this organization`, un propietario no ha habilitado sesiones en la nube para su organización

437 459 

460<h3 id="errors-when-sending-to-a-cloud-session">

461 Errores al enviar a una sesión en la nube

462</h3>

463 

464Estos errores surgen al ejecutar `claude` con [`--cloud <session-id>`](#send-follow-ups-from-the-cli), con o sin `-p`. La CLI antepone `Error: ` a los errores. Un envío fallido se presenta como `failed to send message to cloud session <id>: <reason>`.

465 

466| Mensaje | Qué significa |

467| - | - |

468| `Cloud sessions aren't available with <provider>. They run on Anthropic's infrastructure and require an Anthropic account.` | Claude Code está configurado para un proveedor de terceros. El mensaje nombra al proveedor con la etiqueta que usa tu configuración, como `Amazon Bedrock` o `Google Vertex AI`. Elimina la configuración de ese proveedor, por ejemplo quitando la variable `CLAUDE_CODE_USE_BEDROCK`, e inicia sesión con una cuenta de Anthropic (`claude auth login`). |

469| `Cloud sessions are disabled by your organization's policy. Contact your organization admin to enable them.` | La política de organización `allow_remote_sessions` está desactivada. |

470| `Couldn't verify your organization's policy for cloud sessions. Check your network connection and try again.` | Claude Code no pudo obtener la política de tu organización, por lo que rechaza el envío en lugar de asumir que las sesiones en la nube están permitidas. Verifica tu conexión de red y reintenta. |

471| `Attaching to an existing cloud session is not enabled for your account.` | Ejecutaste `--cloud <session-id>` sin `-p`. Envía el mensaje con `claude -p "your message" --cloud <session-id>`. |

472| `Session not found: <id>` | El ID o la URL no coincide con una sesión a la que tengas acceso. Compáralo con la URL de claude.ai/code de la sesión. |

473| `cloud session <id> is archived and cannot accept new messages` | La sesión se archivó. Inicia una nueva sesión en su lugar. |

474 

438<h3 id="environment-expired">475<h3 id="environment-expired">

439 Entorno expirado476 Entorno expirado

440</h3>477</h3>

441 478 

442Las sesiones en la nube se detienen después de un período de inactividad y la VM de la sesión se reclama. Una sesión cuenta como inactiva mientras espera que apruebe una llamada de herramienta de [conector MCP](/docs/es/cloud-environments#network-access) o para iniciar sesión en un servidor MCP, y puede expirar durante esa espera.479Las sesiones en la nube se detienen después de un período de inactividad y la VM de la sesión se reclama. Una sesión cuenta como inactiva mientras espera que apruebe una llamada de herramienta de [conector MCP](/docs/es/cloud-environments#network-access) o para iniciar sesión en un servidor MCP, y puede expirar durante esa espera.

443 480 

444Reabra la sesión desde [claude.ai/code](https://claude.ai/code) para aprovisionar una VM nueva con su historial de conversación restaurado. El trabajo de fondo que aún se estaba ejecutando cuando se reclamó la VM, como subagentes y comandos de shell, no se restaura.481Reabre la sesión desde [claude.ai/code](https://claude.ai/code) para aprovisionar una VM nueva:

482 

483* **Se restaura**: tu historial de conversación

484* **No se restaura**: el trabajo en segundo plano que aún se estaba ejecutando cuando se reclamó la VM, como subagentes y comandos de shell

445 485 

446<h2 id="limitations">486<h2 id="limitations">

447 Limitaciones487 Limitaciones

Details

429 badge: 'local',429 badge: 'local',

430 oneLiner: 'App state and UI preferences',430 oneLiner: 'App state and UI preferences',

431 when: <>Read at session start for your preferences and MCP servers. Claude Code writes back to it when you change settings in <C>/config</C> or approve trust prompts</>,431 when: <>Read at session start for your preferences and MCP servers. Claude Code writes back to it when you change settings in <C>/config</C> or approve trust prompts</>,

432 description: <>Holds state that does not belong in settings.json: theme, OAuth session, per-project trust decisions, your personal MCP servers, and UI toggles. Mostly managed through <C>/config</C> rather than editing directly.</>,432 description: <>Holds state that does not belong in settings.json: OAuth session, per-project trust decisions, your personal MCP servers, and UI toggles. Mostly managed through <C>/config</C> rather than editing directly.</>,

433 tips: [<>IDE toggles like <C>autoConnectIde</C> and <C>externalEditorContext</C> live here, not in settings.json</>, <>The <C>projects</C> key tracks per-project state like trust-dialog acceptance and last-session metrics. Permission rules you approve in-session go to <C>.claude/settings.local.json</C> instead</>, <>MCP servers here are yours only: user scope applies across all projects, local scope is per-project but not committed. Team-shared servers go in <C>.mcp.json</C> at the project root instead</>],433 tips: [<>IDE toggles like <C>autoConnectIde</C> and <C>externalEditorContext</C> live here, not in settings.json</>, <>The <C>projects</C> key tracks per-project state like trust-dialog acceptance and last-session metrics. Permission rules you approve in-session go to <C>.claude/settings.local.json</C> instead</>, <>MCP servers here are yours only: user scope applies across all projects, local scope is per-project but not committed. Team-shared servers go in <C>.mcp.json</C> at the project root instead</>],

434 example: `{434 example: `{

435 "autoConnectIde": true,435 "autoConnectIde": true,


497 oneLiner: 'Custom keyboard shortcuts',497 oneLiner: 'Custom keyboard shortcuts',

498 when: 'Read at session start and hot-reloaded when you edit the file',498 when: 'Read at session start and hot-reloaded when you edit the file',

499 description: <>Rebind keyboard shortcuts in the interactive CLI. Run <C>/keybindings</C> to create or open this file with a schema reference. Ctrl+C, Ctrl+D, Ctrl+M, and Caps Lock are reserved and cannot be rebound.</>,499 description: <>Rebind keyboard shortcuts in the interactive CLI. Run <C>/keybindings</C> to create or open this file with a schema reference. Ctrl+C, Ctrl+D, Ctrl+M, and Caps Lock are reserved and cannot be rebound.</>,

500 exampleIntro: <>This example binds <C>Ctrl+E</C> to open your external editor and unbinds <C>Ctrl+U</C> by setting it to <C>null</C>. The <C>context</C> field scopes bindings to a specific part of the CLI, here the main chat input.</>,500 exampleIntro: <>This example binds <C>Ctrl+E</C> to open your external editor and unbinds <C>Ctrl+S</C> by setting it to <C>null</C>. The <C>context</C> field scopes bindings to a specific part of the CLI, here the main chat input.</>,

501 example: `{501 example: `{

502 "$schema": "https://www.schemastore.org/claude-code-keybindings.json",502 "$schema": "https://www.schemastore.org/claude-code-keybindings.json",

503 "$docs": "https://code.claude.com/docs/en/keybindings",503 "$docs": "https://code.claude.com/docs/en/keybindings",


506 "context": "Chat",506 "context": "Chat",

507 "bindings": {507 "bindings": {

508 "ctrl+e": "chat:externalEditor",508 "ctrl+e": "chat:externalEditor",

509 "ctrl+u": null509 "ctrl+s": null

510 }510 }

511 }511 }

512 ]512 ]


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 no puede anular, excepto por [excepciones limitadas](/docs/es/settings#security-keys-where-the-stricter-value-applies). Consulte [dónde guardar el archivo](/docs/es/managed-settings#deploy-a-managed-settings-file) y [qué fuente administrada utiliza Claude Code](/docs/es/managed-settings#precedence-within-the-managed-tier). |

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

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

1458| Plugins instalados | `~/.claude/plugins` | Mercados clonados, versiones de plugins instalados, el registro de instalación `installed_plugins.json`, y datos por plugin, administrados por comandos `claude plugin`. Los plugins [sincronizados desde su cuenta claude.ai](/docs/es/plugins/loading#synced-plugins) se descargan en `~/.claude/plugins/synced/`. Para un plugin instalado desde un mercado 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 mercado de directorio 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é. Consulte [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.

1461 1461 

Details

26 26 

27* **Flujos CLI como `/web-setup`**: crean **Default** para usted27* **Flujos CLI como `/web-setup`**: crean **Default** para usted

28* **Incorporación web en Pro y Max**: crea **Default** para usted28* **Incorporación web en Pro y Max**: crea **Default** para usted

29* **Incorporación web en Team y Enterprise**: muestra un formulario **Crear su primer entorno en la nube** a menos que un Propietario haya activado [Configuración rápida de web](/docs/es/claude-code-on-the-web#github-authentication-options); mantenga los valores predeterminados del formulario y haga clic en **Crear y finalizar** para obtener el mismo entorno **Default**29* **Incorporación web en Team y Enterprise**: muestra un formulario **Crea tu primer entorno en la nube** a menos que un Propietario haya activado la [Configuración rápida](/docs/es/claude-code-on-the-web#quick-setup-for-team-and-enterprise); mantén los valores predeterminados del formulario y haz clic en **Crear y finalizar** para obtener el mismo entorno **Default**

30 30 

31**Default** no lleva ninguna configuración propia:31**Default** no lleva ninguna configuración propia:

32 32 

costs.md +2 −2

Details

111| Su rol | Lo que hace `/usage-credits` |111| Su rol | Lo que hace `/usage-credits` |

112| :- | :- |112| :- | :- |

113| Suscriptor de Pro o Max | Abre [**Settings > Usage**](https://claude.ai/settings/usage) en claude.ai en el navegador. En su sección **Usage credits** puede activar o desactivar créditos de uso y verificar su saldo de crédito, el gasto de este mes y su límite de gasto mensual |113| Suscriptor de Pro o Max | Abre [**Settings > Usage**](https://claude.ai/settings/usage) en claude.ai en el navegador. En su sección **Usage credits** puede activar o desactivar créditos de uso y verificar su saldo de crédito, el gasto de este mes y su límite de gasto mensual |

114| Miembro de Team o Enterprise con acceso de facturación | Abre la configuración de uso de su organización, [**Admin settings > Usage**](https://claude.ai/admin-settings/usage), en el navegador |114| Miembro de Team o Enterprise con acceso de facturación | Abre la configuración de uso de tu organización, [**Organization settings > Usage**](https://claude.ai/admin-settings/usage), en el navegador |

115| Miembro de Team o Enterprise sin acceso de facturación | Le pide que confirme, luego envía una solicitud a los administradores de su organización. Antes de v2.1.211, Claude Code enviaba la solicitud sin un paso de confirmación |115| Miembro de Team o Enterprise sin acceso de facturación | Le pide que confirme, luego envía una solicitud a los administradores de su organización. Antes de v2.1.211, Claude Code enviaba la solicitud sin un paso de confirmación |

116 116 

117Para miembros de Team y Enterprise sin acceso de facturación, la confirmación aparece solo en sesiones interactivas: en modo no interactivo con la bandera `-p` y desde [Control Remoto](/docs/es/remote-control), el comando no envía ninguna solicitud y le dice que la ejecute en una sesión interactiva en su lugar.117Para miembros de Team y Enterprise sin acceso de facturación, la confirmación aparece solo en sesiones interactivas: en modo no interactivo con la bandera `-p` y desde [Control Remoto](/docs/es/remote-control), el comando no envía ninguna solicitud y le dice que la ejecute en una sesión interactiva en su lugar.


229* **"Ha alcanzado su límite de sesión" o "Ha alcanzado su límite semanal"**: una ventana de uso basada en puesto en un plan de suscripción, compartida en todos los modelos, por lo que el desarrollador no puede restaurar el acceso cambiando modelos con `/model`. El mensaje muestra cuándo se reinicia la ventana. Después del mensaje específico del modelo "Ha alcanzado su límite de Opus" o "Ha alcanzado su límite de Sonnet", cambiar a un modelo fuera de esa familia con `/model` sí mantiene al desarrollador trabajando. Consulte [errores de límite de uso](/docs/es/errors#youve-hit-your-session-limit). Lo que el desarrollador puede hacer mientras tanto:229* **"Ha alcanzado su límite de sesión" o "Ha alcanzado su límite semanal"**: una ventana de uso basada en puesto en un plan de suscripción, compartida en todos los modelos, por lo que el desarrollador no puede restaurar el acceso cambiando modelos con `/model`. El mensaje muestra cuándo se reinicia la ventana. Después del mensaje específico del modelo "Ha alcanzado su límite de Opus" o "Ha alcanzado su límite de Sonnet", cambiar a un modelo fuera de esa familia con `/model` sí mantiene al desarrollador trabajando. Consulte [errores de límite de uso](/docs/es/errors#youve-hit-your-session-limit). Lo que el desarrollador puede hacer mientras tanto:

230 * Ejecute `/usage-credits` para solicitar uso más allá de la asignación, si tiene [créditos de uso](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) activados.230 * Ejecute `/usage-credits` para solicitar uso más allá de la asignación, si tiene [créditos de uso](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) activados.

231 * En Claude Code v2.1.234 o posterior, [espere y continúe la tarea interrumpida automáticamente después del reinicio](/docs/es/interactive-mode#wait-for-a-usage-limit-to-reset); esa sección enumera cuándo Claude Code inicia la espera por su cuenta y cuándo el desarrollador la elige de `/rate-limit-options`. Para controlar en su flota si Claude Code inicia esa espera por su cuenta, establezca [`autoContinueAtUsageLimit`](/docs/es/settings-reference#autocontinueatusagelimit) en [configuración administrada](/docs/es/settings#settings-precedence).231 * En Claude Code v2.1.234 o posterior, [espere y continúe la tarea interrumpida automáticamente después del reinicio](/docs/es/interactive-mode#wait-for-a-usage-limit-to-reset); esa sección enumera cuándo Claude Code inicia la espera por su cuenta y cuándo el desarrollador la elige de `/rate-limit-options`. Para controlar en su flota si Claude Code inicia esa espera por su cuenta, establezca [`autoContinueAtUsageLimit`](/docs/es/settings-reference#autocontinueatusagelimit) en [configuración administrada](/docs/es/settings#settings-precedence).

232* **"Ha alcanzado su límite de gasto individual", "límite de gasto mensual de la org", o "presupuesto compartido del equipo"**: la solicitud del desarrollador se facturaría a créditos de uso, y esos créditos han alcanzado un límite de gasto que estableció. Para permitir que el desarrollador continúe, vaya a [**Configuración de administrador > Uso**](https://claude.ai/admin-settings/usage) y aumente el límite que menciona el mensaje. Cuando el mensaje también menciona un tiempo de reinicio del plan, el desarrollador puede esperar hasta entonces. Consulte [la referencia de errores](/docs/es/errors#youve-hit-your-monthly-spend-limit) para cada variante.232* **"You've hit your individual spend limit", "org's monthly spend limit" o "team's shared budget"**: la solicitud del desarrollador se facturaría a créditos de uso, y esos créditos alcanzaron un límite de gasto que estableciste. Para que el desarrollador pueda continuar, ve a [**Configuración de la organización > Uso**](https://claude.ai/admin-settings/usage) y aumenta el límite que indica el mensaje. Si el mensaje también indica una hora de restablecimiento del plan, el desarrollador puede esperar hasta entonces. Consulta [la referencia de errores](/docs/es/errors#youve-hit-your-monthly-spend-limit) para cada variante.

233* **Un mensaje de límite de gasto de una [puerta de enlace de aplicaciones Claude](/docs/es/claude-apps-gateway)**: el desarrollador pasó un límite de gasto que estableció en su puerta de enlace autohospedada, y la puerta de enlace bloquea sus solicitudes hasta que el período se reinicia o usted aumenta el límite. Consulte [límites de gasto de puerta de enlace](/docs/es/claude-apps-gateway-spend-limits) para límites, cronogramas de reinicio y el mensaje que ve el desarrollador.233* **Un mensaje de límite de gasto de una [puerta de enlace de aplicaciones Claude](/docs/es/claude-apps-gateway)**: el desarrollador pasó un límite de gasto que estableció en su puerta de enlace autohospedada, y la puerta de enlace bloquea sus solicitudes hasta que el período se reinicia o usted aumenta el límite. Consulte [límites de gasto de puerta de enlace](/docs/es/claude-apps-gateway-spend-limits) para límites, cronogramas de reinicio y el mensaje que ve el desarrollador.

234* **Una advertencia de contexto o auto-compact**: no es un límite de uso. La conversación ha crecido cerca de la [ventana de auto-compact](/docs/es/model-config#set-the-auto-compact-window) de la sesión, el umbral donde Claude Code resume el historial anterior para liberar espacio. Dirija al desarrollador a [reducir el uso de tokens](#reduce-token-usage).234* **Una advertencia de contexto o auto-compact**: no es un límite de uso. La conversación ha crecido cerca de la [ventana de auto-compact](/docs/es/model-config#set-the-auto-compact-window) de la sesión, el umbral donde Claude Code resume el historial anterior para liberar espacio. Dirija al desarrollador a [reducir el uso de tokens](#reduce-token-usage).

235* **Gasto inesperadamente alto en un plan de API o proveedor de nube**: generalmente se remonta a sesiones largas que nunca se borraron o a Opus dejado como modelo predeterminado. Los hábitos de mayor impacto para compartir son borrar entre tareas no relacionadas y hacer coincidir el modelo con el trabajo, ambos cubiertos en [reducir el uso de tokens](#reduce-token-usage).235* **Gasto inesperadamente alto en un plan de API o proveedor de nube**: generalmente se remonta a sesiones largas que nunca se borraron o a Opus dejado como modelo predeterminado. Los hábitos de mayor impacto para compartir son borrar entre tareas no relacionadas y hacer coincidir el modelo con el trabajo, ambos cubiertos en [reducir el uso de tokens](#reduce-token-usage).

Details

192Cualquiera de estos muestra el texto completo:192Cualquiera de estos muestra el texto completo:

193 193 

194* Presiona `Ctrl+O` para abrir el [visor de transcripción](/docs/es/interactive-mode#transcript-viewer) y lee el texto completo bajo el nombre de sesión del remitente.194* Presiona `Ctrl+O` para abrir el [visor de transcripción](/docs/es/interactive-mode#transcript-viewer) y lee el texto completo bajo el nombre de sesión del remitente.

195* En el [renderizado en pantalla completa](/docs/es/fullscreen#use-the-mouse), haz clic en una línea de vista previa que omite parte del mensaje para expandirla en el lugar.

195* En una sesión iniciada con [`--verbose`](/docs/es/cli-reference#cli-flags), Claude Code muestra el texto completo en lugar de la vista previa.196* En una sesión iniciada con [`--verbose`](/docs/es/cli-reference#cli-flags), Claude Code muestra el texto completo en lugar de la vista previa.

196 197 

197La vista previa acorta solo lo que ves. Ya sea que la expandas o no, Claude lee el mensaje completo.198La vista previa acorta solo lo que ves. Ya sea que la expandas o no, Claude lee el mensaje completo.

desktop.md +37 −37

Details

244 Cambiar modos de vista244 Cambiar modos de vista

245</h3>245</h3>

246 246 

247Los modos de vista controlan cuánto detalle aparece en la transcripción del chat. Cambie de modo desde el menú desplegable **Transcript view** junto al botón de envío, o presione **Ctrl+O** en macOS o Windows para ciclar a través de ellos. El modo Thinking aparece en el menú desplegable solo después de que Claude ha producido pensamiento en la sesión que está viendo.247Los modos de vista controlan cuánto detalle aparece en la transcripción del chat. Para cambiar de modo de vista, abre el menú de la sesión desde el símbolo de intercalación junto al título de la sesión y selecciona **Transcript view**, o presiona **Ctrl+O** en macOS o Windows para recorrerlos. El modo Thinking aparece en el menú solo después de que Claude haya producido pensamiento en la sesión que estás viendo.

248 248 

249| Modo | Lo que muestra |249| Modo | Lo que muestra |

250| - | - |250| - | - |


372 Gestionar sesiones372 Gestionar sesiones

373</h2>373</h2>

374 374 

375Cada sesión es una conversación independiente con su propio contexto y cambios. Puede ejecutar múltiples sesiones en paralelo, ramificar chats laterales, permitir que Claude verifique y envíe mensajes a sus otras sesiones, enviar trabajo a la nube o permitir que Dispatch inicie sesiones para usted desde su teléfono.375Cada sesión es una conversación independiente con su propio contexto y cambios. Puedes ejecutar múltiples sesiones en paralelo, abrir chats laterales, permitir que Claude revise y envíe mensajes a tus otras sesiones, enviar trabajo a la nube o permitir que Dispatch inicie sesiones por ti desde tu teléfono.

376 376 

377<h3 id="work-in-parallel-with-sessions">377<h3 id="work-in-parallel-with-sessions">

378 Trabajar en paralelo con sesiones378 Trabajar en paralelo con sesiones

379</h3>379</h3>

380 380 

381Haga clic en **+ New session** en la barra lateral, o presione **Cmd+N** en macOS o **Ctrl+N** en Windows, para trabajar en múltiples tareas en paralelo. Presione **Ctrl+Tab** y **Ctrl+Shift+Tab** para ciclar a través de sesiones en la barra lateral. Para repositorios de Git, seleccione la opción **worktree** junto al nombre de la rama para dar a la sesión su propia copia aislada de su proyecto usando [Git worktrees](/docs/es/worktrees), por lo que los cambios en una sesión no afectan otras sesiones hasta que los confirme.381Haz clic en **+ New session** en la barra lateral, o presiona **Cmd+N** en macOS o **Ctrl+N** en Windows, para trabajar en múltiples tareas en paralelo. Presiona **Ctrl+Tab** y **Ctrl+Shift+Tab** para recorrer las sesiones de la barra lateral. Para repositorios de Git, selecciona la opción **worktree** junto al nombre de la rama para dar a la sesión su propia copia aislada de tu proyecto usando [Git worktrees](/docs/es/worktrees), de modo que los cambios en una sesión no afecten a otras sesiones hasta que hagas commit.

382 382 

383Para ver dos sesiones a la vez, mantenga presionado **Cmd** en macOS o **Ctrl** en Windows y haga clic en una sesión en la barra lateral. La sesión se abre en un segundo panel junto al que ya tiene abierto. Mientras la división está activa, hacer clic en otra sesión de la barra lateral reemplaza el panel que tenga el foco. Presione **Cmd+\\** en macOS o **Ctrl+\\** en Windows para cerrar el panel enfocado y volver a una única sesión.383Para ver dos sesiones a la vez, mantén presionado **Cmd** en macOS o **Ctrl** en Windows y haz clic en una sesión en la barra lateral. La sesión se abre en un segundo panel junto al que ya tienes abierto. Mientras la división está activa, hacer clic en otra sesión de la barra lateral reemplaza el panel que tenga el foco. Presiona **Cmd+\\** en macOS o **Ctrl+\\** en Windows para cerrar el panel enfocado y volver a una única sesión.

384 384 

385Los worktrees se almacenan en `<project-root>/.claude/worktrees/` de forma predeterminada. Puede cambiar esto a un directorio personalizado en Configuración → Claude Code bajo "Worktree location". También puede establecer un prefijo de rama que se antepone a cada nombre de rama de worktree, lo que es útil para mantener las ramas creadas por Claude organizadas. Para eliminar un worktree cuando haya terminado, pase el cursor sobre la sesión en la barra lateral y haga clic en el icono de archivo. Para que las sesiones se archiven automáticamente cuando su solicitud de extracción se fusiona o cierra, active **Auto-archive after PR merge or close** en Configuración → Claude Code. Auto-archive solo se aplica a sesiones locales que han terminado de ejecutarse.385Los worktrees se almacenan en `<project-root>/.claude/worktrees/` de forma predeterminada. Puedes cambiar esto a un directorio personalizado en Configuración → Claude Code bajo "Worktree location". También puedes establecer un prefijo de rama que se antepone a cada nombre de rama de worktree, lo que es útil para mantener organizadas las ramas creadas por Claude. Para eliminar un worktree cuando hayas terminado, pasa el cursor sobre la sesión en la barra lateral y haz clic en el icono de archivar. Para que las sesiones se archiven automáticamente cuando su pull request se fusione o se cierre, activa **Auto-archive after PR merge or close** en Configuración → Claude Code. Auto-archive solo se aplica a sesiones locales que han terminado de ejecutarse.

386 386 

387Para incluir archivos ignorados por git como `.env` en nuevos worktrees, cree un [archivo `.worktreeinclude`](/docs/es/worktrees#copy-gitignored-files-into-worktrees) en la raíz de su proyecto.387Para incluir archivos ignorados por git como `.env` en nuevos worktrees, crea un [archivo `.worktreeinclude`](/docs/es/worktrees#copy-gitignored-files-into-worktrees) en la raíz de tu proyecto.

388 388 

389<Note>389<Note>

390 El aislamiento de sesión requiere [Git](https://git-scm.com/downloads). La mayoría de las Macs incluyen Git de forma predeterminada. Ejecute `git --version` en Terminal para verificar; si imprime un número de versión, Git está instalado. Si encuentra errores de Git, pida ayuda a Claude en la [pestaña Cowork](https://claude.com/product/cowork) para solucionar problemas de su configuración.390 El aislamiento de sesión requiere [Git](https://git-scm.com/downloads). La mayoría de las Macs incluyen Git de forma predeterminada. Ejecuta `git --version` en Terminal para verificarlo; si imprime un número de versión, Git está instalado. Si encuentras errores de Git, pide ayuda a Claude en la [pestaña Cowork](https://claude.com/product/cowork) para solucionar problemas de tu configuración.

391</Note>391</Note>

392 392 

393Use los controles en la parte superior de la barra lateral para filtrar sesiones por estado, proyecto o entorno, y para agrupar sesiones por proyecto. Para renombrar una sesión, haga clic en el título de la sesión en la barra de herramientas en la parte superior de la sesión activa.393Usa los controles en la parte superior de la barra lateral para filtrar sesiones por estado, proyecto o entorno, y para agrupar sesiones por proyecto. Para renombrar una sesión, haz clic en el título de la sesión en la barra de herramientas en la parte superior de la sesión activa.

394 394 

395Para verificar el uso del contexto, consulte [Verificar uso](#check-usage). Cuando el contexto se llena, Claude resume automáticamente la conversación y continúa trabajando. También puede escribir `/compact` para activar la compresión antes y liberar espacio de contexto. Consulte [la ventana de contexto](/docs/es/how-claude-code-works#the-context-window) para obtener detalles sobre cómo funciona la compresión.395Para verificar el uso del contexto, consulta [Verificar uso](#check-usage). Cuando el contexto se llena, Claude resume automáticamente la conversación y continúa trabajando. También puedes escribir `/compact` para activar el resumen antes y liberar espacio de contexto. Consulta [la ventana de contexto](/docs/es/how-claude-code-works#the-context-window) para obtener detalles sobre cómo funciona la compactación.

396 396 

397La aplicación de escritorio envía una notificación del sistema operativo cuando una sesión de Code termina una tarea y usted no está viendo actualmente esa sesión. Para sesiones que pertenecen a un [proyecto](/docs/es/claude-projects#see-what-needs-you-in-overview), obtiene las notificaciones del proyecto en su lugar.397La aplicación de escritorio envía una notificación del sistema operativo cuando una sesión de Code termina una tarea y no estás viendo esa sesión en ese momento. Para sesiones que pertenecen a un [proyecto](/docs/es/claude-projects#see-what-needs-you-in-overview), recibes en su lugar las notificaciones del proyecto.

398 398 

399<h3 id="ask-a-side-question-without-derailing-the-session">399<h3 id="ask-a-side-question-without-derailing-the-session">

400 Hacer una pregunta lateral sin descarrilar la sesión400 Hacer una pregunta lateral sin descarrilar la sesión

401</h3>401</h3>

402 402 

403Un chat lateral le permite hacer una pregunta a Claude que usa el contexto de su sesión pero no agrega nada de vuelta a la conversación principal. Úselo cuando desee entender un fragmento de código, verificar una suposición o explorar una idea sin dirigir la sesión fuera de curso.403Un chat lateral te permite hacerle a Claude una pregunta que usa el contexto de tu sesión pero no agrega nada de vuelta a la conversación principal. Úsalo cuando quieras entender un fragmento de código, verificar una suposición o explorar una idea sin desviar la sesión de su curso.

404 404 

405Presione **Cmd+;** en macOS o **Ctrl+;** en Windows para abrir un chat lateral, o escriba `/btw` en el cuadro de solicitud. El chat lateral puede leer todo en el hilo principal hasta ese punto. Cuando haya terminado, cierre el chat lateral y continúe la sesión principal donde la dejó.405Presiona **Cmd+;** en macOS o **Ctrl+;** en Windows para abrir un chat lateral, o escribe `/btw` en el cuadro del prompt. El chat lateral puede leer todo lo que hay en el hilo principal hasta ese punto. Cuando hayas terminado, cierra el chat lateral y continúa la sesión principal donde la dejaste.

406 406 

407Los chats laterales están disponibles en sesiones locales, SSH y WSL. La aplicación de escritorio no guarda chats laterales en disco, por lo que no puede volver a uno después de cerrar la aplicación.407Los chats laterales están disponibles en sesiones locales, SSH y WSL. La aplicación de escritorio no guarda los chats laterales en disco, por lo que no puedes volver a uno después de cerrar la aplicación.

408 408 

409<h3 id="watch-background-tasks">409<h3 id="watch-background-tasks">

410 Ver tareas en segundo plano410 Ver tareas en segundo plano

411</h3>411</h3>

412 412 

413El panel de tareas muestra el trabajo en segundo plano que se ejecuta dentro de la sesión actual: subagentes, comandos de shell en segundo plano y [flujos de trabajo dinámicos](/docs/es/workflows). Ábralo desde el menú **Views** o arrástrelo a su diseño.413El panel de tareas muestra el trabajo en segundo plano que se ejecuta dentro de la sesión actual: subagentes, comandos de shell en segundo plano y [flujos de trabajo dinámicos](/docs/es/workflows). Ábrelo desde el menú **Views** o arrástralo a tu diseño.

414 414 

415Haga clic en cualquier entrada para ver su salida en el panel de subagente o detenerla. Para ver qué están haciendo otras sesiones, use la [barra lateral](#work-in-parallel-with-sessions), o pida a Claude que [las verifique por usted](#work-across-sessions).415Haz clic en cualquier entrada para ver su salida en el panel de subagente o detenerla. Para ver qué están haciendo otras sesiones, usa la [barra lateral](#work-in-parallel-with-sessions), o pide a Claude que [las revise por ti](#work-across-sessions).

416 416 

417<h3 id="work-across-sessions">417<h3 id="work-across-sessions">

418 Trabajar entre sesiones418 Trabajar entre sesiones

419</h3>419</h3>

420 420 

421Claude puede enumerar sus otras sesiones de la pestaña Code, leer qué ha estado haciendo cada una y enviar mensajes entre ellas. Pregunte en lenguaje natural: "¿qué sesión tocó la refactorización de autenticación?", "¿a qué conclusión llegó la sesión de API?" o "dígale a la sesión de pagos que el esquema cambió". También puede pedir a Claude que renombre o archive una sesión. Claude archiva una sesión de la misma manera que lo hace el icono de archivo de la barra lateral, así que pídale que limpie sesiones cuyas solicitudes de extracción se han fusionado.421Claude puede enumerar tus otras sesiones de la pestaña Code, leer qué ha estado haciendo cada una y enviar mensajes entre ellas. Pregunta en lenguaje natural: "¿qué sesión tocó la refactorización de autenticación?", "¿a qué conclusión llegó la sesión de API?" o "dile a la sesión de pagos que el esquema cambió". También puedes pedir a Claude que renombre o archive una sesión. Claude archiva una sesión de la misma manera que lo hace el icono de archivar de la barra lateral, así que pídele que limpie las sesiones cuyos PR se han fusionado.

422 422 

423A través de esta superficie, Claude ve solo las sesiones que la aplicación de escritorio ejecuta por sí misma: sesiones locales, [SSH](#ssh-sessions) y [WSL](/docs/es/desktop-wsl) en la pestaña Code. Claude no ve sesiones en la nube, o sesiones que inició desde la CLI del terminal o la extensión de VS Code, incluso en worktrees del mismo proyecto, así que con nueve worktrees de terminal abiertos y dos sesiones de escritorio, Claude respondiendo en una de ellas reporta la otra sesión de escritorio. Claude nunca enumera la sesión desde la que está preguntando. De forma predeterminada, ve las 20 sesiones más activas recientemente y omite sesiones archivadas a menos que las solicite. [La mensajería entre sesiones](/docs/es/cross-session-messaging) permite por separado que Claude envíe mensajes a [sus otras sesiones de Claude Code](/docs/es/cross-session-messaging#see-which-sessions-claude-can-reach), incluidas sesiones de terminal.423A través de esta superficie, Claude ve solo las sesiones que la aplicación de escritorio ejecuta por sí misma: sesiones locales, [SSH](#ssh-sessions) y [WSL](/docs/es/desktop-wsl) en la pestaña Code. Claude no ve sesiones en la nube, ni sesiones que iniciaste desde la CLI de la terminal o la extensión de VS Code, incluso en worktrees del mismo proyecto, así que con nueve worktrees de terminal abiertos y dos sesiones de escritorio, Claude, respondiendo en una de ellas, reporta la otra sesión de escritorio. Claude nunca enumera la sesión desde la que estás preguntando. De forma predeterminada, ve las 20 sesiones con actividad más reciente y omite las sesiones archivadas a menos que las solicites. [La mensajería entre sesiones](/docs/es/cross-session-messaging) permite por separado que Claude envíe mensajes a [tus otras sesiones de Claude Code](/docs/es/cross-session-messaging#see-which-sessions-claude-can-reach), incluidas las sesiones de terminal.

424 424 

425Cuando Claude envía un mensaje a otra sesión a través de esta superficie, Claude Code lo muestra allí como una tarjeta etiquetada con el título de la sesión que envía y un enlace de vuelta, para que siempre pueda saber de dónde vino un mensaje. Si la sesión receptora está en medio de una tarea, Claude Code retiene el mensaje y Claude lo lee una vez que el trabajo actual termina. El Claude receptor puede responder, y Claude Code entrega la respuesta de vuelta a través de esta superficie. Claude no puede entregar a una sesión archivada y le dice cuándo un mensaje no se entrega.425Cuando Claude envía un mensaje a otra sesión a través de esta superficie, Claude Code lo muestra allí como una tarjeta etiquetada con el título de la sesión que lo envía y un enlace de vuelta, para que siempre puedas saber de dónde vino un mensaje. Si la sesión receptora está en medio de una tarea, Claude Code retiene el mensaje y Claude lo lee una vez que el trabajo actual termina. El Claude receptor puede responder, y Claude Code entrega la respuesta de vuelta a través de esta superficie. Claude no puede entregar mensajes a una sesión archivada y te avisa cuando un mensaje no se entrega.

426 426 

427Claude Code aplica cuatro comportamientos de seguridad entre sesiones:427Claude Code aplica cuatro comportamientos de seguridad entre sesiones:

428 428 

429* Antes de archivar cualquier sesión, Claude le pregunta primero. Usted ve la tarjeta de aprobación en cada modo de permiso, incluidos los permisos Auto y Bypass.429* Antes de archivar cualquier sesión, Claude te pregunta primero. Ves la tarjeta de aprobación en cada modo de permisos, incluidos Auto y Bypass permissions.

430* A través de esta superficie, Claude no puede enviar mensajes entre sesiones desde una sesión que nadie está viendo, como una ejecución de tarea programada, y no puede entregar mensajes en una.430* A través de esta superficie, Claude no puede enviar mensajes entre sesiones desde una sesión que nadie está viendo, como una ejecución de tarea programada, ni puede entregar mensajes en una.

431* Claude Code verifica cada mensaje de esta superficie contra los [controles de entrada](/docs/es/cross-session-messaging#control-inbound-messages) de la sesión receptora, incluso cuando la sesión receptora no tiene [mensajería entre sesiones](/docs/es/cross-session-messaging#availability) en sí misma. Si establece [`crossSessionInbound`](/docs/es/settings-reference#crosssessioninbound) en `refuse` en la sesión receptora, Claude Code descarta los mensajes de esta superficie. Claude Code reporta el rechazo a la aplicación de escritorio de Claude. Antes de v2.1.234, Claude Code descartaba cada mensaje de esta superficie a una sesión receptora sin mensajería entre sesiones.431* Claude Code verifica cada mensaje de esta superficie contra los [controles de entrada](/docs/es/cross-session-messaging#control-inbound-messages) de la sesión receptora, incluso cuando la sesión receptora no tiene [mensajería entre sesiones](/docs/es/cross-session-messaging#availability) en sí misma. Si estableces [`crossSessionInbound`](/docs/es/settings-reference#crosssessioninbound) en `refuse` en la sesión receptora, Claude Code descarta los mensajes de esta superficie. Claude Code reporta el rechazo a la aplicación de escritorio de Claude. Antes de v2.1.234, Claude Code descartaba cada mensaje de esta superficie dirigido a una sesión receptora sin mensajería entre sesiones.

432* Claude Code cita cada mensaje entrante y lo atribuye a la sesión que lo envió, y Claude aún sigue la configuración de permisos propia de la sesión receptora al actuar en uno.432* Claude Code cita cada mensaje entrante y lo atribuye a la sesión que lo envió, y Claude sigue respetando la configuración de permisos propia de la sesión receptora al actuar sobre uno.

433 433 

434Claude también puede sugerir nuevas sesiones. Cuando nota algo que vale la pena arreglar que está fuera del alcance de la tarea actual, ofrece el trabajo como una tarjeta de tarea en el chat. Haga clic en la tarjeta para comenzar ese trabajo en una nueva sesión con su propio worktree; Claude continúa su sesión actual sin interrupciones.434Claude también puede sugerir nuevas sesiones. Cuando nota algo que vale la pena arreglar pero que está fuera del alcance de la tarea actual, ofrece el trabajo como una tarjeta de tarea en el chat. Haz clic en la tarjeta para comenzar ese trabajo en una nueva sesión con su propio worktree; Claude continúa tu sesión actual sin interrupciones.

435 435 

436<h3 id="run-long-running-tasks-in-the-cloud">436<h3 id="run-long-running-tasks-in-the-cloud">

437 Ejecutar tareas de larga duración en la nube437 Ejecutar tareas de larga duración en la nube

438</h3>438</h3>

439 439 

440Para refactorizaciones grandes, suites de pruebas, migraciones u otras tareas de larga duración, seleccione **Cloud** en lugar de **Local** al iniciar una sesión. Las sesiones en la nube se ejecutan en la infraestructura administrada por Anthropic de forma predeterminada y continúan incluso si cierra la aplicación o apaga su computadora. Regrese en cualquier momento para ver el progreso o dirigir a Claude en una dirección diferente. También puede monitorear sesiones en la nube desde [claude.ai/code](https://claude.ai/code) o la [aplicación móvil de Claude](/docs/es/mobile).440Para refactorizaciones grandes, suites de pruebas, migraciones u otras tareas de larga duración, selecciona **Cloud** en lugar de **Local** al iniciar una sesión. Las sesiones en la nube se ejecutan en infraestructura administrada por Anthropic de forma predeterminada y continúan incluso si cierras la aplicación o apagas tu computadora. Regresa en cualquier momento para ver el progreso o dirigir a Claude en otra dirección. También puedes monitorear sesiones en la nube desde [claude.ai/code](https://claude.ai/code) o la [aplicación móvil de Claude](/docs/es/mobile).

441 441 

442Las sesiones en la nube también admiten múltiples repositorios. Después de seleccionar un entorno en la nube, haga clic en el botón **+** junto al repositorio seleccionado para agregar repositorios adicionales a la sesión. Cada repositorio obtiene su propio selector de rama. Esto es útil para tareas que abarcan múltiples bases de código, como actualizar una biblioteca compartida y sus consumidores.442Las sesiones en la nube también admiten múltiples repositorios. Después de seleccionar un entorno en la nube, haz clic en el botón **+** junto al repositorio seleccionado para agregar más repositorios a la sesión. Cada repositorio tiene su propio selector de rama. Esto es útil para tareas que abarcan múltiples bases de código, como actualizar una biblioteca compartida y sus consumidores.

443 443 

444Consulte [Usar Claude Code en la nube](/docs/es/claude-code-on-the-web) para obtener más información sobre cómo funcionan las sesiones en la nube. Cuando un cuerpo de trabajo necesita muchas sesiones en la nube, seleccione **Projects** en la barra lateral para crear un [proyecto](/docs/es/claude-projects), donde Claude inicia y rastrea las sesiones para usted desde una conversación.444Consulta [Usar Claude Code en la nube](/docs/es/claude-code-on-the-web) para obtener más información sobre cómo funcionan las sesiones en la nube. Cuando un conjunto de trabajo necesita muchas sesiones en la nube, selecciona **Projects** en la barra lateral para crear un [proyecto](/docs/es/claude-projects), donde Claude inicia y da seguimiento a las sesiones por ti desde una sola conversación.

445 445 

446<h3 id="continue-in-another-surface">446<h3 id="continue-in-another-surface">

447 Continuar en otra superficie447 Continuar en otra superficie

448</h3>448</h3>

449 449 

450El menú **Continue in**, accesible desde el icono de VS Code en la esquina inferior derecha de la barra de herramientas de la sesión, le permite mover su sesión a otra superficie:450Para continuar una sesión en otro lugar, abre el menú de la sesión desde el signo de intercalación junto al título de la sesión o desde la fila de la sesión en la barra lateral, y luego selecciona **Open in**:

451 451 

452* **Claude Code on the Web**: envía su sesión local para continuar ejecutándose en la nube. Desktop empuja su rama, genera un resumen de la conversación y crea una nueva sesión en la nube con el contexto completo. Luego puede elegir archivar la sesión local o mantenerla. Esto requiere un árbol de trabajo limpio y no está disponible para sesiones SSH.452* Selecciona **Cloud** para continuar la sesión como una [sesión en la nube](/docs/es/claude-code-on-the-web), con tu conversación trasladada como un resumen. Antes de que confirmes, el cuadro de diálogo indica si tus archivos también se mueven y si esta sesión se archiva una vez que la de la nube esté lista. No puedes mover de esta forma una sesión que se ejecuta por [SSH](#ssh-sessions) o en [WSL](/docs/es/desktop-wsl).

453* **Your IDE**: abre su proyecto en un IDE compatible en el directorio de trabajo actual.453* Selecciona un editor instalado o tu administrador de archivos para abrir allí la carpeta de la sesión en el disco.

454 454 

455<h3 id="sessions-from-dispatch">455<h3 id="sessions-from-dispatch">

456 Sesiones desde Dispatch456 Sesiones desde Dispatch

457</h3>457</h3>

458 458 

459[Dispatch](https://support.claude.com/en/articles/13947068) es una conversación persistente con Claude que vive en la pestaña [Cowork](https://claude.com/product/cowork). Usted envía un mensaje a Dispatch con una tarea, y decide cómo manejarla.459[Dispatch](https://support.claude.com/en/articles/13947068) es una conversación persistente con Claude que vive en la pestaña [Cowork](https://claude.com/product/cowork). Le envías a Dispatch un mensaje con una tarea, y decide cómo manejarla.

460 460 

461Una tarea puede terminar como una sesión de Code de dos formas: usted solicita una directamente, como "abra una sesión de Claude Code y corrija el error de inicio de sesión", o Dispatch decide que la tarea es trabajo de desarrollo e inicia una por su cuenta. Las tareas que típicamente se enrutan a Code incluyen corregir errores, actualizar dependencias, ejecutar pruebas o abrir solicitudes de extracción. La investigación, edición de documentos y trabajo con hojas de cálculo permanecen en Cowork.461Una tarea puede terminar como una sesión de Code de dos formas: solicitas una directamente, como "abre una sesión de Claude Code y corrige el error de inicio de sesión", o Dispatch decide que la tarea es trabajo de desarrollo e inicia una por su cuenta. Las tareas que normalmente se enrutan a Code incluyen corregir errores, actualizar dependencias, ejecutar pruebas o abrir pull requests. La investigación, la edición de documentos y el trabajo con hojas de cálculo permanecen en Cowork.

462 462 

463De cualquier forma, la sesión de Code aparece en la barra lateral de la pestaña Code con una insignia **Dispatch**. Obtiene una notificación push en su teléfono cuando termina o necesita su aprobación.463De cualquier forma, la sesión de Code aparece en la barra lateral de la pestaña Code con una insignia **Dispatch**. Recibes una notificación push en tu teléfono cuando termina o necesita tu aprobación.

464 464 

465Si tiene [uso de computadora](#let-claude-use-your-computer) habilitado, las sesiones de Code generadas por Dispatch también pueden usarlo. Las aprobaciones de aplicaciones en esas sesiones expiran después de 30 minutos y vuelven a solicitar, en lugar de durar la sesión completa como las sesiones de Code regulares.465Si tienes habilitado el [uso de computadora](#let-claude-use-your-computer), las sesiones de Code generadas por Dispatch también pueden usarlo. Las aprobaciones de aplicaciones en esas sesiones expiran después de 30 minutos y vuelven a solicitarse, en lugar de durar toda la sesión como en las sesiones de Code normales.

466 466 

467Para configuración, emparejamiento y configuración de Dispatch, consulte el [artículo de ayuda de Dispatch](https://support.claude.com/en/articles/13947068). Dispatch requiere un plan Pro o Max y no está disponible en planes Team o Enterprise.467Para la configuración, el emparejamiento y los ajustes de Dispatch, consulta el [artículo de ayuda de Dispatch](https://support.claude.com/en/articles/13947068). Dispatch requiere un plan Pro o Max y no está disponible en los planes Team o Enterprise.

468 468 

469Dispatch es una de varias formas de trabajar con Claude cuando está lejos de su terminal. Para una comparación con las otras opciones, consulte [Plataformas e integraciones](/docs/es/platforms#work-when-you-are-away-from-your-terminal).469Dispatch es una de varias formas de trabajar con Claude cuando estás lejos de tu terminal. Para ver una comparación con las otras opciones, consulta [Plataformas e integraciones](/docs/es/platforms#work-when-you-are-away-from-your-terminal).

470 470 

471<h2 id="extend-claude-code">471<h2 id="extend-claude-code">

472 Extender Claude Code472 Extender Claude Code


739 739 

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

741 741 

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

743 743 

744<h4 id="local-sessions-on-managed-devices">744<h4 id="local-sessions-on-managed-devices">

745 Sesiones locales en dispositivos administrados745 Sesiones locales en dispositivos administrados


1005| `--dangerously-skip-permissions` | Modo Bypass permissions. En planes Pro y Max, habilítelo en Configuración → Claude Code → "Allow bypass permissions mode"; en planes Team y Enterprise, la política de la organización lo controla |1005| `--dangerously-skip-permissions` | Modo Bypass permissions. En planes Pro y Max, habilítelo en Configuración → Claude Code → "Allow bypass permissions mode"; en planes Team y Enterprise, la política de la organización lo controla |

1006| `--add-dir` | Agregue múltiples repositorios con el botón **+** en sesiones en la nube |1006| `--add-dir` | Agregue múltiples repositorios con el botón **+** en sesiones en la nube |

1007| `--allowedTools`, `--disallowedTools` | Sin equivalente por sesión. Las reglas de permisos en [archivos de configuración](/docs/es/settings) aún se aplican. |1007| `--allowedTools`, `--disallowedTools` | Sin equivalente por sesión. Las reglas de permisos en [archivos de configuración](/docs/es/settings) aún se aplican. |

1008| `--verbose` | Modo de vista [Verbose](#switch-view-modes) en el menú desplegable de vista de transcripción |1008| `--verbose` | [Modo de vista Verbose](#switch-view-modes) |

1009| `--print`, `--output-format` | No disponible. Desktop es solo interactivo. |1009| `--print`, `--output-format` | No disponible. Desktop es solo interactivo. |

1010| Variable de entorno `ANTHROPIC_MODEL` | Menú desplegable de modelo junto al botón de envío |1010| Variable de entorno `ANTHROPIC_MODEL` | Menú desplegable de modelo junto al botón de envío |

1011| Variable de entorno `MAX_THINKING_TOKENS` | Establezca en el editor de entorno local. Consulte [configuración del entorno](#environment-configuration). |1011| Variable de entorno `MAX_THINKING_TOKENS` | Establezca en el editor de entorno local. Consulte [configuración del entorno](#environment-configuration). |

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 

95La fila bajo el nombre del dispositivo ajusta la transmisión de video desde el simulador. Reduce la **Frame rate** o **Resolution** si el panel sobrecarga tu Mac, cambia **Encoding** entre H.264 y JPEG, o marca **FPS** para mostrar la velocidad de fotogramas que el panel está recibiendo. Estos ajustes cambian cómo el panel muestra el dispositivo, no cómo se ejecuta la aplicación.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.

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 

Details

135 135 

136**Ponga a Claude en un horario.** Configure [tareas programadas](/docs/es/desktop-scheduled-tasks) para ejecutar Claude automáticamente de forma recurrente: una revisión de código diaria cada mañana, una auditoría de dependencias semanal, o un resumen que extraiga de sus herramientas conectadas.136**Ponga a Claude en un horario.** Configure [tareas programadas](/docs/es/desktop-scheduled-tasks) para ejecutar Claude automáticamente de forma recurrente: una revisión de código diaria cada mañana, una auditoría de dependencias semanal, o un resumen que extraiga de sus herramientas conectadas.

137 137 

138**Escale cuando esté listo.** Abra [sesiones paralelas](/docs/es/desktop#work-in-parallel-with-sessions) desde la barra lateral para trabajar en múltiples tareas a la vez, opcionalmente cada una en su propio Git worktree, y abra el [panel de tareas](/docs/es/desktop#watch-background-tasks) para ver los subagentes y comandos en segundo plano que una sesión tiene en ejecución. Abra un [chat lateral](/docs/es/desktop#ask-a-side-question-without-derailing-the-session) para hacer una pregunta sin descarrilar el hilo principal. Envíe [trabajo de larga duración a la nube](/docs/es/desktop#run-long-running-tasks-in-the-cloud) para que continúe incluso si cierra la aplicación, o [continúe una sesión en la web o en su IDE](/docs/es/desktop#continue-in-another-surface) si una tarea toma más tiempo del esperado. [Conecte herramientas externas](/docs/es/desktop#extend-claude-code) como GitHub, Slack y Linear para reunir su flujo de trabajo.138**Escala cuando estés listo.** Abre [sesiones paralelas](/docs/es/desktop#work-in-parallel-with-sessions) desde la barra lateral para trabajar en múltiples tareas a la vez, opcionalmente cada una en su propio Git worktree, y abre el [panel de tareas](/docs/es/desktop#watch-background-tasks) para ver los subagentes y comandos en segundo plano que una sesión tiene en ejecución. Abre un [chat lateral](/docs/es/desktop#ask-a-side-question-without-derailing-the-session) para hacer una pregunta sin desviar el hilo principal. Envía [trabajo de larga duración a la nube](/docs/es/desktop#run-long-running-tasks-in-the-cloud) para que continúe incluso si cierras la aplicación, o [mueve a la nube una sesión que ya iniciaste](/docs/es/desktop#continue-in-another-surface) si una tarea toma más tiempo del esperado. [Conecta herramientas externas](/docs/es/desktop#extend-claude-code) como GitHub, Slack y Linear para reunir tu flujo de trabajo.

139 139 

140<h2 id="what’s-next">140<h2 id="what’s-next">

141 Qué sigue141 Qué sigue

env-vars.md +344 −305

Details

124 Variables124 Variables

125</h2>125</h2>

126 126 

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 acepta 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.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 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 la v2.1.211, estas escrituras podían establecer silenciosamente un valor mucho menor, como `1e6`, que establecía un tiempo de espera de 1.

128 128 

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

131 131 

132 Algunas variables solo comprueban si las estableciste 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í:132 Algunas variables solo leen si las estableciste o no, por lo que cualquier valor no vacío, incluido `0`, activa el comportamiento, y lo desactivas eliminando la variable o estableciéndola en un valor vacío. Estas variables funcionan de esa manera:

133 133 

134 * `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`134 * `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`

135 * `DISABLE_TELEMETRY`135 * `DISABLE_TELEMETRY`


138 * `FALLBACK_FOR_ALL_PRIMARY_MODELS`138 * `FALLBACK_FOR_ALL_PRIMARY_MODELS`

139 * `IS_DEMO`139 * `IS_DEMO`

140 140 

141 Otra variable tiene su propia regla: `FORCE_HYPERLINK` lee un número, por lo que solo `0` la desactiva. La fila de cada variable también indica su propia regla.141 Otra variable tiene su propia regla: `FORCE_HYPERLINK` lee un número, así que solo `0` la desactiva. La fila de cada variable también indica su propia regla.

142</Note>142</Note>

143 143 

144| Variable | Propósito |144| Variable | Propósito |

145| :- | :- |145| :- | :- |

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 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 sobrescriba tu suscripción. Para usar tu suscripción en su lugar, ejecuta `unset ANTHROPIC_API_KEY` |146| `ANTHROPIC_API_KEY` | Clave de API enviada como encabezado `X-Api-Key`. Cuando se establece, 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 aprobar la clave una vez antes de que sobrescriba 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í tendrá el prefijo `Bearer `) |147| `ANTHROPIC_AUTH_TOKEN` | Valor personalizado para el encabezado `Authorization` (al valor que establezcas aquí se le antepondrá `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 |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 |

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

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

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 primera parte, [MCP Tool Search](/docs/es/mcp#scale-with-mcp-tool-search) está desactivado 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, Agent Platform de Google Cloud y Microsoft Foundry |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 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 la 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) |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) |

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

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

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

156| `ANTHROPIC_BETAS` | Lista separada por comas de valores adicionales del encabezado `anthropic-beta` para incluir en las solicitudes a la API. Claude Code ya envía los encabezados beta que necesita; usa esta variable para participar en una [beta de la API de Anthropic](https://platform.claude.com/docs/en/api/beta-headers) antes de que Claude Code agregue soporte nativo. 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 |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 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 para agregar 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 llevar, 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, un valor así sigue las [reglas sobre cuándo se aplican los valores de `env`](/docs/es/settings-reference#when-claude-code-applies-env-values) |157| `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 un 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 requiere 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 para agregar como entrada personalizada en el selector `/model`. Úsala para que un modelo no estándar o específico de un gateway sea seleccionable sin reemplazar los alias integrados. Consulta [Configuración del modelo](/docs/es/model-config#add-a-custom-model-option) |158| `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 sea seleccionable 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 para mostrar de la entrada de modelo personalizado en el selector `/model`. Si no se establece, el valor predeterminado es `Custom model (<model-id>)` |159| `ANTHROPIC_CUSTOM_MODEL_OPTION_DESCRIPTION` | Descripción que se muestra para la entrada del modelo personalizado en el selector `/model`. El valor predeterminado es `Custom model (<model-id>)` cuando no se establece |

160| `ANTHROPIC_CUSTOM_MODEL_OPTION_NAME` | Nombre para mostrar de la entrada de modelo personalizado en el selector `/model`. Si no se establece, 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 |160| `ANTHROPIC_CUSTOM_MODEL_OPTION_NAME` | Nombre que se muestra para la entrada del modelo personalizado en el selector `/model`. Cuando no se establece, 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 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) |161| `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 de terceros. Consulta [Configuración del modelo](/docs/es/model-config#environment-variables) |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) |

163| `ANTHROPIC_DEFAULT_FABLE_MODEL_DESCRIPTION` | Descripción para mostrar del modelo Fable fijado en el selector `/model`. Si no se establece, 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) |163| `ANTHROPIC_DEFAULT_FABLE_MODEL_DESCRIPTION` | Descripción que se muestra para el modelo Fable fijado en el selector `/model`. Cuando no se establece, 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 para mostrar del modelo Fable fijado en el selector `/model`. Si no se establece, 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) |164| `ANTHROPIC_DEFAULT_FABLE_MODEL_NAME` | Nombre que se muestra para el modelo Fable fijado en el selector `/model`. Cuando no se establece, 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 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) |165| `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) |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) |

167| `ANTHROPIC_DEFAULT_HAIKU_MODEL_DESCRIPTION` | Descripción para mostrar del modelo Haiku fijado en el selector `/model`. Si no se establece, 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) |167| `ANTHROPIC_DEFAULT_HAIKU_MODEL_DESCRIPTION` | Descripción que se muestra para el modelo Haiku fijado en el selector `/model`. Cuando no se establece, 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 para mostrar del modelo Haiku fijado en el selector `/model`. Si no se establece, 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) |168| `ANTHROPIC_DEFAULT_HAIKU_MODEL_NAME` | Nombre que se muestra para el modelo Haiku fijado en el selector `/model`. Cuando no se establece, 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 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) |169| `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 sesiones nuevas](/docs/es/model-config#set-a-default-model-for-new-sessions) |170| `ANTHROPIC_DEFAULT_MODEL` | Modelo con el que inician de forma predeterminada las sesiones nuevas. 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) |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) |

172| `ANTHROPIC_DEFAULT_OPUS_MODEL_DESCRIPTION` | Descripción para mostrar del modelo Opus fijado en el selector `/model`. Si no se establece, 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) |172| `ANTHROPIC_DEFAULT_OPUS_MODEL_DESCRIPTION` | Descripción que se muestra para el modelo Opus fijado en el selector `/model`. Cuando no se establece, 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 para mostrar del modelo Opus fijado en el selector `/model`. Si no se establece, 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) |173| `ANTHROPIC_DEFAULT_OPUS_MODEL_NAME` | Nombre que se muestra para el modelo Opus fijado en el selector `/model`. Cuando no se establece, 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 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) |174| `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) |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) |

176| `ANTHROPIC_DEFAULT_SONNET_MODEL_DESCRIPTION` | Descripción para mostrar del modelo Sonnet fijado en el selector `/model`. Si no se establece, 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) |176| `ANTHROPIC_DEFAULT_SONNET_MODEL_DESCRIPTION` | Descripción que se muestra para el modelo Sonnet fijado en el selector `/model`. Cuando no se establece, 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 para mostrar del modelo Sonnet fijado en el selector `/model`. Si no se establece, 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) |177| `ANTHROPIC_DEFAULT_SONNET_MODEL_NAME` | Nombre que se muestra para el modelo Sonnet fijado en el selector `/model`. Cuando no se establece, 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 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) |178| `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) |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) |

180| `ANTHROPIC_FOUNDRY_API_KEY` | Clave de API para la autenticación de Microsoft Foundry (consulta [Microsoft Foundry](/docs/es/microsoft-foundry)) |180| `ANTHROPIC_FOUNDRY_API_KEY` | Clave de API para la autenticación de Microsoft Foundry (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)) |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)) |

184| `ANTHROPIC_MODEL` | Nombre del ajuste de modelo que se usará (consulta [Configuración del modelo](/docs/es/model-config#environment-variables)) |184| `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) |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) |

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 una clave de API](/docs/es/authentication#sign-in-without-an-api-key). 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) |

187| `ANTHROPIC_SMALL_FAST_MODEL` | \[OBSOLETO] Nombre del [modelo de clase Haiku para tareas en segundo plano](/docs/es/costs) |187| `ANTHROPIC_SMALL_FAST_MODEL` | \[OBSOLETO] 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, esto solo surte 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 |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 se establece `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 Agent Platform de Google Cloud. Úsala para endpoints personalizados de Agent Platform de Google Cloud o al enrutar a través de un [gateway de LLM](/docs/es/llm-gateway). Consulta [Agent Platform de Google Cloud](/docs/es/google-vertex-ai) |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) |

190| `ANTHROPIC_VERTEX_PROJECT_ID` | ID del proyecto de GCP al que se dirigen las solicitudes de Agent Platform de Google Cloud. Consulta [Configurar las credenciales de GCP](/docs/es/google-vertex-ai#3-configure-gcp-credentials) |190| `ANTHROPIC_VERTEX_PROJECT_ID` | ID del proyecto de GCP al que se dirigen las solicitudes de Google Cloud's Agent Platform. Consulta [Configurar 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 |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 |

192| `API_FORCE_IDLE_TIMEOUT` | Sobrescribe el tiempo de espera de inactividad del cuerpo de 5 minutos que interrumpe 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 con 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 interrumpen una pausa silenciosa larga incluso cuando estableces `0` aquí |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. Establece `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 `1` para mantenerlo activo en todos los proveedores. Cuando 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` establecido. 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 |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 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/)) |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/)) |

195| `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 de más 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 |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 de más 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 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) |196| `BASH_MAX_OUTPUT_LENGTH` | Número máximo de caracteres de la salida de bash que Claude Code lee de vuelta 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 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 de más 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 |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 de más 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 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) |198| `BETA_TRACING_ENDPOINT` | Endpoint OTLP para el [trazado beta detallado](/docs/es/monitoring-usage#traces-beta): con `ENABLE_BETA_TRACING_DETAILED=1`, los registros y las trazas se envían 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 |199| `CCR_FORCE_BUNDLE` | Establece 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 Claude Code genera (herramientas Bash y PowerShell, sesiones de tmux, comandos de [hook](/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, en lugar de dentro de un servidor MCP stdio que Claude Code inició, usa `CLAUDE_CODE_CHILD_SESSION` en su lugar |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, en lugar de 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), con un límite igual 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 |201| `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 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 |

202| `CLAUDE_AFK_TIMEOUT_MS` | Cuántos milisegundos de inactividad transcurren 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 |202| `CLAUDE_AFK_TIMEOUT_MS` | Cuántos milisegundos de inactividad deben pasar 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 demostraciones y pruebas automatizadas: cuando se establece, 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`. Una llamada así falla entonces con [`subagent_type is required`](/docs/es/errors#subagent-type-is-required) |203| `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS` | Establece 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`. Esa llamada falla entonces 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 herramientas de servidores MCP creados por el SDK. Las herramientas usan sus nombres originales. Solo para uso del SDK |204| `CLAUDE_AGENT_SDK_MCP_NO_PREFIX` | Establece 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 del SDK |

205| `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 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 progreso dentro del intervalo, Claude Code interrumpe el subagente e informa del bloqueo al agente principal |205| `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 stream está activo, 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 del bloqueo al agente principal |

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 |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 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 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 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 |207| `CLAUDE_AUTO_BACKGROUND_TASKS` | Establece 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á activado, 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 |

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 |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 la 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 renderizar una salida adecuada para 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 |209| `CLAUDE_AX_SCREEN_READER` | Establece en `1` para renderizar una salida apta para lectores de pantalla: texto plano sin bordes decorativos ni animaciones. Establece 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 la interrumpa nueva salida. 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 |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 finaliza 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 |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 |

212| `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 |212| `CLAUDE_BYTE_STREAM_IDLE_TIMEOUT_MS` | Tiempo de espera en milisegundos para el watchdog de inactividad de streaming a nivel de bytes; cuando se establece, 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 listener 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 activa una notificación push en lugar de sondearlo. Requiere Claude Code v2.1.181 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 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 Zoom de macOS sigan la posición del cursor |214| `CLAUDE_CODE_ACCESSIBILITY` | Establece 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 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 |215| `CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD` | Establece 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 pintar toda la pantalla en cada fotograma en el [renderizado de 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 |216| `CLAUDE_CODE_ALT_SCREEN_FULL_REPAINT` | Establece en `1` para volver a dibujar toda la pantalla en cada fotograma en el [renderizado de 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 activa esto 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 esfuerzo. Úsala al enrutar a través de un [gateway de LLM](/docs/es/llm-gateway) o un proveedor de terceros 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 |217| `CLAUDE_CODE_ALWAYS_ENABLE_EFFORT` | Establece 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 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 |

218| `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)) |218| `CLAUDE_CODE_API_KEY_HELPER_TTL_MS` | Intervalo en milisegundos con el que deben actualizarse 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) |219| `CLAUDE_CODE_ARTIFACT_AUTO_OPEN` | Establece en `0` para evitar que Claude Code 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 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 |220| `CLAUDE_CODE_ARTIFACT_COMMENTS` | Establece en `0` para que Claude deje de leer y responder 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 |221| `CLAUDE_CODE_ARTIFACT_COMMENTS_AUTOREACT` | Establece 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 del 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 URLs base personalizadas y conexiones de Microsoft Foundry, por lo 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 solicitudes a un proveedor de terceros, o cuando te conectes directamente a Microsoft Foundry |222| `CLAUDE_CODE_ATTRIBUTION_HEADER` | Establece en `0` para omitir del inicio del prompt del sistema 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. 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 del 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), consulta qué conexiones y credenciales abarca esto. Antes de la 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 gateway de LLM almacene en caché según el cuerpo de la solicitud o reenvíe solicitudes a un proveedor externo, o cuando te conectes directamente a Microsoft Foundry |

223| `CLAUDE_CODE_AUTO_BACKGROUND_WORKER_CHECKIN_SECONDS` | Cuando `CLAUDE_AUTO_BACKGROUND_TASKS` está activada, segundos entre recordatorios 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. Solo acepta un entero simple de `1` a `86400`; cualquier otro valor o escritura se lee como no establecida. Si no está establecida, no hay recordatorios de revisión. Requiere Claude Code v2.1.248 o posterior |223| `CLAUDE_CODE_AUTO_BACKGROUND_WORKER_CHECKIN_SECONDS` | Se eliminó en la 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 |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 |

225| `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, por ejemplo cuando tmux oculta la terminal principal. Tiene precedencia sobre el ajuste de configuración global [`autoConnectIde`](/docs/es/settings-reference#autoconnectide) |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. Establece en `false` para evitarlo. Establece 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 propias solicitudes del 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 |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). Establece en `0` para usar en su lugar las propias solicitudes de 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 desde 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 de proveedores de credenciales predeterminada 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 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 |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 basado en navegador con MFA a través de un wrapper 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 |

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 |228| `CLAUDE_CODE_BASH_EDIT_DIFF` | Establece 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 todavía se ejecuta trabajo en segundo plano. De forma predeterminada, la sesión sigue informando un estado en ejecución después del final del turno mientras el trabajo en segundo plano, como un agente en segundo plano o una ejecución de un [flujo de trabajo](/docs/es/workflows), sigue activo. Esto evita que un host que observa el estado, como una lista de sesiones remotas, anuncie que Claude espera tu entrada a mitad del trabajo. Los comandos de shell en segundo plano, como un servidor de desarrollo, no mantienen el estado en ejecución. El valor predeterminado del estado en 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 en ejecución |229| `CLAUDE_CODE_BG_TASKS_REPORT_RUNNING` | Establece 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 hay trabajo en segundo plano en ejecución. De forma predeterminada, la sesión sigue informando un estado en ejecución después del final del turno mientras el trabajo en segundo plano, como un agente en segundo plano o una ejecución de [flujo de trabajo](/docs/es/workflows), sigue activo. Esto evita que un host que vigila el estado, como una lista de sesiones remotas, anuncie que Claude espera tu entrada a mitad del trabajo. Los comandos de shell en segundo plano, como un servidor de desarrollo, no mantienen el estado en ejecución. El estado en ejecución predeterminado y la exclusión con `0` requieren Claude Code v2.1.269 o posterior; en versiones anteriores, establece `1` para mantener el estado en ejecución |

230| `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 termina la conexión. 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 a la sesión que lo ejecutó. Requiere Claude Code v2.1.199 o posterior. En [sesiones en la nube](/docs/es/claude-code-on-the-web), lee `CLAUDE_CODE_REMOTE_SESSION_ID` en su lugar |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 termina la conexión. El valor es el ID de la sesión con 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 [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) |231| `CLAUDE_CODE_BS_AS_CTRL_BACKSPACE` | Establece 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) |

232| `CLAUDE_CODE_CERT_STORE` | Lista separada por comas de fuentes de certificados de CA para conexiones TLS. `bundled` es el conjunto de CA de Mozilla incluido con Claude Code. `system` es el almacén de confianza del sistema operativo, 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` |232| `CLAUDE_CODE_CERT_STORE` | Lista separada por comas de fuentes de certificados de CA para conexiones TLS. `bundled` es el conjunto de CA de Mozilla incluido con Claude Code. `system` es el almacén de confianza del sistema operativo, que solo se lee en runtimes 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` |

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 [hook](/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 manera se excluye automáticamente de `--resume`, `--continue`, el historial de flecha 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 |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`, el historial de flecha 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 de certificado de cliente para la autenticación mTLS |234| `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 clave privada del cliente para la autenticación mTLS |235| `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 CLAUDE\_CODE\_CLIENT\_KEY cifrada (opcional) |236| `CLAUDE_CODE_CLIENT_KEY_PASSPHRASE` | Frase de contraseña para CLAUDE\_CODE\_CLIENT\_KEY cifrada (opcional) |

237| `CLAUDE_CODE_CONNECT_TIMEOUT_MS` | Se eliminó en v2.1.186 y ahora no tiene efecto. Anteriormente establecía un tiempo de espera independiente para la fase de conexión, TLS y encabezados de respuesta de una solicitud de 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` |237| `CLAUDE_CODE_CONNECT_TIMEOUT_MS` | Se eliminó en la v2.1.186 y ahora no tiene efecto. Anteriormente 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` |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` |

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 gran volumen, como la salida completa del comando de la línea de estado, o súbela a `error` para reducir el ruido |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`. Establece en `verbose` para incluir diagnósticos de gran volumen, como la salida completa del comando de la línea de estado, o súbelo 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 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 esa limitación. Útil para entornos empresariales con requisitos de cumplimiento. Para su función al corregir la ventana de 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) |240| `CLAUDE_CODE_DISABLE_1M_CONTEXT` | Establece en `1` para desactivar la compatibilidad con la [ventana de contexto de 1M](/docs/es/model-config#extended-context). Cuando se establece, 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 ese límite. Útil para entornos empresariales con requisitos de cumplimiento. Para conocer su función en la corrección de la ventana de 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) |

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 |241| `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` | Establece 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, 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 por clave los bloques `env` de la [configuración administrada](/docs/es/managed-settings#precedence-within-the-managed-tier) entre 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 |242| `CLAUDE_CODE_DISABLE_ADMIN_ENV_UNION` | Establece en `1` para evitar que Claude Code combine 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 la 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, se ignora cualquier `advisorModel` configurado y el flag `--advisor` se acepta pero no tiene efecto, por lo que los scripts existentes que lo pasan siguen funcionando sin errores |243| `CLAUDE_CODE_DISABLE_ADVISOR_TOOL` | Establece 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, por lo 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) |244| `CLAUDE_CODE_DISABLE_AGENT_VIEW` | Establece 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) |

245| `CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN` | Establécela en `1` para desactivar el [renderizado de 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 de pantalla completa |245| `CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN` | Establece en `1` para desactivar el [renderizado de 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 de 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 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 |246| `CLAUDE_CODE_DISABLE_ARTIFACT` | Establece 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 |

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 plano en lugar de expandirse al contenido del archivo |247| `CLAUDE_CODE_DISABLE_ATTACHMENTS` | Establece en `1` para desactivar el procesamiento de archivos 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 |248| `CLAUDE_CODE_DISABLE_AUTH_REFRESH_LOCK` | Establece 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 |249| `CLAUDE_CODE_DISABLE_AUTO_MEMORY` | Establece en `1` para desactivar la [memoria automática](/docs/es/memory#auto-memory). Establece 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 |250| `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` | Establece 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 |

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 stream de eventos binario de Amazon Bedrock. De forma predeterminada, Claude Code supone 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 también vuelve a emitir el stream como server-sent events; Claude Code lee entonces el cuerpo sin encabezado como server-sent events. Requiere Claude Code v2.1.239 o posterior |251| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_DEFAULT` | Establece 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 stream 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 también vuelva 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 distinto, 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 |252| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_GUARD` | Establece 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 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 entregarlos al siguiente proceso de la sesión. Solo afecta a esa entrega: 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 |253| `CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF` | Establece en `1` para que se detengan los comandos de shell en segundo plano en ejecución de una [sesión en segundo plano](/docs/es/agent-view), sus flujos de trabajo dinámicos y, a partir de la v2.1.198, sus subagentes en segundo plano cuando el [supervisor](/docs/es/agent-view#the-supervisor-process) detiene, reinicia o actualiza el proceso de esa sesión, en lugar de entregarlos al siguiente proceso de la sesión. Solo afecta a esa entrega: 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 ambos. 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 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 |254| `CLAUDE_CODE_DISABLE_BG_SHELL_PRESSURE_REAP` | Establece 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 de 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 |

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 quedan ocultos para el 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. Equivale al ajuste [`disableBundledSkills`](/docs/es/settings-reference#disablebundledskills) |255| `CLAUDE_CODE_DISABLE_BUNDLED_SKILLS` | Establece 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 quedan ocultos para el 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. Equivale 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 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 guía de navegador. Requiere Claude Code v2.1.257 o posterior |256| `CLAUDE_CODE_DISABLE_CFC_PROMPT` | Establece en `1` para mantener disponibles las herramientas de navegador de [Claude in Chrome](/docs/es/chrome) y, a la vez, omitir 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 sus propias instrucciones para 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 cualquier archivo de memoria CLAUDE.md en el contexto, incluidos los archivos de memoria de usuario, de proyecto y de memoria automática |257| `CLAUDE_CODE_DISABLE_CLAUDE_MDS` | Establece en `1` para evitar cargar en el contexto cualquier archivo de memoria CLAUDE.md, incluidos los archivos de memoria de usuario, de proyecto y de memoria 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 cron dejan de estar disponibles y cualquier tarea ya programada deja de dispararse, incluidas las tareas que ya se están ejecutando a mitad de la sesión |258| `CLAUDE_CODE_DISABLE_CRON` | Establece en `1` para desactivar las [tareas programadas](/docs/es/scheduled-tasks). El skill `/loop` y las herramientas de cron dejan de estar disponibles y cualquier tarea ya programada deja 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 permiso 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 |259| `CLAUDE_CODE_DISABLE_DANGEROUS_RM_TIMEOUT` | Establece en `1` para desactivar el límite de tiempo de las solicitudes de confirmación de [eliminación de rutas críticas](/docs/es/permission-modes#critical-paths). En modo `auto`, Claude Code envía entonces estas eliminaciones al clasificador, y en 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 quitar 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 solicitudes con un error `Unexpected value(s)` para el encabezado `anthropic-beta` o un error `Extra inputs are not permitted`. [Desactivar las capacidades 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 |260| `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` | Establece en `1` para quitar 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 solicitudes con un error `Unexpected value(s)` para el encabezado `anthropic-beta` o un error `Extra inputs are not permitted`. [Desactivar capacidades preliminares](/docs/es/llm-gateway-protocol#disable-pre-release-capabilities) enumera lo que elimina la variable, incluida [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 integrados](/docs/es/sub-agents#built-in-subagents). Claude explora con sus herramientas de búsqueda o con el subagente de propósito general en su lugar, y el [modo plan](/docs/es/permission-modes#analyze-before-you-edit-with-plan-mode) lee los archivos directamente en lugar de lanzar 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 |261| `CLAUDE_CODE_DISABLE_EXPLORE_PLAN_AGENTS` | Establece 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 lanzar 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) |262| `CLAUDE_CODE_DISABLE_FAST_MODE` | Establece 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 `DISABLE_TELEMETRY`, `DO_NOT_TRACK` o `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` están establecidas, 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) |263| `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY` | Establece 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` 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) |

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. Sobrescribe el ajuste [`fileCheckpointingEnabled`](/docs/es/settings-reference#filecheckpointingenabled) |264| `CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING` | Establece 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 quitar 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 |265| `CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS` | Establece en `1` para quitar 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 se establece |

266| `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, Agent Platform de Google Cloud ni Microsoft Foundry |266| `CLAUDE_CODE_DISABLE_INLINE_SHELL_RM_PROMPT` | Establece 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 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_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 [Agent Platform de Google Cloud](/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 de modelo ante ese rechazo, y las [comprobaciones de modelo al inicio](/docs/es/amazon-bedrock#startup-model-checks) siguen recurriendo a un modelo de respaldo al iniciar. Requiere Claude Code v2.1.285 o posterior |267| `CLAUDE_CODE_DISABLE_LEGACY_MODEL_REMAP` | Establece 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_MOUSE` | Establécela en `1` para desactivar el seguimiento del mouse en el [renderizado de pantalla completa](/docs/es/fullscreen). El desplazamiento con el teclado mediante `PgUp` y `PgDn` sigue funcionando. Úsala para mantener el comportamiento nativo de copiar al seleccionar de tu terminal |268| `CLAUDE_CODE_DISABLE_MODEL_ACCESS_FALLBACK` | Establece 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 |

269| `CLAUDE_CODE_DISABLE_MOUSE_CLICKS` | Establécela en `1` para desactivar el manejo de clics, arrastre y paso del puntero en el [renderizado de 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 ni abran enlaces. `CLAUDE_CODE_DISABLE_MOUSE` tiene precedencia cuando ambas están establecidas. Requiere Claude Code v2.1.195 o posterior |269| `CLAUDE_CODE_DISABLE_MOUSE` | Establece en `1` para desactivar el seguimiento del mouse en el [renderizado de pantalla completa](/docs/es/fullscreen). El desplazamiento con el teclado mediante `PgUp` y `PgDn` sigue funcionando. Úsala para mantener el comportamiento nativo de copiar al seleccionar de tu terminal |

270| `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 de nivel de conexión, como un restablecimiento de la conexión o un error de handshake 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 |270| `CLAUDE_CODE_DISABLE_MOUSE_CLICKS` | Establece en `1` para desactivar el manejo de clics, arrastres y hover en el [renderizado de 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 |

271| `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 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 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/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 |271| `CLAUDE_CODE_DISABLE_MTLS_RELOAD_ON_STALE_CONNECTION` | Establece 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 de 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_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 |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 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 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á cubierta; 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_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 el 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 |273| `CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK` | Establece 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 |

274| `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 adelante no deshace la omisión. Ejecuta `claude plugin marketplace add anthropics/claude-plugins-official` para registrar el marketplace en cualquier momento |274| `CLAUDE_CODE_DISABLE_NOTIFICATION_PRESENCE_CHECK` | Establece 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 el foco en la terminal. 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 |

275| `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 sesiones donde 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 sesiones de terminal. Requiere Claude Code v2.1.233 o posterior |275| `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL` | Establece 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 |

276| `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 |276| `CLAUDE_CODE_DISABLE_PERMISSION_PROMPT_NOTIFY_HOOKS` | Establece en `1` para evitar que Claude Code ejecute tus [hooks `Notification` para solicitudes de permiso sin responder](/docs/es/hooks#notification) en sesiones donde 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 sesiones de terminal. Requiere Claude Code v2.1.233 o posterior |

277| `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 |277| `CLAUDE_CODE_DISABLE_POLICY_SKILLS` | Establece 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 |

278| `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 `anthropic-beta` que lo acompaña, para un [gateway de LLM](/docs/es/llm-gateway-protocol#feature-pass-through) cuyo servicio upstream los rechaza. Esto deja activadas las demás capacidades 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 |278| `CLAUDE_CODE_DISABLE_POWERSHELL_CMD_RM_DENY` | Establece 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_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 enteramente 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 |279| `CLAUDE_CODE_DISABLE_REFUSAL_FALLBACK` | Establece 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_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/rápido que [genera un título de sesión](/docs/es/sessions#name-your-sessions) |280| `CLAUDE_CODE_DISABLE_STRUCTURED_OUTPUTS` | Establece 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 upstream los rechaza. Esto deja activadas las demás capacidades 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_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 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í |281| `CLAUDE_CODE_DISABLE_SUBSTITUTION_RM_PROMPT` | Establece en `1` para desactivar la comprobación de [rutas críticas](/docs/es/permission-modes#critical-paths) para un `rm` recursivo cuyo destino es enteramente 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_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 la ventana asumida en su lugar; 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 |282| `CLAUDE_CODE_DISABLE_TERMINAL_TITLE` | Establece 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/rápido que [genera un título de sesión](/docs/es/sessions#name-your-sessions) |

283| `CLAUDE_CODE_DISABLE_VIRTUAL_SCROLL` | Establécela en `1` para desactivar el desplazamiento virtual en el [renderizado de 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 |283| `CLAUDE_CODE_DISABLE_THINKING` | Establece 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 en los modelos Fable, en los que no se puede desactivar el pensamiento. En [proveedores externos](/docs/es/third-party-integrations), `MAX_THINKING_TOKENS=0` también omite el parámetro, por lo que las dos variables se comportan igual allí |

284| `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 |284| `CLAUDE_CODE_DISABLE_UNKNOWN_MODEL_WINDOW_ENFORCEMENT` | Establece 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 [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 la ventana asumida en su lugar; 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 |

285| `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) [pase al siguiente proceso de la sesión](/docs/es/agent-view#the-supervisor-process), por ejemplo 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 termina el proceso de la sesión. Los comandos de Bash no se ven afectados. Requiere Claude Code v2.1.269 o posterior |285| `CLAUDE_CODE_DISABLE_VIRTUAL_SCROLL` | Establece en `1` para desactivar el desplazamiento virtual en el [renderizado de pantalla completa](/docs/es/fullscreen) y renderizar cada mensaje 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_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) |286| `CLAUDE_CODE_DISABLE_WEB_FETCH` | Establece 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` | Establece 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) [pase 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 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` | Establece en `1` para desactivar los [flujos de trabajo](/docs/es/workflows#turn-workflows-off). Equivale al ajuste [`disableWorkflows`](/docs/es/settings-reference#disableworkflows) |

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

288| `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, Agent Platform de Google Cloud, Microsoft Foundry y las sesiones del [Claude apps gateway](/docs/es/claude-apps-gateway) con sesión iniciada. De v2.1.158 a 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 |290| `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 con sesión iniciada en el [Claude apps gateway](/docs/es/claude-apps-gateway). De v2.1.158 a 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 |

289| `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 de la opción de `/config`. Establécela en `1` para forzar la activación de los resúmenes cuando [`awaySummaryEnabled`](/docs/es/settings-reference#awaysummaryenabled) es `false`. Tiene precedencia sobre el ajuste y la opción de `/config` |291| `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` |

290| `CLAUDE_CODE_ENABLE_BACKGROUND_PLUGIN_REFRESH` | Establécela en `1` para actualizar el estado de los plugins en los límites de turno en el [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 |292| `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 |

291| `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í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 |293| `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 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 |

292| `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 colgó. Activada de forma predeterminada en la Anthropic API. En Amazon Bedrock y Google Cloud's Agent Platform, se activa por modelo cuando el contenedor implementado lo admite. Establécela en `0` para desactivarla. Establécela en `1` para forzar su activación cuando enrutas 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) |294| `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 bloqueado. 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`. Desactivada de forma predeterminada en Microsoft Foundry y en las conexiones de [gateway](/docs/es/llm-gateway) |

293| `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY` | Establécela en `1` para llenar el selector de `/model` desde 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. 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 según una lista de permitidos [`availableModels`](/docs/es/settings-reference#availablemodels) que reciba 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) |295| `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY` | Establécela en `1` para completar el selector de `/model` desde 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. 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 siguen filtrándose por 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) |

294| `CLAUDE_CODE_ENABLE_OPUS_4_7_FAST_MODE` | Eliminada 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 |296| `CLAUDE_CODE_ENABLE_OPUS_4_7_FAST_MODE` | Eliminada 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 |

295| `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** 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) |297| `CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION` | Establécela en `false` para desactivar las sugerencias de prompts, las predicciones en gris que aparecen en la entrada de tu 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) |

296| `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) |298| `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) |

297| `CLAUDE_CODE_ENABLE_TELEMETRY` | Establécela en `1` para habilitar la recopilación de datos de OpenTelemetry para métricas y registros. 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) |299| `CLAUDE_CODE_ENABLE_TELEMETRY` | Establécela en `1` para habilitar 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) |

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

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

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

301| `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 despachas con `claude agents` o `--bg`. Antes de 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 |303| `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 despachas 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 |

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

303| `CLAUDE_CODE_FORCE_SESSION_PERSISTENCE` | Establécela en `1` para forzar la persistencia de transcripciones, 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 primero por la herramienta Bash de Claude Code, hace que una sesión genuina de nivel superior 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 ni en v2.1.171, donde se eliminó la detección de sesiones anidadas que sobrescribe |305| `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 genuina de nivel superior 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 ni en v2.1.171, donde se eliminó la detección de sesiones anidadas que sobrescribe |

304| `CLAUDE_CODE_FORCE_STRIKETHROUGH` | Establécela en `1` para forzar la representación tachada de `~~text~~` en las respuestas de Claude cuando tu terminal la admite pero no se detecta automáticamente, por ejemplo a través de SSH sin reenviar `TERM_PROGRAM`. Sin esto, las terminales no detectadas muestran los marcadores `~~` literales en lugar de mostrar el texto tachado. Requiere Claude Code v2.1.186 o posterior |306| `CLAUDE_CODE_FORCE_STRIKETHROUGH` | Establécela en `1` para forzar la representación del tachado para `~~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 esto, las terminales no detectadas muestran los marcadores `~~` literales en lugar de mostrar el texto tachado. Requiere Claude Code v2.1.186 o posterior |

305| `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 al sondeo de capacidades. No tiene efecto bajo tmux. A diferencia de `CLAUDE_CODE_NO_FLICKER`, que cambia a la [representación en pantalla completa](/docs/es/fullscreen), esto no cambia el renderizador |307| `CLAUDE_CODE_FORCE_SYNC_OUTPUT` | Establécela en `1` para forzar la habilitació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 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 |

306| `CLAUDE_CODE_FORK_SUBAGENT` | Controla el [modo fork](/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 las 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 |308| `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 |

307| `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 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 |309| `CLAUDE_CODE_FORWARD_SUBAGENT_TEXT` | Establécela en `1` para emitir el texto y los bloques 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 harness invoca `claude` y no puede pasar el flag por sí mismo. A diferencia del flag, que sale 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 |

308| `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 en 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 Anthropic API, donde Claude Code los envía de forma predeterminada. Requiere Claude Code v2.1.273 o posterior |310| `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 en 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 |

309| `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 |311| `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 escritura mantienen el valor predeterminado. Requiere Claude Code v2.1.269 o posterior |

310| `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` ni `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 se cerraba 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) |312| `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 Git Bash automáticamente 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) |

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

312| `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) |314| `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) |

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

314| `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 es una semana. Claude Code trata cualquier otro valor como no establecido y usa el valor predeterminado. Requiere Claude Code v2.1.234 o posterior |316| `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 |

315| `CLAUDE_CODE_HIDE_CWD` | Establécela en `1` para ocultar el directorio de trabajo en el logotipo de inicio. Útil al compartir pantalla o en grabaciones donde la ruta expone tu nombre de usuario del sistema operativo |317| `CLAUDE_CODE_HIDE_CWD` | Establécela en `1` para ocultar el directorio de trabajo en el logo de inicio. Útil al compartir pantalla o en grabaciones en las que la ruta expone tu nombre de usuario del sistema operativo |

316| `CLAUDE_CODE_IDE_HOST_OVERRIDE` | Sobrescribe la dirección de 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 |318| `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 |

317| `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` |319| `CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL` | Establécela en `1` para omitir la instalación automática de extensiones del IDE. Equivale a establecer [`autoInstallIdeExtension`](/docs/es/settings-reference#autoinstallideextension) en `false` |

318| `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 está en ejecución |320| `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 |

319| `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 otra cosa se ignora, por lo que la variable puede ajustar el límite pero no desactivarlo. Requiere Claude Code v2.1.217 o posterior |321| `CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS` | Cuántos [subagentes](/docs/es/sub-agents#concurrent-subagent-limit) pueden estar ejecutándose 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 deshabilitarlo. Requiere Claude Code v2.1.217 o posterior |

320| `CLAUDE_CODE_MAX_CONTEXT_TOKENS` | Sobrescribe el tamaño de la ventana de contexto que Claude Code supone para el modelo activo. A partir de 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 |322| `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 al enrutar a un modelo a través de `ANTHROPIC_BASE_URL` cuya ventana de contexto no coincide con el tamaño integrado para su nombre |

321| `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 otra cosa se ignora y se aplica el valor predeterminado. Requiere Claude Code v2.1.280 o posterior |323| `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 |

322| `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 al límite un valor que supere el límite de un modelo. Para un ID de modelo que Claude Code no puede resolver a un modelo que conoce, 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) |324| `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 un valor superior al límite de un modelo hasta ese límite. Para un ID de modelo que Claude Code no puede resolver a un modelo que conoce, 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) |

323| `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 valor 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 |325| `CLAUDE_CODE_MAX_RETRIES` | Sobrescribe el número de veces que se reintentan las solicitudes fallidas a la API (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 |

324| `CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION` | Eliminada 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 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) se siguen aplicando |326| `CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION` | Eliminada 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 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 |

325| `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; establece `1` para desactivar el anidamiento. De v2.1.217 a 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; v2.1.219 aumentó el valor predeterminado a 3. Acepta un número entero positivo en dígitos simples; cualquier otra cosa se ignora, por lo que el límite se puede ajustar pero no eliminar. Requiere Claude Code v2.1.217 o posterior |327| `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; establece `1` para desactivar el anidamiento. De v2.1.217 a 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 |

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

327| `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 sea un entero positivo se rechaza al iniciar con un error en lugar de tratarse como sin límite |329| `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 |

328| `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 recopiló. Acepta un número entero positivo sin límite superior. Cualquier otra cosa se ignora y se aplica el valor predeterminado, por lo que el límite se puede aumentar pero no desactivar. Requiere Claude Code v2.1.212 o posterior |330| `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 continuar 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 |

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

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

331| `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 abarca 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 |333| `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 aún 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 abarca 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 |

332| `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 aborta con un error en lugar de esperar al `MCP_TOOL_TIMEOUT` general. Sobrescribe los valores predeterminados por transporte de 300000 (5 minutos) para los servidores de red y de 1800000 (30 minutos) para los 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 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 los servidores del IDE ni a los 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 |334| `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 interrumpe con un error en lugar de esperar el `MCP_TOOL_TIMEOUT` general. Sobrescribe los valores 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 los servidores del IDE ni a los 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 |

333| `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 a los 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 un proceso padre, 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 |335| `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 a los 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 un padre, 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 |

334| `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 a los 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 proceso hijo propio](/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 padre. Los bloques `env` de la configuración no pueden establecerla. Requiere Claude Code v2.1.228 o posterior |336| `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 a los 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 hijo propio](/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 padre. Los bloques `env` de la configuración no pueden establecerla. Requiere Claude Code v2.1.228 o posterior |

335| `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 |337| `CLAUDE_CODE_NATIVE_CURSOR` | Establécela en `1` para mostrar el cursor propio de la terminal en el punto de inserción en lugar de un bloque dibujado. El cursor respeta los ajustes de parpadeo, forma y foco de la terminal |

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

337| `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 en modo de control de tmux 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 |339| `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 pausado 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 |

338| `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) cuando se agota su tiempo de espera. 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 el tiempo de espera. Requiere Claude Code v2.1.285 o posterior |340| `CLAUDE_CODE_NONSTREAMING_TIMEOUT_RETRIES` | Limita cuántas veces Claude Code reenvía 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 los reintentos](/docs/es/errors#tune-retry-behavior) para el tiempo de espera. Requiere Claude Code v2.1.285 o posterior |

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

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

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

342| `CLAUDE_CODE_OAUTH_TOKEN` | Token de acceso de OAuth para la autenticación de claude.ai. Alternativa a `/login` para el SDK y los 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 estableciste durante toda la sesión. Para reemplazar un token caducado, genera uno nuevo y reinicia |344| `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 |

343| `CLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE` | Eliminada 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 valor predeterminado actual. Opus 4.6 ya no admite el modo rápido |345| `CLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE` | Eliminada en v2.1.160 y ahora no tiene 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 |

344| `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 atributo mayores 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) |346| `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 atributo de más de 64 KB, o redúcela para recortar el volumen de telemetría. Requiere Claude Code v2.1.214 o posterior. Consulta [Monitoreo](/docs/es/monitoring-usage) |

345| `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, de lo contrario, un exportador mal configurado, como uno con una colisión de puertos de Prometheus, falla en silencio. Requiere Claude Code v2.1.179 o posterior. Consulta [Monitoreo](/docs/es/monitoring-usage) |347| `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 un exportador mal configurado, por ejemplo por una colisión de puertos de Prometheus, falla en silencio. Requiere Claude Code v2.1.179 o posterior. Consulta [Monitoreo](/docs/es/monitoring-usage) |

346| `CLAUDE_CODE_OTEL_FLUSH_TIMEOUT_MS` | Tiempo de espera en milisegundos para vaciar los spans de OpenTelemetry pendientes (predeterminado: 5000). Consulta [Monitoreo](/docs/es/monitoring-usage) |348| `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) |

347| `CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS` | Intervalo en milisegundos para actualizar los encabezados dinámicos de OpenTelemetry (predeterminado: 1740000 / 29 minutos). Consulta [Encabezados dinámicos](/docs/es/monitoring-usage#dynamic-headers) |349| `CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS` | Intervalo en milisegundos para actualizar los encabezados dinámicos de OpenTelemetry (predeterminado: 1740000 / 29 minutos). Consulta [Encabezados dinámicos](/docs/es/monitoring-usage#dynamic-headers) |

348| `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) |350| `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) |

349| `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 las 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) |351| `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 las 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) |

350| `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 |352| `CLAUDE_CODE_PERFORCE_MODE` | Establécela en `1` para habilitar la protección de escritura compatible con Perforce. Cuando se establece, Edit, Write y NotebookEdit fallan con una sugerencia `p4 edit <file>` si el archivo de destino carece del 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 |

351| `CLAUDE_CODE_PLUGIN_CACHE_DIR` | Sobrescribe el directorio raíz de los plugins. A pesar del nombre, establece el directorio padre, 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` |353| `CLAUDE_CODE_PLUGIN_CACHE_DIR` | Sobrescribe el directorio raíz de plugins. A pesar del nombre, establece el directorio padre, no la caché en sí: los marketplaces y la caché de plugins se encuentran en subdirectorios dentro de esta ruta. El valor predeterminado es `~/.claude/plugins` |

352| `CLAUDE_CODE_PLUGIN_DIRS` | Directorios de plugins que se cargan para la sesión, cada uno cargado del mismo modo 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 ruta absoluta o iníciala 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) |354| `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 `;` en Windows. Indica cada ruta como ruta absoluta o iníciala 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) |

353| `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) |355| `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) |

354| `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE` | Establécela en `1` para omitir el intento de volver a clonar y seguir usando el checkout existente del marketplace cuando una actualización del marketplace no puede acceder al 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) |356| `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE` | Establécela en `1` para omitir el intento de volver a clonar y seguir usando el checkout 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) |

355| `CLAUDE_CODE_PLUGIN_PREFER_HTTPS` | Establécela en `1` para clonar las fuentes abreviadas `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` |357| `CLAUDE_CODE_PLUGIN_PREFER_HTTPS` | Establécela en `1` para clonar las fuentes abreviadas `owner/repo` de GitHub mediante HTTPS en lugar de SSH. Se aplica a la instalación y la 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` |

356| `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 rellenado previamente 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 [Rellenar previamente plugins para contenedores](/docs/es/plugins/org#seed-containers-and-ci) |358| `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 ya poblado 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 [Rellenar previamente los plugins para contenedores](/docs/es/plugins/org#seed-containers-and-ci) |

357| `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 como valor predeterminado. La omisión en el alcance del proceso nunca sobrescribe `MachinePolicy` ni `UserPolicy` de la directiva de grupo, independientemente de este ajuste |359| `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 Restricted predeterminada. La omisión en el alcance del proceso nunca sobrescribe `MachinePolicy` ni `UserPolicy` de la directiva de grupo, independientemente de este ajuste |

358| `CLAUDE_CODE_PRINT_BG_WAIT_CEILING_MS` | Límite máximo en milisegundos de la espera inactiva de subagentes y flujos de trabajo en segundo plano después del último turno 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 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 |360| `CLAUDE_CODE_PRINT_BG_WAIT_CEILING_MS` | Límite máximo en milisegundos de la espera inactiva de subagentes y flujos de trabajo en segundo plano 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 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 simples en segundo plano. Requiere Claude Code v2.1.182 o posterior |

359| `CLAUDE_CODE_PROCESS_WRAPPER` | Inicia los procesos que Claude Code arranca 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, qué cubre el lanzador y el contrato que debe cumplir el lanzador. Requiere Claude Code v2.1.208 o posterior |361| `CLAUDE_CODE_PROCESS_WRAPPER` | Inicia los procesos que Claude Code arranca 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 la local no pueden 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 este debe cumplir. Requiere Claude Code v2.1.208 o posterior |

360| `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 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 |362| `CLAUDE_CODE_PROJECT_DIR_NAME` | Establécela junto con `CLAUDE_CONFIG_DIR` para elegir el nombre del directorio dentro 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 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 |

361| `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 |363| `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 junto 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 |

362| `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 abarca 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 una conexión directa a la Anthropic API. Agregada en v2.1.152. Consulta [Trazas (beta)](/docs/es/monitoring-usage#traces-beta) |364| `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 abarca 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 una conexión directa a la API de Anthropic. Se agregó en v2.1.152. Consulta [Trazas (beta)](/docs/es/monitoring-usage#traces-beta) |

363| `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, de endpoint y de 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 pueda 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 tenga 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 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 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 mediante `DISABLE_TELEMETRY`. Consulta [Comportamientos predeterminados por proveedor de API](/docs/es/data-usage#default-behaviors-by-api-provider) |365| `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, de endpoint y de 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 la 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 de `DISABLE_TELEMETRY`. Consulta [Comportamientos predeterminados por proveedor de API](/docs/es/data-usage#default-behaviors-by-api-provider) |

364| `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 para entornos en los que el proxy debe encargarse de la resolución de nombres de host |366| `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 para entornos en los que el proxy debe encargarse de la resolución de nombres de host |

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

366| `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) |368| `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) |

367| `CLAUDE_CODE_RESTRICTED` | Establécela en `1` para iniciar la sesión en modo restringido, igual que al 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 |369| `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 |

368| `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, quita la variable o establécela en `0`. Para el panel de chat de VS Code, consulta [Continuar las conversaciones después de recargar](/docs/es/vs-code#continue-conversations-after-a-reload) |370| `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 reenviar 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) |

369| `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 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 con 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 |371| `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 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 de inicio de 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 él 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 |

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

371| `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 indica un límite de gasto o 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 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 un tiempo de restablecimiento del rate limit, por lo 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 interrumpidas, lo que equivale aproximadamente a tres horas de espera, y elimina el límite de 15 de `CLAUDE_CODE_MAX_RETRIES` si estableces esa variable explícitamente. Requiere Claude Code v2.1.186 o posterior |373| `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 procedente 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, agotamientos del tiempo de espera 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 |

372| `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 la memoria automática no se cargan, para solucionar problemas de una configuración dañada. La directiva de configuración administrada se sigue aplicando, incluidos los hooks, la línea de estado y los comandos de sugerencia de archivos configurados por directiva; los plugins administrados, los skills administrados, el CLAUDE.md administrado y los servidores MCP configurados por directiva no. Equivale a pasar [`--safe-mode`](/docs/es/cli-reference#cli-flags). Los procesos hijos iniciados directamente heredan la variable |374| `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 rota. 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 política; los plugins administrados, los skills administrados, el CLAUDE.md administrado y los servidores MCP configurados por política no se aplican. Equivale a pasar [`--safe-mode`](/docs/es/cli-reference#cli-flags). Los procesos hijo iniciados directamente heredan la variable |

373| `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 de llamadas enteros. 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. No se detecta la multiplicación en tiempo de ejecución mediante `xargs` o `find -exec`; este es un control de defensa en profundidad |375| `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 trucos de expansión del shell como `./scripts/deploy.sh $(evil)` siguen contando para el límite. No se detecta la multiplicación en tiempo de ejecución mediante `xargs` o `find -exec`; este es un control de defensa en profundidad |

374| `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 menores que 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 propia gestión del desplazamiento |376| `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 menores que 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 |

375| `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 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), se siguen aplicando |377| `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 tenga acceso; la variable no puede conceder 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 |

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

377| `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 del inicio original. Úsala para correlacionar scripts y herramientas externas con la sesión de Claude Code que los inició |379| `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 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 con `--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ó |

378| `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`. No se admiten otros shells como `fish`. Si el valor no es una ruta de `bash` o `zsh` que funcione, 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` que funcione encontrado en tu `PATH` y en las ubicaciones de instalación estándar |380| `CLAUDE_CODE_SHELL` | Establece el shell que usa Claude Code para ejecutar los comandos de la herramienta Bash. Acepta una ruta a un binario `bash` o `zsh`, por ejemplo `/opt/homebrew/bin/bash`. No se admiten otros shells como `fish`. Si el valor no es una ruta de `bash` o `zsh` que funcione, 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 el primer `bash` que funcionen y que encuentre en tu `PATH` y en las ubicaciones de instalación estándar |

379| `CLAUDE_CODE_SHELL_PREFIX` | Prefijo de comando que envuelve los comandos de shell que inicia Claude Code: las llamadas a la herramienta Bash, los comandos de [hooks](/docs/es/hooks), los comandos de la [línea de estado](/docs/es/statusline) y los comandos de inicio de los [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 arma Claude Code, incluida la configuración del entorno, no solo el comando que ejecutó Claude |381| `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 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 arma Claude Code, incluida la configuración del entorno, no solo el comando que ejecutó Claude |

380| `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` se siguen cargando. 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) |382| `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 pases 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) |

381| `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 los modelos en los que el experimento o la configuración del servidor la habilitarían de otro modo. El conjunto completo de herramientas, los hooks, los servidores MCP y el descubrimiento de CLAUDE.md siguen habilitados |383| `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 habilitarían de otro modo. El conjunto completo de herramientas, los hooks, los servidores MCP y el descubrimiento de CLAUDE.md siguen habilitados |

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

383| `CLAUDE_CODE_SKIP_AWS_CRED_CACHE` | Establécela en `1` para desactivar la caché en proceso de las credenciales resueltas desde 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 |385| `CLAUDE_CODE_SKIP_AWS_CRED_CACHE` | Establécela en `1` para desactivar la caché en proceso de las credenciales resueltas desde 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 |

384| `CLAUDE_CODE_SKIP_BEDROCK_AUTH` | Omite la autenticación de AWS para Amazon Bedrock (por ejemplo, al usar un gateway de LLM) |386| `CLAUDE_CODE_SKIP_BEDROCK_AUTH` | Omite la autenticación de AWS para Amazon Bedrock (por ejemplo, cuando usas un gateway de LLM) |

385| `CLAUDE_CODE_SKIP_FAST_MODE_NETWORK_ERRORS` | Establécela en `1` para tratar como disponible una comprobación fallida de disponibilidad del [modo rápido](/docs/es/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways), para redes que bloquean la solicitud directa de la comprobación a `api.anthropic.com`. Claude Code sigue respetando una respuesta de "disabled by your organization" |387| `CLAUDE_CODE_SKIP_FAST_MODE_NETWORK_ERRORS` | Establécela en `1` para tratar como disponible una comprobación fallida de disponibilidad del [modo rápido](/docs/es/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways), 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" |

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

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

388| `CLAUDE_CODE_SKIP_MANTLE_AUTH` | Omite la autenticación de AWS para Amazon Bedrock Mantle (por ejemplo, al usar un gateway de LLM) |390| `CLAUDE_CODE_SKIP_MANTLE_AUTH` | Omite la autenticación de AWS para Amazon Bedrock Mantle (por ejemplo, cuando usas un gateway de LLM) |

389| `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 qué modelos encontraron 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 |391| `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 detectaron 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 |

390| `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 |392| `CLAUDE_CODE_SKIP_PROMPT_HISTORY` | Establécela en `1` para omitir la escritura en disco del historial de prompts y de las transcripciones de sesión. Las sesiones iniciadas con esta variable establecida no aparecen en `--resume`, en `--continue` ni en el historial de la flecha hacia arriba. Útil para sesiones efímeras con scripts |

391| `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) |393| `CLAUDE_CODE_SKIP_VERTEX_AUTH` | Omite la autenticación de Google para Google Cloud's Agent Platform (por ejemplo, cuando usas un gateway de LLM) |

392| `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) para los fallos de inicio que de otro modo terminan solo con stderr. Requiere Claude Code v2.1.274 o posterior |394| `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 iniciarse](/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 |

393| `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 desactivar el límite. Auméntala si tu hook necesita legítimamente más iteraciones para resolverse |395| `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 |

394| `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 les asigna un modelo de otra manera. 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` equivale a 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 |396| `CLAUDE_CODE_SUBAGENT_MODEL` | El modelo predeterminado para los [subagentes](/docs/es/sub-agents#choose-a-model), los compañeros de los [equipos 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 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 al generar 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 |

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

396| `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 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 |398| `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) para 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 |

397| `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` | Establécela en `1` para eliminar las credenciales de los entornos de los subprocesos (herramienta Bash, hooks, servidores MCP stdio): las credenciales de Anthropic y de los proveedores de nube, cualquier otra variable que Claude Code reconozca como credencial y las credenciales incrustadas en las URL de los registros de paquetes. El proceso padre de Claude conserva estas credenciales para las llamadas a la API, pero los procesos hijos no pueden leerlas, lo que reduce la exposición a ataques de inyección de prompts que intentan exfiltrar secretos mediante la expansión del shell. En v2.1.251 o posterior, la limpieza también elimina las propias variables de Claude Code que apuntan al almacén de configuración (como `CLAUDE_CONFIG_DIR`), por lo que un proceso hijo no puede localizar un directorio de configuración reubicado. No establezcas la limpieza si un subproceso necesita estas variables. En Linux, esto también ejecuta los subprocesos de Bash en un espacio de nombres de PID aislado para que no puedan leer los entornos de los procesos del host mediante `/proc`; como efecto secundario, `ps`, `pgrep` y `kill` no pueden ver los procesos del host ni enviarles señales. `claude-code-action` la establece automáticamente cuando se configura `allowed_non_write_users` |399| `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 los ajustes 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` |

398| `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 esto, 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 |400| `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 esto, 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 |

399| `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 plugins y registra un error. Sin valor predeterminado: sin esta variable, la instalación síncrona espera hasta completarse |401| `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 plugins y registra un error. No tiene valor predeterminado: sin esta variable, la instalación síncrona espera hasta completarse |

400| `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. 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 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 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 |402| `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. 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 vuelven a sincronizarlos 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 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 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 |

401| `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 |403| `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 app 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 |

402| `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 la descarga de un skill cuando invoca ese skill |404| `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 la descarga de un skill cuando invoca ese skill |

403| `CLAUDE_CODE_SYNTAX_HIGHLIGHT` | Establécela en `false` para desactivar el resaltado de sintaxis en la salida de diff. Ú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) |405| `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) |

404| `CLAUDE_CODE_TASK_LIST_ID` | Comparte una lista de tareas entre sesiones. Establece el mismo ID en varias instancias de Claude Code para coordinarte en una lista de tareas compartida, en las [sesiones que tienen las herramientas Task](/docs/es/tools-reference#task-tool-availability). Consulta [Lista de tareas](/docs/es/interactive-mode#task-list) |406| `CLAUDE_CODE_TASK_LIST_ID` | Comparte una lista de tareas entre sesiones. Establece el mismo ID en varias instancias de Claude Code para coordinarlas 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) |

405| `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 valor predeterminado de 10000. Requiere Claude Code v2.1.206 o posterior |407| `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 |

406| `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` de respaldo corto dentro del valor 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 estableciste 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) |408| `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` de respaldo corto dentro del 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%` si 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) |

407| `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 y desactivación; quita la variable para restaurar la limitación a 256 colores. De forma predeterminada, Claude Code limita la salida a 256 colores cuando `$TMUX` está establecida porque tmux no transmite las secuencias de escape 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 otros ajustes de tmux |409| `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 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 conocer otros ajustes de tmux |

408| `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 independientemente de lo que enumeres. Requiere Claude Code v2.1.246 o posterior |410| `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`. 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 dentro del límite independientemente de lo que enumeres. Requiere Claude Code v2.1.246 o posterior |

409| `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 haya activado o desactivado el límite, un valor modificado entra en vigor la próxima vez que inicies `claude`. Requiere Claude Code v2.1.233 o posterior |411| `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 indicar 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 inicies `claude`. Requiere Claude Code v2.1.233 o posterior |

410| `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 la sesión en una sesión que puede estar ejecutándose desatendida. [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 vencimiento de los mensajes retenidos, incluidos los casos en los que no se aplica el plazo. Sobrescribe el ajuste [`dialogExpiry`](/docs/es/settings-reference#dialogexpiry). `0` o un valor negativo desactiva el plazo |412| `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 |

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

411| `CLAUDE_CODE_USE_ANTHROPIC_AWS` | Usa [Claude Platform on AWS](/docs/es/claude-platform-on-aws) |414| `CLAUDE_CODE_USE_ANTHROPIC_AWS` | Usa [Claude Platform on AWS](/docs/es/claude-platform-on-aws) |

412| `CLAUDE_CODE_USE_BEDROCK` | Usa [Amazon Bedrock](/docs/es/amazon-bedrock) |415| `CLAUDE_CODE_USE_BEDROCK` | Usa [Amazon Bedrock](/docs/es/amazon-bedrock) |

413| `CLAUDE_CODE_USE_FOUNDRY` | Usa [Microsoft Foundry](/docs/es/microsoft-foundry) |416| `CLAUDE_CODE_USE_FOUNDRY` | Usa [Microsoft Foundry](/docs/es/microsoft-foundry) |

414| `CLAUDE_CODE_USE_MANTLE` | Usa el [endpoint de Mantle](/docs/es/amazon-bedrock#use-the-mantle-endpoint) de Amazon Bedrock |417| `CLAUDE_CODE_USE_MANTLE` | Usa el [endpoint Mantle](/docs/es/amazon-bedrock#use-the-mantle-endpoint) de Amazon Bedrock |

415| `CLAUDE_CODE_USE_NATIVE_FILE_SEARCH` | Establécela en `1` para descubrir comandos personalizados, subagentes y estilos de salida mediante 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 |418| `CLAUDE_CODE_USE_NATIVE_FILE_SEARCH` | Establécela en `1` para descubrir comandos personalizados, subagentes y estilos de salida mediante 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 |

416| `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 las cuentas de claude.ai y de Console; establécela en `1` para habilitarla en las 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) |419| `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 las cuentas de claude.ai y de Console; establécela en `1` para habilitarla en las 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) |

417| `CLAUDE_CODE_USE_VERTEX` | Usa [Google Cloud's Agent Platform](/docs/es/google-vertex-ai) |420| `CLAUDE_CODE_USE_VERTEX` | Usa [Google Cloud's Agent Platform](/docs/es/google-vertex-ai) |

418| `CLAUDE_CODE_WEBFETCH_CACHE_TTL_MS` | Establécela en el número de milisegundos durante los que [WebFetch](/docs/es/tools-reference#webfetch-tool-behavior) mantiene en caché la respuesta de cada URL obtenida. El valor predeterminado es `900000`, que son 15 minutos. Solo acepta dígitos simples; `0`, un decimal o cualquier otra forma de 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 |421| `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 escritura mantiene el valor predeterminado. Claude Code lee el valor una vez por inicio, así 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 |

419| `CLAUDE_CODE_WEBFETCH_DEADLINE_MS` | Límite superior en milisegundos de cuánto tiempo espera [WebFetch](/docs/es/tools-reference#webfetch-tool-behavior) 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 son cinco minutos. Establécela en `0` para eliminar el límite. Solo acepta dígitos simples; un decimal o cualquier otra forma de escritura mantiene el valor predeterminado. Requiere Claude Code v2.1.268 o posterior |422| `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 límite. 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 |

420| `CLAUDE_CODE_WORKFLOW_MAX_CONCURRENT_AGENTS` | Cuántos agentes ejecuta a la vez una sola ejecución de un [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 admite dígitos simples; los valores fuera de rango y otras formas de escribirlos mantienen el valor predeterminado. Requiere Claude Code v2.1.269 o posterior |423| `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 ejecutándose. 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 establecido. Cuando no está establecida, no hay recordatorios. Requiere Claude Code v2.1.283 o posterior |

421| `CLAUDE_CODE_WORKFLOW_PREFIX_STAGGER_MS` | Límite superior, en milisegundos, de cuánto tiempo espera un agente de un [flujo de trabajo](/docs/es/workflows) 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 menos al primer agente hasta este tiempo para que el resto lea el prefijo almacenado 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 |424| `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 `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 |

425| `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 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 los agentes excepto al primero hasta este tiempo para que el resto lea el prefijo en caché en lugar de que cada uno lo procese sin caché. 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 |

422| `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. Se ignora en la [configuración de proyecto y local](/docs/es/settings-reference#variables-claude-code-ignores-in-env) |426| `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. Se ignora en la [configuración de proyecto y local](/docs/es/settings-reference#variables-claude-code-ignores-in-env) |

423| `CLAUDE_DISABLE_ADOPT` | Establécela en `1` para detener el trabajo en segundo plano en curso en lugar de conservarlo 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 confirmación antes de enviarla a segundo plano y luego detiene las tareas que de otro modo se conservarían. Requiere Claude Code v2.1.195 o posterior |427| `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 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 |

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

425| `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 a un [gateway](/docs/es/gateways) alcanzado mediante `ANTHROPIC_BASE_URL` o `ANTHROPIC_AWS_BASE_URL`; antes de v2.1.222 no se ejecutaba en esas conexiones a gateways, 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) |429| `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) |

426| `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 en streaming de Bedrock. Desactivada de forma predeterminada. Configura el tiempo de espera con `CLAUDE_STREAM_IDLE_TIMEOUT_MS` |430| `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` |

427| `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) |431| `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 a este, consulta [Watchdogs de inactividad de streaming](/docs/es/network-config#streaming-idle-watchdogs) |

428| `CLAUDE_ENV_FILE` | Ruta a un script de shell cuyo contenido Claude Code ejecuta antes de cada comando Bash en el mismo proceso de shell, 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) |432| `CLAUDE_ENV_FILE` | Ruta a un script de shell cuyo contenido Claude Code ejecuta antes de cada comando Bash en el mismo proceso de shell, 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) |

429| `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 elimina la sesión |433| `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 |

430| `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 |434| `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 principal de Claude Code. Requiere Claude Code v2.1.214 o posterior |

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

432| `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 agrega 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 |436| `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 agrega 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 |

433| `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 prolongadas de pensamiento y el almacenamiento en búfer de proxies, 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) |437| `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 las pausas prolongadas de pensamiento 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 de cada watchdog cuando no está establecida, consulta [Watchdogs de inactividad de streaming](/docs/es/network-config#streaming-idle-watchdogs) |

434| `CLAUDE_SUBAGENT_BG_SHELL_MAX_MS` | Se eliminó en v2.1.260 y ahora no tiene efecto. Anteriormente limitaba cuánto tiempo, en milisegundos, 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) |438| `CLAUDE_SUBAGENT_BG_SHELL_MAX_MS` | Se eliminó en v2.1.260 y ahora no tiene efecto. Anteriormente limitaba cuánto tiempo podía ejecutarse, en milisegundos, 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) |

435| `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 espacios de nombres como `DEBUG=express:*` establecidos para otras herramientas no lo activan |439| `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 |

436| `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 |440| `DISABLE_AUTOUPDATER` | Establécela en `1` para desactivar las actualizaciones automáticas en segundo plano. El `claude update` manual sigue funcionando. Usa `DISABLE_UPDATES` para bloquear ambos |

437| `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 un control explícito sobre cuándo se produce la compactación. Sobrescribe el ajuste [`autoCompactEnabled`](/docs/es/settings-reference#autocompactenabled) |441| `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 un control explícito sobre cuándo se produce la compactación. Sobrescribe el ajuste [`autoCompactEnabled`](/docs/es/settings-reference#autocompactenabled) |

438| `DISABLE_COMPACT` | Establécela en `1` para desactivar toda la compactación: tanto la compactación automática como el comando manual `/compact` |442| `DISABLE_COMPACT` | Establécela en `1` para desactivar toda la compactación: tanto la compactación automática como el comando manual `/compact` |

439| `DISABLE_COST_WARNINGS` | Establécela en `1` para desactivar los mensajes de advertencia de costos |443| `DISABLE_COST_WARNINGS` | Establécela en `1` para desactivar los mensajes de advertencia de costos |

440| `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 en despliegues administrados donde 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 la pantalla de diagnóstico `/doctor` |444| `DISABLE_DOCTOR_COMMAND` | Establécela en `1` para ocultar el skill de revisión de la configuración [`/doctor`](/docs/es/commands#all-commands) y su alias `/checkup`. Útil para despliegues administrados donde los usuarios no deben 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 la pantalla de diagnóstico `/doctor` |

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

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

443| `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 todos sus nombres. También se acepta el nombre anterior `DISABLE_BUG_COMMAND` |447| `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 a través de la misma vía; antes de v2.1.212 eran alias de `/feedback`, por lo que el comando se desactivaba con cualquiera de sus nombres. También se acepta el nombre anterior `DISABLE_BUG_COMMAND` |

444| `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 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` deja la obtención activada. El registro de eventos de telemetría sigue activado a menos que también se establezca `DISABLE_TELEMETRY` |448| `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 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 la obtención activada. El registro de eventos de telemetría permanece activado a menos que también se establezca `DISABLE_TELEMETRY` |

445| `DISABLE_INSTALLATION_CHECKS` | Establécela en `1` para desactivar las advertencias de instalación. Úsala solo cuando administres manualmente la ubicación de instalación, ya que esto puede ocultar problemas con las instalaciones estándar |449| `DISABLE_INSTALLATION_CHECKS` | Establécela en `1` para desactivar las advertencias de instalación. Úsala solo cuando administres manualmente la ubicación de instalación, ya que esto puede ocultar problemas con las instalaciones estándar |

446| `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, Agent Platform de Google Cloud o Microsoft Foundry) |450| `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, Agent Platform de Google Cloud o Microsoft Foundry) |

447| `DISABLE_INTERLEAVED_THINKING` | Establécela en `1` para evitar el envío del encabezado beta de pensamiento intercalado. Ú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) |451| `DISABLE_INTERLEAVED_THINKING` | Establécela en `1` para evitar enviar el encabezado beta de pensamiento intercalado. Útil cuando tu gateway de LLM o tu proveedor no admite el [pensamiento intercalado](https://platform.claude.com/docs/en/build-with-claude/extended-thinking#interleaved-thinking) |

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

449| `DISABLE_LOGOUT_COMMAND` | Establécela en `1` para ocultar el comando `/logout` |453| `DISABLE_LOGOUT_COMMAND` | Establécela en `1` para ocultar el comando `/logout` |

450| `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) |454| `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) |


453| `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) |457| `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) |

454| `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) |458| `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) |

455| `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 de usuario como código, rutas de archivos o comandos 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) |459| `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 de usuario como código, rutas de archivos o comandos 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) |

456| `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 actualizarlo por su cuenta |460| `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 |

457| `DISABLE_UPGRADE_COMMAND` | Establécela en `1` para ocultar el comando `/upgrade` |461| `DISABLE_UPGRADE_COMMAND` | Establécela en `1` para ocultar el comando `/upgrade` |

458| `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` deja la telemetría activada, y la respeta como la convención entre herramientas que reconocen muchas CLI para desarrolladores |462| `DO_NOT_TRACK` | Establécela en `1` para excluirte de la telemetría, con el mismo efecto que `DISABLE_TELEMETRY`, incluso 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` deja la telemetría activada, y la respeta como la convención entre herramientas reconocida por muchas CLI para desarrolladores |

459| `ENABLE_BETA_TRACING_DETAILED` | Establécela en `1`, junto con `BETA_TRACING_ENDPOINT`, 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 para la beta. Ambas variables se ignoran en la [configuración de proyecto y local](/docs/es/settings-reference#variables-claude-code-ignores-in-env) |463| `ENABLE_BETA_TRACING_DETAILED` | Establécela en `1`, junto con `BETA_TRACING_ENDPOINT`, 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 para la beta. Ambas variables se ignoran en la [configuración de proyecto y local](/docs/es/settings-reference#variables-claude-code-ignores-in-env) |

460| `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). Activada de forma predeterminada para los usuarios con sesión iniciada. Para desactivarla por proyecto o por organización, establece en su lugar [`disableClaudeAiConnectors`](/docs/es/settings-reference#disableclaudeaiconnectors) en la configuración |464| `ENABLE_CLAUDEAI_MCP_SERVERS` | Establécela en `false` para impedir que Claude Code obtenga los [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 desactivarlo por proyecto o por organización, establece [`disableClaudeAiConnectors`](/docs/es/settings-reference#disableclaudeaiconnectors) en la configuración en su lugar |

461| `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), [Agent Platform de Google Cloud](/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 en su lugar `CLAUDE_CODE_PROMPT_CACHE_TTL` y `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL`, que tienen precedencia sobre esta variable |465| `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), [Agent Platform de Google Cloud](/docs/es/google-vertex-ai), [Microsoft Foundry](/docs/es/microsoft-foundry) y [Claude Platform on AWS](/docs/es/claude-platform-on-aws). Los usuarios de 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 de 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 en su lugar, usa `CLAUDE_CODE_PROMPT_CACHE_TTL` y `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL`, que tienen precedencia sobre esta variable |

462| `ENABLE_PROMPT_CACHING_1H_BEDROCK` | Obsoleta. Usa `ENABLE_PROMPT_CACHING_1H` en su lugar |466| `ENABLE_PROMPT_CACHING_1H_BEDROCK` | Obsoleta. Usa `ENABLE_PROMPT_CACHING_1H` en su lugar |

463| `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 Agent Platform de Google Cloud 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 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 desactivaba la búsqueda de herramientas para todos los modelos en Agent Platform de Google Cloud a menos que establecieras esta variable en `true` |467| `ENABLE_TOOL_SEARCH` | Controla la [búsqueda de herramientas MCP](/docs/es/mcp#scale-with-mcp-tool-search). Si no está establecida, Claude Code difiere todas las herramientas MCP de forma predeterminada. Aun así, las carga por adelantado en los modelos de Agent Platform de Google Cloud 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 desactivaba la búsqueda de herramientas para todos los modelos en Agent Platform de Google Cloud a menos que establecieras esta variable en `true` |

464| `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 cada modelo cuando no hay un modelo de respaldo configurado. **Establecerla en `0` o `false` también activa esto**, 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 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 |468| `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 ningún 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 forma 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 el cambio a un modelo de respaldo |

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

466| `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 que la terminal los admite. 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 que la terminal los admite, como a través de SSH. Establece `0` para mostrar la insignia como texto sin formato |470| `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, como a través de SSH. Establece `0` para mostrar la insignia como texto sin formato |

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

468| `HTTP_PROXY` | Especifica el servidor proxy HTTP para las conexiones de red |472| `HTTP_PROXY` | Especifica el servidor proxy HTTP para las conexiones de red |

469| `HTTPS_PROXY` | Especifica el servidor proxy HTTPS para las conexiones de red |473| `HTTPS_PROXY` | Especifica el servidor proxy HTTPS para las conexiones de red |

470| `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 |474| `IS_DEMO` | Establécela en cualquier valor no vacío, como `1`, para activar el modo demo: 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 demo**, a diferencia de la mayoría de las variables de activación/desactivación; elimina la variable para desactivarlo. Útil al transmitir en streaming o grabar una sesión |

471| `MAX_MCP_OUTPUT_TOKENS` | Número máximo de tokens permitidos en las respuestas de herramientas MCP. 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 en su lugar ese límite de caracteres para el contenido de texto, pero el contenido de imagen de esas herramientas sigue sujeto a esta variable (predeterminado: 25000) |475| `MAX_MCP_OUTPUT_TOKENS` | Cantidad máxima de tokens permitida en las respuestas de herramientas MCP. 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 en su lugar, pero el contenido de imágenes de esas herramientas sigue sujeto a esta variable (predeterminado: 25000) |

472| `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 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 un [flujo de trabajo](/docs/es/workflows) no supera la validación. El valor predeterminado es 5: un primer intento más cuatro reintentos |476| `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`; después de 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 [flujo de trabajo](/docs/es/workflows) no supera la validación. El valor predeterminado es 5: un primer intento más cuatro reintentos |

473| `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 por debajo del 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 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. Claude Code ignora los valores distintos de cero en los modelos de razonamiento adaptativo, excepto en los modelos en los que `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` desactiva el razonamiento adaptativo |477| `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 por debajo del 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 el parámetro `thinking` en su lugar. 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 de razonamiento adaptativo, excepto cuando `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` desactiva el razonamiento adaptativo |

474| `MCP_CLIENT_SECRET` | Secreto de cliente OAuth para los 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` |478| `MCP_CLIENT_SECRET` | Secreto de cliente OAuth para los 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` |

475| `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 que el inicio espere 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 conocer la excepción de los servidores en caché |479| `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 que el inicio espere 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 conocer la excepción de los servidores en caché |

476| `MCP_CONNECT_TIMEOUT_MS` | Cuánto tiempo, en milisegundos, espera el inicio bloqueante de MCP al lote de conexiones antes de tomar una instantánea de la lista de herramientas (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 cumplirse el plazo continúan conectándose en segundo plano. Distinta de `MCP_TIMEOUT`, que limita el intento de conexión de un servidor individual |480| `MCP_CONNECT_TIMEOUT_MS` | Cuánto tiempo espera, en milisegundos, el inicio bloqueante de MCP al lote de conexiones antes de tomar una instantánea de la lista de herramientas (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. Es distinta de `MCP_TIMEOUT`, que limita el intento de conexión de un servidor individual |

477| `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 lanzamiento gradual la haya activado para tu cuenta. Establécela en `1` para activarla, o en `0` para mantenerla desactivada incluso cuando el lanzamiento 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 |481| `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 iniciar. 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 |

478| `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, o 4 horas). En un inicio en el que la entrada es más antigua, 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 |482| `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, 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 iniciar, 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 |

479| `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 cae ocasionalmente, para que una sola actualización fallida no descarte la entrada. Requiere Claude Code v2.1.238 o posterior |483| `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, en su lugar, conecte el servidor en el siguiente inicio (predeterminado: 1). Auméntala si tu conexión de red se cae ocasionalmente, para que una sola actualización fallida no descarte la entrada. Requiere Claude Code v2.1.238 o posterior |

480| `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, 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 |484| `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 aún la usa, 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 en su lugar. 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 |

481| `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) |485| `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) |

482| `MCP_PROTOCOL_NEGOTIATION` | Solo en el [entorno de ejecución del cliente MCP v2](/docs/es/mcp#mcp-client-runtimes), determina si Claude Code sondea los servidores para la revisión del protocolo MCP 2026-07-28. Establece `auto` para sondear los servidores HTTP, de conector de claude.ai y stdio, o `legacy` para no sondear ninguno. Con la variable sin establecer, Claude Code sondea los servidores descritos en [Entornos de ejecución del 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 |486| `MCP_PROTOCOL_NEGOTIATION` | Solo en el [entorno de ejecución del 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 los servidores HTTP, de conector de claude.ai y stdio, o `legacy` para no sondear ninguno. Con la variable sin establecer, Claude Code sondea los servidores descritos en [Entornos de ejecución del 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 |

483| `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) |487| `MCP_REMOTE_SERVER_CONNECTION_BATCH_SIZE` | Cantidad máxima de servidores MCP remotos (HTTP/SSE) que se conectan en paralelo durante el inicio (predeterminado: 20) |

484| `MCP_SDK_GENERATION` | Fija el [entorno de ejecución del cliente MCP](/docs/es/mcp#mcp-client-runtimes) con el que este proceso se conecta 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 entorno de ejecución 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 entorno de ejecución 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 |488| `MCP_SDK_GENERATION` | Fija con qué [entorno de ejecución del 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 entorno de ejecución 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 entorno de ejecución 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 |

485| `MCP_SERVER_CONNECTION_BATCH_SIZE` | Número máximo de servidores MCP locales (stdio) que se conectan en paralelo durante el inicio (predeterminado: 3) |489| `MCP_SERVER_CONNECTION_BATCH_SIZE` | Cantidad máxima de servidores MCP locales (stdio) que se conectan en paralelo durante el inicio (predeterminado: 3) |

486| `MCP_TIMEOUT` | Tiempo de espera en milisegundos para el inicio del servidor MCP (predeterminado: 30000, o 30 segundos) |490| `MCP_TIMEOUT` | Tiempo de espera en milisegundos para el inicio del servidor MCP (predeterminado: 30000, o 30 segundos) |

487| `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 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 de inactividad mínima para las llamadas a herramientas de ese servidor, de modo que `CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT` nunca las cancela 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 |491| `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 después de 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 herramientas, 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 |

488| `NO_PROXY` | Lista de dominios e IP a los que las solicitudes se enviarán directamente, omitiendo el proxy |492| `NO_PROXY` | Lista de dominios e IP a los que se enviarán las solicitudes directamente, sin pasar por el proxy |

489| `OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT` | Límite estándar del SDK de OpenTelemetry sobre la longitud de los valores de 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 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) |493| `OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT` | Límite estándar del SDK de OpenTelemetry sobre la longitud de los valores de 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 se mantenga 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) |

490| `OTEL_LOG_ASSISTANT_RESPONSES` | Establécela en `1` para incluir el texto de respuesta del modelo en los eventos de registro `assistant_response` de OpenTelemetry. 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) |494| `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 el valor de `OTEL_LOG_USER_PROMPTS` en su lugar. Establécela en `0` para mantener las respuestas censuradas 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) |

491| `OTEL_LOG_MANAGED_SETTINGS` | Establécela en `1` para agregar 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 `managed_settings_resolved` de OpenTelemetry. 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) |495| `OTEL_LOG_MANAGED_SETTINGS` | Establécela en `1` para agregar la configuración administrada censurada, y un resumen SHA-256 de la configuración antes de la censura, 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) |

492| `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 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. 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) |496| `OTEL_LOG_RAW_API_BODIES` | Emite el JSON de solicitudes y respuestas 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 una ruta `body_ref` en su lugar. `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) |

493| `OTEL_LOG_TOOL_CONTENT` | Establécela en `1` para incluir el contenido de las herramientas en el evento de span `tool.output` de OpenTelemetry. 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). 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) |497| `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 propias condiciones](/docs/es/monitoring-usage#new-context-gates). Requiere [rastreo](/docs/es/monitoring-usage#traces-beta). Desactivada de forma predeterminada para proteger 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) |

494| `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 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. Desactivada de forma predeterminada para proteger la información de identificación personal. 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) |498| `OTEL_LOG_TOOL_DETAILS` | Establécela en `1` para incluir los argumentos de entrada de las herramientas; los nombres de 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 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) |

495| `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) |499| `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 censuran). 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) |

496| `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) |500| `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` | Establécela en `false` para excluir el UUID de la cuenta de los atributos de métricas (predeterminado: incluido). Consulta [Monitoreo](/docs/es/monitoring-usage) |

497| `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). Se agregó en v2.1.152. Consulta [Monitoreo](/docs/es/monitoring-usage) |501| `OTEL_METRICS_INCLUDE_ENTRYPOINT` | Establécela en `true` para incluir el punto de entrada de la sesión en los atributos de métricas (predeterminado: excluido). Agregada en v2.1.152. Consulta [Monitoreo](/docs/es/monitoring-usage) |

498| `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) |502| `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) |

499| `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) |503| `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 métricas. Establécela en `false` para excluirlas (predeterminado: incluidas). Consulta [Monitoreo](/docs/es/monitoring-usage#multi-team-organization-support) |

500| `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) |504| `OTEL_METRICS_INCLUDE_SESSION_ID` | Establécela en `false` para excluir el ID de sesión de los atributos de métricas (predeterminado: incluido). Consulta [Monitoreo](/docs/es/monitoring-usage) |

501| `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) |505| `OTEL_METRICS_INCLUDE_VERSION` | Establécela en `true` para incluir la versión de Claude Code en los atributos de métricas (predeterminado: excluida). Consulta [Monitoreo](/docs/es/monitoring-usage) |

502| `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 escala dinámicamente al 1% de la ventana de contexto, con un valor de respaldo de 8,000 caracteres. Se mantiene el nombre heredado por compatibilidad con versiones anteriores |506| `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 |

503| `TASK_MAX_OUTPUT_LENGTH` | Se eliminó 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 en su lugar el archivo de salida de una tarea en segundo plano con `Read` |507| `TASK_MAX_OUTPUT_LENGTH` | Se eliminó 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 lee el archivo de salida de una tarea en segundo plano con `Read` en su lugar |

504| `USE_BUILTIN_RIPGREP` | Establécela en `0` para usar el `rg` instalado en el sistema en lugar del `rg` incluido con Claude Code |508| `USE_BUILTIN_RIPGREP` | Establécela en `0` para usar el `rg` instalado en el sistema en lugar del `rg` incluido con Claude Code |

505| `VERTEX_REGION_CLAUDE_3_5_HAIKU` | Sobrescribe la región para Claude 3.5 Haiku al usar Agent Platform de Google Cloud |509| `VERTEX_REGION_CLAUDE_3_5_HAIKU` | Sobrescribe la región de Claude 3.5 Haiku al usar Agent Platform de Google Cloud |

506| `VERTEX_REGION_CLAUDE_3_5_SONNET` | Sobrescribe la región para Claude 3.5 Sonnet al usar Agent Platform de Google Cloud |510| `VERTEX_REGION_CLAUDE_3_5_SONNET` | Sobrescribe la región de Claude 3.5 Sonnet al usar Agent Platform de Google Cloud |

507| `VERTEX_REGION_CLAUDE_3_7_SONNET` | Sobrescribe la región para Claude 3.7 Sonnet al usar Agent Platform de Google Cloud |511| `VERTEX_REGION_CLAUDE_3_7_SONNET` | Sobrescribe la región de Claude 3.7 Sonnet al usar Agent Platform de Google Cloud |

508| `VERTEX_REGION_CLAUDE_4_0_OPUS` | Sobrescribe la región para Claude 4.0 Opus al usar Agent Platform de Google Cloud |512| `VERTEX_REGION_CLAUDE_4_0_OPUS` | Sobrescribe la región de Claude 4.0 Opus al usar Agent Platform de Google Cloud |

509| `VERTEX_REGION_CLAUDE_4_0_SONNET` | Sobrescribe la región para Claude 4.0 Sonnet al usar Agent Platform de Google Cloud |513| `VERTEX_REGION_CLAUDE_4_0_SONNET` | Sobrescribe la región de Claude 4.0 Sonnet al usar Agent Platform de Google Cloud |

510| `VERTEX_REGION_CLAUDE_4_1_OPUS` | Sobrescribe la región para Claude 4.1 Opus al usar Agent Platform de Google Cloud |514| `VERTEX_REGION_CLAUDE_4_1_OPUS` | Sobrescribe la región de Claude 4.1 Opus al usar Agent Platform de Google Cloud |

511| `VERTEX_REGION_CLAUDE_4_5_OPUS` | Sobrescribe la región para Claude Opus 4.5 al usar Agent Platform de Google Cloud |515| `VERTEX_REGION_CLAUDE_4_5_OPUS` | Sobrescribe la región de Claude Opus 4.5 al usar Agent Platform de Google Cloud |

512| `VERTEX_REGION_CLAUDE_4_5_SONNET` | Sobrescribe la región para Claude Sonnet 4.5 al usar Agent Platform de Google Cloud |516| `VERTEX_REGION_CLAUDE_4_5_SONNET` | Sobrescribe la región de Claude Sonnet 4.5 al usar Agent Platform de Google Cloud |

513| `VERTEX_REGION_CLAUDE_4_6_OPUS` | Sobrescribe la región para Claude Opus 4.6 al usar Agent Platform de Google Cloud |517| `VERTEX_REGION_CLAUDE_4_6_OPUS` | Sobrescribe la región de Claude Opus 4.6 al usar Agent Platform de Google Cloud |

514| `VERTEX_REGION_CLAUDE_4_6_SONNET` | Sobrescribe la región para Claude Sonnet 4.6 al usar Agent Platform de Google Cloud |518| `VERTEX_REGION_CLAUDE_4_6_SONNET` | Sobrescribe la región de Claude Sonnet 4.6 al usar Agent Platform de Google Cloud |

515| `VERTEX_REGION_CLAUDE_4_7_OPUS` | Sobrescribe la región para Claude Opus 4.7 al usar Agent Platform de Google Cloud |519| `VERTEX_REGION_CLAUDE_4_7_OPUS` | Sobrescribe la región de Claude Opus 4.7 al usar Agent Platform de Google Cloud |

516| `VERTEX_REGION_CLAUDE_4_8_OPUS` | Sobrescribe la región para Claude Opus 4.8 al usar Agent Platform de Google Cloud |520| `VERTEX_REGION_CLAUDE_4_8_OPUS` | Sobrescribe la región de Claude Opus 4.8 al usar Agent Platform de Google Cloud |

517| `VERTEX_REGION_CLAUDE_5_5_OPUS` | Sobrescribe la región para Claude Opus 5.5 al usar Agent Platform de Google Cloud. Se agregó en v2.1.280 |521| `VERTEX_REGION_CLAUDE_5_5_OPUS` | Sobrescribe la región de Claude Opus 5.5 al usar Agent Platform de Google Cloud. Agregada en v2.1.280 |

518| `VERTEX_REGION_CLAUDE_5_5_SONNET` | Sobrescribe la región para Claude Sonnet 5.5 al usar Agent Platform de Google Cloud. Se agregó en v2.1.284 |522| `VERTEX_REGION_CLAUDE_5_5_SONNET` | Sobrescribe la región de Claude Sonnet 5.5 al usar Agent Platform de Google Cloud. Agregada en v2.1.284 |

519| `VERTEX_REGION_CLAUDE_5_OPUS` | Sobrescribe la región para Claude Opus 5 al usar Agent Platform de Google Cloud. Se agregó en v2.1.219 |523| `VERTEX_REGION_CLAUDE_5_OPUS` | Sobrescribe la región de Claude Opus 5 al usar Agent Platform de Google Cloud. Agregada en v2.1.219 |

520| `VERTEX_REGION_CLAUDE_5_SONNET` | Sobrescribe la región para Claude Sonnet 5 al usar Agent Platform de Google Cloud. Se agregó en v2.1.197 |524| `VERTEX_REGION_CLAUDE_5_SONNET` | Sobrescribe la región de Claude Sonnet 5 al usar Agent Platform de Google Cloud. Agregada en v2.1.197 |

521| `VERTEX_REGION_CLAUDE_FABLE_5` | Sobrescribe la región para Claude Fable 5 al usar Agent Platform de Google Cloud. Se agregó en v2.1.170 |525| `VERTEX_REGION_CLAUDE_FABLE_5` | Sobrescribe la región de Claude Fable 5 al usar Agent Platform de Google Cloud. Agregada en v2.1.170 |

522| `VERTEX_REGION_CLAUDE_FABLE_5_1` | Sobrescribe la región para Claude Fable 5.1 al usar Agent Platform de Google Cloud. Se agregó en v2.1.257 |526| `VERTEX_REGION_CLAUDE_FABLE_5_1` | Sobrescribe la región de Claude Fable 5.1 al usar Agent Platform de Google Cloud. Agregada en v2.1.257 |

523| `VERTEX_REGION_CLAUDE_HAIKU_4_5` | Sobrescribe la región para Claude Haiku 4.5 al usar Agent Platform de Google Cloud |527| `VERTEX_REGION_CLAUDE_HAIKU_4_5` | Sobrescribe la región de Claude Haiku 4.5 al usar Agent Platform de Google Cloud |

524 528 

525También se admiten las variables estándar del exportador de OpenTelemetry (`OTEL_METRICS_EXPORTER`, `OTEL_LOGS_EXPORTER`, `OTEL_EXPORTER_OTLP_ENDPOINT`, `OTEL_EXPORTER_OTLP_PROTOCOL`, `OTEL_EXPORTER_OTLP_HEADERS`, `OTEL_METRIC_EXPORT_INTERVAL`, `OTEL_RESOURCE_ATTRIBUTES` y las variantes específicas de cada señal). Consulta [Monitoreo](/docs/es/monitoring-usage) para ver los detalles de configuración.529Tambié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 conocer los detalles de configuración.

526 530 

527Establece `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.531Establece `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.

528 532 

533<h2 id="what-the-subprocess-environment-scrub-removes">

534 Qué elimina la depuración del entorno de los subprocesos

535</h2>

536 

537Cuando estableces [`CLAUDE_CODE_SUBPROCESS_ENV_SCRUB`](#variables) en `1`, Claude Code elimina las credenciales de los entornos de los subprocesos que inicia, como los comandos de Bash, los hooks y los servidores MCP stdio. Esto reduce lo que un ataque de inyección de prompts puede leer mediante la expansión del shell. El proceso de Claude Code conserva las credenciales para sus propias llamadas a la API.

538 

539La depuración reconoce una credencial por el nombre de su variable o por la forma de su valor, así que úsala como una capa más junto con [reglas de permisos](/docs/es/permissions) acotadas, en lugar de como el único control.

540 

541La tabla muestra lo que hace la depuración con algunas variables de ejemplo:

542 

543| Variable de ejemplo | Lo que hace la depuración |

544| :- | :- |

545| `ANTHROPIC_API_KEY`, `AWS_SECRET_ACCESS_KEY` | La elimina |

546| `NPM_TOKEN`, `DB_PASSWORD` | La elimina, porque el nombre parece el de una credencial |

547| `DATABASE_URL` que contiene una contraseña | La elimina, porque el valor parece una credencial |

548| `PIP_INDEX_URL` o `NPM_CONFIG_REGISTRY` que contiene una contraseña | Conserva la URL y le quita el nombre de usuario y la contraseña |

549| `CLAUDE_CONFIG_DIR` | La elimina. Requiere Claude Code v2.1.251 o posterior |

550| `GITHUB_TOKEN`, `GH_TOKEN`, `GH_ENTERPRISE_TOKEN`, `GITHUB_ENTERPRISE_TOKEN` | La deja intacta, para que `gh` y los scripts que llaman a la API de GitHub sigan funcionando |

551| `HTTP_PROXY`, `HTTPS_PROXY` | La deja intacta, incluido un [nombre de usuario y contraseña en la URL](/docs/es/network-config#basic-authentication). El [sandbox](/docs/es/sandboxing#network-isolation) puede establecer estas variables por sí mismo para los comandos que se ejecutan en el sandbox |

552| `GIT_CONFIG_COUNT`, `GIT_CONFIG_KEY_<n>`, `GIT_CONFIG_VALUE_<n>` | La deja intacta, sin importar lo que contenga |

553| Un secreto cuyo nombre de variable y valor no parecen una credencial | La deja intacta |

554 

555Como la depuración deja intacto `GITHUB_TOKEN`, asigna a un trabajo de GitHub Actions los `permissions` más restringidos que necesite. Para eliminar un token de GitHub de los comandos de Bash que se ejecutan en el sandbox, agrega una entrada `deny` en [`sandbox.credentials`](/docs/es/sandboxing#protect-credentials).

556 

557No establezcas la depuración si un subproceso necesita alguna de las variables eliminadas.

558 

559En Linux, la depuración también ejecuta los subprocesos de Bash en un espacio de nombres PID aislado para que no puedan leer los entornos de los procesos del host a través de `/proc`. Como efecto secundario, `ps`, `pgrep` y `kill` no pueden ver los procesos del host ni enviarles señales.

560 

529<h2 id="features-that-need-feature-flag-fetching">561<h2 id="features-that-need-feature-flag-fetching">

530 Características que necesitan obtención de banderas de características562 Funciones que requieren la obtención de feature flags

531</h2>563</h2>

532 564 

533Claude Code activa algunas características a través de banderas de características que obtiene de Anthropic. Claude Code omite esa obtención en estas sesiones:565Claude Code activa algunas funciones mediante feature flags que obtiene de Anthropic. Claude Code omite esa obtención en estas sesiones:

534 566 

535* Una sesión donde usted establece `DISABLE_GROWTHBOOK`, `DISABLE_TELEMETRY`, `DO_NOT_TRACK`, o `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`; la fila de cada variable en la [tabla de variables](#variables) indica qué valores desactivan la obtención567* Una sesión en la que estableces `DISABLE_GROWTHBOOK`, `DISABLE_TELEMETRY`, `DO_NOT_TRACK` o `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`; la fila de cada variable en la [tabla de variables](#variables) indica qué valores desactivan la obtención

536* Una sesión en un [proveedor de terceros](/docs/es/third-party-integrations), como Amazon Bedrock, Claude Platform en AWS, Agent Platform de Google Cloud, o Microsoft Foundry, a menos que una plataforma anfitriona que integre Claude Code establezca `CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`568* Una sesión en un [proveedor externo](/docs/es/third-party-integrations), como Amazon Bedrock, Claude Platform on AWS, Google Cloud's Agent Platform o Microsoft Foundry, a menos que una plataforma anfitriona que integre Claude Code establezca `CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`

537* Una sesión de [puerta de enlace de aplicaciones Claude](/docs/es/claude-apps-gateway)569* Una sesión del [gateway de aplicaciones de Claude](/docs/es/claude-apps-gateway)

538 570 

539Con la obtención desactivada, usted no puede:571Con la obtención desactivada, no puedes:

540 572 

541* Ejecutar [`/auto-mode-setup`](/docs/es/auto-mode-config#generate-environment-entries) para redactar entradas de `autoMode.environment`573* Ejecutar [`/auto-mode-setup`](/docs/es/auto-mode-config#generate-environment-entries) para redactar entradas de `autoMode.environment`

542* Usar [Control Remoto](/docs/es/remote-control) con `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` o `DISABLE_GROWTHBOOK` establecidos. Para `DISABLE_TELEMETRY` y `DO_NOT_TRACK`, consulte los [requisitos de Control Remoto](/docs/es/remote-control#requirements)574* Usar [Remote Control](/docs/es/remote-control) con `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` o `DISABLE_GROWTHBOOK` establecidas. Para `DISABLE_TELEMETRY` y `DO_NOT_TRACK`, consulta los [requisitos de Remote Control](/docs/es/remote-control#requirements)

543* [Enviar mensajes a sesiones más allá de esta máquina](/docs/es/cross-session-messaging#message-sessions-on-other-machines) cuando [Control Remoto](/docs/es/remote-control#requirements) no esté disponible. La mensajería entre sesiones en esta máquina funciona con la obtención desactivada575* [Enviar mensajes a sesiones fuera de esta máquina](/docs/es/cross-session-messaging#message-sessions-on-other-machines) cuando [Remote Control](/docs/es/remote-control#requirements) no está disponible. El envío de mensajes entre sesiones en esta máquina funciona con la obtención desactivada

544* Ejecutar [`claude import` o el comando `/import`](/docs/es/cli-reference#cli-commands)576* Ejecutar [`claude import` o el comando `/import`](/docs/es/cli-reference#cli-commands)

545* Ejecutar [`/skill-doctor`](/docs/es/skills#find-unused-skills) o abrir su informe en la pestaña **Stats** de `/plugin`577* Ejecutar [`/skill-doctor`](/docs/es/skills#find-unused-skills) ni abrir su informe en la pestaña **Stats** de `/plugin`

546* Sincronizar las [skills](/docs/es/skills#where-synced-skills-load) y [plugins](/docs/es/plugins/loading#synced-plugins) habilitados para su cuenta de claude.ai en sus sesiones de terminal578* Sincronizar los [skills](/docs/es/skills#where-synced-skills-load) y [plugins](/docs/es/plugins/loading#synced-plugins) habilitados para tu cuenta de claude.ai en tus sesiones de terminal

547* Usar [la herramienta asesor](/docs/es/advisor#requirements)579* Usar [la herramienta advisor](/docs/es/advisor#requirements)

548* Leer o responder a [comentarios en un artefacto](/docs/es/artifacts#collect-comments-on-an-artifact)580* Leer o responder [comentarios en un artefacto](/docs/es/artifacts#collect-comments-on-an-artifact)

549* Hacer que Claude lea [el artefacto público de otra organización](/docs/es/artifacts#read-an-artifact-shared-with-you)581* Hacer que Claude lea [el artefacto público de otra organización](/docs/es/artifacts#read-an-artifact-shared-with-you)

550* Hacer que Claude Code sondee servidores de conectores de claude.ai o servidores stdio para la [revisión del protocolo MCP 2026-07-28](/docs/es/mcp#mcp-client-runtimes) a menos que establezcas `MCP_PROTOCOL_NEGOTIATION=auto`582* Hacer que Claude Code sondee servidores de conectores de claude.ai o servidores stdio para la [revisión 2026-07-28 del protocolo MCP](/docs/es/mcp#mcp-client-runtimes), a menos que establezcas `MCP_PROTOCOL_NEGOTIATION=auto`

551* Obtener [la herramienta PowerShell](/docs/es/tools-reference#powershell-tool) de forma predeterminada para cuentas de claude.ai y Console en Windows con Git Bash instalado; Claude Code enruta comandos de shell a través de Git Bash a menos que usted establezca `CLAUDE_CODE_USE_POWERSHELL_TOOL=1`. En Windows sin Git Bash, la herramienta permanece activada583* Obtener la [herramienta PowerShell](/docs/es/tools-reference#powershell-tool) de forma predeterminada para cuentas de claude.ai y Console en Windows con Git Bash instalado; Claude Code enruta los comandos de shell a través de Git Bash a menos que establezcas `CLAUDE_CODE_USE_POWERSHELL_TOOL=1`. En Windows sin Git Bash, la herramienta permanece activada

552* Obtener [comentarios redactados por Claude](/docs/es/tools-reference#sendfeedback-tool-behavior), que Claude Code activa a través de una bandera obtenida584* Obtener [comentarios redactados por Claude](/docs/es/tools-reference#sendfeedback-tool-behavior), que Claude Code activa mediante un flag obtenido

553* Hacer que Claude [trate pastas grandes como texto pegado en lugar de texto escrito](/docs/es/terminal-config#how-claude-treats-pasted-text); el contenido detrás de un marcador de posición `[Pasted text #N]` llega a Claude sin marcar585* Hacer que Claude [trate los pegados grandes como texto pegado en lugar de texto escrito](/docs/es/terminal-config#how-claude-treats-pasted-text); el contenido detrás de un marcador de posición `[Pasted text #N]` llega a Claude sin marcar

554* Hacer que Claude Code [excluya herramientas MCP cuyo esquema de entrada la API rechazaría](/docs/es/mcp#tools-with-invalid-input-schemas); envía el esquema de todas formas, y una solicitud que lo incluye falla con [un error 400 que nombra la herramienta por su posición](/docs/es/errors#tool-input-schema-is-invalid)586* Hacer que Claude Code [excluya las herramientas MCP cuyo esquema de entrada rechazaría la API](/docs/es/mcp#tools-with-invalid-input-schemas); envía el esquema de todos modos, y una solicitud que lo incluya falla con [un error 400 que nombra la herramienta por su posición](/docs/es/errors#tool-input-schema-is-invalid)

555 587 

556<h3 id="first-session-after-an-install-or-upgrade">588<h3 id="first-session-after-an-install-or-upgrade">

557 Primera sesión después de una instalación o actualización589 Primera sesión después de una instalación o actualización

558</h3>590</h3>

559 591 

560En su primera sesión después de instalar Claude Code, o actualizar a una versión que añade una característica, una [característica protegida por bandera](#features-that-need-feature-flag-fetching) puede estar ausente. Esa sesión también puede iniciarse en un [modo de permiso](/docs/es/permission-modes#which-mode-a-session-starts-in) diferente al que sus sesiones posteriores hacen. Claude Code obtiene las banderas durante esa sesión, por lo que su próxima sesión tiene la característica y el modo de permiso inicial habitual.592En tu primera sesión después de instalar Claude Code, o de actualizar a una versión que añade una función, puede faltar una [función controlada por flags](#features-that-need-feature-flag-fetching). Esa sesión también puede iniciarse en un [modo de permisos](/docs/es/permission-modes#which-mode-a-session-starts-in) distinto al de tus sesiones posteriores. Cuando Claude Code obtiene los flags durante esa sesión, los guarda en la máquina, de modo que tu siguiente sesión en esa máquina tiene la función y el modo de permisos inicial habitual.

593 

594Después de una instalación nueva, en una sesión no interactiva como `claude -p`, el Agent SDK o la extensión de VS Code, Claude Code puede obtener los flags antes de [elegir el modo de permisos inicial](/docs/es/permission-modes#which-mode-a-session-starts-in), pero no siempre los espera.

595 

596En configuraciones como estas, las sesiones posteriores a la primera también se inician sin flags recién obtenidos:

597 

598* **Un entorno limpio en cada ejecución**: si cada ejecución se inicia en un contenedor de CI, o en cualquier otro entorno sin los flags que guardó una sesión anterior, cada ejecución es una primera sesión

599* **Un token de gateway sin clave de API**: si te autenticas con `ANTHROPIC_AUTH_TOKEN` y sin clave de API, y `ANTHROPIC_BASE_URL` apunta a un host distinto al de Anthropic, como un [gateway de LLM](/docs/es/llm-gateway), Claude Code no tiene ninguna credencial con la que obtener los flags

561 600 

562Después de una instalación nueva, en una sesión no interactiva como `claude -p`, el SDK del Agent, o la extensión de VS Code, Claude Code aún puede obtener las banderas antes de [elegir el modo de permiso inicial](/docs/es/permission-modes#which-mode-a-session-starts-in).601Para elegir el modo de permisos en el que se inician las sesiones en estas configuraciones, consulta [Iniciar en un modo de permisos diferente](/docs/es/permission-modes#start-in-a-different-mode).

563 602 

564<h2 id="see-also">603<h2 id="see-also">

565 Véase también604 Véase también

errors.md +19 −1

Details

366| `Invalid permission rule "..." was skipped: Malformed Tool(content) rule` | [Advertencias de configuración](#malformed-tool-content-rule) |366| `Invalid permission rule "..." was skipped: Malformed Tool(content) rule` | [Advertencias de configuración](#malformed-tool-content-rule) |

367| `... is not matched by file permission checks` | [Advertencias de configuración](#is-not-matched-by-file-permission-checks) |367| `... is not matched by file permission checks` | [Advertencias de configuración](#is-not-matched-by-file-permission-checks) |

368| `... has a wildcard before the rest of the command` | [Advertencias de configuración](#has-a-wildcard-before-the-rest-of-the-command) |368| `... has a wildcard before the rest of the command` | [Advertencias de configuración](#has-a-wildcard-before-the-rest-of-the-command) |

369| `Denying Bash also turns off the PowerShell tool, so Claude has neither` | [Advertencias de configuración](#denying-bash-also-turns-off-the-powershell-tool) |

369| `CLAUDE_CODE_DISABLE_1M_CONTEXT is set, but the 200K limit isn't enforced` | [Advertencias de configuración](#the-200k-limit-isnt-enforced) |370| `CLAUDE_CODE_DISABLE_1M_CONTEXT is set, but the 200K limit isn't enforced` | [Advertencias de configuración](#the-200k-limit-isnt-enforced) |

370| `[claude-code:unrecognized_model]` | [Advertencias de configuración](#unrecognized-model-id-on-a-request) |371| `[claude-code:unrecognized_model]` | [Advertencias de configuración](#unrecognized-model-id-on-a-request) |

371| `Stale sandbox mask files left by a killed session` | [Advertencias de configuración](#stale-sandbox-mask-files-left-by-a-killed-session) |372| `Stale sandbox mask files left by a killed session` | [Advertencias de configuración](#stale-sandbox-mask-files-left-by-a-killed-session) |


846**Qué hacer:**847**Qué hacer:**

847 848 

848* En Pro y Max, aumente su límite de gasto mensual en [**Settings > Usage**](https://claude.ai/settings/usage) en claude.ai, o ejecute `/usage-credits`849* En Pro y Max, aumente su límite de gasto mensual en [**Settings > Usage**](https://claude.ai/settings/usage) en claude.ai, o ejecute `/usage-credits`

849* En Team y Enterprise, aumente el límite en [**Admin settings > Usage**](https://claude.ai/admin-settings/usage) si gestiona la facturación, o pida a un administrador que lo haga. `/usage-credits` envía esa solicitud a su administrador por usted850* En Team y Enterprise, aumenta el límite en [**Organization settings > Usage**](https://claude.ai/admin-settings/usage) si gestionas la facturación, o pídele a un administrador que lo haga. `/usage-credits` envía esa solicitud a tu administrador por ti

850* Para el límite de un canal, pida a un propietario de la organización o al gerente del canal que lo aumente en claude.ai. Consulte [Per-channel limits](https://claude.com/docs/claude-tag/admins/set-spend-limit#per-channel-limits) en la documentación de Claude Tag851* Para el límite de un canal, pida a un propietario de la organización o al gerente del canal que lo aumente en claude.ai. Consulte [Per-channel limits](https://claude.com/docs/claude-tag/admins/set-spend-limit#per-channel-limits) en la documentación de Claude Tag

851* Si el mensaje nombra una hora de reinicio para la ventana de su plan, puede esperar en su lugar852* Si el mensaje nombra una hora de reinicio para la ventana de su plan, puede esperar en su lugar

852* Ejecute `/usage` para ver las ventanas de su plan y cuándo se reinicia cada una853* Ejecute `/usage` para ver las ventanas de su plan y cuándo se reinicia cada una


5636 5637 

5637En una [sesión en segundo plano](/docs/es/agent-view) o con `--output-format json` o `stream-json`, Claude Code escribe la advertencia en el registro de depuración en lugar de stderr, por lo que la salida leída por máquina se mantiene limpia. Ejecute con `--debug` para capturarla en `~/.claude/debug/<session-id>.txt`. Antes de v2.1.246, Claude Code aceptaba estas reglas sin una advertencia.5638En una [sesión en segundo plano](/docs/es/agent-view) o con `--output-format json` o `stream-json`, Claude Code escribe la advertencia en el registro de depuración en lugar de stderr, por lo que la salida leída por máquina se mantiene limpia. Ejecute con `--debug` para capturarla en `~/.claude/debug/<session-id>.txt`. Antes de v2.1.246, Claude Code aceptaba estas reglas sin una advertencia.

5638 5639 

5640<h3 id="denying-bash-also-turns-off-the-powershell-tool">

5641 Denying Bash also turns off the PowerShell tool

5642</h3>

5643 

5644Eliminaste toda la herramienta Bash, por ejemplo con `--disallowedTools Bash` o con una [regla deny](/docs/es/permissions#match-all-uses-of-a-tool) `Bash` o `Bash(*)` sin más en uno de tus archivos de configuración. En Windows con Git Bash instalado, [denegar Bash también desactiva la herramienta PowerShell](/docs/es/tools-reference#bash-deny-rules-also-turn-off-the-powershell-tool), por lo que la sesión se inicia sin ninguna herramienta de shell. Claude Code imprime esta advertencia al iniciar:

5645 

5646```text theme={null}

5647Denying Bash also turns off the PowerShell tool, so Claude has neither. To use PowerShell, set CLAUDE_CODE_USE_POWERSHELL_TOOL=1.

5648```

5649 

5650**Qué hacer:**

5651 

5652* Para que Claude use PowerShell, establece [`CLAUDE_CODE_USE_POWERSHELL_TOOL`](/docs/es/env-vars) en `1` en tu entorno o en el bloque `env` de un archivo de configuración, como muestra [Enable the PowerShell tool](/docs/es/tools-reference#enable-the-powershell-tool). La herramienta PowerShell permanece entonces activada junto con tu regla deny de Bash.

5653* Para bloquear comandos concretos en lugar de toda la herramienta, reemplaza la entrada `Bash` sin más por reglas acotadas como `Bash(git push *)` en el mismo archivo de configuración o flag. Claude conserva la herramienta Bash, y la herramienta PowerShell permanece desactivada hasta que también establezcas la variable o agregues una [regla de permisos `PowerShell`](/docs/es/permissions#powershell) acotada.

5654 

5655En una [sesión en segundo plano](/docs/es/agent-view) o con `--output-format json` o `stream-json`, Claude Code escribe la advertencia en el registro de depuración en lugar de stderr. Ejecuta con `--debug` para capturarla en `~/.claude/debug/<session-id>.txt`. Antes de v2.1.287, Claude Code desactivaba la herramienta PowerShell de la misma manera sin imprimir ninguna advertencia.

5656 

5639<h3 id="crosssessioninbound-must-be-one-of-accept-hold-refuse">5657<h3 id="crosssessioninbound-must-be-one-of-accept-hold-refuse">

5640 crossSessionInbound debe ser uno de accept, hold, refuse5658 crossSessionInbound debe ser uno de accept, hold, refuse

5641</h3>5659</h3>

fast-mode.md +4 −4

Details

136El modo rápido requiere todos los siguientes:136El modo rápido requiere todos los siguientes:

137 137 

138* **Solo API de Anthropic o suscripción**: el modo rápido está disponible a través de la API de Anthropic Console y para planes de suscripción de Claude usando créditos de uso. No está disponible en Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry o Claude Platform en AWS. Las organizaciones de Console también deben tener [acceso al modo rápido aprovisionado](#enable-fast-mode-for-your-organization).138* **Solo API de Anthropic o suscripción**: el modo rápido está disponible a través de la API de Anthropic Console y para planes de suscripción de Claude usando créditos de uso. No está disponible en Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry o Claude Platform en AWS. Las organizaciones de Console también deben tener [acceso al modo rápido aprovisionado](#enable-fast-mode-for-your-organization).

139* **Créditos de uso activados para planes de suscripción**: en un plan Pro, Max, Team o Enterprise, su cuenta debe tener [créditos de uso](/docs/es/costs#add-usage-credits-to-your-subscription) activados, lo que permite facturación más allá del uso incluido en su plan. Hasta que estén activados, `/fast` muestra "Fast mode requires usage credits". Cómo los activa depende de su plan:139* **Créditos de uso activados para planes de suscripción**: en un plan Pro, Max, Team o Enterprise, tu cuenta debe tener [créditos de uso](/docs/es/costs#add-usage-credits-to-your-subscription) activados, lo que permite la facturación más allá del uso incluido en tu plan. Hasta que estén activados, `/fast` muestra "Fast mode requires usage credits". Cómo los activas depende de tu plan:

140 * En Pro y Max, actívelos en la sección **Usage credits** de [**Settings > Usage**](https://claude.ai/settings/usage) en claude.ai, o ejecute `/usage-credits` para abrir esa página.140 * En Pro y Max, actívalos en la sección **Usage credits** de [**Settings > Usage**](https://claude.ai/settings/usage) en claude.ai, o ejecuta `/usage-credits` para abrir esa página.

141 * En Team y Enterprise, un miembro con acceso de facturación los activa para la organización en [**Admin settings > Usage**](https://claude.ai/admin-settings/usage), y un miembro sin acceso ejecuta `/usage-credits` para enviar una solicitud a los administradores de la organización.141 * En Team y Enterprise, un miembro con acceso de facturación los activa para la organización en [**Organization settings > Usage**](https://claude.ai/admin-settings/usage), y un miembro sin ese acceso ejecuta `/usage-credits` para enviar una solicitud a los administradores de la organización.

142 142 

143<Note>143<Note>

144 El uso del modo rápido se extrae directamente de los créditos de uso, incluso si tiene uso restante en su plan.144 El uso del modo rápido se extrae directamente de los créditos de uso, incluso si tiene uso restante en su plan.


165* **Console** (clientes de API): un administrador lo habilita en [Preferencias de Claude Code](https://platform.claude.com/claude-code/preferences). El modo rápido está en [vista previa de investigación](#research-preview), por lo que su organización también debe tener acceso al modo rápido aprovisionado antes de que las solicitudes de modo rápido tengan éxito. Para obtener acceso, póngase en contacto con su gerente de cuenta o únase a la lista de espera, como se describe en [modo rápido en la API de Claude](https://platform.claude.com/docs/en/build-with-claude/fast-mode).165* **Console** (clientes de API): un administrador lo habilita en [Preferencias de Claude Code](https://platform.claude.com/claude-code/preferences). El modo rápido está en [vista previa de investigación](#research-preview), por lo que su organización también debe tener acceso al modo rápido aprovisionado antes de que las solicitudes de modo rápido tengan éxito. Para obtener acceso, póngase en contacto con su gerente de cuenta o únase a la lista de espera, como se describe en [modo rápido en la API de Claude](https://platform.claude.com/docs/en/build-with-claude/fast-mode).

166 166 

167 Sin acceso aprovisionado, la API rechaza cada solicitud de modo rápido con un 429, y Claude Code trata cada rechazo como un [límite de velocidad del modo rápido](#handle-rate-limits). A diferencia del tiempo de espera de un límite de velocidad, los rechazos continúan hasta que se aprovisione el acceso.167 Sin acceso aprovisionado, la API rechaza cada solicitud de modo rápido con un 429, y Claude Code trata cada rechazo como un [límite de velocidad del modo rápido](#handle-rate-limits). A diferencia del tiempo de espera de un límite de velocidad, los rechazos continúan hasta que se aprovisione el acceso.

168* **Claude AI** (Team y Enterprise): un propietario lo habilita en [Admin Settings > Claude Code](https://claude.ai/admin-settings/claude-code)168* **Claude AI** (Team y Enterprise): un Owner lo habilita en [**Organization settings > Claude Code**](https://claude.ai/admin-settings/claude-code)

169 169 

170Otra opción para desactivar completamente el modo rápido es establecer `CLAUDE_CODE_DISABLE_FAST_MODE=1`. Consulte [Variables de entorno](/docs/es/env-vars).170Otra opción para desactivar completamente el modo rápido es establecer `CLAUDE_CODE_DISABLE_FAST_MODE=1`. Consulte [Variables de entorno](/docs/es/env-vars).

171 171 

Details

248| **Subagents** | Cuando se generan | Contexto fresco con skills especificadas, o la conversación principal para un [fork](/docs/es/sub-agents#fork-the-current-conversation) | Aislado de la sesión principal |248| **Subagents** | Cuando se generan | Contexto fresco con skills especificadas, o la conversación principal para un [fork](/docs/es/sub-agents#fork-the-current-conversation) | Aislado de la sesión principal |

249| **Hooks** | Al desencadenar | Nada (se ejecuta externamente) | Cero, a menos que el hook devuelva contexto adicional |249| **Hooks** | Al desencadenar | Nada (se ejecuta externamente) | Cero, a menos que el hook devuelva contexto adicional |

250 250 

251\*Por defecto, las descripciones de skills se cargan al inicio de sesión para que Claude pueda decidir cuándo usarlas. Establezca `disable-model-invocation: true` en el frontmatter de una skill para ocultarla de Claude completamente hasta que la invoque manualmente. Para una skill que no escribió, establezca [`skillOverrides`](/docs/es/skills#override-skill-visibility-from-settings) en la configuración para hacer lo mismo sin editar su archivo.251\*Establece [`disable-model-invocation: true`](/docs/es/skills#control-who-invokes-a-skill) en el frontmatter de un skill para mantener su descripción fuera del contexto de Claude. Para un skill que no escribiste, establece [`skillOverrides`](/docs/es/skills#override-skill-visibility-from-settings) en la configuración para hacer lo mismo sin editar su archivo.

252 252 

253<h3 id="understand-how-features-load">253<h3 id="understand-how-features-load">

254 Entender cómo se cargan las características254 Entender cómo se cargan las características


278 278 

279 **Qué se carga:** Para skills invocables por modelo, Claude ve nombres y descripciones en cada solicitud. Cuando invoca una skill con `/<name>` o Claude la carga automáticamente, el contenido completo se carga en su conversación.279 **Qué se carga:** Para skills invocables por modelo, Claude ve nombres y descripciones en cada solicitud. Cuando invoca una skill con `/<name>` o Claude la carga automáticamente, el contenido completo se carga en su conversación.

280 280 

281 **Cómo Claude elige skills:** Claude hace coincidir su tarea contra descripciones de skills para decidir cuáles son relevantes. Si las descripciones son vagas u se superponen, Claude puede cargar la skill incorrecta o perder una que ayudaría. Para decirle a Claude que use una skill específica, invóquela con `/<name>`. Las skills con `disable-model-invocation: true` son invisibles para Claude hasta que las invoque.281 **Cómo Claude elige skills:** Claude compara tu tarea con las descripciones de los skills para decidir cuáles son relevantes. Si las descripciones son vagas o se superponen, Claude puede cargar el skill incorrecto o pasar por alto uno que ayudaría. Para decirle a Claude que use un skill específico, invócalo con `/<name>`.

282 282 

283 **Costo de contexto:** Bajo hasta que se use. Las skills solo de usuario tienen costo cero hasta que se invoquen.283 **Costo de contexto:** Bajo hasta que se use. Las skills solo de usuario tienen costo cero hasta que se invoquen.

284 284 

285 **En subagents:** Las skills funcionan de manera diferente en subagents. En lugar de carga bajo demanda, las skills listadas en el campo `skills` del subagent se precarga completamente en su contexto al iniciar. Los subagents aún pueden descubrir e invocar skills de proyecto, usuario y plugin no listadas a través de la herramienta Skill.285 **En subagents:** Las skills funcionan de manera diferente en subagents. En lugar de carga bajo demanda, las skills listadas en el campo `skills` del subagent se precarga completamente en su contexto al iniciar. Los subagents aún pueden descubrir e invocar skills de proyecto, usuario y plugin no listadas a través de la herramienta Skill.

286 286 

287 <Tip>Use `disable-model-invocation: true` para skills con efectos secundarios. Esto ahorra contexto y asegura que solo usted las desencadene.</Tip>287 <Tip>Usa `disable-model-invocation: true` para skills con efectos secundarios. Esto ahorra contexto y asegura que solo se ejecuten cuando los nombres.</Tip>

288 </Tab>288 </Tab>

289 289 

290 <Tab title="Servidores MCP">290 <Tab title="Servidores MCP">

fullscreen.md +2 −2

Details

107* **Desplaza una lista que se desborda con su barra de desplazamiento.** En paneles de lista como `/skills`, `/mcp` y la lista Instalado de `/plugin`, aparece una barra de desplazamiento junto a una lista con más filas de las que caben mientras el puntero está sobre ella. Haz clic en la pista para saltar a ese punto, o arrastra el pulgar. Requiere Claude Code v2.1.281 o posterior.107* **Desplaza una lista que se desborda con su barra de desplazamiento.** En paneles de lista como `/skills`, `/mcp` y la lista Instalado de `/plugin`, aparece una barra de desplazamiento junto a una lista con más filas de las que caben mientras el puntero está sobre ella. Haz clic en la pista para saltar a ese punto, o arrastra el pulgar. Requiere Claude Code v2.1.281 o posterior.

108 * Donde la barra tiene flechas `↑` y `↓` en sus extremos, haz clic en una flecha para desplazarte una sola fila, o mantenla presionada para seguir desplazándote. Las flechas requieren Claude Code v2.1.286 o posterior.108 * Donde la barra tiene flechas `↑` y `↓` en sus extremos, haz clic en una flecha para desplazarte una sola fila, o mantenla presionada para seguir desplazándote. Las flechas requieren Claude Code v2.1.286 o posterior.

109* **Haz clic en la fila `↑ N more` o `↓ N more` en el borde de una lista** para saltar a ese extremo de la lista sin elegir una opción. Requiere Claude Code v2.1.286 o posterior.109* **Haz clic en la fila `↑ N more` o `↓ N more` en el borde de una lista** para saltar a ese extremo de la lista sin elegir una opción. Requiere Claude Code v2.1.286 o posterior.

110* **Haga clic en un resultado de herramienta contraído** para expandirlo y ver la salida completa. Haga clic de nuevo para contraerlo. La llamada de herramienta y su resultado se expanden juntos. Solo los mensajes que tienen más para mostrar son clicables.110* **Haz clic en un resultado de herramienta contraído** para expandirlo y ver la salida completa. Haz clic de nuevo para contraerlo. La llamada a herramienta y su resultado se expanden juntos. Solo los mensajes que tienen más para mostrar son clicables.

111 * Hacer clic también expande la salida de un comando shell `!`, ya sea un resultado truncado anterior o la fila de progreso en vivo mientras se ejecuta el comando. Requiere Claude Code v2.1.257 o posterior.111 * Hacer clic también expande la salida de un comando shell `!`, ya sea un resultado truncado anterior o la fila de progreso en vivo mientras se ejecuta el comando. Requiere Claude Code v2.1.257 o posterior.

112 * Hacer clic también expande una línea `Message from @<sender>` atenuada cuando el remitente es un [compañero de equipo](/docs/es/agent-teams) u otro agente ejecutándose en su sesión. La línea de un mensaje de [una de sus otras sesiones](/docs/es/cross-session-messaging#what-a-message-looks-like) también muestra la primera línea del mensaje y no es clicable, así que presione `Ctrl+o` para leer esa.112 * Hacer clic también expande una línea `Message from @<sender>` atenuada cuando el remitente es un [compañero de equipo](/docs/es/agent-teams) u otro agente ejecutándose en tu sesión.

113* **Mantenga presionado `Cmd` en macOS, o `Ctrl` en Linux y Windows, y haga clic en una URL o ruta de archivo** para abrirla. Las URLs simples `http://` y `https://` se abren en su navegador, y las rutas de archivo en la salida de herramientas, como las que se imprimen después de un Edit o Write, se abren en su aplicación predeterminada. Un clic simple sin el modificador no abre enlaces, coincidiendo con el comportamiento de terminal nativo.113* **Mantenga presionado `Cmd` en macOS, o `Ctrl` en Linux y Windows, y haga clic en una URL o ruta de archivo** para abrirla. Las URLs simples `http://` y `https://` se abren en su navegador, y las rutas de archivo en la salida de herramientas, como las que se imprimen después de un Edit o Write, se abren en su aplicación predeterminada. Un clic simple sin el modificador no abre enlaces, coincidiendo con el comportamiento de terminal nativo.

114 * Claude Code renderiza una ruta de red (UNC), como `\\server\share\file.ts`, como texto sin formato sin enlace, porque abrir una ruta de red puede enviar sus credenciales de Windows al host que nombra.114 * Claude Code renderiza una ruta de red (UNC), como `\\server\share\file.ts`, como texto sin formato sin enlace, porque abrir una ruta de red puede enviar sus credenciales de Windows al host que nombra.

115 * Algunos terminales de macOS reenvían `Cmd`+clic a la aplicación en ejecución en lugar de abrir el enlace ellos mismos, y el protocolo del ratón del terminal no tiene forma de codificar la tecla `Cmd`, por lo que Claude Code recibe un clic simple. En Ghostty, y en Warp en macOS, Claude Code detecta esto y permite que un clic simple en un enlace lo abra, y mantener presionado `Cmd` sigue funcionando.115 * Algunos terminales de macOS reenvían `Cmd`+clic a la aplicación en ejecución en lugar de abrir el enlace ellos mismos, y el protocolo del ratón del terminal no tiene forma de codificar la tecla `Cmd`, por lo que Claude Code recibe un clic simple. En Ghostty, y en Warp en macOS, Claude Code detecta esto y permite que un clic simple en un enlace lo abra, y mantener presionado `Cmd` sigue funcionando.

Details

295 295 

296Cuando estas verificaciones encuentran un modelo que su proyecto no puede invocar, Claude Code recuerda el rechazo en esta máquina durante hasta un día, e inicia durante ese tiempo omitiendo el modelo recordado sin preguntar a Agent Platform nuevamente. Claude Code verifica un rechazo recordado de un modelo predeterminado actual nuevamente al iniciar una vez que han pasado diez minutos desde la última verificación, por lo que un valor predeterminado que su administrador vuelve a habilitar regresa. Para desactivar la memoria, establezca [`CLAUDE_CODE_SKIP_MODEL_ACCESS_MEMORY=1`](/docs/es/env-vars).296Cuando estas verificaciones encuentran un modelo que su proyecto no puede invocar, Claude Code recuerda el rechazo en esta máquina durante hasta un día, e inicia durante ese tiempo omitiendo el modelo recordado sin preguntar a Agent Platform nuevamente. Claude Code verifica un rechazo recordado de un modelo predeterminado actual nuevamente al iniciar una vez que han pasado diez minutos desde la última verificación, por lo que un valor predeterminado que su administrador vuelve a habilitar regresa. Para desactivar la memoria, establezca [`CLAUDE_CODE_SKIP_MODEL_ACCESS_MEMORY=1`](/docs/es/env-vars).

297 297 

298<h3 id="when-your-organization-enforces-a-model-allowlist">

299 Cuando tu organización aplica una lista de modelos permitidos

300</h3>

301 

302Si estableces [`enforceAvailableModels`](/docs/es/model-config#enforce-the-allowlist-for-the-default-model) en la configuración administrada, las verificaciones de modelo al inicio usan solo los modelos que permite tu lista `availableModels`. Esto requiere Claude Code v2.1.287 o posterior. Una lista sin `enforceAvailableModels` no restringe estas verificaciones.

303 

304Las verificaciones comparan cada entrada con el ID de modelo que enviarían a Agent Platform, así que escribe la lista con esos IDs. Este ejemplo permite Opus 4.8 y Sonnet 4.5:

305 

306```json theme={null}

307{

308 "availableModels": ["claude-opus-4-8", "claude-sonnet-4-5@20250929"],

309 "enforceAvailableModels": true

310}

311```

312 

313Para alias, prefijos de versión y entradas de `modelOverrides`, consulta [Fijar modelos para despliegues de terceros](/docs/es/model-config#pin-models-for-third-party-deployments).

314 

298<h3 id="when-a-model-is-disabled-mid-session">315<h3 id="when-a-model-is-disabled-mid-session">

299 Cuando un modelo se deshabilita durante la sesión316 Cuando un modelo se deshabilita durante la sesión

300</h3>317</h3>

headless.md +1 −1

Details

59| Adiciones de solicitud del sistema | `--append-system-prompt`, `--append-system-prompt-file` |59| Adiciones de solicitud del sistema | `--append-system-prompt`, `--append-system-prompt-file` |

60| Configuración | `--settings <file-or-json>` |60| Configuración | `--settings <file-or-json>` |

61| Servidores MCP | `--mcp-config <file-or-json>` |61| Servidores MCP | `--mcp-config <file-or-json>` |

62| Agentes personalizados | `--agents <json>` |62| [Agentes personalizados](/docs/es/sub-agents#choose-the-subagent-scope) | `--agents <file-or-json>` |

63| Un plugin | `--plugin-dir <path>`, `--plugin-url <url>` |63| Un plugin | `--plugin-dir <path>`, `--plugin-url <url>` |

64 64 

65El modo bare también limita lo que ocurre mientras se ejecuta la sesión:65El modo bare también limita lo que ocurre mientras se ejecuta la sesión:

hooks.md +46 −10

Details

438| Campo | Requerido | Descripción |438| Campo | Requerido | Descripción |

439| :- | :- | :- |439| :- | :- | :- |

440| `type` | sí | `"command"`, `"http"`, `"mcp_tool"`, `"prompt"` o `"agent"` |440| `type` | sí | `"command"`, `"http"`, `"mcp_tool"`, `"prompt"` o `"agent"` |

441| `if` | no | Sintaxis de regla de permisos para filtrar cuándo se ejecuta este hook, como `"Bash(git *)"` o `"Edit(*.ts)"`. El comando de hook solo se ejecuta si la llamada de herramienta coincide con el patrón. Consulta la [tabla de coincidencia de Bash](#bash-if-matching) a continuación para saber cómo los patrones de Bash se evalúan contra subcomandos, `$()` y backticks. Solo se evalúa en eventos de herramienta: `PreToolUse`, `PostToolUse`, `PostToolUseFailure`, `PermissionRequest` y `PermissionDenied`. En otros eventos, un hook con `if` establecido nunca se ejecuta. Utiliza la misma sintaxis que [reglas de permisos](/docs/es/permissions) |441| `if` | no | [Sintaxis de regla de permisos](/docs/es/permissions#permission-rule-syntax) para filtrar cuándo se ejecuta este hook, como `"Bash(git *)"` o `"Edit(*.ts)"`. El comando de hook solo se ejecuta si la llamada a herramienta coincide con el patrón. Consulta la [tabla de coincidencia de Bash](#bash-if-matching) para saber cómo los patrones de Bash se evalúan contra subcomandos, `$()` y backticks. Solo se evalúa en eventos de herramienta: `PreToolUse`, `PostToolUse`, `PostToolUseFailure`, `PermissionRequest` y `PermissionDenied`. En otros eventos, un hook con `if` establecido nunca se ejecuta |

442| `timeout` | no | Segundos antes de cancelar. Claude Code no lo aplica en un hook de comando que ejecutes con [`async: true`](#run-hooks-in-the-background). Valores por defecto: 600 para `command`, `http` y `mcp_tool`; 30 para `prompt`; 60 para `agent`. Claude Code reduce el valor por defecto de `command`, `http` y `mcp_tool` a 30 en [`UserPromptSubmit`](#userpromptsubmit), [`PreModelSwitch`](#premodelswitch) y [`PostModelSwitch`](#postmodelswitch), y a 10 en [`MessageDisplay`](#messagedisplay). Los hooks de [`SessionEnd`](#sessionend) comparten un presupuesto de 1.5 segundos; si tu configuración establece un `timeout` por hook más largo, Claude Code aumenta el presupuesto para que coincida, hasta 60 segundos |442| `timeout` | no | Segundos antes de cancelar. Claude Code no lo aplica en un hook de comando que ejecutes con [`async: true`](#run-hooks-in-the-background). Valores por defecto: 600 para `command`, `http` y `mcp_tool`; 30 para `prompt`; 60 para `agent`. Claude Code reduce el valor por defecto de `command`, `http` y `mcp_tool` a 30 en [`UserPromptSubmit`](#userpromptsubmit), [`PreModelSwitch`](#premodelswitch) y [`PostModelSwitch`](#postmodelswitch), y a 10 en [`MessageDisplay`](#messagedisplay). Los hooks de [`SessionEnd`](#sessionend) comparten un presupuesto de 1.5 segundos; si tu configuración establece un `timeout` por hook más largo, Claude Code aumenta el presupuesto para que coincida, hasta 60 segundos |

443| `statusMessage` | no | Mensaje de spinner personalizado mostrado mientras se ejecuta el hook |443| `statusMessage` | no | Mensaje de spinner personalizado mostrado mientras se ejecuta el hook |

444| `once` | no | Si es `true`, Claude Code elimina el hook después de su primera ejecución exitosa. Una ejecución que falla, bloquea con código de salida 2 o agota el tiempo de espera deja el hook en su lugar, así que se ejecuta de nuevo en el siguiente evento coincidente. Solo se respeta para hooks declarados en [frontmatter de skill](#hooks-in-skills-and-agents); se ignora en archivos de configuración y frontmatter de agente |444| `once` | no | Si es `true`, Claude Code elimina el hook después de su primera ejecución exitosa. Una ejecución que falla, bloquea con código de salida 2 o agota el tiempo de espera deja el hook en su lugar, así que se ejecuta de nuevo en el siguiente evento coincidente. Solo se respeta para hooks declarados en [frontmatter de skill](#hooks-in-skills-and-agents); se ignora en archivos de configuración y frontmatter de agente |


447 447 

448En una condición `if` para una herramienta de archivo, un patrón de directorio de un solo segmento como `"Edit(src/**)"` coincide solo con el directorio `src` en el directorio de trabajo y los archivos bajo él. Para hacer coincidir un directorio llamado `src` a cualquier profundidad, escribe `"Edit(**/src/**)"`. Antes de v2.1.214, `"Edit(src/**)"` coincidía con un directorio llamado `src` a cualquier profundidad bajo el directorio de trabajo.448En una condición `if` para una herramienta de archivo, un patrón de directorio de un solo segmento como `"Edit(src/**)"` coincide solo con el directorio `src` en el directorio de trabajo y los archivos bajo él. Para hacer coincidir un directorio llamado `src` a cualquier profundidad, escribe `"Edit(**/src/**)"`. Antes de v2.1.214, `"Edit(src/**)"` coincidía con un directorio llamado `src` a cualquier profundidad bajo el directorio de trabajo.

449 449 

450<span id="bash-if-matching" />Para patrones de Bash, si tu comando de hook se ejecuta depende de la forma del patrón y del comando de Bash que Claude está invocando. Las asignaciones `VAR=value` iniciales se eliminan antes de hacer coincidir.450<h4 id="bash-if-matching">

451 Cómo los patrones `if` coinciden con comandos de Bash

452</h4>

453 

454Para patrones de Bash en el [campo `if`](#common-fields), si tu comando de hook se ejecuta depende de la forma del patrón y del comando de Bash que Claude está invocando. Las asignaciones `VAR=value` iniciales se eliminan antes de hacer coincidir.

451 455 

452| patrón `if` | comando Bash | ¿Se ejecuta el hook? | Por qué |456| patrón `if` | comando Bash | ¿Se ejecuta el hook? | Por qué |

453| :- | :- | :- | :- |457| :- | :- | :- | :- |


1913 1917 

1914| Campo | Tipo | Ejemplo | Descripción |1918| Campo | Tipo | Ejemplo | Descripción |

1915| :- | :- | :- | :- |1919| :- | :- | :- | :- |

1916| `questions` | array | `[{"question": "Which framework?", "header": "Framework", "options": [{"label": "React"}], "multiSelect": false}]` | Preguntas que se presentarán, cada una con una cadena `question`, un `header` breve, un array `options` y un flag `multiSelect` opcional |1920| `questions` | array | `[{"question": "Which framework?", "header": "Framework", "options": [{"label": "React", "description": "Component library"}, {"label": "Vue", "description": "Progressive framework"}], "multiSelect": false}]` | Preguntas que se presentarán, cada una con una cadena `question`, un `header` breve, un array `options` y un flag `multiSelect` opcional |

1917| `answers` | object | `{"Which framework?": "React"}` | Opcional. Asigna el texto de la pregunta a la etiqueta de la opción seleccionada. Las respuestas de selección múltiple unen las etiquetas con comas. Claude no establece este campo; proporciónalo mediante `updatedInput` para responder de forma programática |1921| `answers` | object | `{"Which framework?": "React"}` | Opcional. Asigna el texto de la pregunta a la etiqueta de la opción seleccionada. Las respuestas de selección múltiple unen las etiquetas con comas. Claude no establece este campo; proporciónalo mediante `updatedInput` para responder de forma programática |

1918 1922 

1919<h5 id="exitplanmode">1923<h5 id="exitplanmode">


1965}1969}

1966```1970```

1967 1971 

1968<span id="allow-with-updatedinput" />1972<Note>

1973 PreToolUse usaba anteriormente los campos de nivel superior `decision` y `reason`, pero están obsoletos para este evento. Usa `hookSpecificOutput.permissionDecision` y `hookSpecificOutput.permissionDecisionReason` en su lugar. Los valores obsoletos `"approve"` y `"block"` se asignan a `"allow"` y `"deny"` respectivamente. Otros eventos como PostToolUse y Stop siguen usando `decision` y `reason` de nivel superior como su formato actual.

1974</Note>

1969 1975 

1970En [modo no interactivo](/docs/es/headless) con el flag `-p`, Claude Code ofrece `AskUserQuestion` y `ExitPlanMode` solo cuando la ejecución tiene un [host de permisos](/docs/es/headless#turn-off-permission-prompts-in-unattended-runs) que reciba la solicitud, como un callback `canUseTool` del Agent SDK. Estas herramientas requieren interacción del usuario. Devolver `permissionDecision: "allow"` junto con `updatedInput` satisface ese requisito: el hook lee la entrada de la herramienta desde stdin, recopila la respuesta mediante tu propia interfaz y la devuelve en `updatedInput` para que la herramienta se ejecute sin pedir nada. Devolver solo `"allow"` no es suficiente para estas herramientas. Para `AskUserQuestion`, devuelve el array `questions` original y agrega un objeto [`answers`](#askuserquestion) que asigne el texto de cada pregunta a la respuesta elegida.1976<h4 id="allow-with-updatedinput">

1977 Herramientas que requieren interacción del usuario

1978</h4>

1971 1979 

1972Una herramienta MCP cuyo servidor la marca con [`_meta["anthropic/requiresUserInteraction"]`](/docs/es/mcp#require-approval-for-a-specific-tool) es más estricta: un hook no puede omitir su solicitud de aprobación con `"allow"`, con o sin `updatedInput`, porque Claude Code no puede confirmar que el hook recopiló la interacción que la herramienta necesita.1980`AskUserQuestion` y `ExitPlanMode` requieren interacción del usuario. En [modo no interactivo](/docs/es/headless) con el flag `-p`, Claude Code solo las ofrece cuando la ejecución tiene un [host de permisos](/docs/es/headless#turn-off-permission-prompts-in-unattended-runs) que reciba la solicitud, como un callback `canUseTool` del Agent SDK.

1973 1981 

1974<Note>1982Un hook `PreToolUse` satisface ese requisito cuando hace lo siguiente:

1975 PreToolUse usaba anteriormente los campos de nivel superior `decision` y `reason`, pero están obsoletos para este evento. Usa `hookSpecificOutput.permissionDecision` y `hookSpecificOutput.permissionDecisionReason` en su lugar. Los valores obsoletos `"approve"` y `"block"` se asignan a `"allow"` y `"deny"`, respectivamente. Otros eventos como PostToolUse y Stop siguen usando `decision` y `reason` de nivel superior como su formato actual.1983 

1976</Note>19841. Lee la entrada de la herramienta desde stdin

19852. Recopila la respuesta mediante tu propia interfaz de usuario

19863. Devuelve `permissionDecision: "allow"` junto con un `updatedInput` que contiene la respuesta, para que la herramienta se ejecute sin pedir confirmación

1987 

1988Devolver solo `"allow"` no es suficiente para estas herramientas.

1989 

1990Para `AskUserQuestion`, devuelve el array `questions` original y agrega un objeto [`answers`](#askuserquestion) que asigne el texto de cada pregunta a la respuesta elegida. Esta salida responde una pregunta con `React`:

1991 

1992```json theme={null}

1993{

1994 "hookSpecificOutput": {

1995 "hookEventName": "PreToolUse",

1996 "permissionDecision": "allow",

1997 "updatedInput": {

1998 "questions": [

1999 {

2000 "question": "Which framework?",

2001 "header": "Framework",

2002 "options": [{"label": "React", "description": "Component library"}, {"label": "Vue", "description": "Progressive framework"}],

2003 "multiSelect": false

2004 }

2005 ],

2006 "answers": {"Which framework?": "React"}

2007 }

2008 }

2009}

2010```

2011 

2012Una herramienta MCP cuyo servidor la marca con [`_meta["anthropic/requiresUserInteraction"]`](/docs/es/mcp#require-approval-for-a-specific-tool) es más estricta: un hook no puede omitir su solicitud de aprobación con `"allow"`, con o sin `updatedInput`, porque Claude Code no puede confirmar que el hook recopiló la interacción que la herramienta necesita.

1977 2013 

1978<h4 id="defer-a-tool-call-for-later">2014<h4 id="defer-a-tool-call-for-later">

1979 Diferir una llamada a herramienta para más tarde2015 Diferir una llamada a herramienta para más tarde


2000 "deferred_tool_use": {2036 "deferred_tool_use": {

2001 "id": "toolu_01abc",2037 "id": "toolu_01abc",

2002 "name": "AskUserQuestion",2038 "name": "AskUserQuestion",

2003 "input": { "questions": [{ "question": "Which framework?", "header": "Framework", "options": [{"label": "React"}, {"label": "Vue"}], "multiSelect": false }] }2039 "input": { "questions": [{ "question": "Which framework?", "header": "Framework", "options": [{"label": "React", "description": "Component library"}, {"label": "Vue", "description": "Progressive framework"}], "multiSelect": false }] }

2004 }2040 }

2005}2041}

2006```2042```

Details

470* Su cuenta está cerca o en su límite de uso. Para mantener las sugerencias activadas hasta que alcance el límite, establezca [`CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION`](/docs/es/env-vars) en `true`. Antes de v2.1.238, Claude Code las omitía cerca del límite incluso con la variable establecida en `true`470* Su cuenta está cerca o en su límite de uso. Para mantener las sugerencias activadas hasta que alcance el límite, establezca [`CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION`](/docs/es/env-vars) en `true`. Antes de v2.1.238, Claude Code las omitía cerca del límite incluso con la variable establecida en `true`

471* En un [equipo de agentes](/docs/es/agent-teams), en las sesiones de compañeros de equipo de forma predeterminada. La sesión del líder muestra sugerencias471* En un [equipo de agentes](/docs/es/agent-teams), en las sesiones de compañeros de equipo de forma predeterminada. La sesión del líder muestra sugerencias

472 472 

473El aviso `Showing fewer prompt suggestions · use one to bring them back` significa que Claude Code está mostrando sugerencias con menos frecuencia porque dejaste muchas seguidas sin usar. Para volver a la frecuencia habitual, usa una sugerencia o establece [`CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION`](/docs/es/env-vars) en `true`.

474 

473En modo de impresión, Claude Code no genera sugerencias de forma predeterminada. Pase [`--prompt-suggestions`](/docs/es/cli-reference#cli-flags) con `-p "<prompt>" --output-format stream-json --verbose` para que Claude Code emita un mensaje `prompt_suggestion` después de cada turno que genere uno. El generador también omite conversaciones muy cortas y cachés de prompts frías aquí, por lo que una única consulta `-p` corta puede no emitir ninguna.475En modo de impresión, Claude Code no genera sugerencias de forma predeterminada. Pase [`--prompt-suggestions`](/docs/es/cli-reference#cli-flags) con `-p "<prompt>" --output-format stream-json --verbose` para que Claude Code emita un mensaje `prompt_suggestion` después de cada turno que genere uno. El generador también omite conversaciones muy cortas y cachés de prompts frías aquí, por lo que una única consulta `-p` corta puede no emitir ninguna.

474 476 

475<h3 id="turn-prompt-suggestions-off">477<h3 id="turn-prompt-suggestions-off">

keybindings.md +4 −0

Details

464| :- | :- | :- |464| :- | :- | :- |

465| `agents:switchView` | Ctrl+S | Cambiar [agrupación de sesión](/docs/es/agent-view#organize-the-list) entre estado y directorio |465| `agents:switchView` | Ctrl+S | Cambiar [agrupación de sesión](/docs/es/agent-view#organize-the-list) entre estado y directorio |

466| `agents:togglePin` | Ctrl+T | [Fijar o desfijar](/docs/es/agent-view#organize-the-list) la sesión seleccionada |466| `agents:togglePin` | Ctrl+T | [Fijar o desfijar](/docs/es/agent-view#organize-the-list) la sesión seleccionada |

467| `agents:find` | Ctrl+F | Buscar sesiones por nombre, con el [filtro `n:`](/docs/es/agent-view#filter-sessions). Requiere v2.1.288 o posterior |

468| `agents:rename` | Ctrl+R | [Cambiar el nombre](/docs/es/agent-view#organize-the-list) de la sesión seleccionada. Requiere v2.1.288 o posterior |

469| `agents:previousGroup` | Ctrl+Up, Meta+Up | Saltar al [encabezado de grupo](/docs/es/agent-view#organize-the-list) anterior. Requiere v2.1.288 o posterior |

470| `agents:nextGroup` | Ctrl+Down, Meta+Down | Saltar al siguiente encabezado de grupo. Requiere v2.1.288 o posterior |

467 471 

468Mientras la vista de agente está abierta, Claude Code utiliza la vinculación de `Agents` para cualquier tecla que el contexto `Agents` vincula, e ignora una vinculación de `Chat` o `Global` en la misma tecla. Por ejemplo, presionar Ctrl+S en la vista de agente cambia la agrupación de sesión en lugar de activar el `chat:stash` predeterminado.472Mientras la vista de agente está abierta, Claude Code utiliza la vinculación de `Agents` para cualquier tecla que el contexto `Agents` vincula, e ignora una vinculación de `Chat` o `Global` en la misma tecla. Por ejemplo, presionar Ctrl+S en la vista de agente cambia la agrupación de sesión en lugar de activar el `chat:stash` predeterminado.

469 473 

managed-mcp.md +61 −29

Details

282 282 

283Las listas de permitidos y listas de bloqueados filtran qué servidores configurados pueden cargarse. No son un registro: un servidor aún tiene que ser añadido por un usuario, un plugin o su organización antes de que cualquiera de las listas se aplique a él.283Las listas de permitidos y listas de bloqueados filtran qué servidores configurados pueden cargarse. No son un registro: un servidor aún tiene que ser añadido por un usuario, un plugin o su organización antes de que cualquiera de las listas se aplique a él.

284 284 

285Los servidores que su organización entrega a través de `managedMcpServers` se cargan sin una entrada de lista de permitidos, y [Cómo se evalúa un servidor](#how-a-server-is-evaluated) cubre los servidores de `managed-mcp.json`. La lista de bloqueados se aplica a cada servidor independientemente de dónde provenga, excepto las entradas `type: "sdk"` en proceso.285Los servidores que tu organización entrega a través de `managedMcpServers` se cargan sin una entrada en la lista de permitidos, y [Servidores que omiten la comprobación de la lista de permitidos](#servers-that-skip-the-allowlist-check) cubre los servidores de `managed-mcp.json`. La lista de denegados se aplica a cada servidor independientemente de su origen, excepto a las entradas `type: "sdk"` en proceso.

286 286 

287Para entregar servidores a los usuarios, use [`managed-mcp.json`](#exclusive-control-with-managed-mcp-json) o [`managedMcpServers`](#provide-servers-through-managed-settings). Ambas listas también filtran servidores pasados con la bandera CLI [`--mcp-config`](/docs/es/cli-reference#cli-flags), excepto las entradas `type: "sdk"` en proceso; `--strict-mcp-config` limita qué archivos de configuración se cargan y no omite ninguna de las dos listas.287Para entregar servidores a los usuarios, use [`managed-mcp.json`](#exclusive-control-with-managed-mcp-json) o [`managedMcpServers`](#provide-servers-through-managed-settings). Ambas listas también filtran servidores pasados con la bandera CLI [`--mcp-config`](/docs/es/cli-reference#cli-flags), excepto las entradas `type: "sdk"` en proceso; `--strict-mcp-config` limita qué archivos de configuración se cargan y no omite ninguna de las dos listas.

288 288 


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

309| `serverUrl` | Una URL de servidor remoto, exacta o con comodines `*` | Servidores HTTP y SSE |309| `serverUrl` | Una URL de servidor remoto, exacta o con comodines `*` | Servidores HTTP y SSE |

310| `serverCommand` | El comando exacto y los argumentos que inician un servidor stdio | Servidores stdio |310| `serverCommand` | El comando exacto y los argumentos que inician un servidor stdio | Servidores stdio |

311| `serverName` | La etiqueta asignada por el usuario. Solo coincidencia exacta; los comodines no se expanden | Cualquier tipo, pero vea la Advertencia a continuación |311| `serverName` | La etiqueta asignada por el usuario. Solo coincidencia exacta; los comodines no se expanden | Cualquier tipo, pero consulta [Cómo coinciden las entradas `serverName`](#how-servername-entries-match) |

312 312 

313Dejar `allowedMcpServers` sin establecer es diferente a establecerlo en una matriz vacía:313Dejar `allowedMcpServers` sin establecer es diferente a establecerlo en una matriz vacía:

314 314 

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

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

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

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

319 319 

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

321 321 

322<h4 id="how-servername-entries-match">

323 Cómo coinciden las entradas `serverName`

324</h4>

325 

326Una entrada `serverName` coincide exactamente con la etiqueta asignada por el usuario, sin comodines.

327 

322<Warning>328<Warning>

323 Una entrada `serverName`, en cualquiera de las listas, no es un control de seguridad. El nombre es la etiqueta que un usuario asigna al ejecutar `claude mcp add` o editar un archivo de configuración, no el servidor subyacente, por lo que un usuario puede llamar a cualquier servidor `github`. Para conectores de claude.ai, el nombre es el nombre para mostrar devuelto por claude.ai, que puede cambiar. Para aplicar qué servidores se ejecutan realmente, agregue entradas `serverCommand` o `serverUrl`.329 Una entrada `serverName`, en cualquiera de las listas, no es un control de seguridad. El nombre es la etiqueta que un usuario asigna al ejecutar `claude mcp add` o editar un archivo de configuración, no el servidor subyacente, por lo que un usuario puede llamar a cualquier servidor `github`. Para conectores de claude.ai, el nombre es el nombre para mostrar devuelto por claude.ai, que puede cambiar. Para aplicar qué servidores se ejecutan realmente, agregue entradas `serverCommand` o `serverUrl`.

324</Warning>330</Warning>


330 336 

331Para desactivar todos los conectores de claude.ai que Claude Code obtiene por sí mismo, vea [`disableClaudeAiConnectors`](/docs/es/mcp#disable-claude-ai-connectors).337Para desactivar todos los conectores de claude.ai que Claude Code obtiene por sí mismo, vea [`disableClaudeAiConnectors`](/docs/es/mcp#disable-claude-ai-connectors).

332 338 

333<h3 id="how-a-server-is-evaluated">339<h4 id="how-servercommand-entries-match">

334 Cómo se evalúa un servidor340 Cómo coinciden las entradas `serverCommand`

335</h3>341</h4>

336 

337Antes de cargar un servidor, incluido uno de `managed-mcp.json`, Claude Code ejecuta las tres comprobaciones a continuación en orden. Las ejecuta nuevamente cuando un usuario reconecta un servidor o activa uno deshabilitado en `/mcp`. Los servidores `type: "sdk"` en proceso, que [la aplicación que inició la sesión registra](/docs/es/mcp#how-connectors-reach-claude-code), omiten las tres.

338 

3391. **Fusionar las listas.** Las entradas de lista de permitidos y lista de bloqueados de cada ámbito de configuración se combinan en una lista de permitidos y una lista de bloqueados. Cuando `allowManagedMcpServersOnly` es `true`, solo se mantiene la lista de permitidos administrada; la lista de bloqueados siempre se fusiona desde cada ámbito. Cuando hay más de una fuente administrada presente, [Las claves se leen desde cada fuente administrada](/docs/es/managed-settings#keys-read-from-every-admin-source) dice cuál de ellas suministra las listas del ámbito administrado.

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

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

342 

343 Tres grupos de servidores omiten esta comprobación:

344 342 

345 * Los servidores propios de la organización: cada entrada `managedMcpServers`, y cualquier entrada `managed-mcp.json` cuyos valores no usen expansión `${VAR}`.343Una entrada `serverCommand` contiene el comando y sus argumentos como una sola matriz, como en `{ "serverCommand": ["npx", "-y", "server"] }`. Claude Code compara esa matriz con el comando y los argumentos de la configuración del servidor:

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

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

348 344 

349 Un servidor `managed-mcp.json` que usa expansión `${VAR}` en su comando, argumentos, `env`, URL o encabezados aún se verifica. Lo mismo ocurre con cada servidor que un usuario, un plugin, o claude.ai añade, y cada servidor que un usuario pasa con `--mcp-config`.345* **Los comandos coinciden exactamente.** Cada argumento, en orden. `["npx", "-y", "server"]` no coincide con `["npx", "server"]` o `["npx", "-y", "server", "--flag"]`.

346* **El bloque `env` no se compara.** `["node", "server.js"]` coincide con un servidor que ejecuta ese comando con cualquier valor de `env`. Algunas variables de entorno cambian lo que `node` carga al iniciar. Para establecer tú mismo los valores de `env`, define el servidor en [`managed-mcp.json`](#exclusive-control-with-managed-mcp-json).

350 347 

351| Tipo de servidor | Se permite cuando coincide |348<h4 id="how-serverurl-entries-match">

352| :- | :- |349 Cómo coinciden las entradas `serverUrl`

353| Remoto (HTTP o SSE) | Una entrada `serverUrl`. Una coincidencia `serverName` cuenta solo cuando la lista de permitidos no contiene entradas `serverUrl` |350</h4>

354| Stdio | Una entrada `serverCommand`. Una coincidencia `serverName` cuenta solo cuando la lista de permitidos no contiene entradas `serverCommand` |

355 351 

356Tres reglas de coincidencia se aplican dentro de esas comprobaciones:352Las 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.

357 353 

358* **Los comandos coinciden exactamente.** Cada argumento, en orden. `["npx", "-y", "server"]` no coincide con `["npx", "server"]` o `["npx", "-y", "server", "--flag"]`.354La tabla muestra lo que permiten los patrones comunes:

359* **Los valores `serverCommand` y `serverUrl` se expanden antes de coincidir.** Tanto la entrada de política como el valor configurado del servidor pasan por expansión [`${VAR}` y `${VAR:-default}`](/docs/es/mcp#environment-variable-expansion-in-mcp-json), por lo que una entrada escrita como `["${HOME}/bin/server"]` coincide con una configuración de servidor que usa la misma referencia o la ruta expandida. En Windows, haga referencia a una variable de entorno que esté establecida allí, como `${USERPROFILE}` en lugar de `${HOME}`. Los valores `serverName` coinciden literalmente y nunca se expanden. Los dos lados leen entornos diferentes; [Cómo se expanden las entradas de política](#how-policy-entries-expand) cubre cuál es cuál, y cómo difieren las entradas de lista de permitidos y lista de bloqueados.

360* **Las URLs admiten comodines `*`** en cualquier lugar del patrón, incluido el esquema. La coincidencia de nombre de host no distingue mayúsculas de minúsculas e ignora un punto FQDN final, por lo que `https://Mcp.Example.com/*` coincide con `https://mcp.example.com/api`. Las rutas permanecen sensibles a mayúsculas y minúsculas.

361 355 

362| Patrón | Permite |356| Patrón | Permite |

363| :- | :- |357| :- | :- |


368| `*://mcp.example.com/*` | Cualquier esquema a un dominio específico |362| `*://mcp.example.com/*` | Cualquier esquema a un dominio específico |

369 363 

370<h4 id="how-policy-entries-expand">364<h4 id="how-policy-entries-expand">

371 Cómo se expanden las entradas de política365 Variables de entorno en las entradas `serverCommand` y `serverUrl`

372</h4>366</h4>

373 367 

374El valor configurado del servidor se expande desde el entorno de proceso activo, como el resto de `.mcp.json`. Una entrada de política se expande desde un entorno fijado en su lugar, por lo que una variable establecida por un proyecto o archivo de configuración de usuario no puede cambiar lo que significa una entrada de lista de permitidos. Debido a que una entrada de política aún depende del valor de la shell de inicio para cualquier variable a la que haga referencia, use URLs y comandos literales para entradas en las que confía para la aplicación.368Los valores de `serverCommand` y `serverUrl` se expanden antes de la coincidencia. Tanto la entrada de política como el valor configurado del servidor pasan por la [expansión de `${VAR}` y `${VAR:-default}`](/docs/es/mcp#environment-variable-expansion-in-mcp-json), por lo que una entrada escrita como `["${HOME}/bin/server"]` coincide con una configuración de servidor que use la misma referencia o la ruta expandida. Los valores de `serverName` coinciden literalmente y nunca se expanden.

369 

370Los dos lados leen entornos diferentes:

371 

372* **El valor configurado del servidor**: se expande desde el entorno del proceso en ejecución, como el resto de `.mcp.json`

373* **Una entrada de política**: se expande desde un entorno fijado, por lo que una variable establecida por un archivo de configuración de proyecto o de usuario no puede cambiar lo que significa una entrada de la lista de permitidos

374 

375Como una entrada de política sigue dependiendo del valor del shell de inicio para cualquier variable a la que haga referencia, usa URL y comandos literales en las entradas de las que dependas para hacer cumplir la política.

376 

377En Windows, haz referencia a una variable de entorno que esté establecida allí, como `${USERPROFILE}` en lugar de `${HOME}`.

378 

379Las dos listas se expanden de forma diferente:

375 380 

376| Lista de entradas | Se expande desde | Expansión que cambiaría el esquema, host o ámbito de ruta de una entrada de URL |381| Lista de entradas | Se expande desde | Expansión que cambiaría el esquema, host o ámbito de ruta de una entrada de URL |

377| - | - | - |382| - | - | - |

378| `allowedMcpServers` | El entorno desde el que Claude Code se inició, más valores `env` de configuración administrada | Claude Code ignora la entrada |383| `allowedMcpServers` | El entorno desde el que Claude Code se inició, más valores `env` de configuración administrada | Claude Code ignora la entrada |

379| `deniedMcpServers` | Lo mismo, y una variable sin valor de inicio y sin `:-default` se rellena desde archivos de configuración fuera del repositorio, como configuración de usuario o administrada, que solo amplía lo que la entrada coincide | La entrada aún coincide |384| `deniedMcpServers` | Lo mismo, y una variable sin valor de inicio y sin `:-default` se rellena desde archivos de configuración fuera del repositorio, como configuración de usuario o administrada, que solo amplía lo que la entrada coincide | La entrada aún coincide |

380 385 

381Requiere Claude Code v2.1.219 o posterior.386El entorno fijado y las reglas de esta tabla requieren Claude Code v2.1.219 o posterior.

387 

388<h3 id="how-a-server-is-evaluated">

389 Cómo se evalúa un servidor

390</h3>

391 

392Antes de cargar un servidor, incluido uno de `managed-mcp.json`, Claude Code ejecuta en orden las tres comprobaciones siguientes. Las vuelve a ejecutar cuando un usuario reconecta un servidor o vuelve a activar uno deshabilitado en `/mcp`. Los servidores `type: "sdk"` en proceso, que [registra la aplicación que inició la sesión](/docs/es/mcp#how-connectors-reach-claude-code), omiten las tres.

393 

3941. **Combinar las listas.** Las entradas de la lista de permitidos y de la lista de denegados de cada alcance de configuración se combinan en una lista de permitidos y una lista de denegados. Cuando `allowManagedMcpServersOnly` es `true`, solo se conserva la lista de permitidos administrada; la lista de denegados siempre se combina desde cada alcance. Cuando hay más de una fuente administrada, [Claves leídas desde cada fuente de administración](/docs/es/managed-settings#keys-read-from-every-admin-source) indica cuáles de ellas aportan las listas del alcance administrado.

3952. **Comprobar la lista de denegados.** Un servidor que coincida con cualquier entrada de la lista de denegados, por URL, comando o nombre, se bloquea. Nada sobrescribe una coincidencia en la lista de denegados.

3963. **Comprobar la lista de permitidos.** [Algunos servidores omiten esta comprobación](#servers-that-skip-the-allowlist-check). Si `allowedMcpServers` no está establecido en ningún lugar, se carga cada servidor que haya superado la lista de denegados. Si está establecido, aquello con lo que el servidor debe coincidir depende de su tipo, como se muestra en la tabla siguiente.

397 

398| Tipo de servidor | Se permite cuando coincide con |

399| :- | :- |

400| Remoto (HTTP o SSE) | Una entrada `serverUrl`. Una coincidencia de `serverName` solo cuenta cuando la lista de permitidos no contiene entradas `serverUrl` |

401| Stdio | Una entrada `serverCommand`. Una coincidencia de `serverName` solo cuenta cuando la lista de permitidos no contiene entradas `serverCommand` |

402 

403<h4 id="servers-that-skip-the-allowlist-check">

404 Servidores que omiten la comprobación de la lista de permitidos

405</h4>

406 

407Tres grupos de servidores omiten la comprobación de la lista de permitidos, además de los servidores `type: "sdk"` en proceso que omiten [las tres comprobaciones](#how-a-server-is-evaluated):

408 

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

410* Los servidores integrados, como Claude in Chrome, el servidor `ide` al que Claude Code se conecta en un IDE de VS Code o JetBrains en ejecución, y los servidores que configura la propia CLI.

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

412 

413Un servidor de `managed-mcp.json` que usa expansión `${VAR}` en su comando, argumentos, `env`, URL o encabezados sí se comprueba. Claude Code también comprueba cada servidor que añade un usuario, un plugin o claude.ai, y cada servidor que un usuario pasa con `--mcp-config`.

382 414 

383<h3 id="example-configuration">415<h3 id="example-configuration">

384 Configuración de ejemplo416 Configuración de ejemplo

managed-settings.md +106 −104

Details

142 Cómo Claude Code combina fuentes administradas142 Cómo Claude Code combina fuentes administradas

143</h2>143</h2>

144 144 

145Cuando su organización entrega más de una fuente administrada a la misma máquina, la clave [`managedSourcesBehavior`](/docs/es/settings-reference#managedsourcesbehavior) decide qué hace Claude Code con las demás:145Cuando tu organización entrega más de una fuente administrada a la misma máquina, la clave [`managedSourcesBehavior`](/docs/es/settings-reference#managedsourcesbehavior) decide qué hace Claude Code con las demás:

146 146 

147* **`"first-wins"`, el valor predeterminado**: Claude Code utiliza la fuente con mayor rango que entrega al menos una clave de política e ignora el resto en lugar de fusionarlas, aparte de las claves en [Claves leídas de cada fuente de administrador](#keys-read-from-every-admin-source). Claude Code no muestra ninguna advertencia para las fuentes que omite; `/status` [nombra la fuente que utilizó y las que omitió](#read-the-source-in-/status).147* **`"first-wins"`, el valor predeterminado**: Claude Code utiliza la fuente con mayor rango que entrega al menos una clave de política e ignora el resto en lugar de combinarlas, aparte de las claves en [Claves leídas de cada fuente de administrador](#keys-read-from-every-admin-source). Claude Code no muestra ninguna advertencia para las fuentes que omite; `/status` [nombra la fuente que utilizó y las que omitió](#read-the-source-in-/status).

148* **`"merge"`**: Claude Code aplica cada fuente de administrador que entrega una clave de política y las combina por tipo de clave: en la mayoría de las claves se aplica el valor de la fuente con mayor rango, las listas se unen y los bloqueos toman el valor más restrictivo. [Componer cada fuente administrada](#compose-every-managed-source) dice dónde establecer la clave y cómo se combina cada tipo de clave. Requiere Claude Code v2.1.242 o posterior.148* **`"merge"`**: Claude Code aplica cada fuente de administrador que entrega una clave de política y las combina por tipo de clave: en la mayoría de las claves se aplica el valor de la fuente con mayor rango, las listas se unen y los bloqueos toman el valor más restrictivo. [Componer cada fuente administrada](#compose-every-managed-source) dice dónde establecer la clave y cómo se combina cada tipo de clave. Requiere Claude Code v2.1.242 o posterior.

149 149 

150Ambas configuraciones clasifican las fuentes de la misma manera. Estos términos se repiten en esta sección:150Ambos ajustes clasifican las fuentes de la misma manera. Estos términos se repiten en esta sección:

151 151 

152* **Clave de política**: cualquier clave de configuración que no sea las dos claves de control, [`wslInheritsWindowsSettings`](/docs/es/settings-reference#wslinheritswindowssettings) y [`managedSourcesBehavior`](/docs/es/settings-reference#managedsourcesbehavior). Un archivo de configuración administrada o una política MDM que contenga solo esas no cuenta, y Claude Code pasa a la siguiente fuente.152* **Clave de política**: cualquier clave de configuración que no sea una de las dos claves de control, [`wslInheritsWindowsSettings`](/docs/es/settings-reference#wslinheritswindowssettings) y [`managedSourcesBehavior`](/docs/es/settings-reference#managedsourcesbehavior). Un archivo de configuración administrada o una política MDM que contenga solo esas no cuenta, y Claude Code pasa a la siguiente fuente.

153* **Fuente de administrador**: una de las tres primeras fuentes a continuación. El registro HKCU es escribible por el usuario y no es una.153* **Fuente de administrador**: una de las tres primeras fuentes a continuación. El registro HKCU es escribible por el usuario y no es una.

154 154 

155Claude Code comprueba las fuentes en este orden, con la máxima prioridad primero:155Claude Code comprueba las fuentes en este orden, con la máxima prioridad primero:

156 156 

1571. Configuración remota, entregada desde claude.ai como [configuración administrada por servidor](/docs/es/server-managed-settings) o por una [puerta de enlace de aplicaciones Claude](/docs/es/claude-apps-gateway). Claude Code obtiene esta fuente solo cuando la sesión se autentica en la API de Anthropic directamente con un [inicio de sesión o clave elegible](/docs/es/server-managed-settings#platform-availability), o inicia sesión en una puerta de enlace con `/login`. En otros proveedores, o cuando `ANTHROPIC_BASE_URL` apunta a algún lugar que no sea la API de Anthropic, comienza en la siguiente fuente1571. Configuración remota, entregada desde claude.ai como [configuración administrada por servidor](/docs/es/server-managed-settings) o por un [gateway de aplicaciones Claude](/docs/es/claude-apps-gateway). Claude Code obtiene esta fuente solo cuando la sesión se autentica en la API de Anthropic directamente con un [inicio de sesión o clave elegible](/docs/es/server-managed-settings#platform-availability), o inicia sesión en un gateway con `/login`. En otros proveedores, o cuando `ANTHROPIC_BASE_URL` apunta a algún lugar que no sea la API de Anthropic, comienza en la siguiente fuente

1582. Políticas de MDM o nivel del SO: la clave de registro plist de macOS o HKLM1582. Políticas de MDM o de nivel del SO: el plist de macOS o la clave de registro HKLM

1593. Archivos de configuración administrada, `managed-settings.d/*.json` y `managed-settings.json` fusionados juntos1593. Archivos de configuración administrada, `managed-settings.d/*.json` y `managed-settings.json` combinados

1604. El registro HKCU, en Windows, y en WSL una vez que el registro HKLM o el archivo de configuración administrada de Windows activa [`wslInheritsWindowsSettings`](/docs/es/settings-reference#wslinheritswindowssettings) y el valor HKCU también lo establece. Claude Code lo lee solo cuando [no hay ningún documento de administrador presente por encima de él](#present-admin-documents) y ninguna [configuración principal suministrada por el host](#let-an-embedding-host-add-policy) suministra una clave restrictiva1604. El registro HKCU, en Windows, y en WSL una vez que el registro HKLM o el archivo de configuración administrada de Windows activa [`wslInheritsWindowsSettings`](/docs/es/settings-reference#wslinheritswindowssettings) y el valor HKCU también lo establece. Claude Code lo lee solo cuando [no hay ningún documento de administrador presente por encima de él](#present-admin-documents) y ninguna [configuración principal suministrada por el host](#let-an-embedding-host-add-policy) suministra una clave restrictiva

161 161 

162Este diagrama muestra la clasificación, con ejemplos de las claves entre fuentes que Claude Code lee de las tres primeras fuentes bajo cualquier configuración:162Este diagrama muestra la clasificación, con ejemplos de las claves entre fuentes que Claude Code lee de las tres primeras fuentes con cualquiera de los dos ajustes:

163 163 

164<img src="https://mintcdn.com/claude-code/zuWID2B-Rxm8DEC8/images/managed-source-precedence.svg?fit=max&auto=format&n=zuWID2B-Rxm8DEC8&q=85&s=53f6be49f06eff48e01422c8ae1bc2e6" className="dark:hidden" alt="Diagrama que muestra las cuatro fuentes de configuración administrada clasificadas desde la configuración remota en la parte superior a través de MDM, archivos de configuración administrada y el registro HKCU en la parte inferior. De forma predeterminada, la primera fuente con una clave de política suministra la política y el resto se omiten; con managedSourcesBehavior establecido en merge, cada fuente de administrador con una clave de política contribuye, combinada por tipo de clave, y el registro HKCU se mantiene fuera. Un panel lateral muestra que las claves entre fuentes como los bloqueos de sandbox, forceRemoteSettingsRefresh y la fusión env por variable se leen de cada fuente de administrador, que excluye el registro HKCU." width="680" height="330" data-path="images/managed-source-precedence.svg" />164<img src="https://mintcdn.com/claude-code/zuWID2B-Rxm8DEC8/images/managed-source-precedence.svg?fit=max&auto=format&n=zuWID2B-Rxm8DEC8&q=85&s=53f6be49f06eff48e01422c8ae1bc2e6" className="dark:hidden" alt="Diagrama que muestra las cuatro fuentes de configuración administrada clasificadas desde la configuración remota en la parte superior a través de MDM, archivos de configuración administrada y el registro HKCU en la parte inferior. De forma predeterminada, la primera fuente con una clave de política suministra la política y el resto se omiten; con managedSourcesBehavior establecido en merge, cada fuente de administrador con una clave de política contribuye, combinada por tipo de clave, y el registro HKCU se mantiene fuera. Un panel lateral muestra que las claves entre fuentes como los bloqueos de sandbox, forceRemoteSettingsRefresh y la combinación de env por variable se leen de cada fuente de administrador, lo que excluye el registro HKCU." width="680" height="330" data-path="images/managed-source-precedence.svg" />

165 165 

166<img src="https://mintcdn.com/claude-code/zuWID2B-Rxm8DEC8/images/managed-source-precedence-dark.svg?fit=max&auto=format&n=zuWID2B-Rxm8DEC8&q=85&s=ae407a9a08a3d680e80cf1a2af845d71" className="hidden dark:block" alt="Diagrama que muestra las cuatro fuentes de configuración administrada clasificadas desde la configuración remota en la parte superior a través de MDM, archivos de configuración administrada y el registro HKCU en la parte inferior. De forma predeterminada, la primera fuente con una clave de política suministra la política y el resto se omiten; con managedSourcesBehavior establecido en merge, cada fuente de administrador con una clave de política contribuye, combinada por tipo de clave, y el registro HKCU se mantiene fuera. Un panel lateral muestra que las claves entre fuentes como los bloqueos de sandbox, forceRemoteSettingsRefresh y la fusión env por variable se leen de cada fuente de administrador, que excluye el registro HKCU." width="680" height="330" data-path="images/managed-source-precedence-dark.svg" />166<img src="https://mintcdn.com/claude-code/zuWID2B-Rxm8DEC8/images/managed-source-precedence-dark.svg?fit=max&auto=format&n=zuWID2B-Rxm8DEC8&q=85&s=ae407a9a08a3d680e80cf1a2af845d71" className="hidden dark:block" alt="Diagrama que muestra las cuatro fuentes de configuración administrada clasificadas desde la configuración remota en la parte superior a través de MDM, archivos de configuración administrada y el registro HKCU en la parte inferior. De forma predeterminada, la primera fuente con una clave de política suministra la política y el resto se omiten; con managedSourcesBehavior establecido en merge, cada fuente de administrador con una clave de política contribuye, combinada por tipo de clave, y el registro HKCU se mantiene fuera. Un panel lateral muestra que las claves entre fuentes como los bloqueos de sandbox, forceRemoteSettingsRefresh y la combinación de env por variable se leen de cada fuente de administrador, lo que excluye el registro HKCU." width="680" height="330" data-path="images/managed-source-precedence-dark.svg" />

167 167 

168<h3 id="present-admin-documents">168<h3 id="present-admin-documents">

169 Cuándo un documento de administrador cuenta como presente169 Cuándo un documento de administrador cuenta como presente


180 Claves leídas de cada fuente de administrador180 Claves leídas de cada fuente de administrador

181</h3>181</h3>

182 182 

183Bajo la configuración predeterminada `"first-wins"`, Claude Code lee la mayoría de las claves solo de la [fuente que seleccionó](#how-claude-code-combines-managed-sources), e ignora un valor en una fuente de menor rango incluso cuando la fuente seleccionada deja esa clave sin establecer.183Con el ajuste predeterminado `"first-wins"`, Claude Code lee la mayoría de las claves solo de la [fuente que seleccionó](#how-claude-code-combines-managed-sources), e ignora un valor en una fuente de menor rango incluso cuando la fuente seleccionada deja esa clave sin establecer.

184 184 

185Algunas claves funcionan de manera diferente. Claude Code las lee de cada fuente de administrador, por lo que una política MDM de menor rango o un archivo de configuración administrada aún pueden establecerlas cuando la fuente seleccionada no lo hace. Claude Code deja fuera el registro HKCU escribible por el usuario de ese escaneo; cuando HKCU es la única fuente y ningún host suministra configuración principal, HKCU se aplica como cualquier fuente seleccionada.185Algunas claves funcionan de manera diferente. Claude Code las lee de cada fuente de administrador, por lo que una política MDM de menor rango o un archivo de configuración administrada aún pueden establecerlas cuando la fuente seleccionada no lo hace. Claude Code deja fuera de ese escaneo el registro HKCU escribible por el usuario; cuando HKCU es la única fuente y ningún host suministra configuración principal, HKCU se aplica como cualquier fuente seleccionada.

186 186 

187Las claves entre fuentes incluyen:187Las claves entre fuentes incluyen:

188 188 

189* `sandbox.network.allowManagedDomainsOnly` y `sandbox.filesystem.allowManagedReadPathsOnly`: un `true` en cualquier fuente de administrador activa el bloqueo. Mientras un bloqueo está activo, Claude Code une la lista de permitidos que bloquea, `sandbox.network.allowedDomains` junto con reglas de permiso `WebFetch(domain:...)`, o `sandbox.filesystem.allowRead`, en cada fuente de administrador. Sin el bloqueo, Claude Code trata la lista de permitidos como cualquier otra clave, por lo que bajo `"first-wins"` la lista de permitidos de una fuente de administrador no seleccionada se ignora189* `sandbox.network.allowManagedDomainsOnly` y `sandbox.filesystem.allowManagedReadPathsOnly`: un `true` en cualquier fuente de administrador activa el bloqueo. Mientras un bloqueo está activo, Claude Code une la lista de permitidos que bloquea, `sandbox.network.allowedDomains` junto con reglas allow `WebFetch(domain:...)`, o `sandbox.filesystem.allowRead`, en todas las fuentes de administrador. Sin el bloqueo, Claude Code trata la lista de permitidos como cualquier otra clave, por lo que con `"first-wins"` la lista de permitidos de una fuente de administrador no seleccionada se ignora

190* `allowAllClaudeAiMcps`190* `allowAllClaudeAiMcps`

191* `allowManagedMcpServersOnly`: un `true` en cualquier fuente de administrador activa el bloqueo de lista de permitidos de MCP. Mientras el bloqueo está activo, la lista `allowedMcpServers` administrada proviene de la fuente de administrador con mayor rango que establece una. Una lista administrada por servidor reemplaza la lista de una fuente inferior en lugar de combinarse con ella.191* `allowManagedMcpServersOnly`: un `true` en cualquier fuente de administrador activa el bloqueo de la lista de servidores MCP permitidos. Mientras el bloqueo está activo, la lista `allowedMcpServers` administrada proviene de la fuente de administrador con mayor rango que establece una. Una lista administrada por servidor reemplaza la lista de una fuente inferior en lugar de combinarse con ella.

192 192 

193 Si ninguna fuente de administrador establece una lista, cada servidor que pase la lista de denegación se carga, a menos que [la configuración principal](#let-an-embedding-host-add-policy) suministre una lista.193 Si ninguna fuente de administrador establece una lista, se carga cada servidor que pase la lista de denegados, a menos que [la configuración principal](#let-an-embedding-host-add-policy) suministre una lista.

194 194 

195 Sin el bloqueo, Claude Code lee `allowedMcpServers` de la fuente administrada que aplica, por lo que bajo `"first-wins"` la lista de una fuente de administrador no seleccionada se ignora. Requiere Claude Code v2.1.273 o posterior195 Sin el bloqueo, Claude Code lee `allowedMcpServers` de la fuente administrada que aplica, por lo que con `"first-wins"` la lista de una fuente de administrador no seleccionada se ignora. Requiere Claude Code v2.1.273 o posterior

196* `deniedMcpServers` y [`disableClaudeAiConnectors`](/docs/es/settings-reference#disableclaudeaiconnectors): una entrada o un `true` en cualquier fuente de administrador se aplica. Requiere Claude Code v2.1.273 o posterior196* `deniedMcpServers` y [`disableClaudeAiConnectors`](/docs/es/settings-reference#disableclaudeaiconnectors): se aplica una entrada o un `true` en cualquier fuente de administrador. Requiere Claude Code v2.1.273 o posterior

197* Las rutas binarias de sandbox `sandbox.bwrapPath` y `sandbox.socatPath`197* Las rutas binarias de sandbox `sandbox.bwrapPath` y `sandbox.socatPath`

198* El binario `ripgrep` de sandbox, [`sandbox.ripgrep`](/docs/es/settings-reference#sandbox-ripgrep)198* El binario `ripgrep` de sandbox, [`sandbox.ripgrep`](/docs/es/settings-reference#sandbox-ripgrep)

199* `sandbox.filesystem.disabled` y `sandbox.network.strictAllowlist`199* `sandbox.filesystem.disabled` y `sandbox.network.strictAllowlist`

200* [`useAutoModeDuringPlan`](/docs/es/settings-reference#useautomodeduringplan), [`syncClaudeAiSkills`](/docs/es/settings-reference#syncclaudeaiskills) y [`syncClaudeAiPlugins`](/docs/es/settings-reference#syncclaudeaiplugins), donde un `false` de cualquier fuente de administrador desactiva el comportamiento. Un `false` en la configuración de usuario o local del desarrollador también lo desactiva; cada clave solo puede denegar200* [`useAutoModeDuringPlan`](/docs/es/settings-reference#useautomodeduringplan), [`syncClaudeAiSkills`](/docs/es/settings-reference#syncclaudeaiskills) y [`syncClaudeAiPlugins`](/docs/es/settings-reference#syncclaudeaiplugins), donde un `false` de cualquier fuente de administrador desactiva el comportamiento. Un `false` en la configuración de usuario o local del desarrollador también lo desactiva; cada clave solo puede denegar

201* [`enableArtifact`](/docs/es/settings-reference#enableartifact), donde un `false` de cualquier fuente de administrador desactiva la [herramienta Artifact](/docs/es/artifacts). Un `false` en la configuración de usuario, proyecto o local del desarrollador también lo desactiva, y ninguna fuente lo vuelve a activar; vea [qué valores de nivel inferior aún cuentan](/docs/es/settings#exceptions-to-managed-settings-precedence). Requiere Claude Code v2.1.242 o posterior201* [`enableArtifact`](/docs/es/settings-reference#enableartifact), donde un `false` de cualquier fuente de administrador desactiva la [herramienta Artifact](/docs/es/artifacts). Un `false` en la configuración de usuario, de proyecto o local del desarrollador también la desactiva, y ninguna fuente la vuelve a activar; consulta [qué valores de nivel inferior aún cuentan](/docs/es/settings#exceptions-to-managed-settings-precedence). Requiere Claude Code v2.1.242 o posterior

202* [`maxEffortLevel`](/docs/es/settings-reference#maxeffortlevel), donde se aplica el límite más bajo en cualquier fuente de administrador. Si un desarrollador establece un límite más bajo en su propia configuración o con `--settings`, Claude Code aplica ese; ninguna fuente puede aumentar el límite. Requiere Claude Code v2.1.267 o posterior202* [`maxEffortLevel`](/docs/es/settings-reference#maxeffortlevel), donde se aplica el límite más bajo de cualquier fuente de administrador. Si un desarrollador establece un límite más bajo en su propia configuración o con `--settings`, Claude Code aplica ese; ninguna fuente puede aumentar el límite. Requiere Claude Code v2.1.267 o posterior

203* Una exclusión de remolque de confirmación en `attribution`, o en el `includeCoAuthoredBy` deprecado, de cualquier nivel203* Una exclusión del trailer de commit en `attribution`, o en el obsoleto `includeCoAuthoredBy`, desde cualquier nivel

204* [`forceRemoteSettingsRefresh`](/docs/es/server-managed-settings)204* [`forceRemoteSettingsRefresh`](/docs/es/server-managed-settings)

205* `env`, fusionado por variable en las fuentes de administrador: cada variable proviene de la fuente de mayor prioridad que la define, por lo que las fuentes inferiores rellenan las variables que las superiores dejan sin establecer. Algunas variables siguen sus propias reglas; [Excepciones por clave en fuentes administradas](/docs/es/server-managed-settings#per-key-exceptions-across-managed-sources) nombra cada una. Requiere Claude Code v2.1.223 o posterior. Antes de v2.1.223, Claude Code aplicaba solo el bloque `env` completo de la fuente seleccionada205* `env`, combinado por variable en las fuentes de administrador: cada variable proviene de la fuente de mayor prioridad que la define, por lo que las fuentes inferiores completan las variables que las superiores dejan sin establecer. Algunas variables siguen sus propias reglas; [Excepciones por clave en fuentes administradas](/docs/es/server-managed-settings#per-key-exceptions-across-managed-sources) nombra cada una. Requiere Claude Code v2.1.223 o posterior. Antes de v2.1.223, Claude Code aplicaba solo el bloque `env` completo de la fuente seleccionada

206 206 

207Las [claves de inicio de sesión de puerta de enlace](#choose-a-delivery-mechanism) siguen una regla separada. Claude Code nunca las lee de la configuración administrada por servidor, por lo que mientras la configuración administrada por servidor es la fuente seleccionada, la fuente de administrador con mayor rango en la máquina que lleva una clave de política aún las suministra. Un valor en una fuente de administrador clasificada por debajo de esa, o en el registro HKCU, se ignora.207Las [claves de inicio de sesión del gateway](#choose-a-delivery-mechanism) siguen una regla separada. Claude Code nunca las lee de la configuración administrada por servidor, por lo que mientras la configuración administrada por servidor es la fuente seleccionada, la fuente de administrador con mayor rango en la máquina que lleva una clave de política aún las suministra. Un valor en una fuente de administrador clasificada por debajo de esa, o en el registro HKCU, se ignora.

208 208 

209[`allowedProviders`](/docs/es/settings-reference#allowedproviders) tiene su propia regla: la nota Scope de su entrada dice cómo una lista establecida en la máquina se combina con una administrada por servidor. Requiere Claude Code v2.1.285 o posterior.209[`allowedProviders`](/docs/es/settings-reference#allowedproviders) tiene su propia regla: la nota Scope de su entrada dice cómo una lista establecida en la máquina se combina con una administrada por servidor. Requiere Claude Code v2.1.285 o posterior.

210 210 


214 Componer cada fuente administrada214 Componer cada fuente administrada

215</h3>215</h3>

216 216 

217Para que Claude Code aplique cada fuente de administrador que su organización entrega, establezca [`managedSourcesBehavior`](/docs/es/settings-reference#managedsourcesbehavior) en `"merge"` en la fuente con mayor rango que implemente. Claude Code lee la clave solo de la fuente con mayor rango que lleva la clave o una clave de política, por lo que una fuente inferior no puede optar por fusionarse con la fuente anterior, y una máquina que nunca recibe configuración administrada por servidor necesita la clave en su perfil MDM también. El registro HKCU escribible por el usuario nunca se fusiona con otra fuente. Requiere Claude Code v2.1.242 o posterior.217Para que Claude Code aplique cada fuente de administrador que tu organización entrega, establece [`managedSourcesBehavior`](/docs/es/settings-reference#managedsourcesbehavior) en `"merge"` en la fuente con mayor rango que implementes. Claude Code lee la clave solo de la fuente con mayor rango que lleva la clave o una clave de política, por lo que una fuente inferior no puede optar por combinarse con la fuente que está por encima de ella, y una máquina que nunca recibe configuración administrada por servidor también necesita la clave en su perfil MDM. El registro HKCU escribible por el usuario nunca se combina con otra fuente. Requiere Claude Code v2.1.242 o posterior.

218 218 

219Bajo `"merge"`, Claude Code agrega entradas de lista de una fuente inferior, como reglas `permissions.allow` y hooks, a la política, por lo que actívelo solo cuando cada fuente clasificada por debajo de la más alta esté bajo el control de un administrador.219Con `"merge"`, Claude Code agrega a la política las entradas de lista de una fuente inferior, como reglas `permissions.allow` y hooks, así que actívalo solo cuando cada fuente clasificada por debajo de la más alta esté bajo el control de un administrador.

220 220 

221Esta tabla muestra cómo Claude Code combina cada tipo de clave bajo `"merge"`. La entrada [`managedSourcesBehavior`](/docs/es/settings-reference#managedsourcesbehavior) nombra cada clave en tres de las filas: listas de permitidos de restricción, valores tomados completos y claves leídas solo de la fuente con mayor rango.221Esta tabla muestra cómo Claude Code combina cada tipo de clave con `"merge"`. La [entrada de `managedSourcesBehavior`](/docs/es/settings-reference#managedsourcesbehavior) nombra cada clave en tres de las filas: listas de permitidos de restricción, valores tomados completos y claves leídas solo de la fuente con mayor rango.

222 222 

223| Tipo de clave | Cómo Claude Code la combina | Ejemplos |223| Tipo de clave | Cómo Claude Code la combina | Ejemplos |

224| :- | :- | :- |224| :- | :- | :- |

225| Listas | Combina las entradas de cada fuente | `permissions.allow`, `hooks`, `sandbox.network.allowedDomains`, `deniedMcpServers`, `deniedModels` |225| Listas | Combina las entradas de cada fuente | `permissions.allow`, `hooks`, `sandbox.network.allowedDomains`, `deniedMcpServers`, `deniedModels` |

226| Bloqueos | Aplica el valor más restrictivo que establece cualquier fuente; un valor más flexible se aplica solo de la fuente con mayor rango | `allowManagedHooksOnly`, `permissions.disableBypassPermissionsMode`, `crossSessionInbound`, `availableModelsMatch` |226| Bloqueos | Aplica el valor más restrictivo que establece cualquier fuente; un valor más flexible se aplica solo desde la fuente con mayor rango | `allowManagedHooksOnly`, `permissions.disableBypassPermissionsMode`, `crossSessionInbound`, `availableModelsMatch` |

227| Listas de permitidos de restricción | Toma la lista completa de la fuente con mayor rango que la establece, sin agregar entradas de fuentes inferiores | `availableModels`, `allowedMcpServers`, `strictKnownMarketplaces`, `allowedChannelPlugins` y la cadena `fallbackModel` |227| Listas de permitidos de restricción | Toma la lista completa de la fuente con mayor rango que la establece, sin agregar entradas de fuentes inferiores | `availableModels`, `allowedMcpServers`, `strictKnownMarketplaces`, `allowedChannelPlugins` y la cadena `fallbackModel` |

228| Valores tomados completos | Toma el valor completo de la fuente con mayor rango que lo establece, sin combinar entradas o campos de fuentes inferiores | `sandbox.credentials.awsPairs`, `sandbox.ripgrep` |228| Valores tomados completos | Toma el valor completo de la fuente con mayor rango que lo establece, sin combinar entradas o campos de fuentes inferiores | `sandbox.credentials.awsPairs`, `sandbox.ripgrep` |

229| Servidores MCP proporcionados | Combina los nombres de servidor de cada fuente; cuando dos fuentes establecen el mismo nombre, aplica la entrada completa de la fuente con mayor rango | `managedMcpServers` |229| Servidores MCP proporcionados | Combina los nombres de servidor de cada fuente; cuando dos fuentes establecen el mismo nombre, aplica la entrada completa de la fuente con mayor rango | `managedMcpServers` |

230| Claves leídas solo de la fuente con mayor rango | Ignora la clave en cada fuente inferior, incluso cuando la fuente con mayor rango la deja sin establecer | Ayudantes de credenciales como `apiKeyHelper`, pines de inicio de sesión como `forceLoginOrgUUID`, `modelPicker`, `permissions.defaultMode` |230| Claves leídas solo de la fuente con mayor rango | Ignora la clave en cada fuente inferior, incluso cuando la fuente con mayor rango la deja sin establecer | Ayudantes de credenciales como `apiKeyHelper`, fijaciones de inicio de sesión como `forceLoginOrgUUID`, `modelPicker`, `permissions.defaultMode` |

231| `env` | Se fusiona por variable en fuentes de administrador bajo cualquier configuración, como [Claves leídas de cada fuente de administrador](#keys-read-from-every-admin-source) describe | |231| `env` | Se combina por variable en las fuentes de administrador con cualquiera de los dos ajustes, como describe [Claves leídas de cada fuente de administrador](#keys-read-from-every-admin-source) | |

232| Cualquier otra clave | Toma el valor de la fuente con mayor rango que lo establece | `model`, `cleanupPeriodDays` |232| Cualquier otra clave | Toma el valor de la fuente con mayor rango que lo establece | `model`, `cleanupPeriodDays` |

233 233 

234Para confirmar qué fuentes se combinaron en una máquina, [lea la línea `Setting sources` en `/status`](#read-the-source-in-/status); esa sección dice qué significa cada etiqueta.234Para confirmar qué fuentes se combinaron en una máquina, [lee la línea `Setting sources` en `/status`](#read-the-source-in-/status); esa sección dice qué significa cada etiqueta.

235 235 

236<h3 id="compute-the-policy-with-a-helper-program">236<h3 id="compute-the-policy-with-a-helper-program">

237 Calcular la política con un programa auxiliar237 Calcular la política con un programa auxiliar

238</h3>238</h3>

239 239 

240Un [`policyHelper`](/docs/es/settings-reference#policyhelper) es un ejecutable que su política MDM o archivo de configuración administrada nombra, y Claude Code lo ejecuta para calcular la configuración administrada al inicio. Cuando la fuente seleccionada configura uno y el auxiliar emite un objeto `managedSettings`, esa salida cambia lo que Claude Code lee:240Un [`policyHelper`](/docs/es/settings-reference#policyhelper) es un ejecutable que tu política MDM o archivo de configuración administrada nombra, y Claude Code lo ejecuta para calcular la configuración administrada al inicio. Cuando la fuente seleccionada configura uno y el auxiliar emite un objeto `managedSettings`, esa salida cambia lo que Claude Code lee:

241 241 

242* **El objeto `managedSettings` emitido es la única configuración administrada para la sesión**, incluyendo para las [claves que de otro modo lee de cada fuente de administrador](#keys-read-from-every-admin-source), aparte de [`forceRemoteSettingsRefresh`, que tiene su propia regla de inicio](/docs/es/settings-reference#forceremotesettingsrefresh)242* **El objeto `managedSettings` emitido es la única configuración administrada para la sesión**, incluso para las [claves que de otro modo lee de cada fuente de administrador](#keys-read-from-every-admin-source), aparte de [`forceRemoteSettingsRefresh`, que tiene su propia regla de inicio](/docs/es/settings-reference#forceremotesettingsrefresh)

243 243 

244Para qué fallos de auxiliar, y qué hace Claude Code cuando uno lo hace, vea [Fallos de auxiliar](/docs/es/settings-reference#helper-failures).244Para saber qué ejecuciones del auxiliar fallan y qué hace Claude Code cuando una falla, consulta [Fallos del auxiliar](/docs/es/settings-reference#helper-failures).

245 245 

246<span id="parent-settings-from-embedding-hosts" />246<span id="parent-settings-from-embedding-hosts" />

247 247 


253 Permitir que un host de incrustación agregue política253 Permitir que un host de incrustación agregue política

254</h3>254</h3>

255 255 

256Cuando otra aplicación inicia Claude Code, como Claude Desktop, una extensión IDE o una aplicación Agent SDK, ese host puede pasar su propia configuración administrada a través de la opción SDK `managedSettings`. Claude Code llama a estas configuraciones principales.256Cuando otra aplicación inicia Claude Code, como Claude Desktop, una extensión de IDE o una aplicación de Agent SDK, ese host puede pasar su propia configuración administrada a través de la opción `managedSettings` del SDK. Claude Code la llama configuración principal.

257 257 

258De forma predeterminada, Claude Code ignora la configuración principal siempre que una fuente de administrador esté presente: configuración administrada por servidor, una política de MDM o nivel del SO, o un archivo de configuración administrada.258De forma predeterminada, Claude Code ignora la configuración principal siempre que una fuente de administrador esté presente: configuración administrada por servidor, una política de MDM o de nivel del SO, o un archivo de configuración administrada.

259 259 

260Para que Claude Code fusione la configuración principal junto con una fuente de administrador, establezca [`parentSettingsBehavior`](/docs/es/settings-reference#parentsettingsbehavior) en `"merge"` en la fuente administrada de mayor prioridad; Claude Code lee la clave solo de esa fuente.260Para que Claude Code combine la configuración principal junto con una fuente de administrador, establece [`parentSettingsBehavior`](/docs/es/settings-reference#parentsettingsbehavior) en `"merge"` en la fuente administrada de mayor prioridad; Claude Code lee la clave solo de esa fuente.

261 261 

262Claude Code luego mantiene solo los valores del host que restringen lo que Claude puede hacer, con una brecha a tener en cuenta: a menos que también establezca los bloqueos `allowManaged*Only`, las reglas de permiso de permitidos del host y las listas de permitidos de sandbox aún se aplican. Vea [Restringir configuración principal](/docs/es/claude-apps-gateway#restrict-parent-settings) para los bloqueos.262Claude Code luego mantiene solo los valores del host que restringen lo que Claude puede hacer, con una brecha que debes conocer: a menos que también establezcas los bloqueos `allowManaged*Only`, las reglas allow de permisos del host y las listas de permitidos del sandbox aún se aplican. Consulta [Restringir la configuración principal](/docs/es/claude-apps-gateway#restrict-parent-settings) para ver los bloqueos.

263 263 

264Un [`policyHelper`](/docs/es/settings-reference#policyhelper) puede desactivar la fusión principal independientemente de esta clave; su entrada dice cuándo.264Un [`policyHelper`](/docs/es/settings-reference#policyhelper) puede desactivar la combinación de la configuración principal independientemente de esta clave; su entrada dice cuándo.

265 265 

266Claude Code también aplica estas comprobaciones a valores suministrados por el principal por su cuenta:266Claude Code también aplica estas comprobaciones por separado a los valores suministrados por el host principal:

267 267 

268* Cuando cualquier fuente de administrador establece `allowManagedPermissionRulesOnly`, Claude Code descarta [reglas de permiso de permitidos suministradas por el principal](/docs/es/claude-apps-gateway#restrict-parent-settings) y `additionalDirectories` mientras las lee, incluso cuando una fuente de mayor prioridad deja la clave sin establecer. El efecto de la clave en sus propias reglas de permiso proviene de la configuración administrada que Claude Code aplica, o de la configuración principal que ha elegido fusionar268* Cuando cualquier fuente de administrador establece `allowManagedPermissionRulesOnly`, Claude Code descarta las reglas allow de permisos [suministradas por el host principal](/docs/es/claude-apps-gateway#restrict-parent-settings) y `additionalDirectories` a medida que las lee, incluso cuando una fuente de mayor prioridad deja la clave sin establecer. El efecto de la clave en tus propias reglas de permisos proviene de la configuración administrada que Claude Code aplica, o de la configuración principal que hayas elegido combinar

269* Claude Code aplica el valor `forceLoginOrgUUID` o `allowedMcpServers` en la configuración administrada que aplica y bloquea uno suministrado por el principal. Fuera del bloqueo de lista de permitidos de MCP, un valor en una fuente de administrador inferior que Claude Code no aplica ni se aplica ni bloquea el del principal.269* Claude Code aplica el valor `forceLoginOrgUUID` o `allowedMcpServers` de la configuración administrada que aplica y bloquea uno suministrado por el host principal. Fuera del bloqueo de la lista de servidores MCP permitidos, un valor en una fuente de administrador inferior que Claude Code no aplica ni se aplica ni bloquea el del host principal.

270 270 

271 En Claude Code v2.1.273 o posterior, mientras `allowManagedMcpServersOnly` está activo, la lista `allowedMcpServers` de la fuente de administrador con mayor rango que establece una se aplica y bloquea la del principal, como una [clave entre fuentes](#keys-read-from-every-admin-source). La lista del principal se aplica solo cuando ninguna fuente de administrador establece una. La entrada [`managedSourcesBehavior`](/docs/es/settings-reference#managedsourcesbehavior) dice qué fuente suministra cada clave bajo `"merge"`. Antes de v2.1.223, un valor en cualquier fuente de administrador bloqueaba la del principal271 En Claude Code v2.1.273 o posterior, mientras `allowManagedMcpServersOnly` está activo, la lista `allowedMcpServers` de la fuente de administrador con mayor rango que establece una se aplica y bloquea la del host principal, como [clave entre fuentes](#keys-read-from-every-admin-source). La lista del host principal se aplica solo cuando ninguna fuente de administrador establece una. La entrada [`managedSourcesBehavior`](/docs/es/settings-reference#managedsourcesbehavior) dice qué fuente suministra cada clave con `"merge"`. Antes de v2.1.223, un valor en cualquier fuente de administrador bloqueaba el del host principal

272* Para `availableModels`, Claude Code aplica el valor en la configuración administrada que aplica y bloquea una lista suministrada por el principal272* Para `availableModels`, Claude Code aplica el valor de la configuración administrada que aplica y bloquea una lista suministrada por el host principal

273* Para `strictKnownMarketplaces`, Claude Code asimismo aplica la lista en la configuración administrada que aplica y bloquea una suministrada por el principal. La lista del principal se aplica solo cuando ninguna fuente administrada aplicada establece una. Requiere Claude Code v2.1.282 o posterior273* Para `strictKnownMarketplaces`, Claude Code asimismo aplica la lista de la configuración administrada que aplica y bloquea una suministrada por el host principal. La lista del host principal se aplica solo cuando ninguna fuente administrada aplicada establece una. Requiere Claude Code v2.1.282 o posterior

274* Un `blockedMarketplaces` suministrado por el principal se aplica además de cualquier lista de denegación que una fuente administrada establece. Requiere Claude Code v2.1.282 o posterior274* Para `allowedProviders`, una lista en la [fuente administrada seleccionada](#which-managed-source-claude-code-uses) bloquea una suministrada por el host principal, y con la opción `"merge"` de [`managedSourcesBehavior`](/docs/es/settings-reference#managedsourcesbehavior) lo hace una lista en cualquier fuente de administrador. Requiere Claude Code v2.1.285 o posterior

275* Un `blockedMarketplaces` suministrado por el host principal se aplica además de cualquier lista de denegados que establezca una fuente administrada. Requiere Claude Code v2.1.282 o posterior

275 276 

276<h4 id="keep-cowork-folder-access-when-only-managed-rules-apply">277<h4 id="keep-cowork-folder-access-when-only-managed-rules-apply">

277 Mantener el acceso a la carpeta Cowork cuando solo se aplican reglas administradas278 Mantener el acceso a las carpetas de Cowork cuando solo se aplican reglas administradas

278</h4>279</h4>

279 280 

280[Cowork](https://claude.com/docs/cowork/overview) en la aplicación Claude Desktop ejecuta sus sesiones en Claude Code y otorga a cada sesión acceso a sus carpetas de trabajo, como la carpeta que el usuario conecta, a través de reglas de permitidos que suministra cuando inicia la sesión. Cuando su política administrada establece [`allowManagedPermissionRulesOnly`](/docs/es/settings-reference#allowmanagedpermissionrulesonly), Claude Code mantiene solo las reglas de permitidos en la política administrada: descarta reglas de permitidos que un host suministra como configuración principal, como `--allowedTools`, o en un archivo de configuración, por lo que las escrituras en esas carpetas pierden su preaprobación. En una sesión de Cowork que pregunta antes de ediciones, Cowork no puede mostrar el aviso, y Claude reporta cada escritura como bloqueada porque la ruta se resuelve en una ubicación protegida o una ruta fuera de la carpeta conectada.281[Cowork](https://claude.com/docs/cowork/overview) en la aplicación Claude Desktop ejecuta sus sesiones en Claude Code y otorga a cada sesión acceso a sus carpetas de trabajo, como la carpeta que conecta el usuario, a través de reglas allow que suministra cuando inicia la sesión. Cuando tu política administrada establece [`allowManagedPermissionRulesOnly`](/docs/es/settings-reference#allowmanagedpermissionrulesonly), Claude Code mantiene solo las reglas allow de la política administrada: descarta las reglas allow que un host suministra como configuración principal, como `--allowedTools` o en un archivo de configuración, por lo que las escrituras en esas carpetas pierden su aprobación previa. En una sesión de Cowork que pregunta antes de las ediciones, Cowork no puede mostrar la solicitud de permiso, y Claude informa cada escritura como bloqueada porque la ruta se resuelve en una ubicación protegida o en una ruta fuera de la carpeta conectada.

281 282 

282Para restaurar las escrituras, agregue reglas de permitidos para esas carpetas a la fuente administrada que Claude Code [selecciona](#precedence-within-the-managed-tier) en esas máquinas: en una flota administrada por MDM, esa es la política MDM en lugar de un archivo de configuración administrada separado. Este ejemplo usa la forma de archivo, y una política MDM toma las mismas claves. Mantiene `allowManagedPermissionRulesOnly` establecido y permite ediciones bajo una carpeta `CoworkProjects` en el directorio de inicio de cada usuario; reemplace la ruta con las carpetas que sus usuarios conectan:283Para restaurar las escrituras, agrega reglas allow para esas carpetas a la fuente administrada que Claude Code [selecciona](#precedence-within-the-managed-tier) en esas máquinas: en una flota administrada por MDM, esa es la política MDM en lugar de un archivo de configuración administrada separado. Este ejemplo usa la forma de archivo, y una política MDM acepta las mismas claves. Mantiene `allowManagedPermissionRulesOnly` establecido y permite ediciones bajo una carpeta `CoworkProjects` en el directorio home de cada usuario; reemplaza la ruta por las carpetas que conectan tus usuarios:

283 284 

284```json managed-settings.json theme={null}285```json managed-settings.json theme={null}

285{286{


292}293}

293```294```

294 295 

295Después de implementar la política, Claude puede guardar archivos bajo esa carpeta en una nueva sesión de Cowork. [Reglas de lectura y edición](/docs/es/permissions#read-and-edit) cubren la sintaxis de ruta, incluyendo la forma `//` para rutas absolutas.296Después de implementar la política, Claude puede guardar archivos bajo esa carpeta en una nueva sesión de Cowork. [Reglas de Read y Edit](/docs/es/permissions#read-and-edit) cubre la sintaxis de rutas, incluida la forma `//` para rutas absolutas.

296 297 

297<h3 id="what-a-developer-can-change">298<h3 id="what-a-developer-can-change">

298 Lo que un desarrollador puede cambiar299 Lo que un desarrollador puede cambiar

299</h3>300</h3>

300 301 

301Los archivos de configuración propios de un desarrollador, valores `--settings` y archivos de proyecto nunca anulan un valor administrado; las [excepciones](/docs/es/settings#exceptions-to-managed-settings-precedence) solo permiten que un valor de nivel inferior más restrictivo cuente. Estos casos se encuentran fuera de esa regla:302Los archivos de configuración propios de un desarrollador, los valores de `--settings` y los archivos de proyecto nunca sobrescriben un valor administrado; las [excepciones](/docs/es/settings#exceptions-to-managed-settings-precedence) solo permiten que cuente un valor de nivel inferior más restrictivo. Estos casos quedan fuera de esa regla:

302 303 

303* **El modelo para una sesión**: un `model` administrado es un valor predeterminado, no un bloqueo. `--model` y `ANTHROPIC_MODEL` aún seleccionan el modelo para esa sesión, por lo que implemente [`availableModels`](/docs/es/settings-reference#availablemodels) para restringir la opción.304* **El modelo para una sesión**: un `model` administrado es un valor predeterminado, no un bloqueo. `--model` y `ANTHROPIC_MODEL` aún seleccionan el modelo para esa sesión, así que implementa [`availableModels`](/docs/es/settings-reference#availablemodels) para restringir la elección.

304* **Derechos de administrador local**: un desarrollador que es administrador en la máquina puede editar la fuente administrada en sí, por lo que la herramienta MDM puede reimplementar el perfil o archivo en un cronograma y por qué el registro HKLM y el dominio de preferencias administradas de macOS existen.305* **La ventana de compactación automática para una sesión**: un [`autoCompactWindow`](/docs/es/settings-reference#autocompactwindow) administrado también es un valor predeterminado. El flag `--autocompact` y la variable `CLAUDE_CODE_AUTO_COMPACT_WINDOW` aún establecen la [ventana de compactación automática](/docs/es/model-config#set-the-auto-compact-window) para esa sesión.

306* **Derechos de administrador local**: un desarrollador que es administrador en la máquina puede editar la propia fuente administrada; por eso las herramientas MDM pueden volver a implementar el perfil o el archivo de forma programada, y por eso existen el registro HKLM y el dominio de preferencias administradas de macOS.

305* **La caché de configuración administrada por servidor**: la configuración administrada por servidor proviene de los servidores de Anthropic, y una edición en la caché local [dura solo hasta la siguiente obtención exitosa](/docs/es/server-managed-settings#security-considerations).307* **La caché de configuración administrada por servidor**: la configuración administrada por servidor proviene de los servidores de Anthropic, y una edición en la caché local [dura solo hasta la siguiente obtención exitosa](/docs/es/server-managed-settings#security-considerations).

306* **Otras herramientas**: la configuración administrada vincula solo Claude Code. Un desarrollador que llama a la API desde otra herramienta no está bajo ellas.308* **Otras herramientas**: la configuración administrada solo se aplica a Claude Code. Un desarrollador que llama a la API desde otra herramienta no está sujeto a ella.

307 309 

308<span id="verify-enforcement" />310<span id="verify-enforcement" />

309 311 


313 Verificar que una política está en vigor315 Verificar que una política está en vigor

314</h2>316</h2>

315 317 

316Un desarrollador reporta que una política no se está aplicando, o desea confirmar que un despliegue llegó antes de empujarlo a la flota. Dos comandos en esa máquina lo responden: `/status` muestra qué fuente administrada seleccionó Claude Code, y `claude doctor` enumera lo que descartó.318Un desarrollador reporta que una política no se está aplicando, o quieres confirmar que un despliegue llegó antes de enviarlo a la flota. Dos comandos en esa máquina lo responden: `/status` muestra qué fuente administrada seleccionó Claude Code, y `claude doctor` enumera lo que descartó.

317 319 

318<h3 id="read-the-source-in-/status">320<h3 id="read-the-source-in-/status">

319 Leer la fuente en /status321 Leer la fuente en /status

320</h3>322</h3>

321 323 

322En la máquina del desarrollador, ejecute `/status` dentro de Claude Code y lea la línea `Setting sources`. Cuando una fuente administrada está en vigor, la línea enumera `Enterprise managed settings` con la fuente que Claude Code seleccionó entre paréntesis:324En la máquina del desarrollador, ejecuta `/status` dentro de Claude Code y lee la línea `Setting sources`. Cuando una fuente administrada está en vigor, la línea enumera `Enterprise managed settings` con la fuente que Claude Code seleccionó entre paréntesis:

323 325 

324* `(remote)`: configuración administrada por servidor desde claude.ai o una puerta de enlace326* `(remote)`: configuración administrada por servidor desde claude.ai o un gateway

325* `(plist)` o `(HKLM)`: una política MDM u OS327* `(plist)` o `(HKLM)`: una política MDM o del sistema operativo

326* `(file)`, `(drop-ins)` o `(file + drop-ins)`: `managed-settings.json`, el directorio de complementos o ambos328* `(file)`, `(drop-ins)` o `(file + drop-ins)`: `managed-settings.json`, el directorio drop-in o ambos

327* `(remote + file, merged)` u otra lista que termina en `, merged`: su organización [compone cada fuente administrada](#compose-every-managed-source), y Claude Code fusionó las fuentes enumeradas en la política. Una fuente inferior aún puede proporcionar variables `env` sin aparecer en la lista. Requiere Claude Code v2.1.242 o posterior329* `(remote + file, merged)` u otra lista que termina en `, merged`: tu organización [compone cada fuente administrada](#compose-every-managed-source), y Claude Code combinó las fuentes enumeradas en la política. Una fuente inferior aún puede proporcionar variables `env` sin aparecer en la lista. Requiere Claude Code v2.1.242 o posterior

328* `(HKCU)`: el registro de reserva que se puede escribir por el usuario330* `(HKCU)`: el registro de respaldo que el usuario puede escribir

329* `(parent process)`: un [host de incrustación](#let-an-embedding-host-add-policy) proporcionó configuración restrictiva331* `(parent process)`: un [host de incrustación](#let-an-embedding-host-add-policy) proporcionó configuración restrictiva

330* `(helper)`: un [`policyHelper`](/docs/es/settings-reference#policyhelper) configurado por la fuente MDM o de archivo seleccionada332* `(helper)`: un [`policyHelper`](/docs/es/settings-reference#policyhelper) configurado por la fuente MDM o de archivo seleccionada

331 333 

332Cuando Claude Code encontró una fuente administrada en la máquina y no la seleccionó, una segunda línea, `Skipped sources`, nombra cada fuente de este tipo. Léala para distinguir una política que nunca llegó a la máquina de una que llegó y que una fuente de mayor prioridad anuló. Requiere Claude Code v2.1.242 o posterior.334Cuando Claude Code encontró una fuente administrada en la máquina y no la seleccionó, una segunda línea, `Skipped sources`, nombra cada fuente de este tipo. Léela para distinguir una política que nunca llegó a la máquina de una que llegó y que una fuente de mayor prioridad anuló. Requiere Claude Code v2.1.242 o posterior.

333 335 

334Cuando la política no se está aplicando, la línea `Setting sources` le dice cuál de dos problemas tiene:336Cuando la política no se está aplicando, la línea `Setting sources` te dice cuál de dos problemas tienes:

335 337 

336* **La línea falta**: Claude Code no encontró ninguna fuente administrada que entregue una clave de política.338* **La línea falta**: Claude Code no encontró ninguna fuente administrada que entregue una clave de política.

337 339 

338 Si implementó un archivo de configuración administrada, verifique que se encuentre en la ruta del SO y que contenga una [clave de política](#how-claude-code-combines-managed-sources) en lugar de solo las claves de control. Un archivo que no es JSON válido no produce este estado; Claude Code [se niega a iniciar](#find-entries-claude-code-dropped) en su lugar.340 Si implementaste un archivo de configuración administrada, verifica que se encuentre en la ruta del sistema operativo y que contenga una [clave de política](#how-claude-code-combines-managed-sources) en lugar de solo las claves de control. Un archivo que no es JSON válido no produce este estado; en su lugar, Claude Code [se niega a iniciar](#find-entries-claude-code-dropped).

339 341 

340 Cuando implementó a través de configuración administrada por servidor en su lugar, ejecute `claude doctor`, que reporta el [resultado de obtención](/docs/es/server-managed-settings#verify-settings-delivery).342 Si en cambio implementaste a través de configuración administrada por servidor, ejecuta `claude doctor`, que reporta el [resultado de obtención](/docs/es/server-managed-settings#verify-settings-delivery).

341* **La línea nombra una fuente que no es la que implementó**: una fuente de mayor prioridad está presente y Claude Code ignoró la suya, y `Skipped sources` la enumera. [Cómo Claude Code combina fuentes administradas](#how-claude-code-combines-managed-sources) da el orden.343* **La línea nombra una fuente que no es la que implementaste**: una fuente de mayor prioridad está presente y Claude Code ignoró la tuya, y `Skipped sources` la enumera. [Cómo Claude Code combina fuentes administradas](#how-claude-code-combines-managed-sources) da el orden.

342 344 

343<span id="invalid-entries-in-managed-settings" />345<span id="invalid-entries-in-managed-settings" />

344 346 


346 Encontrar entradas que Claude Code descartó348 Encontrar entradas que Claude Code descartó

347</h3>349</h3>

348 350 

349Si su archivo de configuración administrada, perfil MDM, valor de registro o carga administrada por servidor falla la validación del esquema, Claude Code primero omite cada entrada individual que puede reparar, como una regla de permiso inválida, y advierte sobre cada una. Claude Code luego descarta cualquier valor que aún falla, a menos que el valor pertenezca a una de las claves que [fallan cerradas](#keys-that-fail-closed) en su lugar.351Si tu archivo de configuración administrada, perfil MDM, valor de registro o payload administrado por servidor falla la validación del esquema, Claude Code primero omite cada entrada individual que puede reparar, como una regla de permisos inválida, y advierte sobre cada una. Luego, Claude Code descarta cualquier valor que aún falle, a menos que el valor pertenezca a una de las claves que, en cambio, [fallan cerradas](#keys-that-fail-closed).

350 352 

351Claude Code es más estricto con el `managedSettings` que un [`policyHelper`](/docs/es/settings-reference#policyhelper) emite: realiza las mismas reparaciones de entrada, pero cualquier violación de esquema que sobreviva falla toda la ejecución del auxiliar, y al inicio Claude Code se niega a iniciar, lo mismo que para un auxiliar que sale con código distinto de cero.353Claude Code es más estricto con el `managedSettings` que emite un [`policyHelper`](/docs/es/settings-reference#policyhelper): realiza las mismas reparaciones de entradas, pero cualquier violación de esquema que sobreviva hace fallar toda la ejecución del helper, y al inicio Claude Code se niega a iniciar, igual que con un helper que sale con código distinto de cero.

352 354 

353Cuando un archivo de configuración administrada, archivo de complemento, plist MDM o valor de registro HKLM está presente pero no se puede analizar como un objeto JSON, Claude Code se niega a iniciar e imprime [un error que nombra la fuente](/docs/es/errors#managed-settings-document-could-not-be-parsed), incluso cuando otra fuente de administrador entrega una política válida. Cada fuente falla de esta manera cuando:355Cuando un archivo de configuración administrada, archivo drop-in, plist MDM o valor de registro HKLM está presente pero no se puede analizar como un objeto JSON, Claude Code se niega a iniciar e imprime [un error que nombra la fuente](/docs/es/errors#managed-settings-document-could-not-be-parsed), incluso cuando otra fuente de administrador entrega una política válida. Cada fuente falla de esta manera cuando:

354 356 

355* **Archivo de configuración administrada o archivo de complemento**: el archivo no es JSON válido, o su nivel superior no es un objeto357* **Archivo de configuración administrada o archivo drop-in**: el archivo no es JSON válido, o su nivel superior no es un objeto

356* **Plist MDM**: `plutil` de macOS reporta la plist malformada, o su contenido convertido no es un objeto JSON358* **Plist MDM**: `plutil` de macOS reporta la plist malformada, o su contenido convertido no es un objeto JSON

357* **Valor de registro HKLM**: el valor `Settings` no es una cadena, está vacío o no contiene un objeto JSON359* **Valor de registro HKLM**: el valor `Settings` no es una cadena, está vacío o no contiene un objeto JSON

358 360 


360 362 

361* Un archivo, perfil o valor de registro ausente no es un fallo; Claude Code se ejecuta sin esa fuente.363* Un archivo, perfil o valor de registro ausente no es un fallo; Claude Code se ejecuta sin esa fuente.

362* Un archivo de configuración administrada vacío cuenta como `{}`.364* Un archivo de configuración administrada vacío cuenta como `{}`.

363* Un valor malformado en la clave de registro HKCU que se puede escribir por el usuario nunca bloquea el lanzamiento. Claude Code lo reporta como un aviso en `/status` y `claude doctor` en su lugar.365* Un valor malformado en la clave de registro HKCU, que el usuario puede escribir, nunca bloquea el lanzamiento. En su lugar, Claude Code lo reporta como un aviso en `/status` y `claude doctor`.

364 366 

365Cuando un archivo de configuración administrada, archivo de complemento, directorio `managed-settings.d/`, perfil MDM o valor de registro HKLM existe pero no se puede leer, y ninguna fuente de administrador proporciona una política, lo que sucede depende de por qué falló la lectura:367Cuando un archivo de configuración administrada, archivo drop-in, directorio `managed-settings.d/`, perfil MDM o valor de registro HKLM existe pero no se puede leer, y ninguna fuente de administrador proporciona una política, lo que sucede depende de por qué falló la lectura:

366 368 

367* Si el sistema operativo denegó la lectura, por ejemplo en un archivo de solo raíz, cada sesión se inicia sin las políticas de esa fuente. `/status` y `claude doctor` registran el fallo, y una ejecución con `-p` también lo imprime a stderr.369* Si el sistema operativo denegó la lectura, por ejemplo en un archivo de solo root, cada sesión se inicia sin las políticas de esa fuente. `/status` y `claude doctor` registran el fallo, y una ejecución con `-p` también lo imprime en stderr.

368* Para cualquier otro fallo de lectura, como un error de E/S, cada sesión sale al inicio con [un mensaje para contactar a un administrador](/docs/es/errors#unable-to-read-managed-policy-settings).370* Para cualquier otro fallo de lectura, como un error de E/S, cada sesión sale al inicio con [un mensaje para contactar a un administrador](/docs/es/errors#unable-to-read-managed-policy-settings).

369 371 

370Para encontrar una entrada descartada, busque en uno de tres lugares:372Para encontrar una entrada descartada, busca en uno de tres lugares:

371 373 

372* Las sesiones interactivas muestran un diálogo al inicio que enumera las entradas inválidas.374* Las sesiones interactivas muestran un diálogo al inicio que enumera las entradas inválidas.

373* Las ejecuciones no interactivas con `-p` imprimen un resumen a stderr.375* Las ejecuciones no interactivas con `-p` imprimen un resumen en stderr.

374* [`claude doctor`](/docs/es/debug-your-config) enumera cada entrada inválida con su fuente y campo.376* [`claude doctor`](/docs/es/debug-your-config) enumera cada entrada inválida con su fuente y campo.

375 377 

376<h4 id="keys-that-fail-closed">378<h4 id="keys-that-fail-closed">

377 Claves que fallan cerradas379 Claves que fallan cerradas

378</h4>380</h4>

379 381 

380Cuando una fuente administrada establece una clave de nivel superior que tiene un único valor restrictivo, como `allowManagedPermissionRulesOnly`, `disableAutoMode` o `skipDangerousModePermissionPrompt`, a algo que Claude Code no puede leer, la clave se lee como ese valor hasta que lo corrija. El informe dice que la clave `was present but invalid` y nombra el valor que Claude Code la trata como. Para una clave dentro de `sandbox`, consulte [Valores inválidos dentro de `sandbox`](#invalid-values-inside-sandbox).382Cuando una fuente administrada establece una clave de nivel superior que tiene un único valor restrictivo, como `allowManagedPermissionRulesOnly`, `disableAutoMode` o `skipDangerousModePermissionPrompt`, en algo que Claude Code no puede leer, la clave se lee como ese valor hasta que lo corrijas. El informe dice que la clave `was present but invalid` y nombra el valor como el que Claude Code la trata. Para una clave dentro de `sandbox`, consulta [Valores inválidos dentro de `sandbox`](#invalid-values-inside-sandbox).

381 383 

382Estos casos no fallan cerrados:384Estos casos no fallan cerrados:

383 385 

384* Un `null` elimina la clave.386* Un `null` elimina la clave.

385* Un `disableAllHooks` inválido, incluso un booleano entrecomillado, se descarta con una advertencia, porque aplicar `true` también descargaría los hooks que su propia configuración administrada implementa.387* Un `disableAllHooks` inválido, incluso un booleano entrecomillado, se descarta con una advertencia, porque aplicar `true` también descargaría los hooks que tu propia configuración administrada implementa.

386* Para cada otra clave booleana que cubre la regla, la cadena `"true"` o `"false"` se lee como ese booleano, con un aviso en `/status` pidiéndole que elimine las comillas.388* Para cualquier otra clave booleana que cubre la regla, la cadena `"true"` o `"false"` se lee como ese booleano, con un aviso en `/status` que te pide eliminar las comillas.

387 389 

388Claude Code repara los bloques `permissions`, `autoMode`, `worktree` y `attribution` por campo en lugar de descartarlos completamente:390Claude Code repara los bloques `permissions`, `autoMode`, `worktree` y `attribution` por campo en lugar de descartarlos completamente:

389 391 

390* Un bloqueo dentro de uno, como `permissions.disableBypassPermissionsMode`, se lee como su valor restrictivo.392* Un bloqueo dentro de uno, como `permissions.disableBypassPermissionsMode`, se lee como su valor restrictivo.

391* Un `permissions.defaultMode` inválido se lee como `default`.393* Un `permissions.defaultMode` inválido se lee como `default`.

392* Mientras que una lista `deny` o `ask` en `permissions` no se puede leer en absoluto, Claude Code retiene `allow` y `additionalDirectories`, por lo que las concesiones nunca se aplican sin las restricciones escritas al lado. El informe nombra cada concesión retenida y la lista que no se pudo leer.394* Mientras una lista `deny` o `ask` en `permissions` no se pueda leer en absoluto, Claude Code retiene `allow` y `additionalDirectories`, por lo que las concesiones nunca se aplican sin las restricciones escritas a su lado. El informe nombra cada concesión retenida y la lista que no se pudo leer.

393* En `autoMode`, una lista `soft_deny` o `hard_deny` que no se puede leer, o que perdió una entrada inválida, retiene `allow` y `environment` de la misma manera.395* En `autoMode`, una lista `soft_deny` o `hard_deny` que no se puede leer, o que perdió una entrada inválida, retiene `allow` y `environment` de la misma manera.

394 396 

395La regla de fallo cerrado para claves con un único valor restrictivo y las reparaciones por campo requieren Claude Code v2.1.282 o posterior.397La regla de fallo cerrado para claves con un único valor restrictivo y las reparaciones por campo requieren Claude Code v2.1.282 o posterior.

396 398 

397Estas claves tienen su propia reserva:399Estas claves tienen su propio comportamiento de respaldo:

398 400 

399| Campo | Comportamiento cuando está presente pero es inválido |401| Campo | Comportamiento cuando está presente pero es inválido |

400| :- | :- |402| :- | :- |

401| `allowedMcpServers` | Se aplica como una lista de permitidos vacía hasta que se corrija el valor, por lo que ningún servidor MCP que los usuarios agreguen se admite. Los servidores que su organización entrega a través de [`managedMcpServers`](/docs/es/settings-reference#managedmcpservers) aún se cargan, y los servidores `managed-mcp.json` se cargan según [Cómo se evalúa un servidor](/docs/es/managed-mcp#how-a-server-is-evaluated). Una entrada individual inválida se elimina y el subconjunto válido se aplica. |403| `allowedMcpServers` | Se aplica como una lista de permitidos vacía hasta que se corrija el valor, por lo que no se admite ningún servidor MCP que agreguen los usuarios. Los servidores que tu organización entrega a través de [`managedMcpServers`](/docs/es/settings-reference#managedmcpservers) aún se cargan, y los servidores de `managed-mcp.json` se cargan según [Servidores que omiten la verificación de la lista de permitidos](/docs/es/managed-mcp#servers-that-skip-the-allowlist-check). Una entrada individual inválida se elimina y se aplica el subconjunto válido. |

402| [`allowedProviders`](/docs/es/settings-reference#allowedproviders) | Se aplica como una lista de permitidos vacía hasta que se corrija el valor, por lo que cada proveedor de API se rechaza y Claude Code no se inicia en la máquina. Si solo una entrada individual no es un nombre de proveedor conocido, Claude Code descarta y reporta esa entrada y aplica el resto. |404| [`allowedProviders`](/docs/es/settings-reference#allowedproviders) | Se aplica como una lista de permitidos vacía hasta que se corrija el valor, por lo que se rechaza cada proveedor de API y Claude Code no se inicia en la máquina. Si solo una entrada individual no es un nombre de proveedor conocido, Claude Code descarta y reporta esa entrada y aplica el resto. |

403| `allowedHttpHookUrls` | Claude Code aplica una [lista de permitidos](/docs/es/settings-reference#allowedhttphookurls) administrada vacía hasta que corrija el valor, por lo que un hook HTTP se ejecuta solo si otro archivo de configuración enumera su URL. Si solo una entrada individual es inválida, Claude Code elimina esa entrada y aplica el resto. |405| `allowedHttpHookUrls` | Claude Code aplica una [lista de permitidos](/docs/es/settings-reference#allowedhttphookurls) administrada vacía hasta que corrijas el valor, por lo que un hook HTTP se ejecuta solo si otro archivo de configuración enumera su URL. Si solo una entrada individual es inválida, Claude Code elimina esa entrada y aplica el resto. |

404| `httpHookAllowedEnvVars` | Claude Code aplica una [lista de permitidos](/docs/es/settings-reference#httphookallowedenvvars) administrada vacía hasta que corrija el valor, por lo que una variable de encabezado se interpola solo si otro archivo de configuración la nombra. Si solo una entrada individual es inválida, Claude Code elimina esa entrada y aplica el resto. |406| `httpHookAllowedEnvVars` | Claude Code aplica una [lista de permitidos](/docs/es/settings-reference#httphookallowedenvvars) administrada vacía hasta que corrijas el valor, por lo que una variable de encabezado se interpola solo si otro archivo de configuración la nombra. Si solo una entrada individual es inválida, Claude Code elimina esa entrada y aplica el resto. |

405| `allowedChannelPlugins` | Claude Code aplica una lista de permitidos vacía hasta que corrija el valor, por lo que ningún plugin de canal pasado a `--channels` se admite. Si solo una entrada individual es inválida, elimina esa entrada y aplica el resto. |407| `allowedChannelPlugins` | Claude Code aplica una lista de permitidos vacía hasta que corrijas el valor, por lo que no se admite ningún plugin de canal pasado a `--channels`. Si solo una entrada individual es inválida, elimina esa entrada y aplica el resto. |

406| `strictKnownMarketplaces` | Se aplica como una lista de permitidos vacía hasta que se corrija el valor, por lo que ninguna [fuente de marketplace](/docs/es/plugins/org#restrict-what-users-can-install) se admite. Una entrada individual que es inválida o no se puede aplicar, como una expresión regular `hostPattern` que no se compila, se elimina y el subconjunto válido se aplica. |408| `strictKnownMarketplaces` | Se aplica como una lista de permitidos vacía hasta que se corrija el valor, por lo que no se admite ninguna [fuente de marketplace](/docs/es/plugins/org#restrict-what-users-can-install). Una entrada individual que es inválida o no se puede aplicar, como una expresión regular `hostPattern` que no compila, se elimina y se aplica el subconjunto válido. |

407| `availableModels` | Se aplica como una lista de permitidos vacía hasta que se corrija, por lo que solo el modelo predeterminado está disponible; una entrada que no es cadena se elimina y el subconjunto válido se aplica. |409| `availableModels` | Se aplica como una lista de permitidos vacía hasta que se corrija, por lo que solo el modelo predeterminado está disponible; una entrada que no es cadena se elimina y se aplica el subconjunto válido. |

408| [`availableModelsMatch`](/docs/es/settings-reference#availablemodelsmatch) | Se trata como `exact` hasta que se corrija el valor. |410| [`availableModelsMatch`](/docs/es/settings-reference#availablemodelsmatch) | Se trata como `exact` hasta que se corrija el valor. |

409| `forceLoginOrgUUID` | Ninguna organización puede iniciar sesión hasta que se corrija el valor. |411| `forceLoginOrgUUID` | Ninguna organización puede iniciar sesión hasta que se corrija el valor. |

410| `gatewayInternalNetworks` | Cuando el valor inválido proviene de la fuente administrada más alta en la máquina, `/login` rechaza cada nuevo inicio de sesión de [puerta de enlace en la nube](/docs/es/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own) en esa máquina hasta que se corrija el valor. |412| `gatewayInternalNetworks` | Cuando el valor inválido proviene de la fuente administrada más alta en la máquina, `/login` rechaza cada nuevo inicio de sesión de [gateway en la nube](/docs/es/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own) en esa máquina hasta que se corrija el valor. |

411| `crossSessionInbound` | Se trata como `refuse`, el valor más restrictivo, por lo que los [mensajes entre sesiones](/docs/es/cross-session-messaging#control-inbound-messages) entrantes se rechazan hasta que se corrija el valor. El desarrollador ve [una advertencia](/docs/es/errors#crosssessioninbound-must-be-one-of-accept-hold-refuse). |413| `crossSessionInbound` | Se trata como `refuse`, el valor más restrictivo, por lo que los [mensajes entre sesiones](/docs/es/cross-session-messaging#control-inbound-messages) entrantes se rechazan hasta que se corrija el valor. El desarrollador ve [una advertencia](/docs/es/errors#crosssessioninbound-must-be-one-of-accept-hold-refuse). |

412| `deniedMcpServers` | Una entrada individual inválida se elimina y el subconjunto válido se aplica. Un valor completamente inválido se descarta con una advertencia, ya que negar cada servidor bloquearía servidores que la política nunca nombró. |414| `deniedMcpServers` | Una entrada individual inválida se elimina y se aplica el subconjunto válido. Un valor completamente inválido se descarta con una advertencia, ya que denegar cada servidor bloquearía servidores que la política nunca nombró. |

413| [`deniedModels`](/docs/es/settings-reference#deniedmodels) | Una entrada que no es cadena se elimina y el resto de la lista se aplica. Un valor completamente inválido se descarta con una advertencia y no bloquea ningún modelo hasta que se corrija. |415| [`deniedModels`](/docs/es/settings-reference#deniedmodels) | Una entrada que no es cadena se elimina y se aplica el resto de la lista. Un valor completamente inválido se descarta con una advertencia y no bloquea ningún modelo hasta que se corrija. |

414| `blockedMarketplaces` | Una entrada individual inválida se elimina y el subconjunto válido se aplica. Una entrada que se analiza pero nunca puede coincidir, como una expresión regular `hostPattern` que no se compila, se mantiene con una advertencia. No bloquea nada hasta que se corrija, pero las [restricciones de marketplace](/docs/es/plugins/org#restrict-what-users-can-install) permanecen activas. Un valor completamente inválido se descarta con una advertencia, ya que bloquear cada marketplace bloquearía fuentes que la política nunca nombró. |416| `blockedMarketplaces` | Una entrada individual inválida se elimina y se aplica el subconjunto válido. Una entrada que se analiza pero nunca puede coincidir, como una expresión regular `hostPattern` que no compila, se mantiene con una advertencia. No bloquea nada hasta que se corrija, pero las [restricciones de marketplace](/docs/es/plugins/org#restrict-what-users-can-install) permanecen activas. Un valor completamente inválido se descarta con una advertencia, ya que bloquear cada marketplace bloquearía fuentes que la política nunca nombró. |

415| `sandbox` | Cuando un valor dentro del bloque es inválido, Claude Code no descarta el bloque completo. Para lo que sucede con cada tipo de campo inválido, consulte [Valores inválidos dentro de `sandbox`](#invalid-values-inside-sandbox). |417| `sandbox` | Cuando un valor dentro del bloque es inválido, Claude Code no descarta el bloque completo. Para saber qué sucede con cada tipo de campo inválido, consulta [Valores inválidos dentro de `sandbox`](#invalid-values-inside-sandbox). |

416| `sandbox.credentials` | Una entrada inválida recuperable se degrada a `mode: "deny"` con una advertencia; una irrecuperable se elimina; las entradas válidas permanecen aplicadas. Consulte [entradas de credenciales inválidas](/docs/es/settings-reference#invalid-credential-entries-in-managed-settings). |418| `sandbox.credentials` | Una entrada inválida recuperable se degrada a `mode: "deny"` con una advertencia; una irrecuperable se elimina; las entradas válidas permanecen aplicadas. Consulta [entradas de credenciales inválidas](/docs/es/settings-reference#invalid-credential-entries-in-managed-settings). |

417| `strictPluginOnlyCustomization` | Se trata como `true`, bloqueando las cuatro superficies, cuando el valor no es ni un booleano ni una matriz. Una entrada de matriz que esta versión no reconoce como una superficie no bloquea nada; una nota de estado cuenta tales entradas para que pueda verificarlas en busca de errores tipográficos. |419| `strictPluginOnlyCustomization` | Se trata como `true`, bloqueando las cuatro superficies, cuando el valor no es ni un booleano ni una matriz. Una entrada de matriz que esta versión no reconoce como superficie no bloquea nada; una nota de estado cuenta tales entradas para que puedas revisarlas en busca de errores tipográficos. |

418| `enabledPlugins` | Una entrada inválida se descarta con una advertencia y las otras entradas permanecen aplicadas. Un valor que no es un mapa de IDs de plugin, o cuya cada entrada es inválida, se descarta completamente con una advertencia. |420| `enabledPlugins` | Una entrada inválida se descarta con una advertencia y las demás entradas permanecen aplicadas. Un valor que no es un mapa de IDs de plugin, o cuyas entradas son todas inválidas, se descarta completamente con una advertencia. |

419 421 

420`allowedHttpHookUrls` y `httpHookAllowedEnvVars` se fusionan en archivos de configuración, por lo que las entradas en su configuración de usuario, proyecto o local aún se aplican mientras la lista administrada está vacía.422`allowedHttpHookUrls` y `httpHookAllowedEnvVars` se combinan entre archivos de configuración, por lo que las entradas en tu configuración de usuario, proyecto o local aún se aplican mientras la lista administrada está vacía.

421 423 

422Las reservas para esas dos claves y para `allowedChannelPlugins` requieren Claude Code v2.1.267 o posterior; las versiones anteriores descartan la clave completa cuando su valor o cualquier entrada es inválida. Las reservas para `strictKnownMarketplaces` y `blockedMarketplaces` requieren Claude Code v2.1.277 o posterior; las versiones anteriores descartan la clave completa cuando su valor o cualquier entrada es inválida. Las reservas para `strictPluginOnlyCustomization` y `enabledPlugins` requieren Claude Code v2.1.282 o posterior.424Los comportamientos de respaldo para esas dos claves y para `allowedChannelPlugins` requieren Claude Code v2.1.267 o posterior; las versiones anteriores descartan la clave completa cuando su valor o cualquier entrada es inválida. Los comportamientos de respaldo para `strictKnownMarketplaces` y `blockedMarketplaces` requieren Claude Code v2.1.277 o posterior; las versiones anteriores descartan la clave completa cuando su valor o cualquier entrada es inválida. Los comportamientos de respaldo para `strictPluginOnlyCustomization` y `enabledPlugins` requieren Claude Code v2.1.282 o posterior.

423 425 

424`requiredMinimumVersion` y `requiredMaximumVersion` fallan abiertos por diseño: un valor inválido se descarta en lugar de aplicarse.426`requiredMinimumVersion` y `requiredMaximumVersion` fallan abiertos por diseño: un valor inválido se descarta en lugar de aplicarse.

425 427 

426Esta tolerancia se aplica solo a la configuración administrada. Los archivos de configuración de usuario, proyecto y local permanecen estrictos: un archivo cuyo JSON o forma de nivel superior falla la validación se rechaza completamente y se reporta, y una entrada individual que falla, como una regla de permiso malformada, se omite con una advertencia mientras el resto del archivo se aplica.428Esta tolerancia se aplica solo a la configuración administrada. Los archivos de configuración de usuario, proyecto y local siguen siendo estrictos: un archivo cuyo JSON o forma de nivel superior falla la validación se rechaza completamente y se reporta, y una entrada individual que falla, como una regla de permisos malformada, se omite con una advertencia mientras se aplica el resto del archivo.

427 429 

428<h4 id="invalid-values-inside-sandbox">430<h4 id="invalid-values-inside-sandbox">

429 Valores inválidos dentro de `sandbox`431 Valores inválidos dentro de `sandbox`

430</h4>432</h4>

431 433 

432Cuando un valor en su bloque `sandbox` administrado es inválido, Claude Code no descarta el bloque completo, porque valida cada campo por su cuenta. Este manejo por campo requiere Claude Code v2.1.283 o posterior. En versiones anteriores a v2.1.283, Claude Code descarta cada campo `sandbox` excepto [`credentials`](/docs/es/settings-reference#invalid-credential-entries-in-managed-settings) cuando un valor fuera de `credentials` es inválido.434Cuando un valor en tu bloque `sandbox` administrado es inválido, Claude Code no descarta el bloque completo, porque valida cada campo por separado. Este manejo por campo requiere Claude Code v2.1.283 o posterior. En versiones anteriores a v2.1.283, Claude Code descarta todos los campos de `sandbox` excepto [`credentials`](/docs/es/settings-reference#invalid-credential-entries-in-managed-settings) cuando un valor fuera de `credentials` es inválido.

433 435 

434La advertencia que obtiene para un campo inválido nombra el campo y le dice qué sucede con él. Lo que sucede depende de lo que controle el campo:436La advertencia que recibes para un campo inválido nombra el campo y te dice qué sucede con él. Lo que sucede depende de lo que controle el campo:

435 437 

436* Si establece una clave booleana en un `"true"` o `"false"` entrecomillado, el valor cuenta como ese booleano. En lugar de una advertencia, `/status` muestra un aviso pidiéndole que elimine las comillas.438* Si estableces una clave booleana en un `"true"` o `"false"` entrecomillado, el valor cuenta como ese booleano. En lugar de una advertencia, `/status` muestra un aviso que te pide eliminar las comillas.

437* Si `failIfUnavailable` es inválido, Claude Code descarta el valor en lugar de tratarlo como `true`, por lo que un valor ilegible nunca detiene sesiones de iniciarse en toda su flota.439* Si `failIfUnavailable` es inválido, Claude Code descarta el valor en lugar de tratarlo como `true`, por lo que un valor ilegible nunca impide que se inicien sesiones en toda tu flota.

438* Claude Code trata cada otro booleano inválido como el valor que mantiene el sandbox más estricto hasta que lo corrija. Una clave que activa el sandbox o una de sus restricciones, como `enabled` o `network.allowManagedDomainsOnly`, cuenta como `true`. Una clave que lo afloja, como `allowUnsandboxedCommands`, cuenta como `false`.440* Claude Code trata cualquier otro booleano inválido como el valor que mantiene el sandbox más estricto hasta que lo corrijas. Una clave que activa el sandbox o una de sus restricciones, como `enabled` o `network.allowManagedDomainsOnly`, cuenta como `true`. Una clave que lo flexibiliza, como `allowUnsandboxedCommands`, cuenta como `false`.

439* En una lista fuera de `credentials`, como `excludedCommands` o `network.allowedDomains`, Claude Code descarta una entrada inválida y mantiene el resto de la lista. Una lista que no es una matriz, o que no tiene una entrada válida, no se aplica en absoluto.441* En una lista fuera de `credentials`, como `excludedCommands` o `network.allowedDomains`, Claude Code descarta una entrada inválida y mantiene el resto de la lista. Una lista que no es una matriz, o que no tiene ninguna entrada válida, no se aplica en absoluto.

440* Mientras `network.deniedDomains` o cualquier entrada en ella es inválida, Claude Code también retiene `network.allowedDomains`, por lo que la lista de permitidos administrada no otorga nada hasta que corrija la lista de denegación.442* Mientras `network.deniedDomains` o cualquier entrada en ella sea inválida, Claude Code también retiene `network.allowedDomains`, por lo que la lista de dominios permitidos administrada no otorga nada hasta que corrijas la lista de denegación.

441* Mientras `filesystem.denyRead`, `filesystem.denyWrite`, o cualquier entrada en cualquiera de ellas es inválida, Claude Code también retiene tanto `filesystem.allowRead` como `filesystem.allowWrite` hasta que corrija la lista de denegación.443* Mientras `filesystem.denyRead`, `filesystem.denyWrite` o cualquier entrada en alguna de ellas sea inválida, Claude Code también retiene tanto `filesystem.allowRead` como `filesystem.allowWrite` hasta que corrijas la lista de denegación.

442 444 

443<span id="managed-only-settings" />445<span id="managed-only-settings" />

444 446 

model-config.md +2 −1

Details

285* **[Respaldo automático de modelo](#automatic-model-fallback)**: un respaldo cuyo destino está excluido no se ejecuta, por lo que la solicitud marcada termina con un rechazo en su lugar285* **[Respaldo automático de modelo](#automatic-model-fallback)**: un respaldo cuyo destino está excluido no se ejecuta, por lo que la solicitud marcada termina con un rechazo en su lugar

286* **[Clasificador de modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode)**: el valor predeterminado de Claude Sonnet 5 del clasificador se aplica solo cuando la lista de permitidos permite Sonnet 5. Cuando está excluido, el clasificador se ejecuta en el modelo de la sesión, que la lista de permitidos ya rige, o en un modelo Opus cuando la sesión se ejecuta en un [modelo Fable](#work-with-fable). En proveedores distintos de la API de Anthropic, ese respaldo de Opus se ejecuta en el modelo que establezcas en `ANTHROPIC_DEFAULT_OPUS_MODEL` o, en caso contrario, en Opus 5, sin consultar la lista de permitidos. Requiere Claude Code v2.1.210 o posterior286* **[Clasificador de modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode)**: el valor predeterminado de Claude Sonnet 5 del clasificador se aplica solo cuando la lista de permitidos permite Sonnet 5. Cuando está excluido, el clasificador se ejecuta en el modelo de la sesión, que la lista de permitidos ya rige, o en un modelo Opus cuando la sesión se ejecuta en un [modelo Fable](#work-with-fable). En proveedores distintos de la API de Anthropic, ese respaldo de Opus se ejecuta en el modelo que establezcas en `ANTHROPIC_DEFAULT_OPUS_MODEL` o, en caso contrario, en Opus 5, sin consultar la lista de permitidos. Requiere Claude Code v2.1.210 o posterior

287* **[Modo rápido](/docs/es/fast-mode)**: habilitar el modo rápido se rechaza cuando el modelo en el que se ejecutaría la sesión después está fuera de la lista de permitidos287* **[Modo rápido](/docs/es/fast-mode)**: habilitar el modo rápido se rechaza cuando el modelo en el que se ejecutaría la sesión después está fuera de la lista de permitidos

288* **Respaldo por disponibilidad en Amazon Bedrock y Agent Platform de Google Cloud**: cuando tu cuenta pierde el acceso a un modelo a mitad de sesión, el cambio a otro modelo omite los modelos excluidos. Las verificaciones de modelo al inicio en [Amazon Bedrock](/docs/es/amazon-bedrock#when-your-organization-enforces-a-model-allowlist) y [Agent Platform de Google Cloud](/docs/es/google-vertex-ai#when-your-organization-enforces-a-model-allowlist) omiten los modelos excluidos solo cuando la configuración administrada también establece [`enforceAvailableModels`](#enforce-the-allowlist-for-the-default-model)

288 289 

289```json theme={null}290```json theme={null}

290{291{


766| :- | :- |767| :- | :- |

767| Alternar para la sesión actual | Presiona `Option+T` en macOS o `Alt+T` en Windows y Linux |768| Alternar para la sesión actual | Presiona `Option+T` en macOS o `Alt+T` en Windows y Linux |

768| Establecer el predeterminado global | Ejecuta `/config` y alterna el modo de pensamiento. Se guarda como `alwaysThinkingEnabled` en `~/.claude/settings.json` |769| Establecer el predeterminado global | Ejecuta `/config` y alterna el modo de pensamiento. Se guarda como `alwaysThinkingEnabled` en `~/.claude/settings.json` |

769| 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. Otros valores se aplican solo con un [presupuesto de pensamiento fijo](#adaptive-reasoning-and-fixed-thinking-budgets) |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 |

770 771 

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

772 773 

Details

358 358 

359<span id="new-context-gates" />359<span id="new-context-gates" />

360 360 

361**Atributos de contenido con tracing beta detallado**

362 

361<Note>363<Note>

362 Atributos adicionales que contienen contenido como `new_context`, `system_prompt_preview`, `user_system_prompt`, `tool_input` y `response.model_output` se emiten solo cuando el tracing beta detallado está activo. No son parte del esquema de tramo estable.364 Atributos adicionales que contienen contenido como `new_context`, `system_reminders`, `system_prompt_preview`, `user_system_prompt`, `tool_input` y `response.model_output` se emiten solo cuando el tracing beta detallado está activo. No son parte del esquema de tramo estable.

365</Note>

363 366 

364 La compuerta en `new_context` depende de qué tramo lo lleva, y cada copia se trunca en el límite de contenido (60 KB de forma predeterminada). En el tramo `claude_code.tool` lleva el resultado de esa llamada de herramienta, sea cual sea la herramienta, y requiere `OTEL_LOG_TOOL_CONTENT=1`. En el tramo `claude_code.interaction` lleva el mensaje del usuario, y en el tramo `claude_code.llm_request` los nuevos mensajes del usuario y resultados de herramientas de esa solicitud. Ambos requieren `OTEL_LOG_USER_PROMPTS=1`.367Estos atributos aparecen en los tramos siguientes, y `Controlado por` nombra la variable que un atributo necesita además del tracing beta detallado. Los valores más largos que el límite de contenido (60 KB de forma predeterminada) se truncan.

365 368 

366 `user_system_prompt` además requiere `OTEL_LOG_USER_PROMPTS=1`. Lleva solo el texto del mensaje del sistema que proporciona a través de la opción `systemPrompt` del SDK o las banderas `--system-prompt` y `--append-system-prompt`, truncado en el límite de contenido (60 KB de forma predeterminada), y se emite una vez por sesión en lugar de por solicitud.369| Atributo | Tramo | Descripción | Controlado por |

367</Note>370| - | - | - | - |

371| `new_context` | `claude_code.interaction` | El prompt del usuario | `OTEL_LOG_USER_PROMPTS` |

372| `new_context` | `claude_code.llm_request` | Los nuevos mensajes del usuario y resultados de herramientas enviados con la solicitud | `OTEL_LOG_USER_PROMPTS` |

373| `system_reminders` | `claude_code.llm_request` | El texto de los [recordatorios del sistema](/docs/es/glossary#system-reminder) entre los nuevos mensajes de la solicitud | `OTEL_LOG_USER_PROMPTS` |

374| `system_prompt_preview` | `claude_code.llm_request` | Primeros 500 caracteres del prompt del sistema completo enviado con la solicitud | `OTEL_LOG_USER_PROMPTS` |

375| `user_system_prompt` | `claude_code.llm_request` | Solo el texto del prompt del sistema que proporcionas a través de la opción `systemPrompt` del SDK o los flags `--system-prompt` y `--append-system-prompt`. Se emite una vez por sesión en lugar de por solicitud | `OTEL_LOG_USER_PROMPTS` |

376| `response.model_output` | `claude_code.llm_request` | Texto de la respuesta del modelo a la solicitud | `OTEL_LOG_USER_PROMPTS` |

377| `new_context` | `claude_code.tool` | El resultado de la llamada a herramienta, sea cual sea la herramienta | `OTEL_LOG_TOOL_CONTENT` |

378| `tool_input` | `claude_code.tool` | La entrada serializada de la llamada a herramienta | `OTEL_LOG_TOOL_DETAILS` |

379 

380Con el tracing beta detallado y `OTEL_LOG_USER_PROMPTS=1`, Claude Code también emite un evento `claude_code.system_prompt` que lleva el prompt del sistema completo, truncado en el límite de contenido. Llega la primera vez que una sesión envía cada prompt del sistema distinto, y de nuevo después de la compactación.

368 381 

369<h3 id="dynamic-headers">382<h3 id="dynamic-headers">

370 Encabezados dinámicos383 Encabezados dinámicos


797* `event.sequence`: Contador por proceso para ordenar eventos, descrito en [Atributos de correlación de eventos](#event-correlation-attributes)810* `event.sequence`: Contador por proceso para ordenar eventos, descrito en [Atributos de correlación de eventos](#event-correlation-attributes)

798* `prompt_length`: Longitud del mensaje811* `prompt_length`: Longitud del mensaje

799* `prompt`: Contenido del mensaje. Redactado de forma predeterminada. Establezca `OTEL_LOG_USER_PROMPTS=1` para incluirlo812* `prompt`: Contenido del mensaje. Redactado de forma predeterminada. Establezca `OTEL_LOG_USER_PROMPTS=1` para incluirlo

813* `prompt_text`: Mismo valor que `prompt`, oculto bajo la misma condición. Un backend que almacena nombres de atributos con puntos como objetos anidados lee `prompt.id` como `id` dentro de un objeto llamado `prompt` y puede perder la cadena del prompt. En ese caso, lee `prompt_text`. Requiere Claude Code v2.1.287 o posterior

800* `message.uuid`: UUID del mensaje del usuario resultante, que coincide con la entrada de transcripción persistida. Ausente en envíos de comandos, que pueden producir cero o muchos mensajes. Requiere Claude Code v2.1.214 o posterior814* `message.uuid`: UUID del mensaje del usuario resultante, que coincide con la entrada de transcripción persistida. Ausente en envíos de comandos, que pueden producir cero o muchos mensajes. Requiere Claude Code v2.1.214 o posterior

801* `command_name`: Nombre del comando cuando el mensaje invoca uno. Los nombres de comandos integrados y agrupados como `compact` o `debug` se emiten tal cual; los alias como `reset` se emiten tal como se escribieron en lugar del nombre canónico. Los nombres de comandos personalizados, de plugin y MCP se contraen a `custom` o `mcp` a menos que se establezca `OTEL_LOG_TOOL_DETAILS=1`815* `command_name`: Nombre del comando cuando el mensaje invoca uno. Los nombres de comandos integrados y agrupados como `compact` o `debug` se emiten tal cual; los alias como `reset` se emiten tal como se escribieron en lugar del nombre canónico. Los nombres de comandos personalizados, de plugin y MCP se contraen a `custom` o `mcp` a menos que se establezca `OTEL_LOG_TOOL_DETAILS=1`

802* `command_source`: Origen del comando cuando está presente: `builtin`, `custom`, o `mcp`. Los comandos proporcionados por plugins reportan como `custom`816* `command_source`: Origen del comando cuando está presente: `builtin`, `custom`, o `mcp`. Los comandos proporcionados por plugins reportan como `custom`


1694* La exportación de OpenTelemetry a tu backend es opcional y requiere configuración explícita. Para la telemetría operativa separada de Anthropic y cómo deshabilitarla, consulta [Uso de datos](/docs/es/data-usage#telemetry-services)1708* La exportación de OpenTelemetry a tu backend es opcional y requiere configuración explícita. Para la telemetría operativa separada de Anthropic y cómo deshabilitarla, consulta [Uso de datos](/docs/es/data-usage#telemetry-services)

1695* Los contenidos de archivos sin procesar y fragmentos de código no se incluyen en métricas o eventos. Las trazas de span son una ruta de datos separada: consulta la viñeta `OTEL_LOG_TOOL_CONTENT` a continuación1709* Los contenidos de archivos sin procesar y fragmentos de código no se incluyen en métricas o eventos. Las trazas de span son una ruta de datos separada: consulta la viñeta `OTEL_LOG_TOOL_CONTENT` a continuación

1696* Cuando está autenticado a través de OAuth, `user.email` se incluye en atributos de telemetría, enviados solo al punto final de OTel que configures, nunca a Anthropic. Si esto es una preocupación para tu organización, trabaja con tu backend de telemetría para filtrar o redactar este campo1710* Cuando está autenticado a través de OAuth, `user.email` se incluye en atributos de telemetría, enviados solo al punto final de OTel que configures, nunca a Anthropic. Si esto es una preocupación para tu organización, trabaja con tu backend de telemetría para filtrar o redactar este campo

1697* El contenido del mensaje del usuario no se recopila por defecto. Solo se registra la longitud del mensaje. Para incluir contenido del mensaje, establece `OTEL_LOG_USER_PROMPTS=1`. Bajo el rastreo beta detallado, esta variable llega más lejos que el texto del mensaje: también controla el [atributo de span `new_context`](#new-context-gates), que lleva resultados de herramientas en el span `claude_code.llm_request`1711* El contenido del prompt del usuario no se recopila por defecto. Solo se registra la longitud del prompt. Para incluir el contenido del prompt, establece `OTEL_LOG_USER_PROMPTS=1`. Cuando está habilitado:

1698* El texto de respuesta del asistente no se recopila por defecto. Solo se registra la longitud de la respuesta. Para incluir texto de respuesta, establece `OTEL_LOG_ASSISTANT_RESPONSES=1`. Como todos los datos de OpenTelemetry de Claude Code, el texto de respuesta se envía solo al punto final de OTel que configures, nunca a Anthropic. Cuando esta variable no está establecida, `OTEL_LOG_USER_PROMPTS` se utiliza como alternativa, así que establece `OTEL_LOG_ASSISTANT_RESPONSES=0` si deseas contenido de mensaje sin contenido de respuesta1712 * Los eventos `user_prompt` llevan el texto del prompt en dos atributos, `prompt` y [`prompt_text`](#user-prompt-event). Si eliminas o enmascaras el texto del prompt del evento por nombre de atributo en tu recopilador, nombra ambos atributos en la regla

1699* Los argumentos de entrada de herramientas y parámetros no se registran por defecto. Para incluirlos, establece `OTEL_LOG_TOOL_DETAILS=1`. Para los servidores integrados de Claude Desktop, en sesiones que Claude Desktop posee, `tool_decision` y `tool_result` llevan el par `mcp_server_name`/`mcp_tool_name`, nombres creados por el host en lugar de contenido de argumentos, incluso con la bandera desactivada. La excepción requiere Claude Code v2.1.214 o posterior. Estos datos se envían solo al punto final de OTEL que configures, nunca a Anthropic. Los argumentos aún pueden contener valores sensibles, así que configura tu backend de telemetría para filtrar o redactar estos atributos según sea necesario. Cuando está habilitado:1713 

1714 Este procesador `attributes` de OpenTelemetry Collector elimina ambos atributos en los pipelines que lo incluyen:

1715 

1716 ```yaml theme={null}

1717 processors:

1718 attributes/drop-prompt-text:

1719 actions:

1720 - key: prompt

1721 action: delete

1722 - key: prompt_text

1723 action: delete

1724 ```

1725 

1726 * Con el [rastreo](#traces-beta) activado, el span `claude_code.interaction` lleva el texto del prompt en su atributo `user_prompt`

1727 

1728 * Bajo el rastreo beta detallado, los spans también llevan los nuevos mensajes del usuario, resultados de herramientas y recordatorios del sistema enviados con cada solicitud, el texto del prompt del sistema y la salida del modelo. [Atributos de contenido bajo el rastreo beta detallado](#new-context-gates) enumera cada atributo. El evento `claude_code.system_prompt` lleva el prompt del sistema completo

1729* El texto de respuesta del asistente no se recopila por defecto. Solo se registra la longitud de la respuesta. Para incluir texto de respuesta, establece `OTEL_LOG_ASSISTANT_RESPONSES=1`. Como todos los datos de OpenTelemetry de Claude Code, el texto de respuesta se envía solo al endpoint de OTel que configures, nunca a Anthropic. Cuando esta variable no está establecida, `OTEL_LOG_USER_PROMPTS` se utiliza como respaldo, así que establece `OTEL_LOG_ASSISTANT_RESPONSES=0` si deseas contenido del prompt sin contenido de respuesta en los eventos. Bajo el rastreo beta detallado, el span `claude_code.llm_request` sigue llevando la salida del modelo en [`response.model_output`](#new-context-gates), que sigue a `OTEL_LOG_USER_PROMPTS` en lugar de a esta variable

1730* Los argumentos de entrada de herramientas y parámetros no se registran por defecto. Para incluirlos, establece `OTEL_LOG_TOOL_DETAILS=1`. Para los servidores integrados de Claude Desktop, en sesiones que Claude Desktop posee, `tool_decision` y `tool_result` llevan el par `mcp_server_name`/`mcp_tool_name`, nombres creados por el host en lugar de contenido de argumentos, incluso con el flag desactivado. La excepción requiere Claude Code v2.1.214 o posterior. Estos datos se envían solo al endpoint de OTEL que configures, nunca a Anthropic. Los argumentos aún pueden contener valores sensibles, así que configura tu backend de telemetría para filtrar o redactar estos atributos según sea necesario. Cuando está habilitado:

1700 * Los eventos `tool_result` y `tool_decision` incluyen un atributo `tool_parameters` con comandos Bash, nombres de servidor MCP y herramienta, y nombres de skills. Los campos como `full_command` se emiten sin truncar1731 * Los eventos `tool_result` y `tool_decision` incluyen un atributo `tool_parameters` con comandos Bash, nombres de servidor MCP y herramienta, y nombres de skills. Los campos como `full_command` se emiten sin truncar

1701 * Los eventos `tool_result` además incluyen un atributo `tool_input` con rutas de archivo, URLs, patrones de búsqueda y otros argumentos. Los valores individuales superiores a 512 caracteres se truncan y el total está limitado a aproximadamente 4 K caracteres1732 * Los eventos `tool_result` además incluyen un atributo `tool_input` con rutas de archivo, URLs, patrones de búsqueda y otros argumentos. Los valores individuales superiores a 512 caracteres se truncan y el total está limitado a aproximadamente 4 K caracteres

1702 * Los eventos `user_prompt` incluyen el `command_name` verbatim para comandos personalizados, de plugin y MCP1733 * Los eventos `user_prompt` incluyen el `command_name` verbatim para comandos personalizados, de plugin y MCP

1703 * Los [contadores de costo y token](#cost-counter) y los eventos `api_request`, `api_error` y `api_refusal` llevan nombres reales de agente, skill, plugin y servidor MCP y herramienta en sus atributos de atribución1734 * Los [contadores de costo y token](#cost-counter) y los eventos `api_request`, `api_error` y `api_refusal` llevan nombres reales de agente, skill, plugin y servidor MCP y herramienta en sus atributos de atribución

1704 * Las trazas de span incluyen el mismo atributo `tool_input` e atributos derivados de entrada como `file_path`, con el mismo truncamiento que `tool_input`1735 * El span `claude_code.tool` lleva atributos derivados de la entrada como `file_path`. Bajo el rastreo beta detallado también lleva un atributo [`tool_input`](#new-context-gates)

1705* El contenido de herramientas no se registra en spans de trazas por defecto. Para incluirlo, establece `OTEL_LOG_TOOL_CONTENT=1`. El span `claude_code.tool` entonces lleva un [evento de span `tool.output`](#tool-output-span-event) con contenidos de archivo sin procesar, salida de comandos Bash, y lo que devuelven herramientas MCP, WebFetch y WebSearch, truncado en el límite de contenido (60 KB por defecto) por atributo. Los resultados de herramientas MCP, WebFetch y WebSearch requieren Claude Code v2.1.283 o posterior. El contenido de herramientas también llega a los spans a través de [`new_context`, cuya puerta difiere por span](#new-context-gates). Configura tu backend de telemetría para filtrar o redactar estos atributos según sea necesario1736* El contenido de herramientas no se registra en spans de trazas por defecto. Para incluirlo, establece `OTEL_LOG_TOOL_CONTENT=1`. El span `claude_code.tool` entonces lleva un [evento de span `tool.output`](#tool-output-span-event) con contenidos de archivo sin procesar, salida de comandos Bash, y lo que devuelven herramientas MCP, WebFetch y WebSearch, truncado en el límite de contenido (60 KB por defecto) por atributo. Los resultados de herramientas MCP, WebFetch y WebSearch requieren Claude Code v2.1.283 o posterior. El contenido de herramientas también llega a los spans a través de [`new_context`, cuya puerta difiere por span](#new-context-gates). Configura tu backend de telemetría para filtrar o redactar estos atributos según sea necesario

1706* Los cuerpos de solicitud y respuesta de la API de Mensajes de Anthropic sin procesar no se registran por defecto. Para incluirlos, establece `OTEL_LOG_RAW_API_BODIES` en tu shell, configuración de usuario o configuración administrada. Se ignora en [configuración de proyecto y local](/docs/es/settings-reference#variables-claude-code-ignores-in-env). Los cuerpos contienen el historial de conversación completo, incluido el mensaje del sistema, cada turno anterior de usuario y asistente, y resultados de herramientas, así que habilitar esto implica consentimiento a todo lo que las otras banderas de contenido `OTEL_LOG_*` revelarían. Claude Code siempre redacta el contenido de pensamiento extendido de Claude de estos cuerpos, independientemente de otras configuraciones. El valor que estableces determina cómo Claude Code entrega los cuerpos:1737* Los cuerpos de solicitud y respuesta de la API de Mensajes de Anthropic sin procesar no se registran por defecto. Para incluirlos, establece `OTEL_LOG_RAW_API_BODIES` en tu shell, configuración de usuario o configuración administrada. Se ignora en [configuración de proyecto y local](/docs/es/settings-reference#variables-claude-code-ignores-in-env). Los cuerpos contienen el historial de conversación completo, incluido el mensaje del sistema, cada turno anterior de usuario y asistente, y resultados de herramientas, así que habilitar esto implica consentimiento a todo lo que las otras banderas de contenido `OTEL_LOG_*` revelarían. Claude Code siempre redacta el contenido de pensamiento extendido de Claude de estos cuerpos, independientemente de otras configuraciones. El valor que estableces determina cómo Claude Code entrega los cuerpos:

1707 * Con `=1`, Claude Code emite eventos de registro `api_request_body` y `api_response_body` para cada llamada de API. El atributo `body` de los eventos lleva la carga útil serializada en JSON, truncada en el límite de contenido (60 KB por defecto)1738 * Con `=1`, Claude Code emite eventos de registro `api_request_body` y `api_response_body` para cada llamada de API. El atributo `body` de los eventos lleva la carga útil serializada en JSON, truncada en el límite de contenido (60 KB por defecto)

Details

67 Qué modo inicia una sesión67 Qué modo inicia una sesión

68</h2>68</h2>

69 69 

70Cuando inicia una nueva sesión en una terminal, Claude Code toma el modo de permisos del primero de estos que se aplique:70Cuando inicias una nueva sesión en una terminal, Claude Code toma el modo de permisos del primero de estos que se aplique:

71 71 

721. La bandera `--permission-mode` o `--dangerously-skip-permissions`721. La bandera `--permission-mode` o `--dangerously-skip-permissions`

73 73 

742. `permissions.defaultMode` en un [archivo de configuración](/docs/es/settings#where-settings-live)742. `permissions.defaultMode` en un [archivo de configuración](/docs/es/settings#where-settings-live)

75 75 

76 Si establece `"auto"` en `.claude/settings.json` o `.claude/settings.local.json`, el valor no entra en vigor, y Claude Code luego usa el valor predeterminado integrado en lugar de un `defaultMode` de `~/.claude/settings.json`. Si establece `"bypassPermissions"` en esos dos archivos, tampoco entra en vigor, y la sesión comienza en modo Manual. Los otros valores se aplican desde cualquier archivo de configuración.76 Si estableces `"auto"` en `.claude/settings.json` o `.claude/settings.local.json`, el valor no entra en vigor, y Claude Code luego usa el valor predeterminado integrado en lugar de un `defaultMode` de `~/.claude/settings.json`. Si estableces `"bypassPermissions"` en esos dos archivos, tampoco entra en vigor, y la sesión comienza en modo Manual. Los otros valores se aplican desde cualquier archivo de configuración.

77 77 

783. El valor predeterminado integrado783. El valor predeterminado integrado

79 79 

80Las conversaciones que inicia la extensión de VS Code siguen la lista propia de la extensión en [Cambiar modos de permisos](#switch-permission-modes). Para el modo de permisos en el que Claude Code inicia una sesión reanudada, consulte [modo de permisos al reanudar](/docs/es/sessions#permission-mode-on-resume).80Las conversaciones que inicia la extensión de VS Code siguen la lista propia de la extensión en [Cambiar modos de permisos](#switch-permission-modes). Para el modo de permisos en el que Claude Code inicia una sesión reanudada, consulta [modo de permisos al reanudar](/docs/es/sessions#permission-mode-on-resume).

81 81 

82El valor predeterminado integrado `auto` requiere Claude Code v2.1.228 o posterior en macOS, Linux y WSL, y v2.1.233 o posterior en Windows nativo. En versiones anteriores, el valor predeterminado integrado es Manual.82El valor predeterminado integrado `auto` requiere Claude Code v2.1.228 o posterior en macOS, Linux y WSL, y v2.1.233 o posterior en Windows nativo. En versiones anteriores, el valor predeterminado integrado es Manual.

83 83 

84El valor predeterminado integrado depende de cómo ejecute Claude Code. La primera fila que coincida con su sesión se aplica. La tabla cubre sesiones que inicia en una terminal o a través de la extensión de VS Code; para la aplicación de escritorio y claude.ai, consulte las pestañas Desktop y Web en [Cambiar modos de permisos](#switch-permission-modes).84El valor predeterminado integrado depende de cómo ejecutes Claude Code. La primera fila que coincida con tu sesión se aplica. La tabla cubre sesiones que inicias en una terminal o a través de la extensión de VS Code; para la aplicación de escritorio y claude.ai, consulta las pestañas Desktop y Web en [Cambiar modos de permisos](#switch-permission-modes).

85 85 

86| Cómo ejecuta Claude Code | Modo de permisos inicial integrado |86| Cómo ejecutas Claude Code | Modo de permisos inicial integrado |

87| :- | :- |87| :- | :- |

88| Cualquier archivo de configuración establece `disableAutoMode` en `"disable"` | `default` |88| Cualquier archivo de configuración establece `disableAutoMode` en `"disable"` | `default` |

89| `claude -p` o el [Agent SDK](/docs/es/agent-sdk/permissions#permission-modes) | `default` en sesiones que [obtienen banderas de características](/docs/es/env-vars#features-that-need-feature-flag-fetching). En sesiones que no lo hacen, como en un proveedor de terceros o con telemetría desactivada, `auto` con Claude Code v2.1.285 o posterior y `default` en versiones anteriores. Una sesión en una organización cuya política retiene el valor predeterminado `auto` comienza en `default` en su lugar |89| `claude -p` o el [Agent SDK](/docs/es/agent-sdk/permissions#permission-modes) | `default` en sesiones que [obtienen banderas de características](/docs/es/env-vars#features-that-need-feature-flag-fetching). En sesiones que no lo hacen, como en un proveedor de terceros o con telemetría desactivada, `auto` con Claude Code v2.1.285 o posterior y `default` en versiones anteriores. Una sesión en una organización cuya política retiene el valor predeterminado `auto` comienza en `default` en su lugar |

90| En una terminal o a través de la [extensión de VS Code](/docs/es/vs-code) | `auto` con Claude Code v2.1.283 o posterior; en versiones anteriores, `auto` en planes Pro, Max o Team en sesiones que [obtienen banderas de características](/docs/es/env-vars#features-that-need-feature-flag-fetching), y `default` en caso contrario |90| En una terminal o a través de la [extensión de VS Code](/docs/es/vs-code) | `auto` con Claude Code v2.1.283 o posterior; en versiones anteriores, `auto` en planes Pro, Max o Team en sesiones que [obtienen banderas de características](/docs/es/env-vars#features-that-need-feature-flag-fetching), y `default` en caso contrario |

91 91 

92En su [primera sesión después de una instalación o actualización](/docs/es/env-vars#first-session-after-an-install-or-upgrade), Claude Code puede elegir el modo de permisos inicial antes de que lleguen sus banderas de características. Esa sesión puede iniciarse en un modo de permisos diferente al que proporciona la tabla, y su siguiente sesión coincide con la tabla.92En tu [primera sesión después de una instalación o actualización](/docs/es/env-vars#first-session-after-an-install-or-upgrade), Claude Code puede elegir el modo de permisos inicial antes de que lleguen sus banderas de características. Esa sesión puede iniciarse en un modo de permisos diferente al que proporciona la tabla.

93 93 

94Cuando la bandera, un archivo de configuración o el valor predeterminado integrado selecciona `auto` pero el modo automático no está disponible para la sesión, Claude Code inicia la sesión en Manual en su lugar. El modo automático no está disponible cuando la sesión no cumple con los [requisitos de disponibilidad](#eliminate-prompts-with-auto-mode), como un archivo de configuración desactivándolo o un modelo que no lo admite, o cuando Anthropic lo ha desactivado temporalmente del lado del servidor.94Cuando la bandera, un archivo de configuración o el valor predeterminado integrado selecciona `auto` pero el modo automático no está disponible para la sesión, Claude Code inicia la sesión en Manual en su lugar. El modo automático no está disponible cuando la sesión no cumple con los [requisitos de disponibilidad](#eliminate-prompts-with-auto-mode), como un archivo de configuración desactivándolo o un modelo que no lo admite, o cuando Anthropic lo ha desactivado temporalmente del lado del servidor.

95 95 

96La primera vez que el valor predeterminado integrado inicia una de sus sesiones en modo automático, Claude Code muestra un aviso que enlaza a esta página:96La primera vez que el valor predeterminado integrado inicia una de tus sesiones en modo automático, Claude Code muestra un aviso que enlaza a esta página:

97 97 

98* En una terminal, una vez, en la parte superior de la sesión98* En una terminal, una vez, en la parte superior de la sesión

99* En la extensión de VS Code, como una tarjeta en la pantalla de nueva conversación que permanece hasta que la descarte99* En la extensión de VS Code, como una tarjeta en la pantalla de nueva conversación que permanece hasta que la descartes

100 100 

101Si su `~/.claude/settings.json` establece un `defaultMode` distinto de `auto` y ningún otro archivo de configuración establece uno, sus sesiones siguen iniciándose en ese modo. En planes Pro, Max y Team, y en sesiones que [no obtienen banderas de características](/docs/es/env-vars#features-that-need-feature-flag-fetching), Claude Code pregunta una vez, en la terminal o en la extensión de VS Code, si desea cambiar la configuración a modo automático. Si rechaza, su configuración permanece como está.101Si tu `~/.claude/settings.json` establece un `defaultMode` distinto de `auto` y ningún otro archivo de configuración establece uno, tus sesiones siguen iniciándose en ese modo. En planes Pro, Max y Team, y en sesiones que [no obtienen banderas de características](/docs/es/env-vars#features-that-need-feature-flag-fetching), Claude Code pregunta una vez, en la terminal o en la extensión de VS Code, si deseas cambiar el ajuste a modo automático. Si rechazas, tu ajuste permanece como está.

102 102 

103<h3 id="start-in-a-different-mode">103<h3 id="start-in-a-different-mode">

104 Comience en un modo de permisos diferente104 Comienza en un modo de permisos diferente

105</h3>105</h3>

106 106 

107Puede establecer el modo de permisos inicial para una sesión, o como predeterminado para cada sesión en una máquina, proyecto u organización. Cuando más de un archivo de configuración establece `permissions.defaultMode`, [precedencia de configuración](/docs/es/settings#settings-precedence) decide, por lo que un valor de proyecto o administrado supera `~/.claude/settings.json`. Para cambiar el modo de permisos de una sesión que ya se está ejecutando, consulte [Cambiar modos de permisos](#switch-permission-modes).107Puedes establecer el modo de permisos inicial para una sesión, o como predeterminado para cada sesión en una máquina, proyecto u organización. Cuando más de un archivo de configuración establece `permissions.defaultMode`, la [precedencia de configuración](/docs/es/settings#settings-precedence) decide, por lo que un valor de proyecto o administrado supera `~/.claude/settings.json`. Para cambiar el modo de permisos de una sesión que ya se está ejecutando, consulta [Cambiar modos de permisos](#switch-permission-modes).

108 108 

109| Para establecer el modo de permisos inicial para | Haga esto |109| Para establecer el modo de permisos inicial para | Haz esto |

110| :- | :- |110| :- | :- |

111| Una sesión que está a punto de iniciar | Pase el modo de permisos como una bandera, por ejemplo `claude --permission-mode default` |111| Una sesión que estás a punto de iniciar | Pasa el modo de permisos como una bandera, por ejemplo `claude --permission-mode default` |

112| Cada sesión de terminal que inicia en esta máquina | Establezca `permissions.defaultMode` en `~/.claude/settings.json`. Para lo que lee la extensión de VS Code, consulte [Cambiar modos de permisos](#switch-permission-modes) |112| Cada sesión de terminal que inicias en esta máquina | Establece `permissions.defaultMode` en `~/.claude/settings.json`. Para lo que lee la extensión de VS Code, consulta [Cambiar modos de permisos](#switch-permission-modes) |

113| Cada sesión de terminal que inicia en un proyecto | Establezca `permissions.defaultMode` en `.claude/settings.json` del proyecto. Las sesiones que inicia en una terminal respetan cada valor excepto `auto` y `bypassPermissions`; las sesiones que inicia la extensión de VS Code no leen configuración de proyecto para el modo de permisos inicial |113| Cada sesión de terminal que inicias en un proyecto | Establece `permissions.defaultMode` en `.claude/settings.json` del proyecto. Las sesiones que inicias en una terminal respetan cada valor excepto `auto` y `bypassPermissions`; las sesiones que inicia la extensión de VS Code no leen configuración de proyecto para el modo de permisos inicial |

114| Cada sesión de terminal en su organización | Establezca `permissions.defaultMode` en [configuración administrada](/docs/es/managed-settings). Las sesiones de terminal comienzan en ese modo y las personas aún pueden cambiar a modo automático; para lo que lee la extensión de VS Code, consulte [Cambiar modos de permisos](#switch-permission-modes). Para eliminar modo automático para que nadie pueda seleccionarlo, establezca `permissions.disableAutoMode` en `"disable"` en su lugar |114| Cada sesión de terminal en tu organización | Establece `permissions.defaultMode` en [configuración administrada](/docs/es/managed-settings). Las sesiones de terminal comienzan en ese modo y las personas aún pueden cambiar a modo automático; para lo que lee la extensión de VS Code, consulta [Cambiar modos de permisos](#switch-permission-modes). Para eliminar el modo automático para que nadie pueda seleccionarlo, establece `permissions.disableAutoMode` en `"disable"` en su lugar |

115 115 

116Este ejemplo hace que cada sesión de terminal en su máquina comience en modo Manual, cuyo valor de configuración es `default`. Guárdelo en `~/.claude/settings.json`:116Este ejemplo hace que cada sesión de terminal en tu máquina comience en modo Manual, cuyo valor de configuración es `default`. Guárdalo en `~/.claude/settings.json`:

117 117 

118```json theme={null}118```json theme={null}

119{119{


123}123}

124```124```

125 125 

126La siguiente sesión que inicia muestra `⏸ manual mode on` en la barra de estado.126La siguiente sesión que inicies muestra `⏸ manual mode on` en la barra de estado.

127 127 

128<h2 id="switch-permission-modes">128<h2 id="switch-permission-modes">

129 Cambiar modos de permisos129 Cambiar modos de permisos


676* `.devcontainer`676* `.devcontainer`

677* `.yarn`677* `.yarn`

678* `.mvn`678* `.mvn`

679* `.claude`, excepto por `.claude/worktrees` donde Claude almacena sus propios git worktrees679* `.claude`, excepto por `.claude/worktrees` donde Claude almacena sus propios git worktrees, y excepto por los archivos markdown en el directorio de [memoria automática](/docs/es/memory#storage-location) propio de Claude en una sesión iniciada sin `--restricted`

680* Un directorio que cargó con [`--plugin-dir`](/docs/es/plugins/mods/create#change-a-mod-with-claude), porque Claude Code recarga y ejecuta el código de un mod desde él cuando un archivo cambia680* Un directorio que cargó con [`--plugin-dir`](/docs/es/plugins/mods/create#change-a-mod-with-claude), porque Claude Code recarga y ejecuta el código de un mod desde él cuando un archivo cambia

681 681 

682Archivos protegidos:682Archivos protegidos:


739Claude Code también busca dentro de estas construcciones:739Claude Code también busca dentro de estas construcciones:

740 740 

741* **Comandos anidados**: una subshell con `(...)`, un grupo de llaves con `{ ...; }`, sustitución de comandos con `$(...)` o comillas invertidas, o sustitución de procesos con `<(...)`. Claude Code encuentra una eliminación de ruta crítica ya sea que esté dentro de la forma anidada, como en `(rm -rf ~)` o `echo "$(rm -rf ~)"`, o en otro lugar del mismo comando.741* **Comandos anidados**: una subshell con `(...)`, un grupo de llaves con `{ ...; }`, sustitución de comandos con `$(...)` o comillas invertidas, o sustitución de procesos con `<(...)`. Claude Code encuentra una eliminación de ruta crítica ya sea que esté dentro de la forma anidada, como en `(rm -rf ~)` o `echo "$(rm -rf ~)"`, o en otro lugar del mismo comando.

742* **Scripts en línea**: Claude Code verifica un script pasado a un shell como `sh -c` o `bash -c` para la variable de shell y los objetivos de parámetro posicional [targets](#other-targets-that-count-as-critical-paths).742* **Scripts en línea**: un script pasado con `-c` a `sh`, `bash`, `zsh` o un shell POSIX similar, como en `bash -c 'rm -rf ~'`.

743 * Cuando el script está entre comillas dobles, el shell que invoca expande sus variables antes de que el shell interno reciba el script. En `find . -name '*.tmp' -exec sh -c "rm -rf \"$1\"/*" _ {} \;`, el comando se expande a una eliminación desde la raíz del sistema de archivos una vez por coincidencia, y Claude Code la trata como una eliminación de ruta crítica.743 * Cuando el script está entre comillas dobles, el shell que lo invoca expande sus variables antes de que el shell interno reciba el script. En `find . -name '*.tmp' -exec sh -c "rm -rf \"$1\"/*" _ {} \;`, el comando se expande a una eliminación desde la raíz del sistema de archivos una vez por coincidencia, y Claude Code lo trata como una eliminación de ruta crítica.

744 * Un script entre comillas simples que vincula `$1` a un valor real, como `sh -c 'rm -rf "$1"/*' _ {}` hace, no se marca.744 * Un script entre comillas simples que vincula `$1` a un valor real, como hace `sh -c 'rm -rf "$1"/*' _ {}`, no se marca.

745 

746Para desactivar la verificación sobre una ruta crítica escrita directamente en un script `-c`, como `~`, establece [`CLAUDE_CODE_DISABLE_INLINE_SHELL_RM_PROMPT=1`](/docs/es/env-vars#variables) en el entorno que inicia Claude Code.

745 747 

746<h3 id="rewrite-a-flagged-command">748<h3 id="rewrite-a-flagged-command">

747 Reescribir un comando marcado749 Reescribir un comando marcado

Details

336| `version` | string | Para una instalación de marketplace, la [versión que Claude Code calculó](/docs/es/plugins/loading#versions-and-updates) en la instalación. Para un plugin de solo sesión, directorio de skills o sincronizado, el `version` del manifiesto, o `unknown` cuando no declara ninguno |336| `version` | string | Para una instalación de marketplace, la [versión que Claude Code calculó](/docs/es/plugins/loading#versions-and-updates) en la instalación. Para un plugin de solo sesión, directorio de skills o sincronizado, el `version` del manifiesto, o `unknown` cuando no declara ninguno |

337| `scope` | string | `user`, `project`, `local` o `managed` para installs; `user` o `project` para plugins de directorio de skills; `session` para plugins de solo sesión; `synced` para plugins sincronizados desde claude.ai |337| `scope` | string | `user`, `project`, `local` o `managed` para installs; `user` o `project` para plugins de directorio de skills; `session` para plugins de solo sesión; `synced` para plugins sincronizados desde claude.ai |

338| `enabled` | boolean | Si el plugin está habilitado en tu configuración fusionada |338| `enabled` | boolean | Si el plugin está habilitado en tu configuración fusionada |

339| `installPath` | string | Directorio desde el que se carga el plugin |339| `installPath` | string | Directorio desde el que se carga el plugin, excepto para un plugin que las sesiones [cargan en el lugar](/docs/es/plugins/loading#in-place-and-copied-plugins) desde la carpeta de su marketplace |

340| `readFromFolder` | string | Para un plugin que las sesiones [cargan en el lugar](/docs/es/plugins/loading#in-place-and-copied-plugins) desde la carpeta de su marketplace, el directorio de origen del plugin dentro de esa carpeta. Requiere Claude Code v2.1.289 o posterior |

341| `folderVersion` | string | Con `readFromFolder`, el `version` del plugin tal como Claude Code lo cargó desde esa carpeta, que puede diferir del campo `version` anterior. Ausente cuando el plugin no se cargó o no declara ninguna versión. Requiere Claude Code v2.1.289 o posterior |

340| `installedAt` | string | Marca de tiempo ISO de la instalación. Solo installs de marketplace |342| `installedAt` | string | Marca de tiempo ISO de la instalación. Solo installs de marketplace |

341| `lastUpdated` | string | Marca de tiempo ISO de la última actualización. Solo installs de marketplace |343| `lastUpdated` | string | Marca de tiempo ISO de la última actualización. Solo installs de marketplace |

342| `projectPath` | string | Proyecto al que pertenece la instalación. Solo alcance `project` y `local` |344| `projectPath` | string | Proyecto al que pertenece la instalación. Solo alcance `project` y `local` |


637 * Un directorio nombrado `.claude`: los directorios `skills`, `agents` y `commands` dentro de él639 * Un directorio nombrado `.claude`: los directorios `skills`, `agents` y `commands` dentro de él

638 * Cualquier otro directorio: esos tres directorios bajo su `.claude`640 * Cualquier otro directorio: esos tres directorios bajo su `.claude`

639 641 

642Cuando el directorio contiene tanto un `.claude-plugin/marketplace.json` como un `.claude-plugin/plugin.json`, Claude Code valida el marketplace y también el manifiesto y los archivos de componentes del plugin. Esto requiere Claude Code v2.1.289 o posterior.

643 

640Claude Code no sigue enlaces simbólicos dentro del directorio que nombras. Lo que hace depende de dónde esté el enlace:644Claude Code no sigue enlaces simbólicos dentro del directorio que nombras. Lo que hace depende de dónde esté el enlace:

641 645 

642* **Un directorio `skills`, `agents` o `commands` enlazado bajo la raíz del plugin o `.claude`**: Claude Code advierte que nada en él fue leído.646* **Un directorio `skills`, `agents` o `commands` enlazado bajo la raíz del plugin o `.claude`**: Claude Code advierte que nada en él fue leído.


647 651 

648* **Un `SKILL.md` en la raíz del plugin**: cuando ejecutas `claude plugin validate` contra un directorio de plugin, Claude Code no verifica un `SKILL.md` en la raíz del plugin652* **Un `SKILL.md` en la raíz del plugin**: cuando ejecutas `claude plugin validate` contra un directorio de plugin, Claude Code no verifica un `SKILL.md` en la raíz del plugin

649* **Un `CLAUDE.md` en la raíz del plugin**: en una ejecución de plugin, Claude Code también advierte sobre un `CLAUDE.md` en la raíz del plugin653* **Un `CLAUDE.md` en la raíz del plugin**: en una ejecución de plugin, Claude Code también advierte sobre un `CLAUDE.md` en la raíz del plugin

650* **Archivos de plugin en una ejecución de marketplace**: desde un directorio de marketplace, Claude Code no abre los archivos de skill, agent, comando o hook de los plugins, ni los archivos de servidor MCP que empaquetan. Para encontrar errores en esos archivos, valida cada directorio de plugin654* **Archivos de plugin en una ejecución de marketplace**: desde un directorio de marketplace, Claude Code no abre los archivos de skill, agent, comando o hook de los plugins que el marketplace lista en otros directorios, ni los archivos de servidor MCP que empaquetan. Para encontrar errores en esos archivos, valida cada directorio de plugin

651 655 

652<h4 id="output-and-exit-codes">656<h4 id="output-and-exit-codes">

653 Salida y códigos de salida657 Salida y códigos de salida

Details

100 Greet the user warmly and ask how you can help them today.100 Greet the user warmly and ask how you can help them today.

101 ```101 ```

102 102 

103 La línea `disable-model-invocation: true` significa que Claude no ejecuta el skill por su cuenta, por lo que solo usted lo activa. Elimine esa línea de un skill que desee que Claude ejecute por su cuenta. El comando del skill combina el nombre del plugin y el nombre del skill, por lo que ejecuta este como `/my-first-plugin:hello`. Para los otros campos del frontmatter, consulte la [referencia del frontmatter del skill](/docs/es/skills#frontmatter-reference).103 La línea `disable-model-invocation: true` significa que Claude no ejecuta el skill por su cuenta. Elimina esa línea de un skill que quieras que Claude ejecute por su cuenta. El comando del skill combina el nombre del plugin y el nombre del skill, por lo que este se ejecuta como `/my-first-plugin:hello`. Para los otros campos del frontmatter, consulta la [referencia del frontmatter de skills](/docs/es/skills#frontmatter-reference).

104 </Step>104 </Step>

105 105 

106 <Step title="Validar el plugin">106 <Step title="Valida el plugin">

107 Verifique el manifiesto y el frontmatter del skill antes de ejecutar nada:107 Verifica el manifiesto y el frontmatter del skill antes de ejecutar nada:

108 108 

109 ```bash theme={null}109 ```bash theme={null}

110 claude plugin validate ./my-first-plugin110 claude plugin validate ./my-first-plugin

Details

215 215 

216Para lanzar una nueva versión a los usuarios, cambie el `version` del plugin. Los usuarios obtienen una nueva copia solo cuando la versión calculada del plugin difiere de la que tienen. Esa versión proviene de `plugin.json` primero, luego de la entrada del marketplace, según [Versions and updates](/docs/es/plugins/loading#versions-and-updates).216Para lanzar una nueva versión a los usuarios, cambie el `version` del plugin. Los usuarios obtienen una nueva copia solo cuando la versión calculada del plugin difiere de la que tienen. Esa versión proviene de `plugin.json` primero, luego de la entrada del marketplace, según [Versions and updates](/docs/es/plugins/loading#versions-and-updates).

217 217 

218Un plugin que los usuarios [cargan en su lugar](/docs/es/plugins/loading#find-plugins-on-disk) desde un marketplace que agregaron como un directorio local no está controlado por `version`. Carga sus archivos actuales en cada inicio de sesión, sin importar lo que diga su cadena de versión.218Un plugin que los usuarios [cargan en su lugar](/docs/es/plugins/loading#find-plugins-on-disk) desde un marketplace que agregaron desde una ruta local no está controlado por `version`. Carga tus archivos actuales en cada inicio de sesión, sin importar lo que diga su cadena de versión.

219 219 

220Para cada instalación que no sea una carga en su lugar o una de un source `command`, aumente `version` en cada lanzamiento u omítalo:220Para cada instalación que no sea una carga en su lugar o una de un source `command`, aumente `version` en cada lanzamiento u omítalo:

221 221 

Details

208Claude Code carga algunos plugins en lugar desde donde los mantiene y copia el resto en la caché, según su origen:208Claude Code carga algunos plugins en lugar desde donde los mantiene y copia el resto en la caché, según su origen:

209 209 

210* **Plugins `--plugin-dir` y de directorio de habilidades**: el directorio se carga en lugar y nunca se copia. Un archivo `.zip` de `--plugin-url` o `--plugin-dir` se extrae en un directorio temporal de sesión primero210* **Plugins `--plugin-dir` y de directorio de habilidades**: el directorio se carga en lugar y nunca se copia. Un archivo `.zip` de `--plugin-url` o `--plugin-dir` se extrae en un directorio temporal de sesión primero

211* **Plugins de ruta relativa en un mercado que agregó desde un directorio local**: el plugin se carga en lugar desde su ruta dentro de la carpeta del mercado. Sus ediciones al directorio de origen surten efecto en el próximo inicio de sesión o `/reload-plugins`, y no necesita aumentar la versión. Los procesos de hook del plugin y los servidores MCP y LSP reciben un `CLAUDE_PLUGIN_ROOT` que apunta al directorio de origen. Para sus dependencias de paquete Node.js, consulte [Cuándo se ejecuta la instalación de dependencias](#when-the-dependency-install-runs)211* **Plugins de ruta relativa en un marketplace que agregaste desde una ruta local**: el plugin se carga en lugar desde su ruta dentro de la carpeta del marketplace. Tus ediciones al directorio de origen surten efecto en el próximo inicio de sesión o `/reload-plugins`, y no necesitas aumentar la versión. Los procesos de hook del plugin y los servidores MCP y LSP reciben un `CLAUDE_PLUGIN_ROOT` que apunta al directorio de origen. Para sus dependencias de paquete Node.js, consulta [Cuándo se ejecuta la instalación de dependencias](#when-the-dependency-install-runs)

212* **Plugins de fuente `command` en [modo de enlace](/docs/es/plugins/marketplace-reference#command-plugin-source)**: el directorio que imprimió el comando se carga en lugar, a través de enlaces en la entrada de caché212* **Plugins de fuente `command` en [modo de enlace](/docs/es/plugins/marketplace-reference#command-plugin-source)**: el directorio que imprimió el comando se carga en lugar, a través de enlaces en la entrada de caché

213* **Todos los demás plugins de mercado**: Claude Code copia el plugin en `cache/<marketplace>/<plugin>/<version>/` en la instalación y carga esa copia. Los archivos fuera del directorio del plugin no se copian, por lo que cuando un script dentro de un plugin copiado lee una ruta por encima de la raíz del plugin, como `../shared`, no los encuentra213* **Todos los demás plugins de mercado**: Claude Code copia el plugin en `cache/<marketplace>/<plugin>/<version>/` en la instalación y carga esa copia. Los archivos fuera del directorio del plugin no se copian, por lo que cuando un script dentro de un plugin copiado lee una ruta por encima de la raíz del plugin, como `../shared`, no los encuentra

214 214 


250* Cuando Claude Code actualiza un plugin a una nueva versión250* Cuando Claude Code actualiza un plugin a una nueva versión

251* Al inicio de la sesión cuando un plugin habilitado aún no está en caché, como en una máquina nueva251* Al inicio de la sesión cuando un plugin habilitado aún no está en caché, como en una máquina nueva

252 252 

253Para un plugin de ruta relativa [cargado en lugar](#in-place-and-copied-plugins) desde un mercado de directorio local, Claude Code no instala las dependencias en el directorio de origen. Instálelas allí usted mismo, o desde un hook en [`${CLAUDE_PLUGIN_DATA}`](/docs/es/plugins/components#path-variables-and-persistent-data).253Para un plugin de ruta relativa [cargado en lugar](#in-place-and-copied-plugins) desde un marketplace que agregaste desde una ruta local, Claude Code no instala las dependencias en el directorio de origen. Instálalas allí tú mismo, o desde un hook en [`${CLAUDE_PLUGIN_DATA}`](/docs/es/plugins/components#path-variables-and-persistent-data).

254 254 

255La instalación se ejecuta solo cuando el directorio raíz del plugin contiene tanto un `package.json` como un archivo de bloqueo compatible.255La instalación se ejecuta solo cuando el directorio raíz del plugin contiene tanto un `package.json` como un archivo de bloqueo compatible.

256 256 


315 315 

316Un manifiesto que fija `"version"` es una forma en que la versión calculada permanece igual en las confirmaciones. Consulte [Cómo Claude Code calcula la versión](#how-claude-code-computes-the-version) para el orden de resolución.316Un manifiesto que fija `"version"` es una forma en que la versión calculada permanece igual en las confirmaciones. Consulte [Cómo Claude Code calcula la versión](#how-claude-code-computes-the-version) para el orden de resolución.

317 317 

318Un plugin [cargado en lugar](#in-place-and-copied-plugins) desde un mercado de directorio local carga sus archivos de origen actuales en cada inicio de sesión, sin importar lo que diga su cadena de versión. Para un plugin de un [mercado alojado en claude.ai](/docs/es/plugins/install#add-from-claude-ai), la versión que claude.ai registra para el plugin es su versión, y el `version` del manifiesto no se lee.318Un plugin [cargado en su lugar](#in-place-and-copied-plugins) desde un marketplace que agregaste desde una ruta local carga sus archivos de origen actuales en cada inicio de sesión, sin importar lo que diga su cadena de versión. Para un plugin de un [marketplace alojado en claude.ai](/docs/es/plugins/install#add-from-claude-ai), la versión que claude.ai registra para el plugin es su versión, y el `version` del manifiesto no se lee.

319 319 

320<h3 id="how-claude-code-computes-the-version">320<h3 id="how-claude-code-computes-the-version">

321 Cómo Claude Code calcula la versión321 Cómo Claude Code calcula la versión

Details

199 `version`199 `version`

200</h3>200</h3>

201 201 

202Una cadena de versión, no se verifica contra semver. Configurarla fija el plugin a esa versión hasta que la cambie; consulte [Versiones y actualizaciones](/docs/es/plugins/loading#versions-and-updates). Un plugin con una [`command` source](/docs/es/plugins/marketplace-reference), un plugin de un [mercado alojado en claude.ai](/docs/es/plugins/install#add-from-claude-ai), y un plugin [cargado en su lugar](/docs/es/plugins/loading#find-plugins-on-disk) desde un mercado agregado como directorio local no se fijan por este campo.202Una cadena de versión, no se verifica contra semver. Configurarla fija el plugin a esa versión hasta que la cambies; consulta [Versiones y actualizaciones](/docs/es/plugins/loading#versions-and-updates). Un plugin con una [`command` source](/docs/es/plugins/marketplace-reference), un plugin de un [marketplace alojado en claude.ai](/docs/es/plugins/install#add-from-claude-ai), y un plugin [cargado en su lugar](/docs/es/plugins/loading#find-plugins-on-disk) desde un marketplace agregado desde una ruta local no se fijan por este campo.

203 203 

204<h3 id="metadata">204<h3 id="metadata">

205 `metadata`205 `metadata`

Details

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 |

435| `Input`, `Select` | Un campo de texto y una lista desplegable | Terminal, Desktop |435| `Input`, `Select` | Un campo de texto y una lista desplegable | Terminal, Desktop |

436| `Svg` | Un documento SVG | Desktop |436| `Svg` | Un documento SVG | Desktop |

437| `Client` | Una región dibujada por un segundo archivo tuyo, para animación y entrada del puntero. Ese archivo no recibe la API de mods. Solo llega a tus hooks publicando datos, que llegan como un evento `ui.message`. | Terminal, Desktop |437| `Client` | Una región dibujada por un segundo archivo tuyo, para animación y entrada del puntero. Ese archivo no recibe la API de mods. Llega a tus hooks publicando datos, que llegan como un evento `ui.message`. Si no logra cargarse, dibujarse o ejecutarse, tus hooks reciben un evento [`ui.fault`](/docs/es/plugins/mods/reference#interface). | Terminal, Desktop |

438| `Raster`, `Image` | Una [cuadrícula de celdas de colores](#draw-a-grid-of-colored-cells) y una imagen | Terminal |438| `Raster`, `Image` | Una [cuadrícula de celdas de colores](#draw-a-grid-of-colored-cells) y una imagen | Terminal |

439 439 

440Si tu módulo es un archivo `.tsx` o `.jsx`, puedes escribir el árbol como JSX. Primero desestructura los elementos de `$.ui.resolve(e)`.440Si tu módulo es un archivo `.tsx` o `.jsx`, puedes escribir el árbol como JSX. Primero desestructura los elementos de `$.ui.resolve(e)`.


664 Cuándo Claude Code vuelve a dibujar sin que se lo pidas664 Cuándo Claude Code vuelve a dibujar sin que se lo pidas

665</h3>665</h3>

666 666 

667Claude Code vuelve a ejecutar tu hook `ui.render` cuando cambian las props del sitio o cuando cambia el ancho de la terminal. No ejecuta el hook con un temporizador, y no puede saber cuándo cambia una variable de tu módulo.667Claude Code vuelve a ejecutar tu hook `ui.render` cuando cambian las props del sitio o cuando cambia el ancho de la terminal. Cuando un `Client` del sitio falla y tu mod maneja [`ui.fault`](/docs/es/plugins/mods/reference#interface), Claude Code ejecuta el hook una vez más después de que tus hooks `ui.fault` retornan, para que tu hook `ui.render` pueda omitir el `Client`. No ejecuta el hook con un temporizador, y no puede saber cuándo cambia una variable de tu módulo.

668 668 

669<h3 id="redraw-when-your-data-changes">669<h3 id="redraw-when-your-data-changes">

670 Volver a dibujar cuando cambian tus datos670 Volver a dibujar cuando cambian tus datos

Details

6 6 

7> Referencia completa de los mods de Claude Code: estructura del módulo de hooks, eventos, métodos de la API de mods, puntos de renderizado, elementos por superficie, límites y configuración.7> Referencia completa de los mods de Claude Code: estructura del módulo de hooks, eventos, métodos de la API de mods, puntos de renderizado, elementos por superficie, límites y configuración.

8 8 

9Consulta cualquier evento que un [mod](/docs/es/plugins/mods/overview) puede manejar, cualquier método de la API de mods que puede llamar o cualquier punto de renderizado en el que puede dibujar, para la CLI de Claude Code y la app de escritorio a partir de la v2.1.287. Cada entrada indica el nombre y una descripción de una línea, y enlaza a la sección de la guía que lo explica cuando existe.9Consulta cualquier evento que un [mod](/docs/es/plugins/mods/overview) puede manejar, cualquier método de la API de mods que puede llamar o cualquier punto de renderizado en el que puede dibujar, para la CLI de Claude Code y la app de escritorio a partir de la v2.1.289. Cada entrada indica el nombre y una descripción de una línea, y enlaza a la sección de la guía que lo explica cuando existe.

10 10 

11<Note>11<Note>

12 La referencia completa son las [declaraciones de TypeScript para mods](https://github.com/anthropics/claude-code/blob/main/mods/types/claude-code.d.ts) de Claude Code, que describen cada evento, método y elemento, con ejemplos. La copia en GitHub puede ser más antigua que la versión de Claude Code que tienes instalada. Cuando ambas no coincidan, confía en [la copia que Claude Code escribe para tu versión](/docs/es/plugins/mods/create#get-the-types-for-your-build).12 La referencia completa son las [declaraciones de TypeScript para mods](https://github.com/anthropics/claude-code/blob/main/mods/types/claude-code.d.ts) de Claude Code, que describen cada evento, método y elemento, con ejemplos. La copia en GitHub puede ser más antigua que la versión de Claude Code que tienes instalada. Cuando ambas no coincidan, confía en [la copia que Claude Code escribe para tu versión](/docs/es/plugins/mods/create#get-the-types-for-your-build).


128 Subagentes128 Subagentes

129</h3>129</h3>

130 130 

131Los eventos de subagentes se disparan cuando se ofrece un tipo de subagente a Claude y cuando uno está a punto de iniciarse:131Los eventos de subagentes se disparan cuando se ofrece un tipo de subagente a Claude y cuando un subagente o un compañero de un equipo de agentes está a punto de iniciarse:

132 132 

133| Evento | Se dispara cuando | Un hook puede devolver |133| Evento | Se dispara cuando | Un hook puede devolver |

134| :- | :- | :- |134| :- | :- | :- |

135| `agent.offer` | Se ofrece un tipo de subagente a Claude | `{ isOffered: false }` para ocultarlo |135| `agent.offer` | Se ofrece un tipo de subagente a Claude | `{ isOffered: false }` para ocultarlo |

136| `agent.spawn` | Un subagente está a punto de iniciarse | `{ model }` o `{ deny: reason }` |136| `agent.spawn` | Un subagente o un compañero de un [equipo de agentes](/docs/es/agent-teams) está a punto de iniciarse. Para un compañero, `e.isTeammate` es `true`. | `next({ ...e, model })` para elegir su modelo, o `{ deny: reason }` |

137 137 

138<h3 id="interface">138<h3 id="interface">

139 Interfaz139 Interfaz


149| `ui.focus`, `ui.scroll` | El control enfocado o la posición de desplazamiento de un panel o de la banda está a punto de cambiar |149| `ui.focus`, `ui.scroll` | El control enfocado o la posición de desplazamiento de un panel o de la banda está a punto de cambiar |

150| `ui.close` | Un panel está a punto de cerrarse. `e.id` es el panel y `e.origin.kind` es `plugin`, `person` o `unload`. |150| `ui.close` | Un panel está a punto de cerrarse. `e.id` es el panel y `e.origin.kind` es `plugin`, `person` o `unload`. |

151| [`ui.message`](/docs/es/plugins/mods/interface#build-a-tree-from-elements) | Un elemento `Client` publica datos en su mod |151| [`ui.message`](/docs/es/plugins/mods/interface#build-a-tree-from-elements) | Un elemento `Client` publica datos en su mod |

152| [`ui.fault`](/docs/es/plugins/mods/interface#redraw-when-something-changes) | Un elemento `Client` que dibujó tu mod no pudo cargarse, dibujarse o ejecutarse. `e.phase` es `load`, `render` o `run`, y `e.reason` es el mensaje de error. Requiere Claude Code v2.1.289 o posterior. |

152 153 

153<h3 id="other-mods">154<h3 id="other-mods">

154 Otros mods155 Otros mods


192| Espacio de nombres | Métodos |193| Espacio de nombres | Métodos |

193| :- | :- |194| :- | :- |

194| `$.plugin` | `name`, `root`: el nombre y el directorio de este plugin |195| `$.plugin` | `name`, `root`: el nombre y el directorio de este plugin |

195| [`$.ui`](/docs/es/plugins/mods/interface#pick-where-to-draw) | `resolve`, `invalidate`, `open`, `close`, `panes`, `focus`, `scroll`, `toast`, `status`, `log`, `notice`, `ask`, `copy`, `blit` |196| [`$.ui`](/docs/es/plugins/mods/interface#pick-where-to-draw) | `resolve`, `invalidate`, `open`, `close`, `panes`, `focus`, `scroll`, `toast`, `status`, `log`, `notice`, `ask`, `copy`, `selection`, `blit` |

196| [`$.command`](/docs/es/plugins/mods/api#add-a-command) | `register`, `run`, `list` |197| [`$.command`](/docs/es/plugins/mods/api#add-a-command) | `register`, `run`, `list` |

197| [`$.tool`](/docs/es/plugins/mods/api#add-a-tool) | `register`, `call`, `check`, `list` |198| [`$.tool`](/docs/es/plugins/mods/api#add-a-tool) | `register`, `call`, `check`, `list` |

198| `$.agent` | `register`, `spawn`, `list` |199| `$.agent` | `register`, `spawn`, `list` |


276 277 

277| Límite | Valor |278| Límite | Valor |

278| :- | :- |279| :- | :- |

279| El tiempo de ejecución propio de un hook para un evento, sin contar el tiempo dentro de `next` ni de una llamada a la API de mods distinta de `$.clock.sleep` | 10 segundos |280| El tiempo de ejecución propio de un hook para un evento, sin contar el tiempo dentro de `next` ni de una llamada a la API de mods distinta de `$.clock.sleep` | 10 segundos, o 50 milisegundos para un hook `prompt.edit` |

280| El tiempo de ejecución de un controlador `.catch` | 1 segundo |281| El tiempo de ejecución de un controlador `.catch` | 1 segundo |

281| Todos los hooks `session.end` en conjunto | 1.5 segundos |282| Todos los hooks `session.end` en conjunto | Lo mismo que el [presupuesto del hook SessionEnd](/docs/es/hooks#sessionend-input), 1.5 segundos a menos que lo cambies, contado desde que terminan los hooks `SessionEnd` de tu configuración |

282| Tiempo de espera de `$.process.run` | 30 segundos de forma predeterminada, 10 minutos como máximo |283| Tiempo de espera de `$.process.run` | 30 segundos de forma predeterminada, 10 minutos como máximo |

283| `maxTokens` de `$.model.complete` | 1024 de forma predeterminada, hasta 64,000 o el límite de salida del modelo |284| `maxTokens` de `$.model.complete` | 1024 de forma predeterminada, hasta 64,000 o el límite de salida del modelo |

284| `$.fs.read` y `$.fs.write` | 4 MiB por archivo |285| `$.fs.read` y `$.fs.write` | 4 MiB por archivo |

Details

1016 1016 

1017Revisa estas causas en orden:1017Revisa estas causas en orden:

1018 1018 

1019* **El skill establece `disable-model-invocation: true`**: con ese campo establecido, solo tú puedes invocar el skill. El skill de plantilla de [Crear tu primer plugin](/docs/es/plugins/create#create-your-first-plugin) lo establece. Elimina la línea de un skill que quieras que Claude invoque por su cuenta. [Controlar quién invoca un skill](/docs/es/skills#control-who-invokes-a-skill) explica el campo1019* **El skill establece `disable-model-invocation: true`**: el skill de plantilla de [Crear tu primer plugin](/docs/es/plugins/create#create-your-first-plugin) lo establece. Elimina la línea de un skill que quieras que Claude invoque por su cuenta. [Controlar quién invoca un skill](/docs/es/skills#control-who-invokes-a-skill) explica el campo

1020* **La descripción no coincide con la forma en que la gente pregunta**: sigue las verificaciones de [El skill no se activa](/docs/es/skills#skill-not-triggering)1020* **La descripción no coincide con la forma en que la gente pregunta**: sigue las verificaciones de [El skill no se activa](/docs/es/skills#skill-not-triggering)

1021* **La descripción está truncada**: cuando hay muchos skills instalados, Claude Code acorta las descripciones para ajustarlas al presupuesto de caracteres del listado, lo que puede eliminar las palabras clave que Claude necesita para relacionarlo con una solicitud. Consulta [Las descripciones de los skills se recortan](/docs/es/skills#skill-descriptions-are-cut-short)1021* **La descripción está truncada**: cuando hay muchos skills instalados, Claude Code acorta las descripciones para ajustarlas al presupuesto de caracteres del listado, lo que puede eliminar las palabras clave que Claude necesita para relacionarlo con una solicitud. Consulta [Las descripciones de los skills se recortan](/docs/es/skills#skill-descriptions-are-cut-short)

1022 1022 

sandboxing.md +1 −1

Details

463 463 

464El enmascaramiento requiere lo siguiente:464El enmascaramiento requiere lo siguiente:

465 465 

466* **Terminación TLS**: el proxy sustituye el valor real dentro del contenido de la solicitud, por lo que necesita verlo. Configura [`network.tlsTerminate`](/docs/es/settings-reference#sandbox-network-tlsterminate) para que el proxy termine TLS por sí mismo. Sin esto, el enmascaramiento falla sin exponer nada: el comando sigue viendo solo el centinela, pero el centinela llega al servidor sin cambios y la autenticación falla. Claude Code informa de esta configuración incorrecta al iniciar.466* **Terminación TLS**: el proxy sustituye el valor real dentro del contenido de la solicitud, por lo que necesita verlo. Configura [`network.tlsTerminate`](/docs/es/settings-reference#sandbox-network-tlsterminate) para que el proxy termine TLS por sí mismo. Sin esto, el enmascaramiento falla sin exponer nada: el comando sigue viendo solo el centinela, pero el centinela llega al servidor sin cambios y la autenticación falla. Para comprobar si existe esta configuración incorrecta, ejecuta `claude doctor` en tu terminal y busca la advertencia `TLS termination is unavailable`.

467* **Un destino permitido**: cada entrada `mask` puede incluir `injectHosts`, los hosts a los que puede llegar el valor real. El proxy solo inyecta en las conexiones que admite la [lista de dominios permitidos](#network-isolation), por lo que cada host de `injectHosts` también debe ser accesible a través de `network.allowedDomains`. En una entrada `mask` sin `injectHosts`, el proxy sustituye el valor real en las solicitudes a todos los hosts de `network.allowedDomains`.467* **Un destino permitido**: cada entrada `mask` puede incluir `injectHosts`, los hosts a los que puede llegar el valor real. El proxy solo inyecta en las conexiones que admite la [lista de dominios permitidos](#network-isolation), por lo que cada host de `injectHosts` también debe ser accesible a través de `network.allowedDomains`. En una entrada `mask` sin `injectHosts`, el proxy sustituye el valor real en las solicitudes a todos los hosts de `network.allowedDomains`.

468* **Un alcance de configuración de confianza**: el enmascaramiento autoriza al proxy a enviar tu credencial real a algún lugar, por lo que Claude Code respeta las entradas `mask`, `network.tlsTerminate`, [`credentials.allowPlaintextInject`](/docs/es/settings-reference#sandbox-credentials-allowplaintextinject), `awsPairs` y `sigv4` solo desde la configuración de usuario, la configuración administrada y el flag `--settings`. Los ignora en el `.claude/settings.json` o el `.claude/settings.local.json` de un repositorio. Cuando tu administrador entrega entradas `mask`, `network.tlsTerminate` o `credentials.allowPlaintextInject` a través de la configuración administrada por el servidor, cuentan como [configuraciones que requieren aprobación](/docs/es/server-managed-settings#security-approval-dialogs).468* **Un alcance de configuración de confianza**: el enmascaramiento autoriza al proxy a enviar tu credencial real a algún lugar, por lo que Claude Code respeta las entradas `mask`, `network.tlsTerminate`, [`credentials.allowPlaintextInject`](/docs/es/settings-reference#sandbox-credentials-allowplaintextinject), `awsPairs` y `sigv4` solo desde la configuración de usuario, la configuración administrada y el flag `--settings`. Los ignora en el `.claude/settings.json` o el `.claude/settings.local.json` de un repositorio. Cuando tu administrador entrega entradas `mask`, `network.tlsTerminate` o `credentials.allowPlaintextInject` a través de la configuración administrada por el servidor, cuentan como [configuraciones que requieren aprobación](/docs/es/server-managed-settings#security-approval-dialogs).

469 469 

Details

195 195 

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

197 197 

198<h4 id="github-api-access-without-the-github-cli">

199 Acceso a la API de GitHub sin la GitHub CLI

200</h4>

201 

202Si la imagen de tu runner no incluye la GitHub CLI, Claude Code puede proporcionar un `gh` integrado, para que Claude pueda seguir abriendo pull requests, comentando y leyendo los resultados de CI. El `gh` integrado es para runners que usan git gestionado por Anthropic. Admite un solo comando, `gh api`, que llama a la API REST de GitHub. Requiere Claude Code v2.1.287 o posterior en la imagen del runner.

203 

204Este comando abre un pull request en lugar de `gh pr create`. El `gh` integrado completa `{owner}` y `{repo}` para el repositorio actual:

205 

206```bash theme={null}

207gh api repos/{owner}/{repo}/pulls -f title='Fix' -f head='my-branch' -f base='main'

208```

209 

210* **Credenciales**: el `gh` integrado envía sus solicitudes REST a través de git gestionado por Anthropic, que proporciona la credencial de GitHub del lado de Anthropic, así que la imagen no necesita ningún token de GitHub para ello

211* **Qué sesiones lo obtienen**: Anthropic decide por sesión si git gestionado por Anthropic atiende el `gh` de la sesión. Cuando lo hace, la línea `[runner:session] governed git ACTIVE` que el runner registra para la sesión muestra `gh_path_shim=true`. Cuando no lo hace, la sesión no tiene `gh`

212* **`jq`**: instala `jq` en la imagen si quieres que `--jq` funcione

213* **[`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/es/env-vars)**: si el entorno de la sesión la establece, Claude Code no proporciona el `gh` integrado, y la sesión no tiene `gh`

214 

215Cuando la imagen incluye la GitHub CLI, las sesiones la usan.

216 

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

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

200</h4>219</h4>

Details

117claude -p "your message" --cloud <session-id>117claude -p "your message" --cloud <session-id>

118```118```

119 119 

120Para `<session-id>`, pase el ID desnudo `session_...` o `cse_...` o la URL claude.ai/code de la sesión. Un envío exitoso imprime `Sent to cloud session.` con el ID de sesión y un enlace de vista. Las formas de ID aceptadas, salida JSON, los requisitos de cuenta y política, y la referencia de error están en [Enviar seguimientos desde la CLI](/docs/es/claude-code-on-the-web#send-follow-ups-from-the-cli), ya que el comando funciona igual contra sesiones alojadas por Anthropic.120Para `<session-id>`, pasa el ID desnudo `session_...` o `cse_...` o la URL claude.ai/code de la sesión. Un envío exitoso imprime `Sent to cloud session.` con el ID de sesión y un enlace de vista. Las formas de ID aceptadas, la salida JSON y los requisitos de cuenta y política están en [Enviar seguimientos desde la CLI](/docs/es/claude-code-on-the-web#send-follow-ups-from-the-cli), ya que el comando funciona igual contra sesiones alojadas por Anthropic.

121 121 

122<h2 id="what’s-next">122<h2 id="what’s-next">

123 Qué sigue123 Qué sigue

Details

6 6 

7> Configure Claude Code centralmente para su organización a través de configuración entregada por servidor, sin requerir infraestructura de administración de dispositivos.7> Configure Claude Code centralmente para su organización a través de configuración entregada por servidor, sin requerir infraestructura de administración de dispositivos.

8 8 

9La configuración administrada por servidor permite a los propietarios de la organización configurar Claude Code centralmente desde [**Admin Settings > Claude Code > Managed settings**](https://claude.ai/admin-settings/claude-code) en la consola de claude.ai. Los clientes de Claude Code obtienen automáticamente estas configuraciones cuando los usuarios se autentican con una credencial elegible en una plataforma donde se admite la entrega administrada por servidor. Consulte [Disponibilidad de plataforma](#platform-availability) para conocer las credenciales y plataformas que califican.9La configuración administrada por servidor permite a los propietarios de la organización configurar Claude Code centralmente desde [**Organization settings > Claude Code > Managed settings**](https://claude.ai/admin-settings/claude-code) en la consola de claude.ai. Los clientes de Claude Code obtienen automáticamente estas configuraciones cuando los usuarios se autentican con una credencial elegible en una plataforma donde se admite la entrega administrada por servidor. Consulta [Disponibilidad de plataforma](#platform-availability) para conocer las credenciales y plataformas que califican.

10 10 

11<Note>11<Note>

12 La configuración administrada por servidor está disponible para clientes de [Claude for Teams](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=server_settings_teams#team-&-enterprise) y [Claude for Enterprise](https://anthropic.com/contact-sales?utm_source=claude_code\&utm_medium=docs\&utm_content=server_settings_enterprise).12 La configuración administrada por servidor está disponible para clientes de [Claude for Teams](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=server_settings_teams#team-&-enterprise) y [Claude for Enterprise](https://anthropic.com/contact-sales?utm_source=claude_code\&utm_medium=docs\&utm_content=server_settings_enterprise).


41 41 

42<Steps>42<Steps>

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, vaya a [**Admin 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 lo redirige a una página de Admin Settings diferente en lugar de la página de Claude Code, su 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 pida a un Owner o Primary Owner en su organización que realice el cambio. Consulte [Control de acceso](#access-control).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).

47 </Step>47 </Step>

48 48 

49 <Step title="Definir su configuración">49 <Step title="Definir tu configuración">

50 Agregue su configuración como JSON. Todas las [configuraciones disponibles en `settings.json`](/docs/es/settings-reference#all-settings) son compatibles excepto las restringidas a la entrega de políticas a nivel del sistema operativo; consulte [Limitaciones actuales](#current-limitations) para esa lista breve. Esto incluye [hooks](/docs/es/hooks), [variables de entorno](/docs/es/env-vars) y [configuraciones solo administradas](/docs/es/managed-settings#managed-only-settings) como `allowManagedPermissionRulesOnly`.50 Agrega tu configuración como JSON. Todos los [ajustes disponibles en `settings.json`](/docs/es/settings-reference#all-settings) son compatibles excepto los restringidos a la entrega de políticas a nivel del sistema operativo; consulta [Limitaciones actuales](#current-limitations) para esa lista breve. Esto incluye [hooks](/docs/es/hooks), [variables de entorno](/docs/es/env-vars) y [ajustes solo administrados](/docs/es/managed-settings#managed-only-settings) como `allowManagedPermissionRulesOnly`.

51 51 

52 Este ejemplo aplica una lista de denegación de permisos, impide que los usuarios omitan permisos y restringe las reglas de permisos a las definidas en la configuración administrada. La regla `Bash(curl *)` coincide con `curl` [tal como Claude la escribe](/docs/es/permissions#bash-rule-limits), no `/usr/bin/curl` o `sh -c 'curl …'`; para la aplicación de red que no depende del texto del comando, agregue un [bloque `sandbox` con `allowManagedDomainsOnly`](/docs/es/sandboxing#configure-the-sandbox-for-your-organization).52 Este ejemplo aplica una lista de denegación de permisos, impide que los usuarios omitan permisos y restringe las reglas de permisos a las definidas en la configuración administrada. La regla `Bash(curl *)` coincide con `curl` [tal como Claude la escribe](/docs/es/permissions#bash-rule-limits), no `/usr/bin/curl` o `sh -c 'curl …'`; para la aplicación de red que no depende del texto del comando, agregue un [bloque `sandbox` con `allowManagedDomainsOnly`](/docs/es/sandboxing#configure-the-sandbox-for-your-organization).

53 53 

sessions.md +1 −0

Details

292| [Nombre el directorio `<project>` usted mismo](#name-the-project-directory-yourself) | [`CLAUDE_CODE_PROJECT_DIR_NAME`](/docs/es/env-vars) | Variable de entorno |292| [Nombre el directorio `<project>` usted mismo](#name-the-project-directory-yourself) | [`CLAUDE_CODE_PROJECT_DIR_NAME`](/docs/es/env-vars) | Variable de entorno |

293| Cambiar la retención de 30 días | [`cleanupPeriodDays`](/docs/es/settings-reference#cleanupperioddays) | `settings.json` |293| Cambiar la retención de 30 días | [`cleanupPeriodDays`](/docs/es/settings-reference#cleanupperioddays) | `settings.json` |

294| Establecer un límite de edad para [transcripciones de Claude Desktop y Cowork](/docs/es/claude-directory#cleaned-up-automatically) | [`desktopSessionCleanupPeriodDays`](/docs/es/settings-reference#desktopsessioncleanupperioddays) | Configuración de usuario, configuración administrada, o `--settings` |294| Establecer un límite de edad para [transcripciones de Claude Desktop y Cowork](/docs/es/claude-directory#cleaned-up-automatically) | [`desktopSessionCleanupPeriodDays`](/docs/es/settings-reference#desktopsessioncleanupperioddays) | Configuración de usuario, configuración administrada, o `--settings` |

295| Limitar cuánto crece el archivo de transcripción de una sesión de `-p` o del Agent SDK | [`CLAUDE_CODE_TRANSCRIPT_LOCAL_GC`](/docs/es/env-vars) | Variable de entorno |

295| Suprimir escrituras de transcripción en todos los modos | [`CLAUDE_CODE_SKIP_PROMPT_HISTORY`](/docs/es/env-vars) | Variable de entorno |296| Suprimir escrituras de transcripción en todos los modos | [`CLAUDE_CODE_SKIP_PROMPT_HISTORY`](/docs/es/env-vars) | Variable de entorno |

296| Suprimir escrituras para una ejecución no interactiva | [`--no-session-persistence`](/docs/es/cli-reference) | Bandera CLI con `claude -p` |297| Suprimir escrituras para una ejecución no interactiva | [`--no-session-persistence`](/docs/es/cli-reference) | Bandera CLI con `claude -p` |

297 298 

Details

990 990 

991Cuando su organización implementa cualquier configuración administrada, Claude Code lee esta clave solo de la fuente administrada e la ignora en sus otros archivos.991Cuando su organización implementa cualquier configuración administrada, Claude Code lee esta clave solo de la fuente administrada e la ignora en sus otros archivos.

992 992 

993Para saber cómo se aplica esta clave a las comprobaciones de modelo al inicio, consulta [Amazon Bedrock](/docs/es/amazon-bedrock#when-your-organization-enforces-a-model-allowlist) y [Agent Platform de Google Cloud](/docs/es/google-vertex-ai#when-your-organization-enforces-a-model-allowlist).

994 

993* **Alcance**: [`Cualquier archivo`](#scopes)995* **Alcance**: [`Cualquier archivo`](#scopes)

994* **Tipo**: Booleano996* **Tipo**: Booleano

995 * `true`: cuando **Predeterminado** se resolvería a un modelo fuera de `availableModels`, Claude Code lo resuelve al primer modelo disponible en la lista997 * `true`: cuando **Predeterminado** se resolvería a un modelo fuera de `availableModels`, Claude Code lo resuelve al primer modelo disponible en la lista


3135* [`CLAUDE_CODE_PROJECT_DIR_NAME`](/docs/es/sessions#name-the-project-directory-yourself), que Claude Code lee solo del entorno de lanzamiento, se ignora de cada archivo; requiere v2.1.234 o posterior.3137* [`CLAUDE_CODE_PROJECT_DIR_NAME`](/docs/es/sessions#name-the-project-directory-yourself), que Claude Code lee solo del entorno de lanzamiento, se ignora de cada archivo; requiere v2.1.234 o posterior.

3136* [`CLAUDE_CODE_RESTRICTED`](/docs/es/env-vars#variables), que Claude Code lee solo del entorno de lanzamiento, se ignora de cada archivo.3138* [`CLAUDE_CODE_RESTRICTED`](/docs/es/env-vars#variables), que Claude Code lee solo del entorno de lanzamiento, se ignora de cada archivo.

3137* [`CLAUDE_CODE_DISABLE_POWERSHELL_CMD_RM_DENY`](/docs/es/env-vars#variables), que Claude Code lee solo del entorno de lanzamiento, se ignora de cada archivo. La variable requiere Claude Code v2.1.283 o posterior.3139* [`CLAUDE_CODE_DISABLE_POWERSHELL_CMD_RM_DENY`](/docs/es/env-vars#variables), que Claude Code lee solo del entorno de lanzamiento, se ignora de cada archivo. La variable requiere Claude Code v2.1.283 o posterior.

3138* [`CLAUDE_CODE_DISABLE_DANGEROUS_RM_TIMEOUT` y `CLAUDE_CODE_DISABLE_SUBSTITUTION_RM_PROMPT`](/docs/es/env-vars#variables), que Claude Code lee solo del entorno de lanzamiento, se ignoran de cada archivo.3140* [`CLAUDE_CODE_DISABLE_DANGEROUS_RM_TIMEOUT`, `CLAUDE_CODE_DISABLE_SUBSTITUTION_RM_PROMPT` y `CLAUDE_CODE_DISABLE_INLINE_SHELL_RM_PROMPT`](/docs/es/env-vars#variables), que Claude Code lee solo del entorno de lanzamiento, se ignoran en todos los archivos.

3139 3141 

3140<h3 id="filecheckpointingenabled">3142<h3 id="filecheckpointingenabled">

3141 `fileCheckpointingEnabled`3143 `fileCheckpointingEnabled`

skills.md +16 −3

Details

561 561 

562Por defecto, tanto tú como Claude pueden invocar cualquier skill. Puedes escribir `/skill-name` para invocarlo directamente, y Claude puede cargarlo automáticamente cuando sea relevante para tu conversación. Dos campos de frontmatter te permiten restringir esto:562Por defecto, tanto tú como Claude pueden invocar cualquier skill. Puedes escribir `/skill-name` para invocarlo directamente, y Claude puede cargarlo automáticamente cuando sea relevante para tu conversación. Dos campos de frontmatter te permiten restringir esto:

563 563 

564* **`disable-model-invocation: true`**: Solo tú puedes invocar el skill. Úsalo para flujos de trabajo con efectos secundarios o que deseas controlar el tiempo, como `/commit`, `/deploy` o `/send-slack-message`. No quieres que Claude decida implementar porque tu código se ve listo.564* **`disable-model-invocation: true`**: Claude no puede invocar el skill por sí solo. Úsalo para flujos de trabajo con efectos secundarios o que deseas controlar el tiempo, como `/commit`, `/deploy` o `/send-slack-message`. No quieres que Claude decida desplegar porque tu código se ve listo.

565 565 

566* **`user-invocable: false`**: Solo Claude puede invocar el skill. Úsalo para conocimiento de fondo que no es accionable como comando. Un skill `legacy-system-context` explica cómo funciona un sistema antiguo. Claude debe saber esto cuando sea relevante, pero `/legacy-system-context` no es una acción significativa para que los usuarios realicen.566* **`user-invocable: false`**: Solo Claude puede invocar el skill. Úsalo para conocimiento de fondo que no es accionable como comando. Un skill `legacy-system-context` explica cómo funciona un sistema antiguo. Claude debe saber esto cuando sea relevante, pero `/legacy-system-context` no es una acción significativa para que los usuarios realicen.

567 567 

568Este ejemplo crea un skill de implementación que solo tú puedes activar. Si estableces `disable-model-invocation: true`, Claude no puede ejecutar el skill automáticamente:568Este ejemplo crea un skill de despliegue. Si estableces `disable-model-invocation: true`, Claude no puede ejecutar el skill automáticamente:

569 569 

570```yaml theme={null}570```yaml theme={null}

571---571---


589| Frontmatter | Puedes invocar | Claude puede invocar | Cuándo se carga en contexto |589| Frontmatter | Puedes invocar | Claude puede invocar | Cuándo se carga en contexto |

590| :- | :- | :- | :- |590| :- | :- | :- | :- |

591| (por defecto) | Sí | Sí | Descripción siempre en contexto, skill completo se carga cuando se invoca |591| (por defecto) | Sí | Sí | Descripción siempre en contexto, skill completo se carga cuando se invoca |

592| `disable-model-invocation: true` | Sí | No | Descripción no en contexto, skill completo se carga cuando lo invocas |592| `disable-model-invocation: true` | Sí | No por sí solo | Descripción no en contexto, skill completo se carga cuando se invoca |

593| `user-invocable: false` | No | Sí | Descripción siempre en contexto, skill completo se carga cuando se invoca |593| `user-invocable: false` | No | Sí | Descripción siempre en contexto, skill completo se carga cuando se invoca |

594 594 

595<Note>595<Note>

596 En una sesión regular, las descripciones de skills se cargan en contexto para que Claude sepa qué está disponible, pero el contenido completo del skill solo se carga cuando se invoca. [Subagentes con skills precargados](/docs/es/sub-agents#preload-skills-into-subagents) funcionan diferente: el contenido completo del skill se inyecta al inicio.596 En una sesión regular, las descripciones de skills se cargan en contexto para que Claude sepa qué está disponible, pero el contenido completo del skill solo se carga cuando se invoca. [Subagentes con skills precargados](/docs/es/sub-agents#preload-skills-into-subagents) funcionan diferente: el contenido completo del skill se inyecta al inicio.

597</Note>597</Note>

598 598 

599<h4 id="where-you-write-the-skill’s-name">

600 Dónde escribes el nombre del skill

601</h4>

602 

603Para ejecutar un skill directamente, pon su nombre al inicio de tu mensaje. Después de texto simple, el nombre le da a Claude permiso para ejecutar el skill, pero no lo ejecuta:

604 

605| Dónde | Ejemplo | Qué sucede |

606| :- | :- | :- |

607| Al inicio de tu mensaje | `/deploy staging` | Claude Code ejecuta el skill directamente |

608| Después de texto simple, como una palabra separada sin puntuación adjunta | `go ahead and /deploy to staging` | Nada se ejecuta directamente. El nombre cuenta como tu permiso para ese mensaje: Claude puede ejecutar el skill mientras responde y juzga por tu redacción si le pediste que lo hiciera |

609 

610Para escribir sobre el skill sin permitir una ejecución, omite la barra.

611 

599<h3 id="skill-content-lifecycle">612<h3 id="skill-content-lifecycle">

600 Ciclo de vida del contenido del skill613 Ciclo de vida del contenido del skill

601</h3>614</h3>

sub-agents.md +1 −1

Details

632 632 

633El contenido completo de cada skill listada se inyecta en el contexto del subagente al inicio. Este campo controla qué skills se precargan, no qué skills el subagente puede acceder: sin él, el subagente aún puede descubrir e invocar skills de proyecto, usuario y plugin a través de la herramienta Skill durante la ejecución. Para evitar que un subagente invoque skills en absoluto, omita `Skill` de la lista [`tools`](#available-tools) o agréguelo a `disallowedTools`.633El contenido completo de cada skill listada se inyecta en el contexto del subagente al inicio. Este campo controla qué skills se precargan, no qué skills el subagente puede acceder: sin él, el subagente aún puede descubrir e invocar skills de proyecto, usuario y plugin a través de la herramienta Skill durante la ejecución. Para evitar que un subagente invoque skills en absoluto, omita `Skill` de la lista [`tools`](#available-tools) o agréguelo a `disallowedTools`.

634 634 

635No puede precargar skills que establezcan [`disable-model-invocation: true`](/docs/es/skills#control-who-invokes-a-skill), ya que la precarga se extrae del mismo conjunto de skills que Claude puede invocar. Esto incluye la skill integrada `/verify`: solo usted puede ejecutarla, por lo que tampoco puede ser precargada.635No puedes precargar skills que establezcan [`disable-model-invocation: true`](/docs/es/skills#control-who-invokes-a-skill), ya que la precarga se toma del mismo conjunto de skills que Claude puede invocar. Esto incluye el skill integrado `/verify`, que Claude no puede ejecutar por sí solo.

636 636 

637Si una skill listada falta o está deshabilitada, por ejemplo por la política de su organización, Claude Code la omite y registra una advertencia en el registro de depuración.637Si una skill listada falta o está deshabilitada, por ejemplo por la política de su organización, Claude Code la omite y registra una advertencia en el registro de depuración.

638 638 

Details

487 487 

488Claude Code inicia PowerShell con `-ExecutionPolicy Bypass` solo en el ámbito del proceso, por lo que los scripts `.ps1` y las importaciones de módulos funcionan en instalaciones predeterminadas de Windows sin cambiar la política de la máquina. El bypass de ámbito de proceso no anula la Política de grupo `MachinePolicy` o `UserPolicy`, por lo que las políticas empresariales siguen siendo aplicables. Para respetar la política de ejecución efectiva de la máquina en su lugar, establezca `CLAUDE_CODE_POWERSHELL_RESPECT_EXECUTION_POLICY=1`.488Claude Code inicia PowerShell con `-ExecutionPolicy Bypass` solo en el ámbito del proceso, por lo que los scripts `.ps1` y las importaciones de módulos funcionan en instalaciones predeterminadas de Windows sin cambiar la política de la máquina. El bypass de ámbito de proceso no anula la Política de grupo `MachinePolicy` o `UserPolicy`, por lo que las políticas empresariales siguen siendo aplicables. Para respetar la política de ejecución efectiva de la máquina en su lugar, establezca `CLAUDE_CODE_POWERSHELL_RESPECT_EXECUTION_POLICY=1`.

489 489 

490<h3 id="bash-deny-rules-also-turn-off-the-powershell-tool">

491 Las reglas de denegación de Bash también desactivan la herramienta PowerShell

492</h3>

493 

494En Windows con Git Bash instalado, denegar Bash también desactiva la herramienta PowerShell durante la sesión. Esto se aplica tanto a reglas con alcance limitado, como `Bash(git push *)`, como a un `Bash` sin más, y a las reglas de uno de tus archivos de configuración o de `--disallowedTools`. Claude Code hace esto porque una regla `Bash` no restringe la herramienta PowerShell, que tiene [sus propias reglas de permisos](/docs/es/permissions#powershell). Si PowerShell siguiera activada, Claude podría ejecutar allí lo que tu regla deniega en Bash.

495 

496Para mantener la herramienta PowerShell activada junto con una regla de denegación de Bash, haz cualquiera de estas acciones:

497 

498* Establece `CLAUDE_CODE_USE_POWERSHELL_TOOL=1` en tu entorno o en el bloque `env` de un archivo de configuración, como se muestra en [Habilitar la herramienta PowerShell](#enable-the-powershell-tool).

499* Agrega una [regla de permisos `PowerShell`](/docs/es/permissions#powershell) con alcance limitado a un archivo de configuración, como una regla de denegación `PowerShell(git push *)`.

500 

501Sin alguna de estas, una regla de denegación de Bash con alcance limitado deja disponible la herramienta Bash, y Claude Code desactiva PowerShell sin ninguna advertencia. Una regla que elimina toda la herramienta Bash deja a Claude sin ninguna herramienta de shell durante la sesión.

502 

490<h3 id="shell-selection-in-settings-hooks-and-skills">503<h3 id="shell-selection-in-settings-hooks-and-skills">

491 Selección de shell en configuración, hooks y skills504 Selección de shell en configuración, hooks y skills

492</h3>505</h3>

Details

62Conectar GitHub es un paso único. Si ya usas la CLI de GitHub, puedes [hacer esto desde tu terminal](#connect-from-your-terminal) en lugar del navegador.62Conectar GitHub es un paso único. Si ya usas la CLI de GitHub, puedes [hacer esto desde tu terminal](#connect-from-your-terminal) en lugar del navegador.

63 63 

64<Note>64<Note>

65 En planes Team y Enterprise, el paso **Inicia sesión con GitHub** funciona solo después de que un [Propietario](/docs/es/server-managed-settings#access-control) de tu organización Claude active el conector de GitHub en [**Configuración de administrador > Conectores**](https://claude.ai/admin-settings/connectors). Hasta entonces, ese paso muestra "Se requiere acceso a GitHub para Claude Code en la web" en lugar de un botón de inicio de sesión. Después de que el conector esté activado, recarga [claude.ai/code](https://claude.ai/code) y comienza de nuevo desde el primer paso. Un segundo interruptor, [Configuración rápida de web](/docs/es/claude-code-on-the-web#github-authentication-options) en [**Configuración de administrador > Claude Code**](https://claude.ai/admin-settings/claude-code), es opcional: con él activado, `/web-setup` funciona e incorporación crea el entorno para los miembros.65 En planes Team y Enterprise, el paso **Inicia sesión con GitHub** funciona solo después de que un [Propietario](/docs/es/server-managed-settings#access-control) de tu organización Claude active el conector de GitHub en [**Configuración de la organización > Conectores**](https://claude.ai/admin-settings/connectors). Hasta entonces, ese paso muestra "GitHub access is required for Claude Code cloud sessions" en lugar de un botón de inicio de sesión. Después de que el conector esté activado, recarga [claude.ai/code](https://claude.ai/code) y comienza de nuevo desde el primer paso. Un segundo interruptor, [Configuración rápida](/docs/es/claude-code-on-the-web#quick-setup-for-team-and-enterprise) en [**Configuración de la organización > Claude Code**](https://claude.ai/admin-settings/claude-code), es opcional: con él activado, `/web-setup` funciona y la incorporación crea el entorno para los miembros.

66</Note>66</Note>

67 67 

68<Steps>68<Steps>


84 Un [entorno en la nube](/docs/es/cloud-environments) es la configuración guardada que controla qué acceso a la red tiene Claude durante las sesiones y qué se ejecuta cuando se inicia una sesión. Lo que sucede después de conectar GitHub depende de tu plan:84 Un [entorno en la nube](/docs/es/cloud-environments) es la configuración guardada que controla qué acceso a la red tiene Claude durante las sesiones y qué se ejecuta cuando se inicia una sesión. Lo que sucede después de conectar GitHub depende de tu plan:

85 85 

86 * **Pro y Max**: la incorporación crea un entorno llamado **Default** para ti.86 * **Pro y Max**: la incorporación crea un entorno llamado **Default** para ti.

87 * **Team y Enterprise**: la incorporación muestra un formulario **Crea tu primer entorno en la nube**. Deja el nombre rellenado previamente y el acceso a la red sin cambios y haz clic en **Crear y finalizar** para crear el entorno **Default**. Si un Propietario ha activado [Configuración rápida de web](/docs/es/claude-code-on-the-web#github-authentication-options), la incorporación crea **Default** para ti en su lugar.87 * **Team y Enterprise**: la incorporación muestra un formulario **Crea tu primer entorno en la nube**. Deja el nombre rellenado previamente y el acceso a la red sin cambios y haz clic en **Crear y finalizar** para crear el entorno **Default**. Si un Propietario ha activado [Configuración rápida](/docs/es/claude-code-on-the-web#quick-setup-for-team-and-enterprise), la incorporación crea **Default** para ti en su lugar.

88 88 

89 **Default** utiliza [acceso a red `Trusted`](/docs/es/cloud-environments#access-levels): las sesiones alcanzan [registros de paquetes comunes](/docs/es/cloud-environments#default-allowed-domains) y otros dominios en la lista blanca, y nada más a través de la red de la sesión. Consulta [Herramientas instaladas](/docs/es/cloud-environments#installed-tools) para ver qué está disponible sin ninguna configuración.89 **Default** utiliza [acceso a red `Trusted`](/docs/es/cloud-environments#access-levels): las sesiones alcanzan [registros de paquetes comunes](/docs/es/cloud-environments#default-allowed-domains) y otros dominios en la lista blanca, y nada más a través de la red de la sesión. Consulta [Herramientas instaladas](/docs/es/cloud-environments#installed-tools) para ver qué está disponible sin ninguna configuración.

90 90 


96 Conecta desde tu terminal96 Conecta desde tu terminal

97</h3>97</h3>

98 98 

99Si ya usas la CLI de GitHub (`gh`), puedes conectar GitHub para sesiones en la nube desde tu terminal. Esto requiere la [CLI de Claude Code](/docs/es/quickstart). En planes Team y Enterprise, `/web-setup` está disponible solo después de que un Propietario active [Configuración rápida de web](/docs/es/claude-code-on-the-web#github-authentication-options).99Si ya usas la CLI de GitHub (`gh`), puedes conectar GitHub para sesiones en la nube desde tu terminal. Esto requiere la [CLI de Claude Code](/docs/es/quickstart). En planes Team y Enterprise, `/web-setup` está disponible solo después de que un Propietario active [Configuración rápida](/docs/es/claude-code-on-the-web#quick-setup-for-team-and-enterprise).

100 100 

101Cuando ejecutas `/web-setup`, Claude Code lee el token que `gh auth token` imprime, te pide que confirmes y envía el token a Anthropic. Anthropic lo almacena cifrado con tu cuenta de claude.ai, y tus sesiones en la nube lo usan para acceso a GitHub hasta que [lo elimines](#remove-the-web-setup-token). Una sesión en la nube que inicies tú mismo puede entonces acceder a cualquier repositorio que ese token pueda acceder, sin instalación de la aplicación Claude GitHub. Los hilos en un [proyecto](/docs/es/claude-projects#set-up-github-access) aún necesitan la aplicación.101Cuando ejecutas `/web-setup`, Claude Code lee el token que `gh auth token` imprime, te pide que confirmes y envía el token a Anthropic. Anthropic lo almacena cifrado con tu cuenta de claude.ai, y tus sesiones en la nube lo usan para acceso a GitHub hasta que [lo elimines](#remove-the-web-setup-token). Una sesión en la nube que inicies tú mismo puede entonces acceder a cualquier repositorio que ese token pueda acceder, sin instalación de la aplicación Claude GitHub. Los hilos en un [proyecto](/docs/es/claude-projects#set-up-github-access) aún necesitan la aplicación.

102 102 


259 259 

260Si lo escribió dentro de Claude Code y el menú de comandos muestra `No commands match "/web-setup"`, o enviarlo devuelve `Unknown command: /web-setup`, el comando está oculto porque no se cumple un requisito. La causa generalmente es que está autenticado con una clave API o proveedor de terceros en lugar de una suscripción de claude.ai. Ejecute `/login` para iniciar sesión con su cuenta de claude.ai.260Si lo escribió dentro de Claude Code y el menú de comandos muestra `No commands match "/web-setup"`, o enviarlo devuelve `Unknown command: /web-setup`, el comando está oculto porque no se cumple un requisito. La causa generalmente es que está autenticado con una clave API o proveedor de terceros en lugar de una suscripción de claude.ai. Ejecute `/login` para iniciar sesión con su cuenta de claude.ai.

261 261 

262En planes Team y Enterprise, el comando está oculto de forma predeterminada: el [interruptor de configuración rápida de web](/docs/es/claude-code-on-the-web#github-authentication-options) está desactivado hasta que un propietario lo active. Mientras esté desactivado, [conecte GitHub desde el navegador](#connect-github) en su lugar.262En los planes Team y Enterprise, el comando está oculto de forma predeterminada: el [interruptor de configuración rápida](/docs/es/claude-code-on-the-web#quick-setup-for-team-and-enterprise) está desactivado hasta que un propietario lo active. Mientras esté desactivado, [conecta GitHub desde el navegador](#connect-github) en su lugar.

263 263 

264El comando también está oculto en otros dos casos:264El comando también está oculto en otros dos casos:

265 265