SpyBara
Go Premium

Documentation 2026-11-01 23:57 UTC to 2026-11-02 23:57 UTC

41 files changed +644 −170. View all changes and history on the product overview
2026
Thu 12 21:00 Wed 11 22:59 Tue 10 21:57 Mon 9 23:02 Sun 8 22:58 Sat 7 23:58 Fri 6 23:01 Thu 5 23:03 Wed 4 23:59 Tue 3 23:58 Mon 2 23:57 Sun 1 23:57
Details

20>20>

21> Una regla de facturación que el SDK sí modela es la [fijación de precios por residencia de datos](https://platform.claude.com/docs/en/about-claude/pricing#data-residency-pricing). Cuando el `usage` de una respuesta reporta `inference_geo: "us"`, el SDK multiplica el precio de lista de los tokens de esa respuesta por 1.1. Las tarifas por solicitud, como la búsqueda web, no se multiplican. Requiere TypeScript Agent SDK v0.3.239 o posterior, o Python Agent SDK v0.2.144 o posterior.21> Una regla de facturación que el SDK sí modela es la [fijación de precios por residencia de datos](https://platform.claude.com/docs/en/about-claude/pricing#data-residency-pricing). Cuando el `usage` de una respuesta reporta `inference_geo: "us"`, el SDK multiplica el precio de lista de los tokens de esa respuesta por 1.1. Las tarifas por solicitud, como la búsqueda web, no se multiplican. Requiere TypeScript Agent SDK v0.3.239 o posterior, o Python Agent SDK v0.2.144 o posterior.

22>22>

23> Utilice estos campos para obtener información de desarrollo y presupuestos aproximados. Para facturación autorizada, utilice la [API de Uso y Costo](https://platform.claude.com/docs/en/build-with-claude/usage-cost-api) o la página de Uso en la [Consola Claude](https://platform.claude.com/usage). No facture a los usuarios finales ni desencadene decisiones financieras a partir de estos campos.23> Utiliza estos campos para obtener información de desarrollo y presupuestos aproximados. Para facturación autorizada, consulta [Gestionar los costos de tu organización](https://code.claude.com/docs/es/costs.md#manage-costs-for-your-organization). No factures a los usuarios finales ni desencadenes decisiones financieras a partir de estos campos.

24 24 

25## Comprender el uso de tokens25## Comprender el uso de tokens

26 26 

Details

52 52 

53Si su aplicación agrupa el Agent SDK junto con sus propias dependencias, importe desde `@anthropic-ai/claude-agent-sdk/core` en lugar de la raíz del paquete. La entrada `/core` requiere Agent SDK de TypeScript v0.3.282 o posterior, y sus tipos requieren TypeScript 5.0 o posterior.53Si su aplicación agrupa el Agent SDK junto con sus propias dependencias, importe desde `@anthropic-ai/claude-agent-sdk/core` en lugar de la raíz del paquete. La entrada `/core` requiere Agent SDK de TypeScript v0.3.282 o posterior, y sus tipos requieren TypeScript 5.0 o posterior.

54 54 

55La entrada `/core` exporta el mismo `query()`, `startup()`, `tool()`, `createSdkMcpServer()`, y `resolveSettings()` que la entrada raíz, junto con las funciones que renombran, etiquetan y eliminan sesiones, `AbortError`, las constantes de tiempo de ejecución, y cada tipo. No añade nombres propios. Para mantener pequeño el código que carga su aplicación, `/core` omite algunas exportaciones raíz, incluyendo `prewarm()`, la clase `InMemorySessionStore`, y los asistentes que listan, leen, bifurcan, importan y resumen sesiones. Si necesita uno de ellos, use la entrada raíz en su lugar.55Para mantener pequeño el código que carga tu aplicación, la entrada `/core` omite algunas exportaciones raíz:

56 

57* **Exportado**: el mismo `query()`, `startup()`, [`prewarm()`](#prewarm), `tool()`, `createSdkMcpServer()` y `resolveSettings()` que la entrada raíz, junto con las funciones que renombran, etiquetan y eliminan sesiones, `AbortError`, las constantes de tiempo de ejecución y cada tipo. Importar el `prewarm()` alfa desde `/core` requiere Agent SDK v0.3.314 o posterior.

58* **Omitido**: exportaciones raíz que incluyen la clase `InMemorySessionStore` y los asistentes que listan, leen, bifurcan, importan y resumen sesiones. Si necesitas uno de ellos, usa la entrada raíz en su lugar.

56 59 

57La entrada raíz inserta sus propias copias de `zod` y `@modelcontextprotocol/sdk`. La entrada `/core` las importa desde su `node_modules` en los rangos que las `peerDependencies` del Agent SDK declaran, por lo que un paquete que ya las incluye no lleva una segunda copia. Importe desde la raíz o `/core` en un proceso dado, no ambas: son paquetes separados, y cargar ambas le da dos copias de las clases y el estado del Agent SDK.60La entrada raíz inserta sus propias copias de `zod` y `@modelcontextprotocol/sdk`. La entrada `/core` las importa desde su `node_modules` en los rangos que las `peerDependencies` del Agent SDK declaran, por lo que un paquete que ya las incluye no lleva una segunda copia. Importe desde la raíz o `/core` en un proceso dado, no ambas: son paquetes separados, y cargar ambas le da dos copias de las clases y el estado del Agent SDK.

58 61 


2002 2005 

2003* Una reanudación que Claude Code detiene porque [no puede devolver la sesión a su worktree](https://code.claude.com/docs/es/worktrees.md#the-session-resumes-outside-its-worktree), con `worktree_unverified` o `worktree_resume_refused`. Esa sección indica qué error lleva cada valor.2006* Una reanudación que Claude Code detiene porque [no puede devolver la sesión a su worktree](https://code.claude.com/docs/es/worktrees.md#the-session-resumes-outside-its-worktree), con `worktree_unverified` o `worktree_resume_refused`. Esa sección indica qué error lleva cada valor.

2004* Un [`continue`](#options) rechazado de una conversación que retiene una sesión en segundo plano, con `session_held_by_background`. Para un [`resume`](#options) rechazado de esa conversación, Claude Code escribe el resultado solo cuando la variable está establecida.2007* Un [`continue`](#options) rechazado de una conversación que retiene una sesión en segundo plano, con `session_held_by_background`. Para un [`resume`](#options) rechazado de esa conversación, Claude Code escribe el resultado solo cuando la variable está establecida.

2008* Un inicio que Claude Code rechaza porque [`failIfUnavailable`](#sandboxsettings) está activado y el sandbox no puede iniciarse, con `sandbox_required_unavailable`.

2009 

2010El tipo `SDKStartupFailureReason` lista los valores que puede tener `startup_failure_reason`:

2005 2011 

2006```typescript theme={null}2012```typescript theme={null}

2007type SDKStartupFailureReason =2013type SDKStartupFailureReason =


2023 | "cli_version_too_old"2029 | "cli_version_too_old"

2024 | "bypass_root"2030 | "bypass_root"

2025 | "org_config_required_unavailable"2031 | "org_config_required_unavailable"

2026 | "org_config_refused";2032 | "org_config_refused"

2033 | "sandbox_required_unavailable";

2027```2034```

2028 2035 

2029Cada valor nombra un rechazo:2036Cada valor nombra un rechazo:


2049| `bypass_root` | Se solicitó el modo de permisos bypass mientras se ejecutaba como root |2056| `bypass_root` | Se solicitó el modo de permisos bypass mientras se ejecutaba como root |

2050| `org_config_required_unavailable` | La sesión necesita las políticas y la configuración administrada de la organización antes de poder iniciar, y no se pudieron cargar, por ejemplo debido a un fallo de red o a un error del servidor de Anthropic. Requiere Agent SDK v0.3.293 o posterior |2057| `org_config_required_unavailable` | La sesión necesita las políticas y la configuración administrada de la organización antes de poder iniciar, y no se pudieron cargar, por ejemplo debido a un fallo de red o a un error del servidor de Anthropic. Requiere Agent SDK v0.3.293 o posterior |

2051| `org_config_refused` | Anthropic se negó a proporcionar las políticas y la configuración administrada de la organización para este inicio de sesión, por ejemplo porque el inicio de sesión caducó o fue revocado, o porque la organización no permite Claude Code para esta cuenta. Requiere Agent SDK v0.3.293 o posterior |2058| `org_config_refused` | Anthropic se negó a proporcionar las políticas y la configuración administrada de la organización para este inicio de sesión, por ejemplo porque el inicio de sesión caducó o fue revocado, o porque la organización no permite Claude Code para esta cuenta. Requiere Agent SDK v0.3.293 o posterior |

2059| `sandbox_required_unavailable` | [`failIfUnavailable`](#sandboxsettings) está activado y el sandbox no puede iniciarse. El texto de `errors` termina con `Set sandbox.failIfUnavailable=false to allow unsandboxed execution.` Requiere Agent SDK v0.3.314 o posterior |

2052 2060 

2053### `SDKSystemMessage`2061### `SDKSystemMessage`

2054 2062 

Details

308 308 

309Cuando Claude Code se inicia con Amazon Bedrock configurado, verifica que los modelos que pretende utilizar sean accesibles en tu cuenta.309Cuando Claude Code se inicia con Amazon Bedrock configurado, verifica que los modelos que pretende utilizar sean accesibles en tu cuenta.

310 310 

311Si fijaste una versión de modelo más antigua que la predeterminada actual de Claude Code, y tu cuenta puede invocar la versión más nueva, Claude Code te pide que actualices la fijación. Si aceptas, se escribe el nuevo ID de modelo en tu [archivo de configuración de usuario](https://code.claude.com/docs/es/settings.md) y se reinicia Claude Code. Si rechazas, la decisión se recuerda hasta el próximo cambio de versión predeterminada. Las fijaciones que apuntan a un [ARN de perfil de inferencia de aplicación](#map-each-model-version-to-an-inference-profile) se omiten, ya que las administra tu administrador.311Es posible que hayas fijado una versión de modelo más antigua que la predeterminada actual de Claude Code. Si tu cuenta puede invocar la versión más nueva, Claude Code te pide que actualices la fijación. Si aceptas, se escribe el nuevo ID de modelo en tu [archivo de configuración de usuario](https://code.claude.com/docs/es/settings.md) y se reinicia Claude Code. Si rechazas, la decisión se recuerda hasta el próximo cambio de versión predeterminada.

312 

313Claude Code no verifica ni te pide actualizar estas fijaciones:

314 

315* Una fijación en el bloque `env` de la [configuración administrada](https://code.claude.com/docs/es/managed-settings.md)

316* Una fijación que apunta a un [ARN de perfil de inferencia de aplicación](#map-each-model-version-to-an-inference-profile), ya que la administra tu administrador

312 317 

313Si no fijaste un modelo y el predeterminado actual no está disponible en tu cuenta, Claude Code recurre a una alternativa para la sesión actual y muestra un aviso. Primero intenta versiones anteriores del modelo predeterminado y, cuando el predeterminado es un modelo Opus y no hay ninguna versión de Opus disponible, recurre al modelo Sonnet predeterminado. La alternativa no se guarda de forma persistente. Habilita el modelo más nuevo en tu cuenta de Amazon Bedrock o [fija una versión](#4-pin-model-versions) para que la elección sea permanente.318Si no fijaste un modelo y el predeterminado actual no está disponible en tu cuenta, Claude Code recurre a una alternativa para la sesión actual y muestra un aviso. Primero intenta versiones anteriores del modelo predeterminado y, cuando el predeterminado es un modelo Opus y no hay ninguna versión de Opus disponible, recurre al modelo Sonnet predeterminado. La alternativa no se guarda de forma persistente. Habilita el modelo más nuevo en tu cuenta de Amazon Bedrock o [fija una versión](#4-pin-model-versions) para que la elección sea permanente.

314 319 

315Cuando inicias la sesión con una versión específica de Sonnet u Opus, por ejemplo con `--model`, `ANTHROPIC_MODEL` o el [ajuste `model`](https://code.claude.com/docs/es/settings-reference#model), esa versión actúa como el predeterminado fijado de la sesión para el alias `sonnet` u `opus` correspondiente. Claude Code omite la verificación de disponibilidad del predeterminado integrado que tu modelo reemplaza e inicia con el modelo que configuraste, sin aviso de respaldo.320Cuando inicias la sesión con una versión específica de Sonnet u Opus, por ejemplo con `--model`, `ANTHROPIC_MODEL` o el [ajuste `model`](https://code.claude.com/docs/es/settings-reference#model), esa versión actúa como el predeterminado fijado de la sesión para el alias `sonnet` u `opus` correspondiente. Claude Code omite la verificación de disponibilidad del predeterminado integrado que tu modelo reemplaza e inicia con el modelo que configuraste, sin aviso de respaldo.

316 321 

317Los alias de modelo como `opus` no actúan como fijaciones, ni tampoco un ID de modelo que Claude Code no reconozca, como un ARN de perfil de inferencia de aplicación.322Estos no actúan como fijaciones cuando inicias una sesión con ellos:

323 

324* Un alias de modelo como `opus`

325* Un ID de modelo que Claude Code no reconoce, como un ARN de perfil de inferencia de aplicación

318 326 

319Cuando estas verificaciones encuentran un modelo que tu cuenta no puede invocar, Claude Code recuerda el rechazo en esta máquina durante hasta un día, y los inicios durante ese tiempo omiten el modelo recordado sin volver a consultar a Amazon Bedrock. Claude Code vuelve a verificar al iniciar un rechazo recordado de un modelo predeterminado actual una vez que han pasado diez minutos desde la última verificación, de modo que un predeterminado que tu administrador vuelve a habilitar regresa. Para desactivar esta memoria, establece [`CLAUDE_CODE_SKIP_MODEL_ACCESS_MEMORY=1`](https://code.claude.com/docs/es/env-vars).327Cuando estas verificaciones encuentran un modelo que tu cuenta no puede invocar, Claude Code recuerda el rechazo en esta máquina durante hasta un día, y los inicios durante ese tiempo omiten el modelo recordado sin volver a consultar a Amazon Bedrock. Claude Code vuelve a verificar al iniciar un rechazo recordado de un modelo predeterminado actual una vez que han pasado diez minutos desde la última verificación, de modo que un predeterminado que tu administrador vuelve a habilitar regresa. Para desactivar esta memoria, establece [`CLAUDE_CODE_SKIP_MODEL_ACCESS_MEMORY=1`](https://code.claude.com/docs/es/env-vars).

320 328 

analytics.md +10 −10

Details

77* **Lines of code with CC**: líneas totales de código en todos los PRs fusionados que fueron escritas con asistencia de Claude Code. Solo se cuentan las "líneas efectivas": líneas con más de 3 caracteres después de la normalización, excluyendo líneas vacías y líneas con solo corchetes o puntuación trivial.77* **Lines of code with CC**: líneas totales de código en todos los PRs fusionados que fueron escritas con asistencia de Claude Code. Solo se cuentan las "líneas efectivas": líneas con más de 3 caracteres después de la normalización, excluyendo líneas vacías y líneas con solo corchetes o puntuación trivial.

78* **PRs with Claude Code (%)**: porcentaje de todos los PRs fusionados que contienen código asistido por Claude Code78* **PRs with Claude Code (%)**: porcentaje de todos los PRs fusionados que contienen código asistido por Claude Code

79* **Suggestion accept rate**: porcentaje de veces que los usuarios aceptan las sugerencias de edición de código de Claude Code, incluido el uso de herramientas Edit, Write y NotebookEdit79* **Suggestion accept rate**: porcentaje de veces que los usuarios aceptan las sugerencias de edición de código de Claude Code, incluido el uso de herramientas Edit, Write y NotebookEdit

80* **Lines of code accepted**: líneas totales de código escritas por Claude Code que los usuarios han aceptado en sus sesiones. Esto excluye sugerencias rechazadas y no rastrea eliminaciones posteriores.80* **Lines of code accepted**: líneas totales de código que las herramientas Edit y Write de Claude Code agregaron o eliminaron en ediciones aceptadas. Esto excluye las sugerencias rechazadas, y las líneas eliminadas posteriormente no reducen el total.

81 81 

82### Explorar los gráficos82### Explorar los gráficos

83 83 


192 192 

193## Acceder a análisis para clientes de API193## Acceder a análisis para clientes de API

194 194 

195Los clientes de API que utilizan Claude Console pueden acceder a análisis en [platform.claude.com/claude-code](https://platform.claude.com/claude-code). Necesita el permiso UsageView para acceder al panel, que se otorga a los roles Developer, Billing, Admin, Owner y Primary Owner. Para extraer las mismas métricas diarias por usuario mediante programación, utilice la [Claude Code Analytics API](https://platform.claude.com/docs/en/build-with-claude/claude-code-analytics-api) con una clave API de Admin.195Los clientes de API que utilizan Claude Console pueden acceder a análisis en [platform.claude.com/claude-code](https://platform.claude.com/claude-code). Necesitas el permiso UsageView para acceder al panel. Los roles Developer, Billing, Admin, Owner y Primary Owner tienen este permiso. Para extraer métricas diarias por usuario mediante programación, usa la [Claude Code Analytics API](https://platform.claude.com/docs/en/build-with-claude/claude-code-analytics-api) con una clave de API de Admin.

196 196 

197> [!NOTE]197> [!NOTE]

198>198>


200 200 

201El panel de Console muestra:201El panel de Console muestra:

202 202 

203* **Lines of code accepted**: líneas totales de código escritas por Claude Code que los usuarios han aceptado en sus sesiones. Esto excluye sugerencias rechazadas y no rastrea eliminaciones posteriores.203* **Lines of code accepted**: total de líneas de código que las herramientas Edit y Write de Claude Code agregaron o eliminaron en ediciones aceptadas. Esto excluye las sugerencias rechazadas, y las líneas eliminadas posteriormente no reducen el total.

204* **Suggestion accept rate**: porcentaje de veces que los usuarios aceptan el uso de herramientas de edición de código, incluidas las herramientas Edit, Write y NotebookEdit.204* **Suggestion accept rate**: porcentaje de veces que los usuarios aceptan el uso de herramientas de edición de código, incluidas las herramientas Edit, Write y NotebookEdit.

205* **Activity**: usuarios activos diarios y sesiones mostradas en un gráfico.205* **Active users** y **Sessions**: recuentos diarios de usuarios activos y de sesiones de Claude Code.

206* **Spend**: costos diarios de API en dólares junto con el recuento de usuarios.206* **Spend**: costos diarios de API en dólares.

207 207 

208### Ver información del equipo208### Ver información del equipo

209 209 

210La tabla de información del equipo muestra métricas por usuario:210La tabla de información del equipo muestra estas columnas por usuario para el rango de fechas que selecciones en la parte superior del panel, de forma predeterminada los últimos 30 días:

211 211 

212* **Members**: todos los usuarios que se han autenticado en Claude Code. Los usuarios de clave API se muestran por identificador de clave, los usuarios de OAuth se muestran por dirección de correo electrónico.212* **Members**: usuarios y claves de API con uso de Claude Code registrado en ese rango. Los usuarios de clave de API se muestran por nombre de clave, y los usuarios de OAuth por dirección de correo electrónico.

213* **Spend this month**: costos totales de API por usuario para el mes actual.213* **Spend**: costos totales de API por usuario.

214* **Lines this month**: total por usuario de líneas de código aceptadas para el mes actual.214* **Lines accepted**: total por usuario de líneas que las herramientas Edit y Write agregaron o eliminaron en ediciones aceptadas.

215 215 

216> [!NOTE]216> [!NOTE]

217>217>

218> Las cifras de gastos en el panel de Console son estimaciones para fines de análisis. Para costos reales, consulte su página de facturación.218> Las cifras de gastos en el panel de Console son estimaciones para fines de análisis. Para conocer los costos reales, consulta la [página Cost](https://platform.claude.com/cost).

219 219 

220## Recursos relacionados220## Recursos relacionados

221 221 

Details

353 353 

354## Revisar denegaciones354## Revisar denegaciones

355 355 

356Para revisar y reintentar acciones que el clasificador del modo automático denegó, abra `/permissions` y seleccione la pestaña **Recently denied** (Denegadas recientemente), donde Claude Code registra cada denegación. Presione `r` en una acción denegada para marcarla para reintentar: cuando salga del diálogo, Claude Code envía un mensaje indicando al modelo que puede reintentar esa llamada de herramienta y reanuda la conversación.356Para permitir que Claude reintente una acción bloqueada, usa la pestaña **Recently blocked** en `/permissions`:

357 357 

358Cuando el clasificador produce [ningún veredicto sobre la acción](https://code.claude.com/docs/es/errors.md#auto-mode-cannot-determine-the-safety-of-an-action), porque una verificación de seguridad separada del modo automático rechazó la solicitud del clasificador o su respuesta no se analizó, Claude Code deniega la acción sin registrarla en **Recently denied** (Denegadas recientemente). La entrada de error vinculada cubre lo que se le dice a Claude y cómo ejecutar la acción si la necesita.358**1. Abre la pestaña**

359 

360Ejecuta `/permissions` en tu sesión para abrir el diálogo de permisos y luego selecciona la pestaña **Recently blocked**.

361 

362**2. Revisa la acción**

363 

364Resalta la fila de la acción y lee su comando o entrada debajo de la lista. Guíate por el comando o la entrada, no por la descripción de la fila, que escribió Claude o la herramienta.

365 

366**3. Aprueba la acción**

367 

368Presiona `r` para aprobar la acción y permitir que Claude la reintente.

369 

370**4. Cierra el diálogo**

371 

372Presiona `Esc` para cerrar el diálogo y aplicar tu aprobación. Si Claude estaba trabajando cuando abriste `/permissions`, envía un mensaje cuando Claude termine para permitir que Claude reintente la acción. De lo contrario, no necesitas enviar nada: Claude continúa de inmediato y puede reintentarla. Si no lo hace, menciona la acción en tu próximo mensaje, como se describe en [Aprobaciones que indicas en la conversación](https://code.claude.com/docs/es/permission-modes.md#approvals-you-state-in-conversation).

373 

374Aprobar una acción no agrega una regla de permisos. En el modo automático, una acción reintentada vuelve a pasar por la verificación, por lo que puede bloquearse de nuevo. Para permitir un comando de ahora en adelante, [agrega una regla `allow`](#fix-a-denial-with-an-allow-rule-an-environment-entry-or-a-retry).

375 

376Si no quieres que Claude reintente de inmediato, puedes aprobar una acción para más tarde, retirar una aprobación o cerrar el diálogo y descartar tus aprobaciones:

377 

378* **Aprobar para más tarde**: presiona `Enter` en la fila y luego `Esc`. La fila sale de la pestaña, y Claude puede reintentar la acción después de tu próximo mensaje, una vez que Claude termine. Si también presionaste `r` en otra fila, la fila donde presionaste `Enter` permanece en la pestaña y no se le informa a Claude sobre esa acción. Aprueba esa fila en tu próxima visita, o presiona `r` en ambas

379* **Retirar una aprobación**: antes de presionar `Esc`, presiona `Enter` en la fila, ya sea que la hayas aprobado con `Enter` o con `r`

380* **Cerrar el diálogo y descartar tus aprobaciones**: presiona `Ctrl+C` dos veces

381 

382No puedes aprobar una acción desde la pestaña cuando su fila no puede mostrar todo su comando o entrada, o cuando la acción no tiene fila:

383 

384* **La fila dice `This row can't be approved here`**: si querías realizar la acción, díselo a Claude en tu próximo mensaje y Claude puede intentarla de nuevo

385* **No hay fila, y aparece `Not run` o un error del clasificador en la conversación**: el clasificador del modo automático no emitió ningún veredicto. Para ver cómo ejecutar la acción, consulta [Auto mode cannot determine the safety of an action](https://code.claude.com/docs/es/errors.md#auto-mode-cannot-determine-the-safety-of-an-action)

359 386 

360### Corregir una denegación con una regla de permiso, una entrada de entorno o un reintento387### Corregir una denegación con una regla de permiso, una entrada de entorno o un reintento

361 388 

362Para leer el comando o la URL detrás de un aviso como `bash denied by auto mode · [Data Exfiltration] · /permissions`, usa la pestaña **Recently denied** (Denegadas recientemente), un hook o la conversación:389Los avisos se ven así: `bash blocked by auto mode · /permissions · Auto mode: [Data Exfiltration]`. Para leer el comando o la URL detrás de uno, usa la pestaña **Recently blocked**, un hook o la conversación:

363 390 

364* **Pestaña Recently denied**: en el diálogo `/permissions`, resalta una acción de Bash o PowerShell denegada para leer su comando debajo de la lista. En el [modo de lector de pantalla](https://code.claude.com/docs/es/accessibility.md), todos los comandos aparecen antes de la lista.391* **Pestaña Recently blocked**: resalta la fila de la acción. En el [modo de lector de pantalla](https://code.claude.com/docs/es/accessibility.md), todos los comandos y entradas aparecen antes de la lista.

365* **Hook**: para capturar la entrada exacta de las denegaciones mediante programación, agrega un [hook `PermissionDenied`](https://code.claude.com/docs/es/hooks#permissiondenied), que la recibe como `tool_input`.392* **Hook**: para capturar la entrada exacta de las denegaciones mediante programación, agrega un [hook `PermissionDenied`](https://code.claude.com/docs/es/hooks#permissiondenied), que la recibe como `tool_input`. Si tu hook lee `reason`, espera que no haya prefijo `Auto mode:`, y un texto como `Blocked by classifier` en lugar de `No reason provided`.

366* **Conversación**: encuentra la llamada a herramienta. Si la llamada aparece acortada o plegada en una línea de resumen como `Ran 3 shell commands` (Ejecutó 3 comandos de shell), presiona `Ctrl+O` para abrir el [visor de transcripción](https://code.claude.com/docs/es/interactive-mode.md#transcript-viewer), que la expande.393* **Conversación**: encuentra la llamada a herramienta. Si la llamada aparece acortada o plegada en una línea de resumen como `Ran 3 shell commands` (Ejecutó 3 comandos de shell), presiona `Ctrl+O` para abrir el [visor de transcripción](https://code.claude.com/docs/es/interactive-mode.md#transcript-viewer), que la expande.

367 394 

368El texto debajo de la llamada te indica si hay algo que corregir. Una fila atenuada `Not run · auto mode's check had no usable answer`, o un texto que reporta un problema con el clasificador en sí, como `Auto mode could not evaluate this action`, significa que Claude Code bloqueó la llamada sin un veredicto del clasificador. Para una fila `Not run`, presiona `Ctrl+O` para leer el mensaje completo y luego consulta [Auto mode cannot determine the safety of an action](https://code.claude.com/docs/es/errors.md#auto-mode-cannot-determine-the-safety-of-an-action) (El modo automático no puede determinar la seguridad de una acción) o [The server returned no safety verdict](https://code.claude.com/docs/es/errors.md#the-server-returned-no-safety-verdict) (El servidor no devolvió ningún veredicto de seguridad) para saber qué hacer.395El texto debajo de la llamada te indica si hay algo que corregir. Una fila atenuada `Not run · auto mode's check had no usable answer`, o un texto que reporta un problema con el clasificador en sí, como `Auto mode could not evaluate this action`, significa que Claude Code bloqueó la llamada sin un veredicto del clasificador. Para una fila `Not run`, presiona `Ctrl+O` para leer el mensaje completo y luego consulta [Auto mode cannot determine the safety of an action](https://code.claude.com/docs/es/errors.md#auto-mode-cannot-determine-the-safety-of-an-action) (El modo automático no puede determinar la seguridad de una acción) o [The server returned no safety verdict](https://code.claude.com/docs/es/errors.md#the-server-returned-no-safety-verdict) (El servidor no devolvió ningún veredicto de seguridad) para saber qué hacer.

369 396 

370De lo contrario, una línea que dice `Denied by auto mode classifier` (Denegado por clasificador de modo automático) con una razón como `[Production Deploy]` (Implementación en producción) o `Blocked by classifier` (Bloqueado por clasificador) significa que el clasificador juzgó la llamada como insegura, así que elige la corrección según lo que la llamada estaba intentando alcanzar o hacer:397De lo contrario, una línea `Blocked by auto mode` significa que el clasificador juzgó la llamada como insegura. Para permitir la llamada, sigue el paso que corresponda a lo que Claude intentaba alcanzar o hacer:

371 398 

372* Un destino que Claude necesita durante toda la tarea, como un registro de paquetes, un dominio interno o un host de repositorio: agréguelo a `autoMode.environment`.399* Un destino que Claude necesita durante toda la tarea, como un registro de paquetes, un dominio interno o un host de repositorio: agréguelo a `autoMode.environment`.

373* Un comando que desea ejecutar sin revisión de ahora en adelante: agregue una regla `allow`.400* Un comando que desea ejecutar sin revisión de ahora en adelante: agregue una regla `allow`.

Details

397* Datos sensibles enviados a endpoints externos397* Datos sensibles enviados a endpoints externos

398* Acciones que parecen impulsadas por contenido que Claude leyó y no por ti398* Acciones que parecen impulsadas por contenido que Claude leyó y no por ti

399 399 

400Cuando sí bloquea algo, recibes una notificación y la acción aparece en **Recently denied** en `/permissions`, donde puedes reintentarla con una aprobación manual. Después de [tres bloqueos seguidos](https://code.claude.com/docs/es/permission-modes.md#when-auto-mode-falls-back) (o veinte en total), el modo automático se pausa y vuelve a preguntarte.400Cuando el modo automático bloquea una acción, recibes una notificación y la acción aparece en **Recently blocked** en `/permissions`, donde puedes [aprobar la acción para que Claude pueda reintentarla](https://code.claude.com/docs/es/auto-mode-config.md#review-denials). Después de [tres bloqueos seguidos](https://code.claude.com/docs/es/permission-modes.md#when-auto-mode-falls-back) (o veinte en total), el modo automático se pausa y vuelve a preguntarte.

401 401 

402Nada de esto reemplaza tus controles deterministas, porque se ejecuta *después* de ellos. Las reglas deny y ask y los hooks `PreToolUse` se aplican antes de que el clasificador vea nada, así que una regla de denegación bloquea en modo automático exactamente igual que en cualquier otro lugar. El sandbox sigue confinando los [comandos de shell que envuelve](https://code.claude.com/docs/es/sandboxing.md#what-runs-outside-the-sandbox).402Nada de esto reemplaza tus controles deterministas, porque se ejecuta *después* de ellos. Las reglas deny y ask y los hooks `PreToolUse` se aplican antes de que el clasificador vea nada, así que una regla de denegación bloquea en modo automático exactamente igual que en cualquier otro lugar. El sandbox sigue confinando los [comandos de shell que envuelve](https://code.claude.com/docs/es/sandboxing.md#what-runs-outside-the-sandbox).

403 403 

Details

30La [descripción general del gateway](https://code.claude.com/docs/es/gateways.md) cubre qué hace un gateway y por qué ejecutarías uno. Claude apps gateway es el gateway propio de Anthropic, integrado en el binario `claude` y probado junto con cada lanzamiento de Claude Code, por lo que reenvía los valores de `anthropic-beta` y los campos de solicitud que Claude Code envía sin que los operadores mantengan una lista de permitidos separada. Una vez desplegado, te proporciona:30La [descripción general del gateway](https://code.claude.com/docs/es/gateways.md) cubre qué hace un gateway y por qué ejecutarías uno. Claude apps gateway es el gateway propio de Anthropic, integrado en el binario `claude` y probado junto con cada lanzamiento de Claude Code, por lo que reenvía los valores de `anthropic-beta` y los campos de solicitud que Claude Code envía sin que los operadores mantengan una lista de permitidos separada. Una vez desplegado, te proporciona:

31 31 

32* **Credenciales**: la clave API ascendente o la credencial de nube vive solo en su infraestructura. Los desarrolladores se autentican con SSO corporativo y reciben tokens portadores de corta duración, por lo que la desvinculación ocurre en su IdP. Desaprovisione un usuario y su acceso a la puerta de enlace expira dentro de la duración de la sesión, una hora por defecto.32* **Credenciales**: la clave API ascendente o la credencial de nube vive solo en su infraestructura. Los desarrolladores se autentican con SSO corporativo y reciben tokens portadores de corta duración, por lo que la desvinculación ocurre en su IdP. Desaprovisione un usuario y su acceso a la puerta de enlace expira dentro de la duración de la sesión, una hora por defecto.

33* **Control de acceso**: sus grupos de IdP se asignan a listas de permitidos de modelos y políticas de [configuración administrada](https://code.claude.com/docs/es/managed-settings.md). La puerta de enlace aplica el acceso a modelos del lado del servidor, rechazando solicitudes de modelos no otorgados, y selecciona la política de configuración administrada de cada grupo, que la CLI aplica en el [nivel de configuración administrada](https://code.claude.com/docs/es/settings.md#settings-precedence). Diferentes equipos obtienen diferentes modelos, herramientas y permisos, y un desarrollador no puede anular lo que su política bloquea.33* **Control de acceso**: tus grupos de IdP se asignan a listas de modelos permitidos, políticas de [configuración administrada](https://code.claude.com/docs/es/managed-settings.md) y [ascendentes](https://code.claude.com/docs/es/claude-apps-gateway-config.md#send-each-team-to-its-own-upstream). El gateway aplica el acceso a modelos del lado del servidor, rechazando solicitudes de modelos no otorgados, y selecciona la política de configuración administrada de cada grupo, que la CLI aplica en el [nivel de configuración administrada](https://code.claude.com/docs/es/settings.md#settings-precedence). Diferentes equipos obtienen diferentes modelos, herramientas y permisos, y un desarrollador no puede sobrescribir lo que su política bloquea.

34* **Entrega de configuración**: la puerta de enlace entrega la configuración administrada a los clientes conectados por sí misma, reemplazando la [configuración administrada por servidor](https://code.claude.com/docs/es/server-managed-settings.md) de la consola de administrador de claude.ai.34* **Entrega de configuración**: la puerta de enlace entrega la configuración administrada a los clientes conectados por sí misma, reemplazando la [configuración administrada por servidor](https://code.claude.com/docs/es/server-managed-settings.md) de la consola de administrador de claude.ai.

35* **Telemetría**: cada destino configurado recibe [métricas del Protocolo OpenTelemetry (OTLP)](https://code.claude.com/docs/es/monitoring-usage.md) con recuentos de tokens, modelo, identidad del usuario y latencia por defecto, con registros y trazas como activaciones opcionales por destino.35* **Telemetría**: cada destino configurado recibe [métricas del Protocolo OpenTelemetry (OTLP)](https://code.claude.com/docs/es/monitoring-usage.md) con recuentos de tokens, modelo, identidad del usuario y latencia por defecto, con registros y trazas como activaciones opcionales por destino.

36* **Enrutamiento ascendente**: los clientes hablan la API de Mensajes de Anthropic a la puerta de enlace, y la puerta de enlace traduce para cada ascendente, ya sea Amazon Bedrock, [Plataforma Claude en AWS](https://code.claude.com/docs/es/claude-platform-on-aws.md), Plataforma de Agentes de Google Cloud, Microsoft Foundry, o la API de Anthropic, con conmutación por error entre ellos. Puede cambiar regiones, proveedores u orden de conmutación por error sin que los desarrolladores lo noten o reconfiguren.36* **Enrutamiento ascendente**: los clientes hablan la API de Mensajes de Anthropic a la puerta de enlace, y la puerta de enlace traduce para cada ascendente, ya sea Amazon Bedrock, [Plataforma Claude en AWS](https://code.claude.com/docs/es/claude-platform-on-aws.md), Plataforma de Agentes de Google Cloud, Microsoft Foundry, o la API de Anthropic, con conmutación por error entre ellos. Puede cambiar regiones, proveedores u orden de conmutación por error sin que los desarrolladores lo noten o reconfiguren.

Details

214 214 

215### `upstreams`215### `upstreams`

216 216 

217`upstreams` es una lista ordenada. El gateway reenvía la inferencia al primer upstream que resuelve el modelo solicitado.217`upstreams` es una lista ordenada. El gateway reenvía la inferencia al primer upstream que resuelve el modelo solicitado, omitiendo cualquier upstream cuya [lista `groups`](#send-each-team-to-its-own-upstream) excluya al desarrollador.

218 218 

219Ante `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.219Ante `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.

220 220 


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

232 232 

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

234* **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.234* **Todos los upstreams que probó el gateway fallaron de una forma ante la que [conmuta](#multiple-upstreams)**: el último `429`. Cuando ninguno devolvió un `429`, el gateway prefiere, en este 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)`. N cuenta tus entradas de [`upstreams`](#upstreams), incluidas las omitidas, menos las cuya lista [`groups`](#send-each-team-to-its-own-upstream) excluya al desarrollador.

235 235 

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

237 237 


289 base_url: https://upstream-gateway.internal.example.com289 base_url: https://upstream-gateway.internal.example.com

290 auth:290 auth:

291 api_key: ${PROXY_KEY}291 api_key: ${PROXY_KEY}

292 forward_user_identity: true # por defecto false292 forward_user_identity: true # default false

293```293```

294 294 

295El gateway añade estos encabezados a cada solicitud que reenvía a ese upstream.295El gateway añade estos encabezados a cada solicitud que reenvía a ese upstream.


320upstreams:320upstreams:

321 - provider: bedrock321 - provider: bedrock

322 region: us-east-1322 region: us-east-1

323 auth: {} # preferido: cadena de credenciales por defecto de AWS323 auth: {} # preferred: AWS default credential chain

324 # O credenciales explícitas:324 # OR explicit credentials:

325 # auth:325 # auth:

326 # aws_access_key_id: ${AWS_AKID}326 # aws_access_key_id: ${AWS_AKID}

327 # aws_secret_access_key: ${AWS_SK}327 # aws_secret_access_key: ${AWS_SK}

328 # aws_session_token: ${AWS_ST}328 # aws_session_token: ${AWS_ST}

329 # O un token bearer de la API de Bedrock:329 # OR a Bedrock API bearer token:

330 # auth:330 # auth:

331 # aws_bearer_token: ${AWS_BEARER_TOKEN}331 # aws_bearer_token: ${AWS_BEARER_TOKEN}

332 # Sobrescribe el endpoint de bedrock-runtime para despliegues FIPS o con endpoint de VPC:332 # Override the bedrock-runtime endpoint for FIPS or VPC-endpoint deployments:

333 # base_url: https://bedrock-runtime-fips.us-east-1.amazonaws.com333 # base_url: https://bedrock-runtime-fips.us-east-1.amazonaws.com

334```334```

335 335 


356 region: us-east-1356 region: us-east-1

357 auth: {}357 auth: {}

358 guardrail:358 guardrail:

359 id: gr-abc123 # ID de la barrera de protección o ARN completo359 id: gr-abc123 # guardrail ID or full ARN

360 version: "1" # un número de versión publicada, o DRAFT360 version: "1" # a published version number, or DRAFT

361 # conserva las comillas: un 1 sin comillas falla al arrancar361 # keep the quotes: a bare 1 fails at boot

362```362```

363 363 

364> [!WARNING]

365>

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

367 

368Otorga 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`.364Otorga 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`.

369 365 

370Establece `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.366Establece `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.


373 369 

374Cuando 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.370Cuando 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.

375 371 

372> [!WARNING]

373>

374> De forma predeterminada, el gateway no agrega etiquetas de entrada a los prompts, por lo que un filtro de guardrail que Amazon Bedrock aplica solo a la entrada etiquetada no se ejecuta sobre el tráfico que pasa por el gateway. Para agregar las etiquetas, establece [`input_tagging`](#add-guardrail-input-tags). Para saber qué filtros dependen de las etiquetas de entrada, consulta [etiquetas de entrada](https://docs.aws.amazon.com/bedrock/latest/userguide/guardrails-tagging.html) en la documentación de Amazon Bedrock.

375 

376##### Agregar etiquetas de entrada de guardrail

377 

378Para que el gateway agregue las etiquetas de entrada que necesita el [filtro de ataques de prompt](https://docs.aws.amazon.com/bedrock/latest/userguide/guardrails-prompt-attack.html) de una guardrail de Amazon Bedrock, establece `input_tagging` en el bloque `guardrail` y reinicia el gateway. Establece el mismo valor en todos los upstreams `bedrock`, o el gateway se niega a iniciarse. Requiere Claude Code v2.1.316 o posterior en el servidor del gateway. Un gateway en una versión que no tiene la clave termina al inicio con `Unrecognized key(s) in object: 'input_tagging'`.

379 

380> [!WARNING]

381>

382> Según la [documentación de Amazon Bedrock](https://docs.aws.amazon.com/bedrock/latest/userguide/guardrails-tagging.html), todos los filtros de la guardrail dejan de evaluar el contenido sin etiquetar en cuanto una solicitud incluye etiquetas de entrada. Prueba `input_tagging` en un gateway de prueba antes de establecerlo en uno que usen los desarrolladores.

383 

384`input_tagging` admite uno de estos valores:

385 

386| `input_tagging` | Dónde etiqueta el gateway el texto | Después de que la guardrail bloquea un prompt |

387| :- | :- | :- |

388| `last_message` | Los mensajes `user` desde la última respuesta de Claude | En Claude Code, el siguiente prompt puede pasar, y Claude recibe entonces el prompt bloqueado como parte de la conversación |

389| `user_messages` | Mensajes `user` | Los prompts posteriores de la sesión también pueden bloquearse, hasta que el desarrollador elimine el prompt bloqueado |

390| `all_messages` | Mensajes `user` y `assistant` | Igual que `user_messages` |

391| `all_messages_and_system` | El prompt del sistema y todos los mensajes, incluidos los [mensajes del sistema a mitad de la conversación](https://code.claude.com/docs/es/llm-gateway-protocol.md#feature-pass-through) | Igual que `user_messages` |

392 

393Con `last_message`, si los mensajes `user` desde la última respuesta de Claude no contienen texto que etiquetar, el gateway etiqueta en su lugar los mensajes del sistema a mitad de la conversación desde esa respuesta. Una llamada a herramienta cuenta como respuesta.

394 

395La recomendación de Amazon Bedrock para el filtro de ataques de prompt es [etiquetar la entrada del usuario de forma que el prompt del sistema quede excluido](https://docs.aws.amazon.com/bedrock/latest/userguide/guardrails-prompt-attack.html). Si estableces `all_messages_and_system`, un filtro que marque el propio prompt del sistema de Claude Code puede bloquear solicitudes.

396 

397El ejemplo siguiente etiqueta el texto de cada mensaje `user`:

398 

399```yaml theme={null}

400upstreams:

401 - provider: bedrock

402 region: us-east-1

403 auth: {}

404 guardrail:

405 id: gr-abc123

406 version: "1"

407 input_tagging: user_messages

408```

409 

410Los mensajes `user` también pueden contener texto que agrega Claude Code, como los [recordatorios del sistema](https://code.claude.com/docs/es/glossary.md#system-reminder), así que comprueba en el gateway de prueba que las solicitudes habituales no se bloqueen.

411 

412En las pruebas de Anthropic, una sesión etiquetada mantuvo sus lecturas de la [caché de prompts](https://code.claude.com/docs/es/prompt-caching.md) de un prompt al siguiente, y las etiquetas no agregaron tokens de entrada.

413 

414##### Lo que no cubren las etiquetas de entrada

415 

416Ningún valor de `input_tagging` detiene a un desarrollador que coloca deliberadamente texto donde no va ninguna etiqueta. No cuentes con que la guardrail evalúe estas partes de una solicitud:

417 

418* **Contenido que el gateway no etiqueta**: los mensajes que tu valor de `input_tagging` deja fuera, las definiciones de herramientas, las entradas de las llamadas a herramientas, las imágenes y los PDF, entre otros. A menos que establezcas `all_messages_and_system`, el prompt del sistema también queda sin etiquetar.

419* **Resultados de herramientas**: contienen lo que devuelven las herramientas de Claude, como el contenido de archivos y páginas web. En las pruebas de Anthropic, un filtro de palabras no los evaluó, con etiquetas o sin ellas.

420 

421Si tu cuenta u organización de AWS impone una guardrail, consulta la [documentación de Amazon Bedrock](https://docs.aws.amazon.com/bedrock/latest/userguide/guardrails-enforcements.html) para saber cómo trata esa guardrail las etiquetas de entrada.

422 

423##### Registrar qué filtro de la barrera de protección se activó

424 

425Para averiguar qué filtro de la barrera de protección de Amazon Bedrock bloqueó la solicitud de un desarrollador, establece `guardrail_trace: true` en el upstream de Bedrock, reinicia el gateway y pide al desarrollador que vuelva a enviar la solicitud. Luego busca el evento `guardrail.trace` de la solicitud en el [registro de auditoría](https://code.claude.com/docs/es/claude-apps-gateway-deploy.md#logs). Requiere Claude Code v2.1.314 o posterior en el servidor del gateway. Un gateway anterior se niega a iniciar cuando encuentra `guardrail_trace`.

426 

427```yaml theme={null}

428upstreams:

429 - provider: bedrock

430 region: us-east-1

431 auth: {}

432 guardrail:

433 id: gr-abc123

434 version: "1"

435 guardrail_trace: true # default false; beside guardrail, not inside it

436```

437 

438El gateway escribe un evento `guardrail.trace`, sin el texto coincidente, cuando se activó un filtro o la acción de la barrera de protección es `INTERVENED`. Busca los eventos del desarrollador por `email` o `sub`. Una solicitud en streaming puede producir varios eventos, y uno de ellos puede tener una lista `filters` vacía, así que lee todos los eventos que tengan el mismo `request_id`:

439 

440| Campo | Qué contiene |

441| - | - |

442| `request_id` | El ID de la solicitud |

443| `sub`, `email` | El ID de usuario y el correo electrónico del desarrollador |

444| `upstream` | El upstream del que provino la respuesta |

445| `action` | La acción de la barrera de protección, como `INTERVENED` |

446| `filters` | Los filtros que se activaron. La lista está vacía cuando AWS no envía detalles de los filtros |

447| `filters[].side` | `input` u `output` |

448| `filters[].guardrail` | El ID de la barrera de protección |

449| `filters[].policy` | La política y la lista de Bedrock, como `contentPolicy.filters` o `sensitiveInformationPolicy.piiEntities` |

450| Otros campos de `filters[]` | Una entrada también puede llevar campos como `action`, `name`, `type`, `confidence`, `filterStrength`, `score` y `threshold` |

451 

452El evento omite el texto que coincidió con un filtro, incluido el campo `match` de la traza de Bedrock. Los desarrolladores no reciben los datos de traza de Bedrock, porque el gateway los elimina de cada respuesta, sea en streaming o no.

453 

454Si un cliente envía un campo `amazon-bedrock-*` en el cuerpo de una solicitud `/v1/messages`, el gateway responde 400 en un upstream que establece `guardrail_trace`.

455 

376##### Bedrock en otra cuenta de AWS456##### Bedrock en otra cuenta de AWS

377 457 

378Establece `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.458Establece `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.


384 - name: bedrock-isolated464 - name: bedrock-isolated

385 provider: bedrock465 provider: bedrock

386 region: us-east-1466 region: us-east-1

387 auth: {} # el rol propio del gateway: solo llama a STS467 auth: {} # the gateway's own role: it only calls STS

388 assume_role:468 assume_role:

389 role_arn: arn:aws:iam::222222222222:role/claude-gateway-bedrock469 role_arn: arn:aws:iam::222222222222:role/claude-gateway-bedrock

390 # external_id: ${BEDROCK_ROLE_EXTERNAL_ID} # cuando la política de confianza del rol lo requiere470 # external_id: ${BEDROCK_ROLE_EXTERNAL_ID} # when the role's trust policy requires one

391```471```

392 472 

393El bloque `assume_role` admite tres claves:473El bloque `assume_role` admite tres claves:


415* 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.495* 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.

416* 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.496* 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.

417* `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`.497* `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`.

418* 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.498* Sin una [lista `groups`](#send-each-team-to-its-own-upstream), todos los desarrolladores que admite el gateway pueden usar este upstream. Para limitar qué modelos puede usar un desarrollador, establece `availableModels` en una política [`managed`](#managed).

499* Para evitar que un modelo servido a través del rol también se sirva desde otra cuenta, asígnale un id personalizado cuyo mapa `upstream_model` tenga solo el nombre de este upstream. Para ese id, el gateway omite todos los demás upstreams, por lo que ni la solicitud ni el recuento de tokens de una solicitud abortada pueden conmutar a otra cuenta.

500* Una solicitud de un nombre de modelo integrado todavía puede [llegar a este upstream](#multiple-upstreams), y el gateway la firma con el mismo rol. Incluye este upstream en último lugar a menos que su cuenta también deba servir esos modelos.

419 501 

420Este ejemplo asigna a un modelo un ID personalizado que solo sirve el upstream aislado:502Este ejemplo asigna a un modelo un ID personalizado que solo sirve el upstream aislado:

421 503 

422```yaml theme={null}504```yaml theme={null}

423models:505models:

424 - id: restricted-claude-opus-4-8 # un ID personalizado, no un nombre de modelo integrado506 - id: restricted-claude-opus-4-8 # a custom id, not a built-in model name

425 upstream_model:507 upstream_model:

426 bedrock-isolated: us.anthropic.claude-opus-4-8 # el único upstream que lo sirve508 bedrock-isolated: us.anthropic.claude-opus-4-8 # the only upstream that serves it

427```509```

428 510 

429##### Atribución de costos de AWS por desarrollador511##### Atribución de costos de AWS por desarrollador


436upstreams:518upstreams:

437 - provider: bedrock519 - provider: bedrock

438 region: us-east-1520 region: us-east-1

439 auth: {} # el rol propio del gateway: solo llama a STS521 auth: {} # the gateway's own role: it only calls STS

440 assume_role:522 assume_role:

441 role_arn: arn:aws:iam::123456789012:role/claude-gateway-bedrock-user523 role_arn: arn:aws:iam::123456789012:role/claude-gateway-bedrock-user

442 session_name: email # o sub524 session_name: email # or sub

443```525```

444 526 

445`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).527`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).


460upstreams:542upstreams:

461 - provider: mantle543 - provider: mantle

462 region: us-east-1544 region: us-east-1

463 models: [claude-opus-4-7, claude-haiku-4-5] # requerido545 models: [claude-opus-4-7, claude-haiku-4-5] # required

464 auth: {} # cadena de credenciales por defecto de AWS546 auth: {} # AWS default credential chain

465 - provider: bedrock547 - provider: bedrock

466 region: us-east-1548 region: us-east-1

467 auth: {}549 auth: {}


499 region: us-east-1581 region: us-east-1

500 workspace_id: wrkspc_...582 workspace_id: wrkspc_...

501 auth:583 auth:

502 api_key: ${ANTHROPIC_AWS_API_KEY} # enviada como x-api-key584 api_key: ${ANTHROPIC_AWS_API_KEY} # sent as x-api-key

503 # O SigV4 mediante la cadena de credenciales por defecto de AWS:585 # OR SigV4 via the AWS default credential chain:

504 # auth: {}586 # auth: {}

505 # O credenciales SigV4 explícitas:587 # OR explicit SigV4 credentials:

506 # auth:588 # auth:

507 # aws_access_key_id: ${AWS_ACCESS_KEY_ID}589 # aws_access_key_id: ${AWS_ACCESS_KEY_ID}

508 # aws_secret_access_key: ${AWS_SECRET_ACCESS_KEY}590 # aws_secret_access_key: ${AWS_SECRET_ACCESS_KEY}

509 # Sobrescribe el endpoint derivado:591 # Override the derived endpoint:

510 # base_url: https://aws-external-anthropic.us-east-1.api.aws592 # base_url: https://aws-external-anthropic.us-east-1.api.aws

511```593```

512 594 


531 - provider: vertex613 - provider: vertex

532 region: us-east5614 region: us-east5

533 project_id: example-prod615 project_id: example-prod

534 auth: {} # preferido: Application Default Credentials616 auth: {} # preferred: Application Default Credentials

535 # O un archivo de clave de cuenta de servicio:617 # OR a service account key file:

536 # auth: { service_account_json: /secrets/sa.json }618 # auth: { service_account_json: /secrets/sa.json }

537 # Sobrescribe el endpoint de aiplatform para Private Service Connect:619 # Override the aiplatform endpoint for Private Service Connect:

538 # base_url: https://us-east5-aiplatform.p.googleapis.com620 # base_url: https://us-east5-aiplatform.p.googleapis.com

539```621```

540 622 


558upstreams:640upstreams:

559 - provider: foundry641 - provider: foundry

560 resource: example-foundry # https://example-foundry.services.ai.azure.com642 resource: example-foundry # https://example-foundry.services.ai.azure.com

561 auth: { use_azure_ad: true } # preferido: DefaultAzureCredential / Managed Identity643 auth: { use_azure_ad: true } # preferred: DefaultAzureCredential / Managed Identity

562 # O una clave de API:644 # OR an API key:

563 # auth:645 # auth:

564 # api_key: ${FOUNDRY_API_KEY}646 # api_key: ${FOUNDRY_API_KEY}

565```647```


627 709 

628`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.710`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.

629 711 

630Cada 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.712Una solicitud pasa de un upstream al siguiente solo en estos casos:

713 

714* El upstream ha fallado

715* El upstream no sirve el modelo solicitado

716* El upstream tiene una [lista `groups`](#send-each-team-to-its-own-upstream) que deja fuera al desarrollador

631 717 

632El 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.718El 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.

633 719 


680| - | - |766| - | - |

681| 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:`. |767| 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:`. |

682| 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:`. |768| 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:`. |

769| Distintos equipos | Dale al upstream de cada equipo una lista `groups`, de modo que solo los desarrolladores de esos grupos del IdP lleguen a él. Consulta [Envía cada equipo a su propio upstream](#send-each-team-to-its-own-upstream). |

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

684| Endpoints de VPC / FIPS | Establece `base_url:` en el upstream con la URL de tu endpoint de VPC o FIPS |771| Endpoints de VPC / FIPS | Establece `base_url:` en el upstream con la URL de tu endpoint de VPC o FIPS |

685| 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. |772| Enrutamiento por modelo | Un `id` de modelo personalizado, uno que no es un modelo Claude integrado, omite los upstreams ausentes de su mapa `upstream_model:`. Un upstream con una lista `models`, que un [upstream `mantle`](#amazon-bedrock-mantle-endpoint) debe tener, solo se prueba para esos modelos. |

773| Enrutamiento de modelos integrados | En un upstream sin lista `models` ni `groups`, el gateway prueba los modelos integrados en orden y usa el ID predeterminado del proveedor cuando el mapa `upstream_model:` no tiene una entrada. Para un modelo integrado para el que el proveedor tiene un ID predeterminado, el mapa cambia qué ID recibe un upstream, no si se prueba o no. Un upstream que rechaza el ID sigue las mismas [reglas de conmutación por error](#upstreams) que cualquier otro error de upstream. |

686 774 

687Conmutar 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.775Conmutar 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.

688 776 

689La CLI aplica la misma restricción de funciones a los gateways independientemente de qué upstream sirva una solicitud determinada, por lo que, por defecto, la conmutación por error no envía un campo del cuerpo que un upstream rechazaría. Si estableces el [TTL de caché de una hora](#one-hour-prompt-cache) en una política, se envía a todos los upstreams de la lista, así que establécelo solo si todos lo aceptan.777La CLI aplica la misma restricción de funciones a los gateways independientemente de qué upstream sirva una solicitud determinada, por lo que, por defecto, la conmutación por error no envía un campo del cuerpo que un upstream rechazaría. Si estableces el [TTL de caché de una hora](#one-hour-prompt-cache) en una política, se envía a todos los upstreams de la lista, así que establécelo solo si todos lo aceptan.

690 778 

779#### Envía cada equipo a su propio upstream

780 

781Para enviar las solicitudes de cada equipo a su propia cuenta de AWS o a su propio proyecto de Google Cloud, enumera un upstream por equipo y dale a cada uno una lista `groups`. Solo los desarrolladores de un grupo del IdP enumerado llegan a ese upstream, tanto en el primer intento como en la [conmutación por error](#multiple-upstreams). Todos los proveedores admiten `groups`. Requiere Claude Code v2.1.314 o posterior en el servidor del gateway.

782 

783Este ejemplo asigna una cuenta de AWS a cada uno de los grupos `payments-eng` y `search-eng`, y agrega un upstream sin lista `groups` que cualquier desarrollador puede usar:

784 

785```yaml theme={null}

786upstreams:

787 - name: bedrock-payments

788 provider: bedrock

789 region: us-east-1

790 auth: {}

791 assume_role:

792 role_arn: arn:aws:iam::111111111111:role/claude-gateway-bedrock

793 groups: [payments-eng]

794 - name: bedrock-search

795 provider: bedrock

796 region: us-east-1

797 auth: {}

798 assume_role:

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

800 groups: [search-eng]

801 - name: bedrock-shared # no groups: open to everyone, so listed last

802 provider: bedrock

803 region: us-east-1

804 auth: {}

805```

806 

807Con la configuración de ejemplo, las solicitudes de cada desarrollador comienzan en el primer upstream de su fila y pasan al siguiente en caso de conmutación por error:

808 

809| Grupos del desarrollador | Upstreams, en orden |

810| - | - |

811| `payments-eng` | `bedrock-payments`, luego `bedrock-shared` |

812| `search-eng` | `bedrock-search`, luego `bedrock-shared` |

813| `payments-eng` y `search-eng` | `bedrock-payments`, luego `bedrock-search`, luego `bedrock-shared` |

814| Ninguno | `bedrock-shared` |

815 

816Cuando el upstream de un equipo deniega el modelo solicitado con un `403`, el gateway prueba el siguiente upstream de la fila de ese equipo que sirva el modelo. Para mantener al equipo en un solo upstream, dale a cada upstream una lista `groups` y asegúrate de que ningún otro upstream enumere un grupo al que pertenezcan los desarrolladores del equipo. Ese equipo entonces no tiene conmutación por error, y las solicitudes de desarrolladores que no están en ningún grupo enumerado [fallan con un `400`](#what-happens-when-a-developer-is-in-no-listed-group).

817 

818Para que cada desarrollador llegue al upstream que pretendes, escribe entradas que coincidan exactamente y coloca los upstreams abiertos al final:

819 

820* **Entradas**: escribe cada grupo exactamente como tu IdP lo envía en el [claim de grupos](#oidc), que [`match.groups`](#managed) también lee. El gateway se niega a iniciarse cuando encuentra una lista vacía o una entrada vacía. No comprueba las entradas con tu IdP, así que una entrada que no coincide con nadie no genera ninguna advertencia.

821* **Orden**: coloca al final un upstream que no tenga lista `groups`. Sirve a todos, así que si aparece antes, toma las solicitudes de un equipo antes que el propio upstream de ese equipo.

822 

823> [!WARNING]

824>

825> Un gateway anterior a v2.1.314 se niega a iniciarse cuando encuentra `groups`, así que actualiza todas las réplicas antes de agregarlo.

826>

827> Antes de revertir a una versión anterior, elimina cada upstream que tenga una lista `groups` y cada clave de `upstream_model` o sobrescritura de precios que lo nombre, y conserva al menos un upstream. Si solo eliminas la clave `groups`, ese upstream queda abierto a todos los desarrolladores. Una clave o sobrescritura que todavía nombre un upstream eliminado impide que el gateway se inicie, con `references unknown upstream`.

828 

829##### Qué sucede cuando un desarrollador no está en ningún grupo enumerado

830 

831Si cada upstream tiene una lista `groups`, un desarrollador que no está en ninguno de esos grupos ve este error, y el gateway no contacta a ningún proveedor:

832 

833```text theme={null}

834API Error: 400 you aren't in a group that can use this gateway. Ask your administrator to add you to one

835```

836 

837Agrega al desarrollador a un grupo enumerado en tu IdP, o agrega un upstream sin lista `groups`.

838 

839El gateway vuelve a leer los grupos de un desarrollador en cada renovación del token. Si tu IdP omite los grupos en una renovación, el desarrollador queda sin ninguno:

840 

841* **[`oidc.allowed_groups`](#oidc) está configurado**: el gateway rechaza la renovación y la sesión termina

842* **En otro caso, si un upstream no tiene lista `groups`**: las solicitudes del desarrollador pasan a él

843* **En otro caso, si cada upstream tiene una lista `groups`**: las solicitudes del desarrollador fallan con ese error

844 

845Si el endpoint userinfo de tu IdP devuelve el claim de grupos y `oidc.google_groups` no está configurado, configura [`oidc.userinfo_fallback`](#oidc) en `true` para completar los grupos desde ahí.

846 

691## Secciones opcionales847## Secciones opcionales

692 848 

693### `admin`849### `admin`


782 938 

783#### Enviar las tarifas a los clientes con sesión iniciada939#### Enviar las tarifas a los clientes con sesión iniciada

784 940 

785Con v2.1.268 o posterior en el servidor del gateway, el gateway también coloca las tarifas de `pricing` en las políticas [`managed`](#managed) que sirve, como el ajuste administrado [`modelPricing`](https://code.claude.com/docs/es/settings-reference#modelpricing). Los desarrolladores que coinciden con una política ven entonces las tarifas de `pricing` del primer upstream que atiende cada ID de modelo en `/usage`, la línea de estado y OpenTelemetry. Un desarrollador que no coincide con ninguna política no recibe configuración administrada, por lo que sus cifras se mantienen en el precio de lista. Los clientes aplican el ajuste en Claude Code v2.1.242 o posterior.941Con v2.1.268 o posterior en el servidor del gateway, el gateway también incluye las tarifas de `pricing` en las políticas [`managed`](#managed) que sirve, como el ajuste administrado [`modelPricing`](https://code.claude.com/docs/es/settings-reference#modelpricing).

942 

943Los desarrolladores que coinciden con una política ven entonces las tarifas de `pricing` en `/usage`, la línea de estado y OpenTelemetry. Un desarrollador que no coincide con ninguna política no recibe configuración administrada, por lo que sus cifras se quedan en el precio de lista. Los clientes aplican el ajuste en Claude Code v2.1.242 o posterior.

786 944 

787* Lo que agrega el gateway: a menos que el bloque `cli` de una política ya establezca `modelPricing`, el gateway agrega el `multiplier` y, para cada ID de modelo que un cliente puede solicitar, la fila de sobrescritura del primer upstream que atiende ese ID. Una tarifa que solo cobra un upstream de conmutación por error se queda en el gateway.945* Lo que agrega el gateway: a menos que el bloque `cli` de una política ya establezca `modelPricing`, el gateway agrega el `multiplier` y, para cada ID de modelo que un cliente puede solicitar, la fila de sobrescritura del primer upstream que atiende ese ID. Una tarifa que solo cobra un upstream de conmutación por error se queda en el gateway.

946* Upstreams con una [lista `groups`](#send-each-team-to-its-own-upstream): cuando uno es el primer upstream que atiende un ID de modelo, el gateway no agrega ninguna fila para ese ID. Los desarrolladores ven entonces la tarifa propia de Claude Code para ese ID, que es la tarifa estándar del modelo cuando Claude Code reconoce el ID, multiplicada por el `multiplier`.

788* Excluir una política: establece `modelPricing` en `{}` en el bloque `cli` de esa política, y sus desarrolladores se mantienen en el precio de lista.947* Excluir una política: establece `modelPricing` en `{}` en el bloque `cli` de esa política, y sus desarrolladores se mantienen en el precio de lista.

789* Conservar las tarifas propias de una política: una política cuyo bloque `cli` establece `modelPricing` con su propio `multiplier` u `overrides` conserva ese `modelPricing` completo, y el gateway no le agrega tarifas propias.948* Conservar las tarifas propias de una política: una política cuyo bloque `cli` establece `modelPricing` con su propio `multiplier` u `overrides` conserva ese `modelPricing` completo, y el gateway no le agrega tarifas propias.

790 949 


808 967 

809### `managed`968### `managed`

810 969 

811El bloque `managed` define políticas de acceso basadas en roles según grupos de IdP o dominio de correo electrónico. Las políticas se evalúan en orden; se selecciona la primera coincidencia y luego se fusiona sobre la base de captura general `match: {}`. Se sirven por usuario en `GET /managed/settings` con almacenamiento en caché ETag/304.970El bloque `managed` define políticas de acceso basadas en roles según los grupos del IdP o el dominio de correo electrónico. Las políticas se evalúan en orden; de forma predeterminada se selecciona la primera coincidencia, que luego se combina sobre la base general `match: {}`. Un usuario que coincide con dos políticas de rol obtiene solo la primera, por lo que las reglas de denegación de la segunda política no se aplican a menos que [apliques todas las políticas coincidentes](#apply-every-matching-policy). Las políticas se sirven por usuario en `GET /managed/settings` con caché ETag/304.

812 971 

813```yaml theme={null}972```yaml theme={null}

814managed:973managed:


849 1008 

850Un usuario autenticado que no coincide con ninguna política obtiene los valores predeterminados del gateway, es decir, todos los modelos del catálogo y ninguna configuración administrada. Agrega una captura general `match: {}` al final si quieres una política predeterminada garantizada.1009Un usuario autenticado que no coincide con ninguna política obtiene los valores predeterminados del gateway, es decir, todos los modelos del catálogo y ninguna configuración administrada. Agrega una captura general `match: {}` al final si quieres una política predeterminada garantizada.

851 1010 

1011Coloca las reglas de denegación para toda la organización en la política `match: {}`, porque las reglas de una política de grupo solo se aplican mientras el token del usuario incluya ese grupo.

1012 

852> [!NOTE]1013> [!NOTE]

853>1014>

854> El gateway no mantiene un directorio de usuarios propio. Autoriza cada solicitud a partir del token de IdP del usuario, leyendo la pertenencia a grupos de la reclamación `groups` del token y evaluando las políticas con ella. No hay una lista de usuarios que enumerar ni cuentas que crear previamente y, por lo tanto, no hay endpoint SCIM, porque no hay nada en lo que SCIM pueda sincronizar.1015> El gateway no mantiene un directorio de usuarios propio. Autoriza cada solicitud a partir del token de IdP del usuario, leyendo la pertenencia a grupos de la reclamación `groups` del token y evaluando las políticas con ella. No hay una lista de usuarios que enumerar ni cuentas que crear previamente y, por lo tanto, no hay endpoint SCIM, porque no hay nada en lo que SCIM pueda sincronizar.


862>1023>

863> Claude Desktop sigue [su propio calendario](#when-a-policy-change-reaches-claude-desktop).1024> Claude Desktop sigue [su propio calendario](#when-a-policy-change-reaches-claude-desktop).

864 1025 

1026#### Aplicar todas las políticas coincidentes

1027 

1028Un usuario que coincide con varias políticas de rol obtiene solo la primera a menos que establezcas `policy_mode: layered` junto a `policies`. Con `layered`, se aplica cada política que coincide con el usuario, hasta la primera política `match: {}`.

1029 

1030`policy_mode` requiere Claude Code v2.1.316 o posterior en el servidor del gateway. Un gateway en una versión que no la admite se niega a iniciar cuando encuentra la clave. Actualiza todas las réplicas antes de agregar la clave y elimínala antes de volver a una versión anterior. Este ejemplo tiene un grupo que pierde `WebFetch` y otro que obtiene Opus:

1031 

1032```yaml theme={null}

1033managed:

1034 policy_mode: layered

1035 policies:

1036 - match: { groups: [no-web] }

1037 cli:

1038 permissions: { deny: ["WebFetch"] }

1039 - match: { groups: [opus-users] }

1040 cli:

1041 availableModels: [opus, sonnet]

1042 - match: {}

1043 cli:

1044 availableModels: [sonnet]

1045 enforceAvailableModels: true

1046```

1047 

1048La tabla muestra lo que recibe un usuario que está tanto en `no-web` como en `opus-users` con el valor predeterminado, `first_match`, y con `layered`.

1049 

1050| Ajuste | `first_match` | `layered` |

1051| - | - | - |

1052| `availableModels` | `sonnet` | `opus`, `sonnet` |

1053| `enforceAvailableModels` | `true` | `true` |

1054| `permissions.deny` | `WebFetch` | `WebFetch` |

1055 

1056El gateway combina cada política coincidente sobre las que aparecen debajo de ella, con las mismas [reglas de combinación](#managed) que la capa base:

1057 

1058* **Listas de permitidos, valores individuales y bloques como `sandbox`**: cada uno proviene completo de la primera política coincidente de la lista que lo establece, por lo que las listas `availableModels` de dos grupos no se suman.

1059* **Listas de denegación y arrays de hooks**: estas se suman en todas las políticas coincidentes, por lo que un usuario en dos grupos obtiene las reglas de denegación de ambos grupos.

1060* **`env`, `modelOverrides` y `skillOverrides`**: las entradas se combinan por nombre, y la primera política coincidente de la lista que establece un nombre proporciona su valor.

1061* **Claves de `desktop`**: estas se combinan según [las reglas del bloque `desktop` base](#how-a-role-policy-inherits-the-base-desktop-block).

1062 

1063> [!WARNING]

1064>

1065> Las políticas pueden sumarse en reglas más permisivas que las que da cualquiera de ellas por separado. Por ejemplo, la política `match: {}` establece `sandbox.enabled: true`, la política de un grupo establece `permissions.allow: ["Bash"]` y la de otro grupo establece `sandbox.enabled: false`. Un usuario en ambos grupos recibe `Bash` permitido con el sandbox desactivado. En este caso, coloca primero la política que permite `Bash` y copia en ella el bloque `sandbox` completo de la política `match: {}`.

1066 

1067Con `layered`, el gateway se niega a iniciar con algunos ajustes, entre ellos estos:

1068 

1069* **Un patrón `!`**: una [negación `!`](https://code.claude.com/docs/es/permissions#special-characters-and-negation) en una regla `Read` o `Edit` en la lista `permissions.deny` o `permissions.ask` de cualquier política, incluida la de la política `match: {}`

1070* **Un límite sobre hooks fuera de la política general**: `disableAllHooks`, `allowedHttpHookUrls` o `httpHookAllowedEnvVars` en cualquier política que no sea `match: {}`

1071 

865#### Iniciar las sesiones en un modelo que la política permite1072#### Iniciar las sesiones en un modelo que la política permite

866 1073 

867Si `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.1074Si `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.

Details

162 162 

163 Los eventos emitidos incluyen `config.load`, `session.mint`, `session.refresh`, `device.authorize`, `device.verify`, `device.callback`, `auth.denied`, `access.denied`, `access.public_client`, `inference`, `managed.serve`, `desktop_bootstrap.serve`, `desktop_bootstrap.denied`, `spend.blocked`, `admin.denied`, `admin.limit.upsert` y `admin.limit.delete`. Los campos varían según el evento:163 Los eventos emitidos incluyen `config.load`, `session.mint`, `session.refresh`, `device.authorize`, `device.verify`, `device.callback`, `auth.denied`, `access.denied`, `access.public_client`, `inference`, `managed.serve`, `desktop_bootstrap.serve`, `desktop_bootstrap.denied`, `spend.blocked`, `admin.denied`, `admin.limit.upsert` y `admin.limit.delete`. Los campos varían según el evento:

164 164 

165 * Los eventos de acuñación y actualización exitosos llevan `sub`, `email`, `client_ip` y el resultado165 * Los eventos de emisión y actualización exitosos incluyen `sub`, `email`, `client_ip` y el resultado

166 * `auth.denied` y `access.denied` llevan la razón e IP del cliente, más la ruta de solicitud para `auth.denied`, ya que no existe identidad de usuario en esas denegaciones. Dos razones de `access.denied` cambian lo que el evento lleva:166 * `auth.denied` y `access.denied` incluyen el motivo y la IP del cliente, además de la ruta de la solicitud en el caso de `auth.denied`, ya que en esas denegaciones no existe identidad de usuario. Dos motivos de `access.denied` cambian lo que incluye el evento:

167 * `xff_unparseable`: el evento también lleva la entrada `X-Forwarded-For` que no se pudo leer167 * `xff_unparseable`: el evento también incluye la entrada de `X-Forwarded-For` que no se pudo leer

168 * `client_ip_unknown`: el evento no lleva IP del cliente, porque la conexión no tenía dirección de par mientras se establecía una lista de `access_control`168 * `client_ip_unknown`: el evento no incluye IP del cliente, porque la conexión no tenía dirección del par mientras había una lista de `access_control` configurada

169 * `access.public_client` lleva la IP del cliente de la primera solicitud por proceso que llega desde una dirección pública mientras `access_control.allow_cidrs` está vacío. La puerta de enlace sirve la solicitud como de costumbre; el evento señala que la puerta de enlace puede ser alcanzable desde la internet pública. Vea la [referencia de `access_control`](https://code.claude.com/docs/es/claude-apps-gateway-config#http-tuning) para lo que cuenta como público y para la lista de permitidos recomendada.169 * `access.public_client` incluye la IP del cliente de la primera solicitud por proceso que llega desde una dirección pública mientras `access_control.allow_cidrs` está vacío. El gateway atiende la solicitud como de costumbre; el evento indica que el gateway puede ser accesible desde internet pública. Consulta la [referencia de `access_control`](https://code.claude.com/docs/es/claude-apps-gateway-config#http-tuning) para saber qué cuenta como público y cuál es la lista de permitidos recomendada.

170 * `inference` registra qué ascendente sirvió la solicitud y el estado de respuesta170 * `inference` registra qué upstream atendió la solicitud y el estado de la respuesta

171 * `desktop_bootstrap.denied` registra una búsqueda de arranque de Claude Desktop rechazada con la razón (`not_configured`, `policy_not_opted_in` o `no_policy_matched`) y la identidad del usuario171 * `desktop_bootstrap.denied` registra una obtención de arranque de Claude Desktop rechazada, con el motivo (`not_configured`, `policy_not_opted_in` o `no_policy_matched`) y la identidad del usuario

172 * `admin.denied` registra un intento de autenticación de API de administrador rechazado con la IP del cliente, método, ruta y una razón, sin el material de clave presentado: `invalid_key` cuando se presentó una `x-api-key` pero no coincidió con ninguna clave configurada, `bearer_rejected` cuando solo se presentó un encabezado `Authorization` y no se verificó como una sesión de puerta de enlace en `admin.admin_groups`, o `no_credentials` cuando no se presentó ningún encabezado172 * `guardrail.trace` registra [qué filtro se activó](https://code.claude.com/docs/es/claude-apps-gateway-config.md#log-which-guardrail-filter-fired), sin el texto coincidente

173 * `admin.denied` registra un intento de autenticación rechazado en la API de administración con la IP del cliente, el método, la ruta y un motivo, sin el material de clave presentado: `invalid_key` cuando se presentó una `x-api-key` que no coincidió con ninguna clave configurada, `bearer_rejected` cuando solo se presentó un encabezado `Authorization` y no se verificó como una sesión del gateway en `admin.admin_groups`, o `no_credentials` cuando no se presentó ninguno de los dos encabezados

173* **Registros operacionales**: líneas legibles por humanos con prefijo `[gateway]` para arranque, advertencias y errores ascendentes. La variable de entorno `CLAUDE_GATEWAY_LOG_LEVEL` controla la verbosidad y acepta `debug`, `info`, `warn` o `error`, con `info` como predeterminado. En `debug`, cada inicio de sesión y actualización también registra los nombres, no los valores, de los reclamos en el id\_token, más los nombres de los reclamos de userinfo cuando `userinfo_fallback` proporcionó alguno, para que pueda diagnosticar la configuración de `email_claim` y `groups_claim` sin registrar PII. No afecta los eventos de auditoría, que siempre se emiten.174* **Registros operacionales**: líneas legibles por humanos con prefijo `[gateway]` para arranque, advertencias y errores ascendentes. La variable de entorno `CLAUDE_GATEWAY_LOG_LEVEL` controla la verbosidad y acepta `debug`, `info`, `warn` o `error`, con `info` como predeterminado. En `debug`, cada inicio de sesión y actualización también registra los nombres, no los valores, de los reclamos en el id\_token, más los nombres de los reclamos de userinfo cuando `userinfo_fallback` proporcionó alguno, para que pueda diagnosticar la configuración de `email_claim` y `groups_claim` sin registrar PII. No afecta los eventos de auditoría, que siempre se emiten.

174 175 

175### Salud176### Salud


311 312 

312Las migraciones son solo anexo, así que revertir a un binario anterior que conoce menos migraciones es seguro; ignora las filas adicionales. La reversión también re-valida el YAML contra el esquema del binario más antiguo, así que una configuración que adoptó una clave introducida por la versión más nueva falla al arrancar en la más antigua. Elimine la nueva clave antes de revertir.313Las migraciones son solo anexo, así que revertir a un binario anterior que conoce menos migraciones es seguro; ignora las filas adicionales. La reversión también re-valida el YAML contra el esquema del binario más antiguo, así que una configuración que adoptó una clave introducida por la versión más nueva falla al arrancar en la más antigua. Elimine la nueva clave antes de revertir.

313 314 

315> [!WARNING]

316>

317> Eliminar solo la clave `groups` de un upstream lo deja abierto a todos los desarrolladores. Consulta [qué eliminar antes de revertir](https://code.claude.com/docs/es/claude-apps-gateway-config.md#roll-back-a-gateway-that-uses-groups).

318 

314Porque fija la versión de la puerta de enlace en su propia imagen, las correcciones en nuevas versiones de Claude Code, incluidas las correcciones de seguridad, llegan a su implementación solo cuando actualiza el pin y redeploy. Incluya la puerta de enlace en el mismo ciclo de parches que usa para otros servicios que contienen credenciales de producción.319Porque fija la versión de la puerta de enlace en su propia imagen, las correcciones en nuevas versiones de Claude Code, incluidas las correcciones de seguridad, llegan a su implementación solo cuando actualiza el pin y redeploy. Incluya la puerta de enlace en el mismo ciclo de parches que usa para otros servicios que contienen credenciales de producción.

315 320 

316## Seguridad321## Seguridad


422| Con carga máxima, las respuestas tardan en empezar o parecen colgarse, o fallan con un 502 `all upstreams failed` aunque el upstream esté en buen estado | Una réplica tiene más solicitudes abiertas de las que envía al upstream a la vez, por lo que las solicitudes adicionales esperan dentro del gateway. En un upstream `provider: anthropic`, una solicitud que espera más de `timeouts.upstream_ttfb_ms` abandona ese upstream, lo que produce el 502 cuando ningún upstream posterior la atiende. El registro muestra una advertencia que contiene `client requests are open`. | Agrega réplicas o aumenta el límite en cada réplica. Consulta [Solicitudes upstream concurrentes](#concurrent-upstream-requests). |427| Con carga máxima, las respuestas tardan en empezar o parecen colgarse, o fallan con un 502 `all upstreams failed` aunque el upstream esté en buen estado | Una réplica tiene más solicitudes abiertas de las que envía al upstream a la vez, por lo que las solicitudes adicionales esperan dentro del gateway. En un upstream `provider: anthropic`, una solicitud que espera más de `timeouts.upstream_ttfb_ms` abandona ese upstream, lo que produce el 502 cuando ningún upstream posterior la atiende. El registro muestra una advertencia que contiene `client requests are open`. | Agrega réplicas o aumenta el límite en cada réplica. Consulta [Solicitudes upstream concurrentes](#concurrent-upstream-requests). |

423| En un upstream distinto de `provider: anthropic`, falla un turno con una pausa larga de pensamiento. El proxy delante del gateway registra una solicitud que permanece abierta unos 12.5 minutos y luego una serie de errores `504` | Claude Code terminó un stream que había entregado su primer evento de respuesta y luego solo transportó pings de keepalive. Reenvió la solicitud sin streaming, y cada respuesta tarda más que el tiempo de espera del proxy. | Aumenta `CLAUDE_STREAM_IDLE_TIMEOUT_MS` para tus desarrolladores. Consulta [El pensamiento largo termina en tiempos de espera agotados del proxy](#long-thinking-ends-in-proxy-timeouts). |428| En un upstream distinto de `provider: anthropic`, falla un turno con una pausa larga de pensamiento. El proxy delante del gateway registra una solicitud que permanece abierta unos 12.5 minutos y luego una serie de errores `504` | Claude Code terminó un stream que había entregado su primer evento de respuesta y luego solo transportó pings de keepalive. Reenvió la solicitud sin streaming, y cada respuesta tarda más que el tiempo de espera del proxy. | Aumenta `CLAUDE_STREAM_IDLE_TIMEOUT_MS` para tus desarrolladores. Consulta [El pensamiento largo termina en tiempos de espera agotados del proxy](#long-thinking-ends-in-proxy-timeouts). |

424| En `provider: anthropic`, falla un turno con una pausa larga de pensamiento. El proxy registra una solicitud abierta durante unos 20 minutos y luego errores `502` o `504` | Claude Code terminó un stream que había entregado su primer evento de respuesta y luego solo transportó pings de keepalive. Reenvió la solicitud sin streaming, y cada respuesta tarda más que la espera del gateway en el upstream, `timeouts.upstream_ttfb_ms`, o que el tiempo de espera del proxy. | Aumenta `CLAUDE_STREAM_IDLE_TIMEOUT_MS` para tus desarrolladores. Consulta [Pensamiento largo en un upstream de la API de Anthropic](#long-thinking-on-an-anthropic-api-upstream). |429| En `provider: anthropic`, falla un turno con una pausa larga de pensamiento. El proxy registra una solicitud abierta durante unos 20 minutos y luego errores `502` o `504` | Claude Code terminó un stream que había entregado su primer evento de respuesta y luego solo transportó pings de keepalive. Reenvió la solicitud sin streaming, y cada respuesta tarda más que la espera del gateway en el upstream, `timeouts.upstream_ttfb_ms`, o que el tiempo de espera del proxy. | Aumenta `CLAUDE_STREAM_IDLE_TIMEOUT_MS` para tus desarrolladores. Consulta [Pensamiento largo en un upstream de la API de Anthropic](#long-thinking-on-an-anthropic-api-upstream). |

430| Las solicitudes de un desarrollador fallan con `API Error: 400 you aren't in a group that can use this gateway. Ask your administrator to add you to one` | Cada upstream tiene una [lista `groups`](https://code.claude.com/docs/es/claude-apps-gateway-config#what-happens-when-a-developer-is-in-no-listed-group), y la sesión del desarrollador no incluye ninguno de los grupos listados. | Agrega al desarrollador a un grupo listado en tu IdP, o coloca al final un upstream sin `groups` para atender a todos los demás. El gateway vuelve a leer los grupos en la siguiente actualización del token del desarrollador. Si el IdP omitió los grupos y su endpoint de userinfo los devuelve, establece [`oidc.userinfo_fallback: true`](https://code.claude.com/docs/es/claude-apps-gateway-config#oidc). |

425| Error del IdP: unknown or unsupported scope | El IdP rechaza los alcances que no reconoce | Establece `oidc.scopes` exactamente en la lista que acepta tu IdP; debe incluir `openid`. El valor predeterminado es `openid profile email offline_access`. |431| Error del IdP: unknown or unsupported scope | El IdP rechaza los alcances que no reconoce | Establece `oidc.scopes` exactamente en la lista que acepta tu IdP; debe incluir `openid`. El valor predeterminado es `openid profile email offline_access`. |

426| Las sesiones no se renuevan de forma silenciosa después de establecer `oidc.scopes` | `offline_access` se eliminó en la sobrescritura | Vuelve a agregar `offline_access` si tu IdP lo admite. Sin un token de actualización, los desarrolladores vuelven a hacer el inicio de sesión en el navegador cada `session.ttl_hours`. |432| Las sesiones no se renuevan de forma silenciosa después de establecer `oidc.scopes` | `offline_access` se eliminó en la sobrescritura | Vuelve a agregar `offline_access` si tu IdP lo admite. Sin un token de actualización, los desarrolladores vuelven a hacer el inicio de sesión en el navegador cada `session.ttl_hours`. |

427| El navegador muestra "This request came from another site and was blocked" | POST de formulario entre sitios, bloqueado como protección contra CSRF. Es lo esperado en páginas incrustadas o servidas a través de un proxy | Abre el enlace de verificación directamente |433| El navegador muestra "This request came from another site and was blocked" | POST de formulario entre sitios, bloqueado como protección contra CSRF. Es lo esperado en páginas incrustadas o servidas a través de un proxy | Abre el enlace de verificación directamente |


449* **`limits.max_request_header_bytes` establecido**: aumenta el valor o elimina la clave455* **`limits.max_request_header_bytes` establecido**: aumenta el valor o elimina la clave

450* **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 grupos456* **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

451 457 

452Cuando 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:458Cuando recortes el claim de grupos, conserva los grupos que nombraste en estos ajustes, que deciden el acceso, la política, los upstreams y los límites de gasto de un desarrollador:

453 459 

454* **[`oidc.allowed_groups`](https://code.claude.com/docs/es/claude-apps-gateway-config#oidc)**: decide quién puede iniciar sesión460* **[`oidc.allowed_groups`](https://code.claude.com/docs/es/claude-apps-gateway-config#oidc)**: decide quién puede iniciar sesión

455* **[`admin.admin_groups`](https://code.claude.com/docs/es/claude-apps-gateway-config#admin)**: decide quién puede llamar a la API de administración con su sesión del gateway461* **[`admin.admin_groups`](https://code.claude.com/docs/es/claude-apps-gateway-config#admin)**: decide quién puede llamar a la API de administración con su sesión del gateway

456* **`match.groups` en [`managed.policies`](https://code.claude.com/docs/es/claude-apps-gateway-config#managed)**: decide qué política se aplica a un desarrollador462* **`match.groups` en [`managed.policies`](https://code.claude.com/docs/es/claude-apps-gateway-config#managed)**: decide qué política se aplica a un desarrollador

463* **`groups` en un [upstream](https://code.claude.com/docs/es/claude-apps-gateway-config.md#send-each-team-to-its-own-upstream)**: decide qué upstreams atienden a un desarrollador

457* **[Límites de gasto](https://code.claude.com/docs/es/claude-apps-gateway-spend-limits.md) de `rbac_group`**: deciden qué límites de grupo se aplican a un desarrollador464* **[Límites de gasto](https://code.claude.com/docs/es/claude-apps-gateway-spend-limits.md) de `rbac_group`**: deciden qué límites de grupo se aplican a un desarrollador

458 465 

459### El pensamiento largo termina en tiempos de espera agotados del proxy466### El pensamiento largo termina en tiempos de espera agotados del proxy

Details

620 620 

621Pide al desarrollador que pase el id del equipo para el que es el trabajo, como `claude --model data-claude-opus-4-8`.621Pide al desarrollador que pase el id del equipo para el que es el trabajo, como `claude --model data-claude-opus-4-8`.

622 622 

623El gateway aplica la [primera política que coincide](https://code.claude.com/docs/es/claude-apps-gateway-config.md#managed), por lo que un desarrollador que solo está en los dos grupos de equipo obtiene la política de `team-platform`. Sus sesiones con el id del equipo de datos fallan con `is not in your role's availableModels allowlist`, mencionando el modelo predeterminado de Claude Code y no el id que escribió. Si en cambio incluyes ambos grupos de equipo en el `groups` de una sola política, cualquier miembro de cualquiera de los dos equipos puede facturar al perfil de cualquiera de ellos.623De forma predeterminada, el gateway aplica la [primera política que coincide](https://code.claude.com/docs/es/claude-apps-gateway-config.md#managed), por lo que un desarrollador que solo está en los dos grupos de equipo obtiene la política de `team-platform`. Sus sesiones con el id del equipo de datos fallan con `is not in your role's availableModels allowlist`, mencionando el modelo predeterminado de Claude Code y no el id que escribió. Si en cambio incluyes ambos grupos de equipo en el `groups` de una sola política, cualquier miembro de cualquiera de los dos equipos puede facturar al perfil de cualquiera de ellos.

624 624 

625En los [límites de gasto](https://code.claude.com/docs/es/claude-apps-gateway-spend-limits.md#set-a-cap) propios del gateway, el desarrollador tiene un total y un límite por período, de forma predeterminada el más bajo de los límites de sus grupos, sin importar qué id use una sesión. Para evitar que el límite más bajo de un equipo detenga el trabajo para el otro, establece un límite por usuario para el desarrollador.625En los [límites de gasto](https://code.claude.com/docs/es/claude-apps-gateway-spend-limits.md#set-a-cap) propios del gateway, el desarrollador tiene un total y un límite por período, de forma predeterminada el más bajo de los límites de sus grupos, sin importar qué id use una sesión. Para evitar que el límite más bajo de un equipo detenga el trabajo para el otro, establece un límite por usuario para el desarrollador.

626 626 

Details

99| `--init-only` | Ejecuta hooks [Setup](https://code.claude.com/docs/es/hooks.md#setup) y `SessionStart`, luego sale sin iniciar una conversación | `claude --init-only` |99| `--init-only` | Ejecuta hooks [Setup](https://code.claude.com/docs/es/hooks.md#setup) y `SessionStart`, luego sale sin iniciar una conversación | `claude --init-only` |

100| `--include-hook-events` | Incluye eventos del ciclo de vida del hook en el flujo de salida. Los eventos de hook `SessionStart` y `Setup` siempre se incluyen y no necesitan esta bandera. Algunos eventos de hook, como `Notification`, `SessionEnd`, `PreCompact`, y `PostCompact`, nunca producen un evento `hook_started`, incluso con esta bandera. Para esos eventos, Claude Code aún emite `hook_progress` mientras un hook de comando que se ejecuta durante más de un segundo produce salida, y emite `hook_response` solo cuando un [hook que se ejecuta en segundo plano](https://code.claude.com/docs/es/hooks.md#run-hooks-in-the-background) termina. Requiere `--output-format stream-json` | `claude -p --output-format stream-json --verbose --include-hook-events "query"` |100| `--include-hook-events` | Incluye eventos del ciclo de vida del hook en el flujo de salida. Los eventos de hook `SessionStart` y `Setup` siempre se incluyen y no necesitan esta bandera. Algunos eventos de hook, como `Notification`, `SessionEnd`, `PreCompact`, y `PostCompact`, nunca producen un evento `hook_started`, incluso con esta bandera. Para esos eventos, Claude Code aún emite `hook_progress` mientras un hook de comando que se ejecuta durante más de un segundo produce salida, y emite `hook_response` solo cuando un [hook que se ejecuta en segundo plano](https://code.claude.com/docs/es/hooks.md#run-hooks-in-the-background) termina. Requiere `--output-format stream-json` | `claude -p --output-format stream-json --verbose --include-hook-events "query"` |

101| `--include-partial-messages` | Incluye eventos de transmisión parcial en la salida. Requiere `--print` y `--output-format stream-json` | `claude -p --output-format stream-json --verbose --include-partial-messages "query"` |101| `--include-partial-messages` | Incluye eventos de transmisión parcial en la salida. Requiere `--print` y `--output-format stream-json` | `claude -p --output-format stream-json --verbose --include-partial-messages "query"` |

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

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

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

105| `--max-budget-usd` | Detiene la ejecución una vez que el gasto estimado en llamadas de API alcanza esta cantidad (solo modo print). Claude Code compara el límite con su [estimación de costos del lado del cliente](https://code.claude.com/docs/es/agent-sdk/cost-tracking.md#estimates-not-billing), que puede diferir de tu factura. El gasto de [subagentes](https://code.claude.com/docs/es/sub-agents.md) cuenta hacia el límite. El gasto puede superar el límite, así que [deja margen](https://code.claude.com/docs/es/agent-sdk/agent-loop.md#budget-headroom). Cuando regresas a una conversación con `--continue` o `--resume`, los totales [restaurados de ejecuciones anteriores](https://code.claude.com/docs/es/agent-sdk/cost-tracking.md#accumulate-costs-across-multiple-calls) no cuentan hacia él. Una vez que el gasto alcanza el límite, generar otro subagente falla con `Budget limit reached`, y Claude Code detiene los subagentes en segundo plano que aún se ejecutan; los comportamientos de cumplimiento del límite requieren Claude Code v2.1.217 o posterior | `claude -p --max-budget-usd 5.00 "query"` |105| `--max-budget-usd` | Detiene la ejecución una vez que el gasto estimado en llamadas de API alcanza esta cantidad (solo modo print). Claude Code compara el límite con su [estimación de costos del lado del cliente](https://code.claude.com/docs/es/agent-sdk/cost-tracking.md#estimates-not-billing), que puede diferir de tu factura. El gasto de [subagentes](https://code.claude.com/docs/es/sub-agents.md) cuenta hacia el límite. El gasto puede superar el límite, así que [deja margen](https://code.claude.com/docs/es/agent-sdk/agent-loop.md#budget-headroom). Cuando regresas a una conversación con `--continue` o `--resume`, los totales [restaurados de ejecuciones anteriores](https://code.claude.com/docs/es/agent-sdk/cost-tracking.md#accumulate-costs-across-multiple-calls) no cuentan hacia él. Una vez que el gasto alcanza el límite, generar otro subagente falla con `Budget limit reached`, y Claude Code detiene los subagentes en segundo plano que aún se ejecutan; los comportamientos de cumplimiento del límite requieren Claude Code v2.1.217 o posterior | `claude -p --max-budget-usd 5.00 "query"` |

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

107| `--mcp-config` | Carga servidores MCP desde archivos JSON o cadenas (separados por espacios). Cuando pasas esta bandera con `-p`, Claude Code espera a que los servidores aún pendientes se conecten antes de ejecutar el primer turno, hasta el tiempo de espera de inicio [`MCP_TIMEOUT`](https://code.claude.com/docs/es/env-vars), 30 segundos por defecto; un servidor con una [lista de herramientas en caché](https://code.claude.com/docs/es/mcp.md#managing-your-servers) omite la espera y se conecta en el primer uso. En un [entorno autohospedado](https://code.claude.com/docs/es/self-hosted-environments-configuration.md#connection-timing), se aplica en su lugar una espera más corta. La espera requiere Claude Code v2.1.221 o posterior | `claude --mcp-config ./mcp.json` |107| `--mcp-config` | Carga servidores MCP desde archivos JSON o cadenas (separados por espacios). Cuando pasas esta bandera con `-p`, Claude Code espera a que los servidores aún pendientes se conecten antes de ejecutar el primer turno, hasta el tiempo de espera de inicio [`MCP_TIMEOUT`](https://code.claude.com/docs/es/env-vars), 30 segundos por defecto; un servidor con una [lista de herramientas en caché](https://code.claude.com/docs/es/mcp.md#managing-your-servers) omite la espera y se conecta en el primer uso. En un [entorno autohospedado](https://code.claude.com/docs/es/self-hosted-environments-configuration.md#connection-timing), se aplica en su lugar una espera más corta. La espera requiere Claude Code v2.1.221 o posterior | `claude --mcp-config ./mcp.json` |

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

109| `--name`, `-n` | Establece un nombre para mostrar para la sesión, mostrado en `/resume` y el título de la terminal. Puedes reanudar una sesión nombrada con `claude --resume <name>`. [`/rename`](https://code.claude.com/docs/es/commands) cambia el nombre a mitad de sesión y también lo muestra en la barra del prompt | `claude -n "my-feature-work"` |109| `--name`, `-n` | Establece un nombre para mostrar para la sesión, mostrado en `/resume` y el título de la terminal. Puedes reanudar una sesión nombrada con `claude --resume <name>`. [`/rename`](https://code.claude.com/docs/es/commands) cambia el nombre a mitad de sesión y también lo muestra en la barra del prompt | `claude -n "my-feature-work"` |

Details

335| **C/C++** | GCC, Clang, cmake, ninja, conan |335| **C/C++** | GCC, Clang, cmake, ninja, conan |

336| **Docker** | docker, dockerd, docker compose |336| **Docker** | docker, dockerd, docker compose |

337| **Bases de datos** | PostgreSQL 16, Redis 7.0 |337| **Bases de datos** | PostgreSQL 16, Redis 7.0 |

338| **Navegador** | Chrome for Testing en `/usr/bin/google-chrome`, con la variable de entorno `CHROME_PATH` establecida en esa ruta |

338| **Utilidades** | git, gh, jq, yq, ripgrep, tmux, vim, nano |339| **Utilidades** | git, gh, jq, yq, ripgrep, tmux, vim, nano |

339 340 

340¹ Bun está instalado pero tiene [problemas de compatibilidad con el proxy](#install-dependencies-with-a-sessionstart-hook) conocidos para la obtención de paquetes.341¹ Bun está instalado pero tiene [problemas de compatibilidad con el proxy](#install-dependencies-with-a-sessionstart-hook) conocidos para la obtención de paquetes.

commands.md +2 −2

Details

35La tabla siguiente enumera todos los comandos incluidos en Claude Code. La mayoría son comandos integrados cuyo comportamiento está codificado en la CLI. Se marcan dos tipos de entradas:35La tabla siguiente enumera todos los comandos incluidos en Claude Code. La mayoría son comandos integrados cuyo comportamiento está codificado en la CLI. Se marcan dos tipos de entradas:

36 36 

37* **[Skill](https://code.claude.com/docs/es/skills.md#bundled-skills)**: un skill incluido. Funciona como los skills que escribes tú mismo: un prompt que se le entrega a Claude.37* **[Skill](https://code.claude.com/docs/es/skills.md#bundled-skills)**: un skill incluido. Funciona como los skills que escribes tú mismo: un prompt que se le entrega a Claude.

38 * `/verify` solo se ejecuta cuando lo invocas. Antes de v2.1.215, Claude también podía ejecutar `/verify` por su cuenta.38 * `/verify` solo se ejecuta cuando lo invocas.

39* **[Workflow](https://code.claude.com/docs/es/workflows.md#bundled-workflows)**: un [flujo de trabajo dinámico](https://code.claude.com/docs/es/workflows.md) incluido que distribuye el trabajo entre muchos subagentes y se ejecuta en segundo plano.39* **[Workflow](https://code.claude.com/docs/es/workflows.md#bundled-workflows)**: un [flujo de trabajo dinámico](https://code.claude.com/docs/es/workflows.md) incluido que distribuye el trabajo entre muchos subagentes y se ejecuta en segundo plano.

40 * `/deep-research` solo se ejecuta cuando lo invocas.40 * `/deep-research` solo se ejecuta cuando lo invocas.

41 41 


114| `/model [model]` | Cambia el modelo de IA y guárdalo como predeterminado para nuevas sesiones. En los modelos que lo admiten, usa las flechas izquierda/derecha para [ajustar el nivel de esfuerzo](https://code.claude.com/docs/es/model-config.md#adjust-effort-level). Sin argumento, abre un selector; presiona `s` en una fila para cambiar solo para la sesión actual. Consulta [cuándo empieza el nuevo modelo](https://code.claude.com/docs/es/interactive-mode.md#when-claude-code-sends-what-you-queued). Antes de v2.1.242, podía esperar. Con `-p`, pasa un argumento de modelo, que no se guarda como predeterminado; requiere v2.1.205 o posterior |114| `/model [model]` | Cambia el modelo de IA y guárdalo como predeterminado para nuevas sesiones. En los modelos que lo admiten, usa las flechas izquierda/derecha para [ajustar el nivel de esfuerzo](https://code.claude.com/docs/es/model-config.md#adjust-effort-level). Sin argumento, abre un selector; presiona `s` en una fila para cambiar solo para la sesión actual. Consulta [cuándo empieza el nuevo modelo](https://code.claude.com/docs/es/interactive-mode.md#when-claude-code-sends-what-you-queued). Antes de v2.1.242, podía esperar. Con `-p`, pasa un argumento de modelo, que no se guarda como predeterminado; requiere v2.1.205 o posterior |

115| `/output-style [style]` | Enumera los [estilos de salida](https://code.claude.com/docs/es/output-styles.md) o cambia a uno, por ejemplo `/output-style concise`. Consulta [Cambiar tu estilo de salida](https://code.claude.com/docs/es/output-styles.md#change-your-output-style). Requiere Claude Code v2.1.269 o posterior |115| `/output-style [style]` | Enumera los [estilos de salida](https://code.claude.com/docs/es/output-styles.md) o cambia a uno, por ejemplo `/output-style concise`. Consulta [Cambiar tu estilo de salida](https://code.claude.com/docs/es/output-styles.md#change-your-output-style). Requiere Claude Code v2.1.269 o posterior |

116| `/passes` | Comparte una semana gratis de Claude Code con amigos. Solo visible si tu cuenta es elegible |116| `/passes` | Comparte una semana gratis de Claude Code con amigos. Solo visible si tu cuenta es elegible |

117| `/permissions` | Administra las reglas de permitir, preguntar y denegar para los permisos de herramientas. Abre un diálogo interactivo donde puedes ver reglas por alcance, agregar o eliminar reglas, administrar directorios de trabajo y revisar [denegaciones recientes del modo automático](https://code.claude.com/docs/es/auto-mode-config.md#review-denials). También puedes ver y editar las [reglas del clasificador del modo automático](https://code.claude.com/docs/es/auto-mode-config.md#edit-rules-from-permissions) desde la pestaña **Auto mode** del diálogo. Cuando lo ejecutas mientras Claude está respondiendo, Claude Code abre el diálogo de inmediato y aplica tus cambios a partir de la siguiente llamada a herramienta de Claude en el mismo turno. Antes de v2.1.234, Claude Code ponía el comando en cola hasta que terminaba el turno. Alias: `/allowed-tools` |117| `/permissions` | Administra las reglas de permitir, preguntar y denegar para los permisos de herramientas. Abre un diálogo interactivo donde puedes ver reglas por alcance, agregar o eliminar reglas, administrar directorios de trabajo y revisar [denegaciones recientes del modo automático](https://code.claude.com/docs/es/auto-mode-config.md#review-denials). También puedes ver y editar las [reglas del clasificador del modo automático](https://code.claude.com/docs/es/auto-mode-config.md#edit-rules-from-permissions) desde la pestaña **Auto mode** del diálogo. Alias: `/allowed-tools` |

118| `/plan [description]` | Entra en modo plan directamente desde el prompt. Pasa una descripción opcional para entrar en modo plan y comenzar de inmediato con esa tarea, por ejemplo `/plan fix the auth bug` |118| `/plan [description]` | Entra en modo plan directamente desde el prompt. Pasa una descripción opcional para entrar en modo plan y comenzar de inmediato con esa tarea, por ejemplo `/plan fix the auth bug` |

119| `/plugin [subcommand]` | Administra los [plugins](https://code.claude.com/docs/es/plugins/overview.md) de Claude Code. Ejecútalo sin argumento para abrir el menú de plugins, o pasa un subcomando como `list`, `install`, `enable` o `disable` para actuar directamente. Claude Code puede activar un plugin durante la instalación; el [resumen de instalación](https://code.claude.com/docs/es/plugins/install.md#install-a-plugin) te indica si lo hizo o si debes ejecutar `/reload-plugins` |119| `/plugin [subcommand]` | Administra los [plugins](https://code.claude.com/docs/es/plugins/overview.md) de Claude Code. Ejecútalo sin argumento para abrir el menú de plugins, o pasa un subcomando como `list`, `install`, `enable` o `disable` para actuar directamente. Claude Code puede activar un plugin durante la instalación; el [resumen de instalación](https://code.claude.com/docs/es/plugins/install.md#install-a-plugin) te indica si lo hizo o si debes ejecutar `/reload-plugins` |

120| `/plugin-authoring` | Carga la referencia con la que trabaja Claude para [escribir un mod](https://code.claude.com/docs/es/plugins/mods/create.md#ask-claude-for-a-mod). Claude puede cargarla por su cuenta cuando pides un mod. Este es un skill de un [plugin integrado](https://code.claude.com/docs/es/plugins/mods/overview.md#mods-built-into-claude-code), que puedes desactivar en `/plugin`. Requiere Claude Code v2.1.287 o posterior |120| `/plugin-authoring` | Carga la referencia con la que trabaja Claude para [escribir un mod](https://code.claude.com/docs/es/plugins/mods/create.md#ask-claude-for-a-mod). Claude puede cargarla por su cuenta cuando pides un mod. Este es un skill de un [plugin integrado](https://code.claude.com/docs/es/plugins/mods/overview.md#mods-built-into-claude-code), que puedes desactivar en `/plugin`. Requiere Claude Code v2.1.287 o posterior |

costs.md +6 −4

Details

20>20>

21> El bloque Session en `/usage` muestra el uso de tokens de API y está destinado a usuarios de API. Los suscriptores de Claude Pro, Max y Ultra tienen el uso incluido en su suscripción, por lo que la cifra de costo de sesión no es relevante para fines de facturación. Los suscriptores ven barras de uso del plan, estadísticas de actividad y un desglose de uso en la misma pantalla.21> El bloque Session en `/usage` muestra el uso de tokens de API y está destinado a usuarios de API. Los suscriptores de Claude Pro, Max y Ultra tienen el uso incluido en su suscripción, por lo que la cifra de costo de sesión no es relevante para fines de facturación. Los suscriptores ven barras de uso del plan, estadísticas de actividad y un desglose de uso en la misma pantalla.

22 22 

23El bloque Session en la parte superior de `/usage` muestra estadísticas detalladas de uso de tokens para su sesión actual. Claude Code calcula la cifra en dólares localmente a partir de conteos de tokens al precio de lista, a menos que una tabla [`modelPricing`](https://code.claude.com/docs/es/settings-reference#modelpricing) esté en vigor. Un administrador establece una en la configuración administrada de su organización para que la cifra utilice sus tasas contratadas, y mientras una tabla esté en vigor, la línea `Total cost` lleva la nota `at your organization's configured rates`. La cifra es una estimación, por lo que para facturación autorizada consulte la página de Uso en la [Consola de Claude](https://platform.claude.com/usage).23El bloque Session en la parte superior de `/usage` muestra estadísticas detalladas de uso de tokens para tu sesión actual.

24 

25Claude Code calcula la cifra en dólares localmente a partir de conteos de tokens al precio de lista, a menos que una tabla [`modelPricing`](https://code.claude.com/docs/es/settings-reference#modelpricing) esté en vigor. Un administrador establece una en la configuración administrada de tu organización para que la cifra utilice tus tarifas contratadas, y mientras una tabla esté en vigor, la línea `Total cost` lleva la nota `at your organization's configured rates`. La cifra es una estimación, por lo que para la facturación oficial consulta [Administra los costos de tu organización](#manage-costs-for-your-organization).

24 26 

25```text theme={null}27```text theme={null}

26Total cost: $0.5528Total cost: $0.55


138 140 

139Si ejecuta `/usage-credits` nuevamente mientras su solicitud anterior está esperando a un administrador, Claude Code le dice que ya se ha enviado una solicitud en lugar de enviar un duplicado. Después de que un administrador descarta su solicitud, ejecutar el comando nuevamente envía una nueva. Antes de v2.1.222, una solicitud descartada también bloqueaba nuevas solicitudes.141Si ejecuta `/usage-credits` nuevamente mientras su solicitud anterior está esperando a un administrador, Claude Code le dice que ya se ha enviado una solicitud en lugar de enviar un duplicado. Después de que un administrador descarta su solicitud, ejecutar el comando nuevamente envía una nueva. Antes de v2.1.222, una solicitud descartada también bloqueaba nuevas solicitudes.

140 142 

141En planes Pro y Max, cuando alcanza su límite de gasto con créditos de uso aún disponibles, Claude Code le solicita que aumente o elimine el límite sin abandonar la CLI. Si el servidor rechaza el cambio, consulte [Could not update your spend limit](https://code.claude.com/docs/es/errors.md#could-not-update-your-spend-limit).143En los planes Pro, Max y Ultra, cuando alcanzas tu límite de gasto con créditos de uso aún disponibles, Claude Code te pide que aumentes o elimines el límite sin salir de la CLI. Si el servidor rechaza el cambio, consulta [Could not update your spend limit](https://code.claude.com/docs/es/errors.md#could-not-update-your-spend-limit).

142 144 

143## Administra los costos de tu organización145## Administra los costos de tu organización

144 146 


149| Tu configuración | Ver el gasto | Limitar el gasto | Informes por usuario |151| Tu configuración | Ver el gasto | Limitar el gasto | Informes por usuario |

150| :- | :- | :- | :- |152| :- | :- | :- | :- |

151| [Claude for Teams o Enterprise](#claude-for-teams-and-enterprise) | [Informe de gasto en las analíticas de la organización](https://support.claude.com/en/articles/12883420-view-usage-analytics-for-team-and-enterprise-plans) | Límites de gasto en la configuración de administración | [CSV del informe de gasto](https://support.claude.com/en/articles/12883420-view-usage-analytics-for-team-and-enterprise-plans); [Enterprise Analytics API](https://platform.claude.com/docs/en/api/admin/analytics) en Enterprise |153| [Claude for Teams o Enterprise](#claude-for-teams-and-enterprise) | [Informe de gasto en las analíticas de la organización](https://support.claude.com/en/articles/12883420-view-usage-analytics-for-team-and-enterprise-plans) | Límites de gasto en la configuración de administración | [CSV del informe de gasto](https://support.claude.com/en/articles/12883420-view-usage-analytics-for-team-and-enterprise-plans); [Enterprise Analytics API](https://platform.claude.com/docs/en/api/admin/analytics) en Enterprise |

152| [Claude Console (API)](#claude-console) | [Página de uso de la Console](https://platform.claude.com/usage) | Límites de gasto del espacio de trabajo | [Panel de la Console](https://platform.claude.com/claude-code), [Claude Code Analytics API](https://platform.claude.com/docs/en/build-with-claude/claude-code-analytics-api) |154| [Claude Console (API)](#claude-console) | [Página de costos de la Console](https://platform.claude.com/cost) | Límites de gasto del espacio de trabajo | [Panel de la Console](https://platform.claude.com/claude-code), [Claude Code Analytics API](https://platform.claude.com/docs/en/build-with-claude/claude-code-analytics-api) |

153| [Amazon Bedrock, Google Cloud's Agent Platform o Microsoft Foundry](#cloud-providers) | La consola de facturación de tu nube | Los controles de presupuesto de tu nube | [OpenTelemetry](https://code.claude.com/docs/es/monitoring-usage.md) o un [gateway de LLM](https://code.claude.com/docs/es/llm-gateway) |155| [Amazon Bedrock, Google Cloud's Agent Platform o Microsoft Foundry](#cloud-providers) | La consola de facturación de tu nube | Los controles de presupuesto de tu nube | [OpenTelemetry](https://code.claude.com/docs/es/monitoring-usage.md) o un [gateway de LLM](https://code.claude.com/docs/es/llm-gateway) |

154 156 

155La [exportación de OpenTelemetry](https://code.claude.com/docs/es/monitoring-usage.md) funciona en todas las configuraciones y es la única opción que transmite métricas de tokens y costos por usuario a tu propia pila de observabilidad casi en tiempo real.157La [exportación de OpenTelemetry](https://code.claude.com/docs/es/monitoring-usage.md) funciona en todas las configuraciones y es la única opción que transmite métricas de tokens y costos por usuario a tu propia pila de observabilidad casi en tiempo real.


193>195>

194> Para las organizaciones con rate limits personalizados, el tráfico de Claude Code en este espacio de trabajo cuenta para los rate limits generales de la API de tu organización. Puedes establecer un [rate limit del espacio de trabajo](https://platform.claude.com/docs/en/api/rate-limits#setting-lower-limits-for-workspaces) en la página Limits de este espacio de trabajo en la Claude Console para limitar la parte de Claude Code y proteger otras cargas de trabajo de producción.196> Para las organizaciones con rate limits personalizados, el tráfico de Claude Code en este espacio de trabajo cuenta para los rate limits generales de la API de tu organización. Puedes establecer un [rate limit del espacio de trabajo](https://platform.claude.com/docs/en/api/rate-limits#setting-lower-limits-for-workspaces) en la página Limits de este espacio de trabajo en la Claude Console para limitar la parte de Claude Code y proteger otras cargas de trabajo de producción.

195 197 

196Para los informes por usuario, el [panel de la Console](https://platform.claude.com/claude-code) muestra el gasto y las líneas aceptadas por miembro, y la [Claude Code Analytics API](https://platform.claude.com/docs/en/build-with-claude/claude-code-analytics-api) devuelve las mismas métricas diarias por usuario de forma programática con una [clave de API de administración](https://platform.claude.com/settings/admin-keys). Consulta [analíticas para clientes de API](https://code.claude.com/docs/es/analytics.md#access-analytics-for-api-customers).198Para los informes por usuario, el [panel de la Console](https://platform.claude.com/claude-code) muestra el gasto y las líneas aceptadas por miembro, y la [Claude Code Analytics API](https://platform.claude.com/docs/en/build-with-claude/claude-code-analytics-api) devuelve métricas diarias por usuario de forma programática con una [clave de API de administración](https://platform.claude.com/settings/admin-keys). Consulta [analíticas para clientes de API](https://code.claude.com/docs/es/analytics.md#access-analytics-for-api-customers).

197 199 

198#### Recomendaciones de rate limits200#### Recomendaciones de rate limits

199 201 

desktop.md +23 −10

Details

131* Iniciar o detener servidores, o detenerlos todos a la vez, desde el menú **Dev servers** en el encabezado del panel del navegador131* Iniciar o detener servidores, o detenerlos todos a la vez, desde el menú **Dev servers** en el encabezado del panel del navegador

132* Elegir si el navegador conserva las cookies después de salir de la aplicación con **Keep cookies** en el menú **⋮** del panel del navegador, para que no tengas que volver a iniciar sesión durante el desarrollo132* Elegir si el navegador conserva las cookies después de salir de la aplicación con **Keep cookies** en el menú **⋮** del panel del navegador, para que no tengas que volver a iniciar sesión durante el desarrollo

133 133 

134En una sesión SSH, pierdes las cookies del panel cuando sales de Desktop. No puedes cambiar eso con **Keep cookies**.

135 

134Claude crea la configuración inicial del servidor basada en tu proyecto. Si tu aplicación usa un comando de desarrollo personalizado, edita `.claude/launch.json` para que coincida con tu configuración. Consulta [Configurar servidores de vista previa](#configure-preview-servers) para la referencia completa.136Claude crea la configuración inicial del servidor basada en tu proyecto. Si tu aplicación usa un comando de desarrollo personalizado, edita `.claude/launch.json` para que coincida con tu configuración. Consulta [Configurar servidores de vista previa](#configure-preview-servers) para la referencia completa.

135 137 

136Para borrar los datos guardados del navegador, selecciona **Clear browsing data** en el menú **⋮** del panel del navegador. Para desactivar el navegador por completo, desactiva **Browser tools** en **Configuración > Code** o **Configuración > Claude Code**.138Para borrar los datos guardados del navegador, selecciona **Clear browsing data** en el menú **⋮** del panel del navegador. Para desactivar el navegador por completo, desactiva **Browser tools** en **Configuración > Code** o **Configuración > Claude Code**.


312 314 

313En cualquiera de los dos diseños, escribe `/context` en el cuadro de prompt para mostrar en el chat un desglose por categoría de la ventana de contexto de esta sesión.315En cualquiera de los dos diseños, escribe `/context` en el cuadro de prompt para mostrar en el chat un desglose por categoría de la ventana de contexto de esta sesión.

314 316 

315Ambos diseños tienen el anillo de uso junto al selector de modelo. Haz clic en él para ver tu uso del plan, que se comparte en todas tus superficies de Claude Code.317En ambos diseños, el anillo de uso está en la fila debajo del cuadro de prompt. Haz clic en él para ver tu uso del plan, que se comparte en todas tus superficies de Claude Code.

316 318 

317## Permitir que Claude use su computadora319## Permitir que Claude use su computadora

318 320 


409 411 

410#### Ejecutar una sesión en su propio worktree412#### Ejecutar una sesión en su propio worktree

411 413 

412En un proyecto que es un repositorio de Git, activa **Worktree** antes de iniciar una sesión para ejecutarla en su propio [Git worktree](https://code.claude.com/docs/es/worktrees.md), una copia aislada del proyecto. De forma predeterminada, **Worktree** está desactivado y Claude trabaja directamente en la carpeta del proyecto. En el [diseño actual](#check-which-layout-you-have), activa el botón **Worktree** en la [fila debajo del cuadro del prompt](#start-a-session).414En un proyecto que es un repositorio Git, activa **Worktree** antes de iniciar una sesión para ejecutarla en su propio [Git worktree](https://code.claude.com/docs/es/worktrees.md), una copia aislada del proyecto. De forma predeterminada, **Worktree** está desactivado y Claude trabaja directamente en la carpeta del proyecto. En el [diseño actual](#check-which-layout-you-have), activa **Worktree** en la [fila debajo del cuadro del prompt](#start-a-session).

413 415 

414* **Con un [proveedor externo](https://code.claude.com/docs/es/third-party-integrations.md)**: si la fila debajo del cuadro del prompt muestra el control de la carpeta del proyecto pero no el botón **Worktree**, haz clic en ese control y activa **Worktree**416* **Con un [proveedor externo](https://code.claude.com/docs/es/third-party-integrations.md)**: si la fila debajo del cuadro de prompt muestra el control de la carpeta del proyecto pero no **Worktree**, haz clic en el control de la carpeta del proyecto y activa **Worktree**

415* **Como valor predeterminado para un [entorno local o SSH guardado](#create-a-saved-environment)**: establece **Worktree** cuando crees o edites el entorno417* **Como valor predeterminado para un [entorno local o SSH guardado](#create-a-saved-environment)**: establece **Worktree** cuando crees o edites el entorno

416* **[Diseño anterior](#check-which-layout-you-have)**: selecciona la casilla **worktree** junto al nombre de la rama, encima del cuadro del prompt418* **[Diseño anterior](#check-which-layout-you-have)**: selecciona la casilla **worktree** junto al nombre de la rama, encima del cuadro del prompt

417 419 


1094 1096 

1095##### Conectarse en Windows sin el cliente OpenSSH1097##### Conectarse en Windows sin el cliente OpenSSH

1096 1098 

1097En Windows, te conectas a través del cliente SSH integrado de Desktop si tu computadora no cumple [los requisitos para el cliente OpenSSH](#use-your-ssh-configuration). Con un proveedor externo, te conectas de forma predeterminada a través del cliente integrado, y tu administrador puede cambiarlo. Para ver el ajuste, consulta [SSH remote sessions in Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/ssh-remote-sessions).1099En Windows, te conectas a través del cliente SSH integrado de Desktop si tu computadora no cumple [los requisitos para el cliente OpenSSH](#use-your-ssh-configuration). Con un proveedor externo, el cliente a través del cual te conectas también depende de tu versión de Desktop y de la configuración de tu administrador. Consulta [SSH remote sessions in Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/ssh-remote-sessions).

1098 1100 

1099Con el cliente integrado, aún puedes ingresar un nombre de `Host` de tu configuración de SSH en el campo **SSH host** si tu `PATH` tiene un comando `ssh`, con estos límites:1101Con el cliente integrado, aún puedes ingresar un nombre de `Host` de tu configuración de SSH en el campo **SSH host** si tu `PATH` tiene un comando `ssh`, con estos límites:

1100 1102 

1101* **Ajustes de la entrada**: Desktop toma `HostName`, `User`, `Port` e `IdentityFile`. También toma `ProxyCommand` si hay un shell `sh` en tu `PATH`.1103* **Ajustes de la entrada**: Desktop toma `HostName`, `User`, `Port`, `IdentityFile` y `ConnectTimeout`. También toma `ProxyCommand` si hay un shell `sh` en tu `PATH`.

1102* **SSH key (optional)**: deja este campo vacío para conservar el `IdentityFile` de la entrada, porque un archivo de clave que elijas aquí reemplaza al `IdentityFile`1104* **SSH key (optional)**: deja este campo vacío para conservar el `IdentityFile` de la entrada, porque un archivo de clave que elijas aquí reemplaza al `IdentityFile`

1103* **`CertificateFile` y `ProxyJump`**: Desktop ignora `CertificateFile`, y la conexión falla si la entrada establece `ProxyJump`. Para usar cualquiera de los dos ajustes, [conéctate a través del cliente OpenSSH](#use-your-ssh-configuration).1105* **`CertificateFile` y `ProxyJump`**: Desktop ignora `CertificateFile`, y la conexión falla si la entrada establece `ProxyJump`. Para usar cualquiera de los dos ajustes, [conéctate a través del cliente OpenSSH](#use-your-ssh-configuration).

1104 1106 


1198 1200 

1199##### Aumentar el tiempo de espera de la conexión SSH1201##### Aumentar el tiempo de espera de la conexión SSH

1200 1202 

1201Si tu configuración SSH no establece ningún `ConnectTimeout` para el host, Desktop le da a `ssh` 30 segundos para conectarse. A través de un host de salto o un `ProxyCommand`, ese tiempo incluye el tiempo que tarda la ruta en conectarse. Si tu ruta necesita más tiempo, agrega un valor más alto a la entrada:1203Si se agota el tiempo de espera de tu sesión mientras se conecta a través de un jump host o un `ProxyCommand`, aumenta `ConnectTimeout` en la entrada de la máquina remota en tu `~/.ssh/config`. Usa más de 90 segundos. Suma cualquier tiempo que un jump host o un `ProxyCommand` te espere, por ejemplo en un prompt de inicio de sesión o para una notificación push en el teléfono:

1202 1204 

1203```text ~/.ssh/config theme={null}1205```text ~/.ssh/config theme={null}

1204Host devbox1206Host devbox


1210 1212 

1211`ssh` usa el primer valor que encuentra para un host, así que mantén la entrada por encima de cualquier entrada `Host *` que establezca `ConnectTimeout`. Para confirmarlo, ejecuta `ssh -G devbox` en una terminal de tu computadora. Su salida incluye `connecttimeout 120`. Después de cambiar el valor, cierra y vuelve a abrir Desktop.1213`ssh` usa el primer valor que encuentra para un host, así que mantén la entrada por encima de cualquier entrada `Host *` que establezca `ConnectTimeout`. Para confirmarlo, ejecuta `ssh -G devbox` en una terminal de tu computadora. Su salida incluye `connecttimeout 120`. Después de cambiar el valor, cierra y vuelve a abrir Desktop.

1212 1214 

1213Si la propia máquina remota espera una aprobación en tu teléfono, apruébala en menos de 45 segundos, sea cual sea el `ConnectTimeout` que establezcas. No puedes aumentar este límite, porque Desktop establece `ServerAliveInterval` y `ServerAliveCountMax` por sí mismo, y entonces `ssh` cierra un inicio de sesión en el que la máquina remota no envía nada durante ese tiempo. Si en cambio es un host de salto o un `ProxyCommand` el que te espera, aumenta `ConnectTimeout` en la entrada de la máquina remota para cubrir ese tiempo.1215Si tu configuración SSH no establece ningún `ConnectTimeout` para el host, Desktop le da a `ssh` 30 segundos para conectarse. A través de un jump host o un `ProxyCommand`, ese tiempo incluye el que tarda la ruta en conectarse.

1216 

1217| `ConnectTimeout` | Conexión | Tiempo que tienes |

1218| - | - | - |

1219| Sin establecer | Inicias una sesión a través de un jump host o un `ProxyCommand`, con Claude Desktop v4.4212.0 o posterior en macOS o Linux | 30 segundos, y luego un segundo intento con 90 segundos. Si Desktop te mostró una solicitud durante el primer intento, no tienes segundo intento. El tiempo en un prompt de inicio de sesión que Desktop muestra para un host `ProxyJump` no cuenta. Las demás esperas en la ruta sí cuentan. |

1220| Sin establecer | Desktop en Windows o una versión anterior, una máquina remota que establece `MaxSessions 1`, o una reconexión que Desktop inicia por su cuenta | 30 segundos. Cuenta cada espera en la ruta. |

1221| Establecido | Cada conexión y reconexión | El valor que estableces. Cuenta cada espera en la ruta. |

1222 

1223Si la propia máquina remota espera una aprobación en tu teléfono, apruébala en menos de 45 segundos, sin importar el `ConnectTimeout` que establezcas. No puedes aumentar este límite, porque Desktop establece `ServerAliveInterval` y `ServerAliveCountMax` por sí mismo, y `ssh` cierra entonces un inicio de sesión en el que la máquina remota no envía nada durante ese tiempo.

1214 1224 

1215##### Corregir un bloque `Match host` que solo aplica Desktop1225##### Corregir un bloque `Match host` que solo aplica Desktop

1216 1226 


1334>1344>

1335> Las ediciones siguen fallando en algunos casos, entre ellos estos:1345> Las ediciones siguen fallando en algunos casos, entre ellos estos:

1336>1346>

1337> * **Cliente SSH integrado**: Desktop lo usa, por ejemplo en una instalación de Microsoft Store, en una computadora Windows sin OpenSSH 9.4 o posterior de Microsoft, o de forma predeterminada en Windows con un proveedor externo1347> * **Cliente SSH integrado**: Desktop lo usa, por ejemplo en una instalación de Microsoft Store, o en una computadora con Windows sin OpenSSH de Microsoft 9.4 o posterior

1338> * **Ubicación del repositorio**: el repositorio es tu directorio home, una carpeta por encima de él o `~/.claude`1348> * **Ubicación del repositorio**: el repositorio es tu directorio home, una carpeta por encima de él o `~/.claude`

1339> * **Rutas de macOS**: en una máquina remota macOS, el repositorio está bajo `/Volumes`, o un nombre de carpeta en la ruta del repositorio o del worktree tiene un `~` o un carácter no ASCII1349> * **Rutas de macOS**: en una máquina remota macOS, el repositorio está bajo `/Volumes`, o un nombre de carpeta en la ruta del repositorio o del worktree tiene un `~` o un carácter no ASCII

1340> * **Restricciones de carpetas**: tu organización restringe qué carpetas pueden usar las sesiones1350> * **Restricciones de carpetas**: tu organización restringe qué carpetas pueden usar las sesiones


1369* **Contraseña recordada**: una contraseña que dejas que Desktop recuerde también funciona sin pedirte nada, pero para una ausencia larga es preferible una clave que tenga tu agente SSH. Si los inicios de sesión con esa contraseña se interrumpen o se cuelgan, Desktop puede dejar de intentar volver a conectarse y esperarte.1379* **Contraseña recordada**: una contraseña que dejas que Desktop recuerde también funciona sin pedirte nada, pero para una ausencia larga es preferible una clave que tenga tu agente SSH. Si los inicios de sesión con esa contraseña se interrumpen o se cuelgan, Desktop puede dejar de intentar volver a conectarse y esperarte.

1370* **Cualquier otra solicitud**: si la máquina remota pide cualquier otra cosa, como un código de un solo uso, puedes recibir una notificación en tu computadora. Haz clic en la notificación, o envía un mensaje en la sesión, y Desktop muestra la solicitud.1380* **Cualquier otra solicitud**: si la máquina remota pide cualquier otra cosa, como un código de un solo uso, puedes recibir una notificación en tu computadora. Haz clic en la notificación, o envía un mensaje en la sesión, y Desktop muestra la solicitud.

1371 1381 

1372> [accordion] Si un host de salto pide un inicio de sesión, la interrupción es larga, falta salida o el proceso ya no existe1382> [accordion] Si un jump host pide un inicio de sesión, la interrupción es larga, un mensaje no se envía, falta salida o el proceso desapareció

1373>1383>

1374> * **Host de salto, las notificaciones push se detienen mientras no estás**: esto puede ocurrir con Desktop en macOS o Linux cuando nadie responde al inicio de sesión de un host de salto, por ejemplo una notificación push a un teléfono. Entonces Desktop deja de intentar volver a conectarse mientras no hay nadie en tu computadora. Cuando desbloqueas o usas la computadora, puedes recibir otra notificación push, porque Desktop puede volver a intentarlo. Después de tres intentos sin respuesta, espera hasta que reintentes o envíes un mensaje.1384> * **Host de salto, las notificaciones push se detienen mientras no estás**: esto puede ocurrir con Desktop en macOS o Linux cuando nadie responde al inicio de sesión de un host de salto, por ejemplo una notificación push a un teléfono. Entonces Desktop deja de intentar volver a conectarse mientras no hay nadie en tu computadora. Cuando desbloqueas o usas la computadora, puedes recibir otra notificación push, porque Desktop puede volver a intentarlo. Después de tres intentos sin respuesta, espera hasta que reintentes o envíes un mensaje.

1375> * **Host de salto, las notificaciones push siguen llegando**: donde Desktop no puede saber que nadie responde, como con Desktop en Windows, sigue intentándolo mientras tenga un proceso al que volver a unirse, se siga ejecutando ese proceso o no. Puedes recibir otra notificación push con cada intento. Para terminar los intentos, cierra Desktop, lo que [puede costarte la tarea en ejecución](#reopen-a-session-after-you-quit-desktop).1385> * **Host de salto, las notificaciones push siguen llegando**: donde Desktop no puede saber que nadie responde, como con Desktop en Windows, sigue intentándolo mientras tenga un proceso al que volver a unirse, se siga ejecutando ese proceso o no. Puedes recibir otra notificación push con cada intento. Para terminar los intentos, cierra Desktop, lo que [puede costarte la tarea en ejecución](#reopen-a-session-after-you-quit-desktop).

1376> * **Interrupción larga**: Desktop reduce el ritmo a aproximadamente un intento cada cinco minutos. Para volver a conectarte antes, reintenta en la sesión o envía un mensaje, que Desktop entrega una vez que está conectado.1386> * **Interrupción larga**: Desktop reduce el ritmo a aproximadamente un intento cada cinco minutos. Para reconectarte antes, reintenta en la sesión o envía un mensaje. Desktop intenta entregar el mensaje una vez que está conectado.

1387> * **Mensaje no enviado**: la fila `Your organization's settings haven't loaded, so your message to <host> wasn't sent. Retry to send it.` debajo de tu mensaje significa que Desktop se reconectó y retuvo tu mensaje, porque la configuración de tu organización todavía no se había cargado. Selecciona **Retry** para enviar el mensaje ahora. Si no haces nada, Desktop lo vuelve a intentar una vez que se carga la configuración.

1377> * **Salida faltante**: mientras Desktop está desconectado, el programa auxiliar guarda la salida más reciente de Claude Code de cada sesión en un búfer de 16 MiB y descarta la salida más antigua. Después de que Desktop vuelve a conectarse, la sesión puede mostrar `Loading recent output from <host>…`. Si Desktop no puede cargar toda la salida, ves la fila `Some output produced while you were disconnected may be missing here.` La fila no significa que la tarea se haya detenido.1388> * **Salida faltante**: mientras Desktop está desconectado, el programa auxiliar guarda la salida más reciente de Claude Code de cada sesión en un búfer de 16 MiB y descarta la salida más antigua. Después de que Desktop vuelve a conectarse, la sesión puede mostrar `Loading recent output from <host>…`. Si Desktop no puede cargar toda la salida, ves la fila `Some output produced while you were disconnected may be missing here.` La fila no significa que la tarea se haya detenido.

1378> * **Proceso desaparecido**: el proceso terminó mientras Desktop estaba desconectado, como cuando la máquina remota se reinicia. Desktop puede entonces iniciar uno nuevo a partir del historial guardado de la conversación y decirle a Claude que continúe la tarea. Si la tarea sigue detenida, envía un mensaje. Con un proveedor externo, actualiza a Claude Desktop v2.42304.0 o posterior, porque las versiones anteriores nunca continúan la tarea por sí solas.1389> * **Proceso desaparecido**: el proceso terminó mientras Desktop estaba desconectado, como cuando la máquina remota se reinicia. Desktop puede entonces iniciar uno nuevo a partir del historial guardado de la conversación y decirle a Claude que continúe la tarea. Si la tarea sigue detenida, envía un mensaje. Con un proveedor externo, actualiza a Claude Desktop v2.42304.0 o posterior, porque las versiones anteriores nunca continúan la tarea por sí solas.

1379 1390 


2290| `<host> is out of disk space` | `[ENOSPC]` o `[EDQUOT]` | Libera espacio o cuota en la máquina remota, en tu directorio home o en `/tmp` |2301| `<host> is out of disk space` | `[ENOSPC]` o `[EDQUOT]` | Libera espacio o cuota en la máquina remota, en tu directorio home o en `/tmp` |

2291| `Free up disk space on this computer` | `[ENOSPC]` o `[EDQUOT]`, en un mensaje que comienza con `Couldn't prepare the deploy locally` | Libera espacio en tu computadora |2302| `Free up disk space on this computer` | `[ENOSPC]` o `[EDQUOT]`, en un mensaje que comienza con `Couldn't prepare the deploy locally` | Libera espacio en tu computadora |

2292| `Claude Code won't start on <host>` | `[CLI_UNRESPONSIVE]` | Espera un minuto y vuelve a intentarlo. Si sigue fallando, ejecuta en la máquina remota el comando que menciona el mensaje para ver si Claude Code responde allí. |2303| `Claude Code won't start on <host>` | `[CLI_UNRESPONSIVE]` | Espera un minuto y vuelve a intentarlo. Si sigue fallando, ejecuta en la máquina remota el comando que menciona el mensaje para ver si Claude Code responde allí. |

2304| `Ask <host>'s administrator to let Claude's server run` | `[SERVER_NOT_RUNNABLE]` o `[SETUP_DIR_NOEXEC]` | Pide al administrador de la máquina remota que permita ejecutar programas desde `~/.claude/remote/` en esa máquina, como indican los [requisitos](#remote-machine-requirements-for-ssh-sessions) |

2305| `Try again in a few minutes` | `[DOWNLOAD_BUSY]` | Espera unos minutos y vuelve a intentarlo. El servidor de descargas de Anthropic o un proxy de la red de tu computadora informó que está ocupado. Si la tarjeta sigue apareciendo, pregunta al administrador de esa red si un proxy limita las descargas. |

2293 2306 

2294Para cualquier otro mensaje, revisa los [requisitos de la máquina remota](#remote-machine-requirements-for-ssh-sessions).2307Para cualquier otro mensaje, revisa los [requisitos de la máquina remota](#remote-machine-requirements-for-ssh-sessions).

2295 2308 

env-vars.md +4 −5

Details

126> * `CLAUDE_CODE_TMUX_TRUECOLOR`126> * `CLAUDE_CODE_TMUX_TRUECOLOR`

127> * `IS_DEMO`127> * `IS_DEMO`

128>128>

129> 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.129> La fila de cada variable también indica su propia regla.

130 130 

131| Variable | Propósito |131| Variable | Propósito |

132| :- | :- |132| :- | :- |


239| `CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF` | Establécela en `1` para detener el trabajo en curso de una [sesión en segundo plano](https://code.claude.com/docs/es/agent-view.md) cuando el [supervisor](https://code.claude.com/docs/es/agent-view.md#the-supervisor-process) detiene, reinicia o actualiza el proceso de esa sesión, en lugar de traspasarlo al siguiente proceso de la sesión. Ese trabajo son los comandos de shell en segundo plano en ejecución de la sesión, además de los subagentes en segundo plano a partir de v2.1.198. Solo afecta a ese traspaso: pasar una sesión a segundo plano con `←` o [`/background`](https://code.claude.com/docs/es/agent-view#from-inside-a-session) sigue trasladando el trabajo en segundo plano en curso. Requiere Claude Code v2.1.196 o posterior |239| `CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF` | Establécela en `1` para detener el trabajo en curso de una [sesión en segundo plano](https://code.claude.com/docs/es/agent-view.md) cuando el [supervisor](https://code.claude.com/docs/es/agent-view.md#the-supervisor-process) detiene, reinicia o actualiza el proceso de esa sesión, en lugar de traspasarlo al siguiente proceso de la sesión. Ese trabajo son los comandos de shell en segundo plano en ejecución de la sesión, además de los subagentes en segundo plano a partir de v2.1.198. Solo afecta a ese traspaso: pasar una sesión a segundo plano con `←` o [`/background`](https://code.claude.com/docs/es/agent-view#from-inside-a-session) sigue trasladando el trabajo en segundo plano en curso. Requiere Claude Code v2.1.196 o posterior |

240| `CLAUDE_CODE_DISABLE_BG_SHELL_PRESSURE_REAP` | Establécela en `1` para evitar que Claude Code termine los [comandos de shell en segundo plano](https://code.claude.com/docs/es/interactive-mode.md#background-bash-commands) bajo presión de memoria. De forma predeterminada, en macOS y Linux, Claude Code termina los shells en segundo plano cuando el sistema operativo informa una presión de memoria crítica y la sesión ha estado inactiva durante 30 minutos sin ningún turno ni subagente en ejecución. Windows no tiene señal de presión de memoria, por lo que esta variable no tiene efecto allí. Requiere Claude Code v2.1.193 o posterior |240| `CLAUDE_CODE_DISABLE_BG_SHELL_PRESSURE_REAP` | Establécela en `1` para evitar que Claude Code termine los [comandos de shell en segundo plano](https://code.claude.com/docs/es/interactive-mode.md#background-bash-commands) bajo presión de memoria. De forma predeterminada, en macOS y Linux, Claude Code termina los shells en segundo plano cuando el sistema operativo informa una presión de memoria crítica y la sesión ha estado inactiva durante 30 minutos sin ningún turno ni subagente en ejecución. Windows no tiene señal de presión de memoria, por lo que esta variable no tiene efecto allí. Requiere Claude Code v2.1.193 o posterior |

241| `CLAUDE_CODE_DISABLE_BUNDLED_SKILLS` | Establécela en `1` para desactivar los [skills](https://code.claude.com/docs/es/skills.md) y flujos de trabajo incluidos con Claude Code: los skills y flujos de trabajo incluidos se eliminan por completo, mientras que los comandos integrados como `/init` se pueden seguir escribiendo pero se ocultan al modelo. `/doctor` se puede seguir escribiendo como los comandos integrados; ocúltalo con `DISABLE_DOCTOR_COMMAND` en su lugar. Los skills de plugins, `.claude/skills/` y `.claude/commands/` no se ven afectados. Equivale al ajuste [`disableBundledSkills`](https://code.claude.com/docs/es/settings-reference#disablebundledskills) |241| `CLAUDE_CODE_DISABLE_BUNDLED_SKILLS` | Establécela en `1` para desactivar los [skills](https://code.claude.com/docs/es/skills.md) y flujos de trabajo incluidos con Claude Code: los skills y flujos de trabajo incluidos se eliminan por completo, mientras que los comandos integrados como `/init` se pueden seguir escribiendo pero se ocultan al modelo. `/doctor` se puede seguir escribiendo como los comandos integrados; ocúltalo con `DISABLE_DOCTOR_COMMAND` en su lugar. Los skills de plugins, `.claude/skills/` y `.claude/commands/` no se ven afectados. Equivale al ajuste [`disableBundledSkills`](https://code.claude.com/docs/es/settings-reference#disablebundledskills) |

242| `CLAUDE_CODE_DISABLE_CFC_PROMPT` | Establécela en `1` para mantener disponibles las herramientas de navegador de [Claude in Chrome](https://code.claude.com/docs/es/chrome.md) mientras se omite la sección de Chrome del prompt del sistema y el [skill incluido](https://code.claude.com/docs/es/skills.md#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 |242| `CLAUDE_CODE_DISABLE_CFC_PROMPT` | Para hosts que integran Claude Code y proporcionan su propia guía para el navegador. Establécela en `1` para mantener disponibles las herramientas de navegador de [Claude in Chrome](https://code.claude.com/docs/es/chrome.md) y omitir la sección de Chrome del prompt del sistema y el [skill incluido](https://code.claude.com/docs/es/skills.md#bundled-skills) `/claude-in-chrome`. En VS Code, la extensión en v2.1.314 o posterior también omite las instrucciones de Claude in Chrome de los mensajes de una sesión. Requiere Claude Code v2.1.257 o posterior |

243| `CLAUDE_CODE_DISABLE_CLAUDE_MDS` | Establécela en `1` para evitar cargar cualquier archivo de memoria CLAUDE.md en el contexto, incluidos los archivos de memoria de usuario, de proyecto y de memoria automática |243| `CLAUDE_CODE_DISABLE_CLAUDE_MDS` | Establécela en `1` para evitar cargar cualquier archivo de memoria CLAUDE.md en el contexto, incluidos los archivos de memoria de usuario, de proyecto y de memoria automática |

244| `CLAUDE_CODE_DISABLE_CRON` | Establécela en `1` para desactivar las [tareas programadas con alcance de sesión](https://code.claude.com/docs/es/scheduled-tasks.md). El skill `/loop` y las herramientas 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 sesión |244| `CLAUDE_CODE_DISABLE_CRON` | Establécela en `1` para desactivar las [tareas programadas con alcance de sesión](https://code.claude.com/docs/es/scheduled-tasks.md). El skill `/loop` y las herramientas 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 sesión |

245| `CLAUDE_CODE_DISABLE_DANGEROUS_RM_TIMEOUT` | Establécela en `1` para desactivar el [límite de tiempo y las denegaciones](https://code.claude.com/docs/es/permission-modes.md#time-limits-and-denials-in-auto-and-bypasspermissions-modes) de `auto` y `bypassPermissions` en las eliminaciones de rutas críticas. En ese caso, estas eliminaciones pasan al clasificador en el modo `auto` y reciben una solicitud sin límite de tiempo en el modo `bypassPermissions` siempre que Claude Code pueda mostrar una. Establécela en el entorno que inicia Claude Code, ya que Claude Code ignora una copia entregada mediante un bloque `env` de la configuración. Requiere Claude Code v2.1.281 o posterior |245| `CLAUDE_CODE_DISABLE_DANGEROUS_RM_TIMEOUT` | Establécela en `1` para desactivar el [límite de tiempo y las denegaciones](https://code.claude.com/docs/es/permission-modes.md#time-limits-and-denials-in-auto-and-bypasspermissions-modes) de `auto` y `bypassPermissions` en las eliminaciones de rutas críticas. En ese caso, estas eliminaciones pasan al clasificador en el modo `auto` y reciben una solicitud sin límite de tiempo en el modo `bypassPermissions` siempre que Claude Code pueda mostrar una. Establécela en el entorno que inicia Claude Code, ya que Claude Code ignora una copia entregada mediante un bloque `env` de la configuración. Requiere Claude Code v2.1.281 o posterior |


307| `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 Git Bash automáticamente como si no estuviera establecida, y registra una advertencia visible con `--debug`. Antes de la v2.1.219, Claude Code terminaba 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](https://code.claude.com/docs/es/setup.md#set-up-on-windows) |307| `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 Git Bash automáticamente como si no estuviera establecida, y registra una advertencia visible con `--debug`. Antes de la v2.1.219, Claude Code terminaba 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](https://code.claude.com/docs/es/setup.md#set-up-on-windows) |

308| `CLAUDE_CODE_GLOB_HIDDEN` | Establécela en `false` para excluir los dotfiles de los resultados cuando Claude invoca la [herramienta Glob](https://code.claude.com/docs/es/tools-reference.md#glob-tool-behavior). Se incluyen de forma predeterminada. No afecta al autocompletado de archivos con `@`, a `ls`, a Grep ni a Read |308| `CLAUDE_CODE_GLOB_HIDDEN` | Establécela en `false` para excluir los dotfiles de los resultados cuando Claude invoca la [herramienta Glob](https://code.claude.com/docs/es/tools-reference.md#glob-tool-behavior). Se incluyen de forma predeterminada. No afecta al autocompletado de archivos con `@`, a `ls`, a Grep ni a Read |

309| `CLAUDE_CODE_GLOB_NO_IGNORE` | Establécela en `false` para que la [herramienta Glob](https://code.claude.com/docs/es/tools-reference.md#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`](https://code.claude.com/docs/es/settings-reference#respectgitignore) |309| `CLAUDE_CODE_GLOB_NO_IGNORE` | Establécela en `false` para que la [herramienta Glob](https://code.claude.com/docs/es/tools-reference.md#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`](https://code.claude.com/docs/es/settings-reference#respectgitignore) |

310| `CLAUDE_CODE_GLOB_TIMEOUT_SECONDS` | Tiempo de espera en segundos para el descubrimiento de archivos de la herramienta Glob. El valor predeterminado es 20 segundos en la mayoría de las plataformas y 60 segundos en WSL |310| `CLAUDE_CODE_GLOB_TIMEOUT_SECONDS` | Tiempo de espera en segundos para las búsquedas de las herramientas [Glob](https://code.claude.com/docs/es/tools-reference.md#glob-tool-behavior) y Grep. El valor predeterminado es de 20 segundos en la mayoría de las plataformas y de 60 segundos en WSL |

311| `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](https://code.claude.com/docs/es/goal.md#background-work-defers-evaluation). Valor predeterminado: `30`. Establécela en `0` para desactivar las revisiones. Indica minutos enteros con dígitos simples, como máximo `10080`, que es una semana. Claude Code trata cualquier otro valor como no establecido y usa el predeterminado. Requiere Claude Code v2.1.234 o posterior |311| `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](https://code.claude.com/docs/es/goal.md#background-work-defers-evaluation). Valor predeterminado: `30`. Establécela en `0` para desactivar las revisiones. Indica minutos enteros con dígitos simples, como máximo `10080`, que es una semana. Claude Code trata cualquier otro valor como no establecido y usa el predeterminado. Requiere Claude Code v2.1.234 o posterior |

312| `CLAUDE_CODE_GZIP_REQUEST_BODIES` | Establécela en `0` para desactivar la compresión gzip de los cuerpos de las solicitudes a la API de Claude, de telemetría y de publicación de [artefactos](https://code.claude.com/docs/es/artifacts.md) enviadas a `api.anthropic.com`. De forma predeterminada, Claude Code comprime los cuerpos de solicitud grandes en conexiones directas y omite la compresión cuando envías solicitudes a través de un proxy, configuras un certificado de cliente o estableces `NODE_EXTRA_CA_CERTS`. Usa `0` si un [proxy de inspección TLS](https://code.claude.com/docs/es/network-config.md#ca-certificate-store) que Claude Code no puede detectar maneja mal las solicitudes comprimidas |312| `CLAUDE_CODE_GZIP_REQUEST_BODIES` | Establécela en `0` para desactivar la compresión gzip de los cuerpos de las solicitudes a la API de Claude, de telemetría y de publicación de [artefactos](https://code.claude.com/docs/es/artifacts.md) enviadas a `api.anthropic.com`. De forma predeterminada, Claude Code comprime los cuerpos de solicitud grandes en conexiones directas y omite la compresión cuando envías solicitudes a través de un proxy, configuras un certificado de cliente o estableces `NODE_EXTRA_CA_CERTS`. Usa `0` si un [proxy de inspección TLS](https://code.claude.com/docs/es/network-config.md#ca-certificate-store) que Claude Code no puede detectar maneja mal las solicitudes comprimidas |

313| `CLAUDE_CODE_HIDE_CWD` | Establécela en `1` para ocultar el directorio de trabajo en el logotipo de inicio. Útil para compartir pantalla o grabaciones en las que la ruta expone tu nombre de usuario del sistema operativo |313| `CLAUDE_CODE_HIDE_CWD` | Establécela en `1` para ocultar el directorio de trabajo en el logotipo de inicio. Útil para compartir pantalla o grabaciones en las que la ruta expone tu nombre de usuario del sistema operativo |


469| `ENABLE_PROMPT_CACHING_1H_BEDROCK` | Obsoleta. Usa `ENABLE_PROMPT_CACHING_1H` en su lugar. No tiene efecto en las sesiones de [Claude apps gateway](https://code.claude.com/docs/es/claude-apps-gateway), incluso cuando el gateway enruta a Amazon Bedrock |469| `ENABLE_PROMPT_CACHING_1H_BEDROCK` | Obsoleta. Usa `ENABLE_PROMPT_CACHING_1H` en su lugar. No tiene efecto en las sesiones de [Claude apps gateway](https://code.claude.com/docs/es/claude-apps-gateway), incluso cuando el gateway enruta a Amazon Bedrock |

470| `ENABLE_TOOL_SEARCH` | Controla [MCP Tool Search](https://code.claude.com/docs/es/mcp.md#scale-with-mcp-tool-search). Sin definir o `true` difiere las herramientas MCP, excepto en los [casos que mantienen desactivada la búsqueda de herramientas](https://code.claude.com/docs/es/mcp.md#configure-tool-search). `auto` activa la búsqueda de herramientas una vez que las definiciones alcanzan el 10 % de la ventana de contexto. `auto:N` establece un umbral personalizado, como `auto:5` para el 5 %. `false` carga todas las herramientas por adelantado. Si un gateway rechaza la búsqueda de herramientas, consulta [Búsqueda de herramientas a través de un gateway de LLM](https://code.claude.com/docs/es/mcp.md#tool-search-through-a-gateway) |470| `ENABLE_TOOL_SEARCH` | Controla [MCP Tool Search](https://code.claude.com/docs/es/mcp.md#scale-with-mcp-tool-search). Sin definir o `true` difiere las herramientas MCP, excepto en los [casos que mantienen desactivada la búsqueda de herramientas](https://code.claude.com/docs/es/mcp.md#configure-tool-search). `auto` activa la búsqueda de herramientas una vez que las definiciones alcanzan el 10 % de la ventana de contexto. `auto:N` establece un umbral personalizado, como `auto:5` para el 5 %. `false` carga todas las herramientas por adelantado. Si un gateway rechaza la búsqueda de herramientas, consulta [Búsqueda de herramientas a través de un gateway de LLM](https://code.claude.com/docs/es/mcp.md#tool-search-through-a-gateway) |

471| `FORCE_AUTOUPDATE_PLUGINS` | Establécelo en `1` para forzar las actualizaciones automáticas de plugins incluso cuando el actualizador automático principal está deshabilitado mediante `DISABLE_AUTOUPDATER` |471| `FORCE_AUTOUPDATE_PLUGINS` | Establécelo en `1` para forzar las actualizaciones automáticas de plugins incluso cuando el actualizador automático principal está deshabilitado mediante `DISABLE_AUTOUPDATER` |

472| `FORCE_HYPERLINK` | Establécelo en `1` para habilitar 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 deshabilitarlos. Cuando no está establecida, Claude Code habilita 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` habilita los hipervínculos en lugar de deshabilitarlos. La [insignia de PR o merge request](https://code.claude.com/docs/es/interactive-mode.md#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. Establécelo en `0` para mostrar la insignia como texto sin formato |472| `FORCE_HYPERLINK` | Establécela en `1` para habilitar hipervínculos OSC 8 en los que se puede hacer clic cuando tu terminal los admite pero no se detecta automáticamente. Cuando no está establecida, Claude Code habilita la mayoría de los hipervínculos solo cuando detecta que la terminal los admite. La [insignia de PR o merge request](https://code.claude.com/docs/es/interactive-mode.md#pr-review-status) del pie y las URL largas de inicio de sesión son enlaces en cualquier caso. Establece `0`, `false`, `no` u `off` para mostrarlos todos como texto sin formato. Antes de v2.1.314, `false`, `no` y `off` habilitaban en cambio los hipervínculos |

473| `FORCE_PROMPT_CACHING_5M` | Establécelo 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` |473| `FORCE_PROMPT_CACHING_5M` | Establécelo en `1` para forzar el TTL de caché de prompts de 5 minutos incluso cuando de otro modo se aplicaría el TTL de 1 hora. Sobrescribe `CLAUDE_CODE_PROMPT_CACHE_TTL`, `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL`, `ENABLE_PROMPT_CACHING_1H` y los ajustes `promptCacheTtl` y `subagentPromptCacheTtl` |

474| `HTTP_PROXY` | Especifica el servidor proxy HTTP para las conexiones de red |474| `HTTP_PROXY` | Especifica el servidor proxy HTTP para las conexiones de red |

475| `HTTPS_PROXY` | Especifica el servidor proxy HTTPS para las conexiones de red |475| `HTTPS_PROXY` | Especifica el servidor proxy HTTPS para las conexiones de red |


586* Obtener [comentarios redactados por Claude](https://code.claude.com/docs/es/tools-reference.md#sendfeedback-tool-behavior), que Claude Code activa mediante un flag obtenido586* Obtener [comentarios redactados por Claude](https://code.claude.com/docs/es/tools-reference.md#sendfeedback-tool-behavior), que Claude Code activa mediante un flag obtenido

587* Hacer que Claude [trate los pegados grandes como texto pegado en lugar de texto escrito](https://code.claude.com/docs/es/terminal-config.md#how-claude-treats-pasted-text); el contenido detrás de un marcador de posición `[Pasted text #N]` llega a Claude sin marcar587* Hacer que Claude [trate los pegados grandes como texto pegado en lugar de texto escrito](https://code.claude.com/docs/es/terminal-config.md#how-claude-treats-pasted-text); el contenido detrás de un marcador de posición `[Pasted text #N]` llega a Claude sin marcar

588* Hacer que Claude Code [excluya las herramientas MCP cuyo esquema de entrada rechazaría la API](https://code.claude.com/docs/es/mcp.md#tools-with-invalid-input-schemas)588* Hacer que Claude Code [excluya las herramientas MCP cuyo esquema de entrada rechazaría la API](https://code.claude.com/docs/es/mcp.md#tools-with-invalid-input-schemas)

589* Hacer que Claude Code [compacte una conversación larga mientras tu sesión de terminal está inactiva](https://code.claude.com/docs/es/settings-reference.md#idlecompaction), poco antes de que caduque una caché de prompts de una hora

590 589 

591### Primera sesión después de una instalación o actualización590### Primera sesión después de una instalación o actualización

592 591 

errors.md +66 −11

Details

59| `Could not resolve authentication method` | [Autenticación](#could-not-resolve-authentication-method) |59| `Could not resolve authentication method` | [Autenticación](#could-not-resolve-authentication-method) |

60| `Invalid API key` | [Autenticación](#invalid-api-key) |60| `Invalid API key` | [Autenticación](#invalid-api-key) |

61| `Your apiKeyHelper script is failing` | [Autenticación](#your-apikeyhelper-script-is-failing) |61| `Your apiKeyHelper script is failing` | [Autenticación](#your-apikeyhelper-script-is-failing) |

62| `Claude Code didn't send your claude.ai login, because the API key helper your administrator set isn't in effect` | [Autenticación](#claude-code-didnt-send-your-claude-ai-login) |

62| `Invalid auth token · Fix external auth token` | [Autenticación](#invalid-request-header-value) |63| `Invalid auth token · Fix external auth token` | [Autenticación](#invalid-request-header-value) |

63| `Invalid ANTHROPIC_CUSTOM_HEADERS · Fix the environment variable` | [Autenticación](#invalid-request-header-value) |64| `Invalid ANTHROPIC_CUSTOM_HEADERS · Fix the environment variable` | [Autenticación](#invalid-request-header-value) |

64| `Invalid request header from the environment · Fix the environment variable` | [Autenticación](#invalid-request-header-value) |65| `Invalid request header from the environment · Fix the environment variable` | [Autenticación](#invalid-request-header-value) |


326| `MCP server "<name>" tool "<tool>" timed out after <N>s. The server asked the user a question, and no answer came before the time limit.` | [Errores de herramientas](#mcp-tool-call-timed-out-with-the-servers-question-unanswered) |327| `MCP server "<name>" tool "<tool>" timed out after <N>s. The server asked the user a question, and no answer came before the time limit.` | [Errores de herramientas](#mcp-tool-call-timed-out-with-the-servers-question-unanswered) |

327| `would be spawned with zero tools — refusing` | [Errores de herramientas](#agent-would-be-spawned-with-zero-tools) |328| `would be spawned with zero tools — refusing` | [Errores de herramientas](#agent-would-be-spawned-with-zero-tools) |

328| `File is covered by a Read deny rule in your permission settings` | [Errores de herramientas](#file-is-covered-by-a-read-deny-rule) |329| `File is covered by a Read deny rule in your permission settings` | [Errores de herramientas](#file-is-covered-by-a-read-deny-rule) |

330| `<path> is outside <dirs>; the permissions.blockWritesOutsideWorkingDirectories setting blocks writes outside the working directories` | [Errores de herramientas](#setting-blocks-writes-outside-the-working-directories) |

331| `<path>: Writes outside the working directories are blocked (permissions.blockWritesOutsideWorkingDirectories)` | [Errores de herramientas](#setting-blocks-writes-outside-the-working-directories) |

332| `Writes to Claude Code settings files are blocked while permissions.blockWritesOutsideWorkingDirectories is on` | [Errores de herramientas](#writes-to-claude-code-settings-files-are-blocked) |

329| `cannot contain null bytes (\0)` | [Errores de herramientas](#path-cannot-contain-null-bytes) |333| `cannot contain null bytes (\0)` | [Errores de herramientas](#path-cannot-contain-null-bytes) |

330| `Path contains null bytes` | [Errores de herramientas](#path-cannot-contain-null-bytes) |334| `Path contains null bytes` | [Errores de herramientas](#path-cannot-contain-null-bytes) |

331| `command contains the invisible character U+FEFF (byte order mark) or U+180E (Mongolian vowel separator), and was not run` | [Errores de herramientas](#command-contains-an-invisible-character) |335| `command contains the invisible character U+FEFF (byte order mark) or U+180E (Mongolian vowel separator), and was not run` | [Errores de herramientas](#command-contains-an-invisible-character) |


548 552 

549* Consulta [status.claude.com](https://status.claude.com), o la página de estado del proveedor nombrada en el mensaje, para ver si hay incidentes activos553* Consulta [status.claude.com](https://status.claude.com), o la página de estado del proveedor nombrada en el mensaje, para ver si hay incidentes activos

550* Espera un minuto y luego envía tu mensaje de nuevo. Tu mensaje original sigue en la conversación, así que para un prompt largo puedes escribir `try again` en lugar de pegarlo completo.554* Espera un minuto y luego envía tu mensaje de nuevo. Tu mensaje original sigue en la conversación, así que para un prompt largo puedes escribir `try again` en lugar de pegarlo completo.

551* Si [`ANTHROPIC_BASE_URL`](https://code.claude.com/docs/es/env-vars) apunta a un [gateway de LLM](https://code.claude.com/docs/es/llm-gateway) y todas las solicitudes fallan de esta manera, comprueba si tu gateway está rechazando los campos de búsqueda de herramientas que Claude Code envía por defecto. Para comprobarlo, establece `ENABLE_TOOL_SEARCH=false` como se describe en [Búsqueda de herramientas a través de un gateway de LLM](https://code.claude.com/docs/es/mcp.md#tool-search-through-a-gateway) y luego vuelve a intentarlo. Antes de v2.1.304, la búsqueda de herramientas estaba desactivada detrás de un gateway a menos que la activaras con `ENABLE_TOOL_SEARCH`.555* Si [`ANTHROPIC_BASE_URL`](https://code.claude.com/docs/es/env-vars) apunta a un [gateway de LLM](https://code.claude.com/docs/es/llm-gateway) y todas las solicitudes fallan de esta manera, comprueba que tu gateway y su upstream acepten los campos de [búsqueda de herramientas](https://code.claude.com/docs/es/mcp.md#tool-search-through-a-gateway). Por defecto, Claude Code envía campos de herramienta `defer_loading` y bloques `tool_reference`, con el encabezado `anthropic-beta` que los habilita. Antes de v2.1.304, la búsqueda de herramientas estaba desactivada detrás de un gateway a menos que la activaras con `ENABLE_TOOL_SEARCH`.

552* Si el error persiste sin ningún incidente publicado, ejecuta `/feedback` para que Anthropic pueda investigar con los detalles de tu solicitud. Consulta [Informar un error](#report-an-error) si `/feedback` no está disponible en tu entorno.556* Si el error persiste sin ningún incidente publicado, ejecuta `/feedback` para que Anthropic pueda investigar con los detalles de tu solicitud. Consulta [Informar un error](#report-an-error) si `/feedback` no está disponible en tu entorno.

553 557 

554### API Error: Repeated 529 Overloaded errors558### API Error: Repeated 529 Overloaded errors


672<model> is temporarily unavailable, so auto mode cannot determine the safety of <tool> right now. Wait a moment and then try this action again.676<model> is temporarily unavailable, so auto mode cannot determine the safety of <tool> right now. Wait a moment and then try this action again.

673```677```

674 678 

675En una sesión interactiva, aparece una fila atenuada `Not run · auto mode's check had no usable answer` debajo de la llamada a herramienta en lugar de este mensaje. Presiona `Ctrl+O` para leer el mensaje en el [visor de transcripciones](https://code.claude.com/docs/es/interactive-mode.md#transcript-viewer). Las denegaciones `gave no verdict` descritas en [The server returned no safety verdict](#the-server-returned-no-safety-verdict) muestran la misma fila. Antes de v2.1.296, el mensaje aparecía debajo de la llamada como un error en rojo.679En una sesión interactiva, aparece una fila atenuada `Not run · auto mode's check had no usable answer` debajo de la llamada a herramienta en lugar de este mensaje. La fila también puede reemplazar un mensaje que indica que [el servidor no dio ningún veredicto](#the-server-returned-no-safety-verdict) o, fuera de una sesión remota, uno que empieza con `Auto mode could not evaluate`. Presiona `Ctrl+O` para leer su mensaje en el [visor de transcripciones](https://code.claude.com/docs/es/interactive-mode.md#transcript-viewer). Antes de v2.1.296, el mensaje aparecía como un error en rojo.

676 680 

677Cuando Claude Code puede determinar la categoría del fallo, la nombra entre paréntesis después de `temporarily unavailable`, por ejemplo `<model> is temporarily unavailable (rate-limited), so auto mode cannot determine the safety of <tool> right now`. Las categorías son `(rate-limited)`, `(overloaded)`, `(server error)`, `(timed out)` y `(connection failed)`. Si `(timed out)` o `(connection failed)` se repite, revisa tu conexión; consulta [Unable to connect to API](#unable-to-connect-to-api). Antes de v2.1.229, el mensaje nunca nombraba una categoría y decía `Wait briefly and then try this action again`.681Cuando Claude Code puede determinar la categoría del fallo, la nombra entre paréntesis después de `temporarily unavailable`, por ejemplo `<model> is temporarily unavailable (rate-limited), so auto mode cannot determine the safety of <tool> right now`. Las categorías son `(rate-limited)`, `(overloaded)`, `(server error)`, `(timed out)` y `(connection failed)`. Si `(timed out)` o `(connection failed)` se repite, revisa tu conexión; consulta [Unable to connect to API](#unable-to-connect-to-api). Antes de v2.1.229, el mensaje nunca nombraba una categoría y decía `Wait briefly and then try this action again`.

678 682 


833* Ejecuta `/usage-credits` para comprar uso adicional en Pro, Max y Ultra, o para solicitarlo a tu administrador en Team y Enterprise. Consulta [créditos de uso para planes de pago](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) para ver cómo se factura esto.837* Ejecuta `/usage-credits` para comprar uso adicional en Pro, Max y Ultra, o para solicitarlo a tu administrador en Team y Enterprise. Consulta [créditos de uso para planes de pago](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) para ver cómo se factura esto.

834* Para actualizar tu plan y obtener límites base más altos, consulta [claude.com/pricing](https://claude.com/pricing)838* Para actualizar tu plan y obtener límites base más altos, consulta [claude.com/pricing](https://claude.com/pricing)

835 839 

836Antes de que se agote una ventana, Claude Code puede advertirte que usaste la mayor parte de ella, con un mensaje como `You've used 85% of your session limit · resets 3:45pm`. Para ver tu asignación restante de forma continua, agrega los campos `rate_limits` a una [línea de estado personalizada](https://code.claude.com/docs/es/statusline.md#rate-limit-usage), o en la aplicación de escritorio haz clic en el [anillo de uso](https://code.claude.com/docs/es/desktop.md#check-usage) junto al selector de modelo.840Antes de que se agote una ventana, Claude Code puede advertirte que usaste la mayor parte de ella, con un mensaje como `You've used 85% of your session limit · resets 3:45pm`. Para ver tu asignación restante de forma continua, agrega los campos `rate_limits` a una [línea de estado personalizada](https://code.claude.com/docs/es/statusline.md#rate-limit-usage), o en la aplicación de escritorio haz clic en el [anillo de uso](https://code.claude.com/docs/es/desktop.md#check-usage).

837 841 

838### Usage credits required for 1M context842### Usage credits required for 1M context

839 843 


1074* Ejecuta `/status` para ver el fallo y confirmar que `apiKeyHelper` es la fuente de credenciales activa. La fila `apiKeyHelper` muestra `Failing` con el detalle del último fallo, como el código de salida y la salida de error del comando, y desaparece después de la siguiente ejecución correcta. Antes de la v2.1.274, `/status` mostraba solo la fuente de credenciales, no el fallo.1078* Ejecuta `/status` para ver el fallo y confirmar que `apiKeyHelper` es la fuente de credenciales activa. La fila `apiKeyHelper` muestra `Failing` con el detalle del último fallo, como el código de salida y la salida de error del comando, y desaparece después de la siguiente ejecución correcta. Antes de la v2.1.274, `/status` mostraba solo la fuente de credenciales, no el fallo.

1075* Cada vez que el comando falla, su código de salida y su salida de error también aparecen en un panel `Authentication` en la terminal. Antes de la v2.1.212, el panel se titulaba `Cloud authentication`.1079* Cada vez que el comando falla, su código de salida y su salida de error también aparecen en un panel `Authentication` en la terminal. Antes de la v2.1.212, el panel se titulaba `Cloud authentication`.

1076 1080 

1081### Claude Code didn't send your claude.ai login

1082 

1083Envía este mensaje completo a tu administrador. Enumera los cambios que puede hacer. El mensaje significa que Claude Code rechazó tu prompt. Mientras uses tu inicio de sesión de claude.ai, Claude Code sigue rechazando prompts, incluso después de reiniciar:

1084 

1085```text theme={null}

1086Claude Code didn't send your claude.ai login, because the API key helper your administrator set isn't in effect. Your organization's managed settings may be overriding it. Ask your administrator to keep the key helper and its API address in effect, to name Anthropic's API address in those managed settings, or to remove the key helper. Run /status to see your setting sources.

1087```

1088 

1089**Qué hacer:**

1090 

1091* Para indicarle a tu administrador qué fuentes administradas tiene tu máquina, ejecuta `/status` en el prompt de Claude Code y copia la [línea `Setting sources`](https://code.claude.com/docs/es/managed-settings#read-the-source-in-/status). Si aparece una línea `Skipped sources`, cópiala también

1092* Si administras la configuración, consulta [por qué el key helper de la máquina no está en vigor](https://code.claude.com/docs/es/server-managed-settings.md#machine-apikeyhelper-not-in-effect)

1093 

1077### Valor de encabezado de solicitud no válido1094### Valor de encabezado de solicitud no válido

1078 1095 

1079Un valor que Claude Code estaba a punto de enviar como encabezado de solicitud contiene un carácter que los encabezados HTTP no pueden transportar: un salto de línea, un byte NUL o un carácter por encima de `U+00FF`, como una comilla tipográfica o un espacio de ancho cero. Claude Code detiene la solicitud antes de enviar nada e indica la variable o el ajuste que debes corregir. La causa habitual es una credencial pegada desde un documento o un chat que traía un carácter invisible o un salto de línea sobrante.1096Un valor que Claude Code estaba a punto de enviar como encabezado de solicitud contiene un carácter que los encabezados HTTP no pueden transportar: un salto de línea, un byte NUL o un carácter por encima de `U+00FF`, como una comilla tipográfica o un espacio de ancho cero. Claude Code detiene la solicitud antes de enviar nada e indica la variable o el ajuste que debes corregir. La causa habitual es una credencial pegada desde un documento o un chat que traía un carácter invisible o un salto de línea sobrante.


1333* Si `/status` muestra solo tu inicio de sesión, ejecuta `/login` una vez. Si la credencial se revocó, un nuevo inicio de sesión la reemplaza.1350* Si `/status` muestra solo tu inicio de sesión, ejecuta `/login` una vez. Si la credencial se revocó, un nuevo inicio de sesión la reemplaza.

1334* Si el mismo mensaje vuelve a aparecer con la misma cuenta de inicio de sesión, la cuenta o la organización ya no está activa. Comprueba la cuenta y la organización que informa `/status`, y pide al administrador de tu organización que restaure el acceso.1351* Si el mismo mensaje vuelve a aparecer con la misma cuenta de inicio de sesión, la cuenta o la organización ya no está activa. Comprueba la cuenta y la organización que informa `/status`, y pide al administrador de tu organización que restaure el acceso.

1335* Si [`ANTHROPIC_BASE_URL`](https://code.claude.com/docs/es/env-vars) apunta a un [gateway de LLM](https://code.claude.com/docs/es/llm-gateway), el texto después de `401` es el mensaje de tu gateway y no el de Anthropic, y `/login` no lo cambia. Corrige en su lugar la credencial que espera tu gateway.1352* Si [`ANTHROPIC_BASE_URL`](https://code.claude.com/docs/es/env-vars) apunta a un [gateway de LLM](https://code.claude.com/docs/es/llm-gateway), el texto después de `401` es el mensaje de tu gateway y no el de Anthropic, y `/login` no lo cambia. Corrige en su lugar la credencial que espera tu gateway.

1336* Si todas las solicitudes fallan con un `401` una vez que tu gateway tiene la credencial que espera, comprueba si el gateway está rechazando los campos de búsqueda de herramientas que Claude Code envía de forma predeterminada. Para comprobarlo, define `ENABLE_TOOL_SEARCH=false` como se describe en [Búsqueda de herramientas a través de un gateway de LLM](https://code.claude.com/docs/es/mcp.md#tool-search-through-a-gateway) y vuelve a intentarlo. Antes de la v2.1.304, la búsqueda de herramientas estaba desactivada detrás de un gateway a menos que la activaras con `ENABLE_TOOL_SEARCH`.1353* Si todas las solicitudes fallan con un `401` una vez que tu gateway tiene la credencial que espera, comprueba que el gateway y su upstream acepten los campos de [búsqueda de herramientas](https://code.claude.com/docs/es/mcp.md#tool-search-through-a-gateway). De forma predeterminada, Claude Code envía campos de herramienta `defer_loading` y bloques `tool_reference`, con el encabezado `anthropic-beta` que los habilita. Antes de la v2.1.304, la búsqueda de herramientas estaba desactivada detrás de un gateway a menos que la activaras con `ENABLE_TOOL_SEARCH`.

1337 1354 

1338### Inicio de sesión expirado1355### Inicio de sesión expirado

1339 1356 


1936* Confirma que puedes alcanzar el host de la API desde el mismo shell ejecutando `curl -I https://api.anthropic.com`. En Windows PowerShell usa `curl.exe -I https://api.anthropic.com` para que no se use el alias integrado `Invoke-WebRequest`.1953* Confirma que puedes alcanzar el host de la API desde el mismo shell ejecutando `curl -I https://api.anthropic.com`. En Windows PowerShell usa `curl.exe -I https://api.anthropic.com` para que no se use el alias integrado `Invoke-WebRequest`.

1937* Si estás detrás de un proxy corporativo, establece `HTTPS_PROXY` antes de iniciar Claude Code y consulta [Configuración de red](https://code.claude.com/docs/es/network-config.md)1954* Si estás detrás de un proxy corporativo, establece `HTTPS_PROXY` antes de iniciar Claude Code y consulta [Configuración de red](https://code.claude.com/docs/es/network-config.md)

1938* Si enrutas a través de un gateway LLM o un relé, establece [`ANTHROPIC_BASE_URL`](https://code.claude.com/docs/es/env-vars) en su dirección. Consulta [Conectar Claude Code a un gateway LLM](https://code.claude.com/docs/es/llm-gateway-connect.md) para la configuración.1955* Si enrutas a través de un gateway LLM o un relé, establece [`ANTHROPIC_BASE_URL`](https://code.claude.com/docs/es/env-vars) en su dirección. Consulta [Conectar Claude Code a un gateway LLM](https://code.claude.com/docs/es/llm-gateway-connect.md) para la configuración.

1939* Si `ANTHROPIC_BASE_URL` ya apunta a tu gateway y cada solicitud termina en `Connection dropped`, verifica si tu gateway está rechazando los campos de búsqueda de herramientas que Claude Code envía de forma predeterminada. Para verificarlo, establece `ENABLE_TOOL_SEARCH=false` como se describe en [Búsqueda de herramientas a través de un gateway LLM](https://code.claude.com/docs/es/mcp.md#tool-search-through-a-gateway) y vuelve a intentarlo. Antes de v2.1.304, la búsqueda de herramientas estaba desactivada detrás de un gateway a menos que la activaras con `ENABLE_TOOL_SEARCH`.1956* Si `ANTHROPIC_BASE_URL` ya apunta a tu gateway y cada solicitud termina en `Connection dropped`, verifica que tu gateway y su servicio upstream acepten los campos de [búsqueda de herramientas](https://code.claude.com/docs/es/mcp.md#tool-search-through-a-gateway). De forma predeterminada, Claude Code envía campos de herramientas `defer_loading` y bloques `tool_reference`, junto con el encabezado `anthropic-beta` que los habilita. Antes de v2.1.304, la búsqueda de herramientas estaba desactivada detrás de un gateway a menos que la activaras con `ENABLE_TOOL_SEARCH`.

1940* Asegúrate de que tu firewall permita los hosts enumerados en [Requisitos de acceso a la red](https://code.claude.com/docs/es/network-config.md#network-access-requirements)1957* Asegúrate de que tu firewall permita los hosts enumerados en [Requisitos de acceso a la red](https://code.claude.com/docs/es/network-config.md#network-access-requirements)

1941* Los fallos intermitentes se [reintentan automáticamente](#automatic-retries)1958* Los fallos intermitentes se [reintentan automáticamente](#automatic-retries)

1942 1959 


2471**Qué hacer:**2488**Qué hacer:**

2472 2489 

2473* Si el mensaje contiene `context_management: Extra inputs are not permitted`, [actualiza Claude Code](https://code.claude.com/docs/es/setup.md#update-claude-code) a v2.1.304 o posterior. Después de actualizar, Claude Code responde a este rechazo enviando la solicitud una vez más sin el campo. Antes de v2.1.304, Claude Code no reintentaba ante este rechazo.2490* Si el mensaje contiene `context_management: Extra inputs are not permitted`, [actualiza Claude Code](https://code.claude.com/docs/es/setup.md#update-claude-code) a v2.1.304 o posterior. Después de actualizar, Claude Code responde a este rechazo enviando la solicitud una vez más sin el campo. Antes de v2.1.304, Claude Code no reintentaba ante este rechazo.

2474* Si el mensaje nombra `defer_loading` o `tool_reference`, actualiza Claude Code o desactiva la [búsqueda de herramientas](https://code.claude.com/docs/es/mcp.md#tool-search-through-a-gateway):2491* Si el mensaje nombra `defer_loading` o `tool_reference`, [actualiza Claude Code](https://code.claude.com/docs/es/setup.md#update-claude-code) a la v2.1.305 o posterior. Claude Code responde entonces a este rechazo [enviando la solicitud una vez más](https://code.claude.com/docs/es/llm-gateway-protocol.md#retry-without-tool-search) sin los campos de búsqueda de herramientas.

2475 * [Actualiza Claude Code](https://code.claude.com/docs/es/setup.md#update-claude-code) a v2.1.305 o posterior. Claude Code entonces responde a este rechazo enviando la solicitud una vez más sin los campos de búsqueda de herramientas.

2476 * Si no puedes actualizar, o el mensaje sigue apareciendo después de hacerlo, establece `ENABLE_TOOL_SEARCH=false` en tu shell o en el [`env` de tu configuración](https://code.claude.com/docs/es/settings-reference#env). Si un archivo de configuración ya establece la variable, cámbiala ahí, ya que ese valor [puede sobrescribir un export del shell](https://code.claude.com/docs/es/settings-reference.md#how-env-values-interact-with-your-shell). Claude Code entonces carga las herramientas MCP por adelantado.

2477* Si tu gateway descarta el encabezado, configúralo para que reenvíe el encabezado `anthropic-beta`. Consulta [transferencia de funciones](https://code.claude.com/docs/es/llm-gateway-protocol.md#feature-pass-through) para saber qué deben reenviar los gateways.2492* Si tu gateway descarta el encabezado, configúralo para que reenvíe el encabezado `anthropic-beta`. Consulta [transferencia de funciones](https://code.claude.com/docs/es/llm-gateway-protocol.md#feature-pass-through) para saber qué deben reenviar los gateways.

2478* Como alternativa, establece [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](https://code.claude.com/docs/es/env-vars) antes de iniciar. [Desactivar las capacidades de versión preliminar](https://code.claude.com/docs/es/llm-gateway-protocol.md#disable-pre-release-capabilities) describe el alcance exacto.2493* Como alternativa, establece [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](https://code.claude.com/docs/es/env-vars) antes de iniciar. [Desactivar las capacidades de versión preliminar](https://code.claude.com/docs/es/llm-gateway-protocol.md#disable-pre-release-capabilities) describe el alcance exacto.

2479 2494 


2552* Usa un alias como `sonnet` u `opus` en lugar de un ID completo con versión. Los alias se resuelven a un valor predeterminado que se mantiene actualizado, así que no quedan obsoletos. Consulta [Configuración del modelo](https://code.claude.com/docs/es/model-config.md).2567* Usa un alias como `sonnet` u `opus` en lugar de un ID completo con versión. Los alias se resuelven a un valor predeterminado que se mantiene actualizado, así que no quedan obsoletos. Consulta [Configuración del modelo](https://code.claude.com/docs/es/model-config.md).

2553* Si el modelo incorrecto sigue reapareciendo en la CLI, hay un ID obsoleto configurado en algún lugar. Revisa los lugares donde puedes establecer un modelo en [orden de prioridad](https://code.claude.com/docs/es/model-config.md#setting-your-model) y elimina el valor obsoleto.2568* Si el modelo incorrecto sigue reapareciendo en la CLI, hay un ID obsoleto configurado en algún lugar. Revisa los lugares donde puedes establecer un modelo en [orden de prioridad](https://code.claude.com/docs/es/model-config.md#setting-your-model) y elimina el valor obsoleto.

2554* Claude Code reporta un inicio de sesión de claude.ai expirado como [Inicio de sesión expirado](#login-expired), no como este error. Antes de v2.1.206, un inicio de sesión expirado que ya no se podía renovar hacía fallar todos los modelos con este error; ejecuta `/login` si ves eso en una versión anterior.2569* Claude Code reporta un inicio de sesión de claude.ai expirado como [Inicio de sesión expirado](#login-expired), no como este error. Antes de v2.1.206, un inicio de sesión expirado que ya no se podía renovar hacía fallar todos los modelos con este error; ejecuta `/login` si ves eso en una versión anterior.

2555* Si [`ANTHROPIC_BASE_URL`](https://code.claude.com/docs/es/env-vars) apunta a un [LLM gateway](https://code.claude.com/docs/es/llm-gateway) y todos los modelos fallan de esta manera, comprueba si tu gateway está rechazando los campos de búsqueda de herramientas que Claude Code envía de forma predeterminada. Para comprobarlo, establece `ENABLE_TOOL_SEARCH=false` como se describe en [Búsqueda de herramientas a través de un LLM gateway](https://code.claude.com/docs/es/mcp.md#tool-search-through-a-gateway) y vuelve a intentarlo. Antes de v2.1.304, la búsqueda de herramientas estaba desactivada detrás de un gateway a menos que la activaras con `ENABLE_TOOL_SEARCH`.2570* Si [`ANTHROPIC_BASE_URL`](https://code.claude.com/docs/es/env-vars) apunta a un [gateway de LLM](https://code.claude.com/docs/es/llm-gateway) y todos los modelos fallan de esta manera, comprueba que tu gateway y su upstream acepten los campos de [búsqueda de herramientas](https://code.claude.com/docs/es/mcp.md#tool-search-through-a-gateway). De forma predeterminada, Claude Code envía campos de herramienta `defer_loading` y bloques `tool_reference`, con el encabezado `anthropic-beta` que los habilita. Antes de la v2.1.304, la búsqueda de herramientas estaba desactivada detrás de un gateway a menos que la activaras con `ENABLE_TOOL_SEARCH`.

2556* Para despliegues en Agent Platform de Google Cloud, consulta [Solución de problemas de Agent Platform de Google Cloud](https://code.claude.com/docs/es/google-vertex-ai.md#troubleshooting).2571* Para despliegues en Agent Platform de Google Cloud, consulta [Solución de problemas de Agent Platform de Google Cloud](https://code.claude.com/docs/es/google-vertex-ai.md#troubleshooting).

2557 2572 

2558### El modelo no es un ID de modelo reconocido2573### El modelo no es un ID de modelo reconocido


4563* Si Claude debería poder modificar el archivo, elimina o restringe la regla de denegación de `Read` en `/permissions` o en la [configuración](https://code.claude.com/docs/es/settings-reference.md#permission-settings)4578* Si Claude debería poder modificar el archivo, elimina o restringe la regla de denegación de `Read` en `/permissions` o en la [configuración](https://code.claude.com/docs/es/settings-reference.md#permission-settings)

4564* Si el archivo debe permanecer intacto, conserva la regla y agrega una regla de denegación de `Edit` para la misma ruta para bloquear también la herramienta NotebookEdit4579* Si el archivo debe permanecer intacto, conserva la regla y agrega una regla de denegación de `Edit` para la misma ruta para bloquear también la herramienta NotebookEdit

4565 4580 

4581### Setting blocks writes outside the working directories

4582 

4583Cuando Claude intenta escribir un archivo y la llamada a herramienta falla con este mensaje, la ruta está fuera de los [directorios de trabajo](https://code.claude.com/docs/es/permissions.md#working-directories) de la sesión y [`permissions.blockWritesOutsideWorkingDirectories`](https://code.claude.com/docs/es/settings-reference#permissions-blockwritesoutsideworkingdirectories) está activado:

4584 

4585```text wrap theme={null}

4586<path> is outside <dirs>; the permissions.blockWritesOutsideWorkingDirectories setting blocks writes outside the working directories. Ask the user to add the directory with /add-dir, or to remove that setting.

4587```

4588 

4589Claude Code rechaza esa escritura en todos los modos de permisos. El rechazo también puede decir:

4590 

4591```text wrap theme={null}

4592<path>: Writes outside the working directories are blocked (permissions.blockWritesOutsideWorkingDirectories). Add the directory with /add-dir, or remove that setting.

4593```

4594 

4595**Qué hacer:**

4596 

4597* Si Claude no debería escribir ahí, no hagas nada

4598* Para permitir que Claude escriba en un directorio existente que contiene la ruta, ejecuta `/add-dir <directory>` en el prompt de Claude Code, o pasa `--add-dir <directory>` al iniciar Claude Code

4599* Si la ruta es un archivo de configuración de Claude Code, como `~/.claude/settings.json`, edítalo tú mismo. Agregar su directorio con `/add-dir` no sirve, porque entonces Claude Code rechaza la escritura [por tratarse de un archivo de configuración](#writes-to-claude-code-settings-files-are-blocked).

4600* Para mantener un directorio con permiso de escritura en todas las sesiones, inclúyelo en [`permissions.additionalDirectories`](https://code.claude.com/docs/es/settings-reference#permissions-additionaldirectories) en tu configuración de usuario o en la configuración administrada

4601* Para desactivar `permissions.blockWritesOutsideWorkingDirectories`, elimínalo de todos los archivos de configuración que lo establecen y luego reinicia Claude Code

4602* Si ninguno de tus archivos de configuración tiene `permissions.blockWritesOutsideWorkingDirectories`, puede provenir de `--settings` o de una aplicación anfitriona. Claude Code también rechaza estas escrituras mientras no puede leer `permissions` en tu [configuración administrada](https://code.claude.com/docs/es/managed-settings.md#keys-that-fail-closed). Consulta a quien inicia o administra la sesión.

4603 

4604### Writes to Claude Code settings files are blocked

4605 

4606Cuando Claude intenta escribir un archivo y la llamada a herramienta falla con este mensaje, Claude Code trata el archivo como uno de sus archivos de configuración y [`permissions.blockWritesOutsideWorkingDirectories`](https://code.claude.com/docs/es/settings-reference#permissions-blockwritesoutsideworkingdirectories) está activado:

4607 

4608```text wrap theme={null}

4609<path>: Writes to Claude Code settings files are blocked while permissions.blockWritesOutsideWorkingDirectories is on, because a settings file can lift that block. While a managed settings folder cannot be resolved, any .json file counts as one.

4610```

4611 

4612**Qué hacer:**

4613 

4614* Para cambiar un ajuste, edita tú mismo el archivo de configuración

4615* Para permitir que Claude vuelva a editar archivos de configuración, elimina `permissions.blockWritesOutsideWorkingDirectories` de todos los archivos de configuración que lo establecen y luego reinicia Claude Code

4616* Si el archivo no es uno de tus archivos de configuración, búscalo entre los demás archivos que Claude Code trata como archivos de configuración:

4617 * **Un archivo que pasaste a `--agents` o `--mcp-config`**: edítalo tú mismo

4618 * **La copia almacenada de la [configuración administrada por el servidor](https://code.claude.com/docs/es/server-managed-settings.md#security-considerations) y los archivos que se guardan con ella**: pídele a un [Owner](https://code.claude.com/docs/es/server-managed-settings.md#access-control) que cambie el ajuste en la configuración administrada por el servidor.

4619 * **Cualquier archivo `.json`, mientras Claude Code no puede determinar a dónde lleva la carpeta [`managed-settings.d/`](https://code.claude.com/docs/es/managed-settings#split-a-file-based-policy-across-teams)**: pídele a tu administrador que revise esa carpeta

4620 

4566### Path cannot contain null bytes4621### Path cannot contain null bytes

4567 4622 

4568El argumento de ruta o patrón de una llamada a una herramienta de archivos contenía un byte nulo, que los sistemas de archivos y las herramientas de búsqueda no pueden aceptar. Read, Write, Edit, NotebookEdit, Glob y Grep verifican esto, y el mensaje nombra la herramienta y el argumento:4623El argumento de ruta o patrón de una llamada a una herramienta de archivos contenía un byte nulo, que los sistemas de archivos y las herramientas de búsqueda no pueden aceptar. Read, Write, Edit, NotebookEdit, Glob y Grep verifican esto, y el mensaje nombra la herramienta y el argumento:


6147En un script o entorno de pruebas que lee stderr, busca coincidencias con el prefijo `[claude-code:unrecognized_model]`. Después del prefijo y un espacio, Claude Code escribe un objeto JSON de una sola línea. Claude Code puede agregarle campos en una versión posterior, así que ignora cualquier campo que no esperes. Escribe al menos estos dos:6202En un script o entorno de pruebas que lee stderr, busca coincidencias con el prefijo `[claude-code:unrecognized_model]`. Después del prefijo y un espacio, Claude Code escribe un objeto JSON de una sola línea. Claude Code puede agregarle campos en una versión posterior, así que ignora cualquier campo que no esperes. Escribe al menos estos dos:

6148 6203 

6149* `model`: la cadena del modelo tal como la configuraste6204* `model`: la cadena del modelo tal como la configuraste

6150* `query_source`: la ruta de solicitud que usó el modelo. Claude Code informa `sdk` para una ejecución con `-p` y un valor que comienza con `agent:` para un subagente.6205* `query_source`: la ruta de solicitud que usó el modelo. Por ejemplo, el valor es `sdk` para la conversación principal de una ejecución con `-p` y comienza con `agent:` para un subagente.

6151 6206 

6152Claude Code escribe la línea en uno de dos lugares, según cómo lo ejecutes:6207Claude Code escribe la línea en uno de dos lugares, según cómo lo ejecutes:

6153 6208 

6154* En [modo no interactivo](https://code.claude.com/docs/es/headless.md) con `-p`, Claude Code la escribe en stderr con cualquier `--output-format`, para que puedas analizar stdout sin filtrar la línea6209* En [modo no interactivo](https://code.claude.com/docs/es/headless.md) con `-p`, Claude Code la escribe en stderr con cualquier `--output-format`, para que puedas analizar stdout sin filtrar la línea

6155* En una sesión interactiva o en una [sesión en segundo plano](https://code.claude.com/docs/es/agent-view.md), Claude Code la escribe en cambio en el registro de depuración; ejecuta con `--debug` para capturarla en `~/.claude/debug/<session-id>.txt`6210* En una sesión interactiva o en una [sesión en segundo plano](https://code.claude.com/docs/es/agent-view.md), Claude Code la escribe en cambio en el registro de depuración; ejecuta con `--debug` para capturarla en `~/.claude/debug/<session-id>.txt`

6156 6211 

6157Claude Code escribe la línea una vez por cadena de modelo y por proceso. Escribe una línea separada para cada ID no reconocido adicional, como uno que usa un [subagente](https://code.claude.com/docs/es/sub-agents.md#choose-a-model) o una [funcionalidad en segundo plano](https://code.claude.com/docs/es/costs.md#background-token-usage).6212Claude Code escribe la línea una vez por ID de modelo y por proceso. Escribe una línea separada para cada ID no reconocido adicional, como uno que usa un [subagente](https://code.claude.com/docs/es/sub-agents.md#choose-a-model) o una [funcionalidad en segundo plano](https://code.claude.com/docs/es/model-config.md#environment-variables).

6158 6213 

6159Claude Code no escribe la línea para los ID de proveedor que resuelve a un modelo que reconoce, como los ID `us.anthropic.claude-...` de Amazon Bedrock, los ID de Agent Platform de Google Cloud con un sufijo de versión `@` y los nombres de despliegue de Microsoft Foundry que contienen un ID de modelo de Claude. Claude Code comprueba el modelo que hay detrás de un [ARN de perfil de inferencia de aplicación](https://code.claude.com/docs/es/amazon-bedrock.md#map-each-model-version-to-an-inference-profile) de Amazon Bedrock en lugar del ARN en sí. No escribe ninguna línea para un ARN que no puede resolver, como uno mal escrito.6214Claude Code no escribe la línea para los ID de proveedor que resuelve a un modelo que reconoce, como los ID `us.anthropic.claude-...` de Amazon Bedrock, los ID de Agent Platform de Google Cloud con un sufijo de versión `@` y los nombres de despliegue de Microsoft Foundry que contienen un ID de modelo de Claude. Claude Code comprueba el modelo que hay detrás de un [ARN de perfil de inferencia de aplicación](https://code.claude.com/docs/es/amazon-bedrock.md#map-each-model-version-to-an-inference-profile) de Amazon Bedrock en lugar del ARN en sí. No escribe ninguna línea para un ARN que no puede resolver, como uno mal escrito.

6160 6215 

fast-mode.md +8 −1

Details

14 14 

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

16 16 

17> [!WARNING]

18>

19> El modo rápido para Opus 4.8 quedó obsoleto el 30 de octubre de 2026 y se eliminará el 30 de noviembre de 2026. Si después de esa fecha Opus 4.8 sigue siendo tu modelo con el modo rápido activado, la API rechaza tus solicitudes. Antes de esa fecha, cambia a Opus 5.5 o desactiva el modo rápido en tu sesión:

20>

21> * **Para mantener el modo rápido**: usa [`/model`](https://code.claude.com/docs/es/model-config#setting-your-model) para cambiar a [Opus 5.5](https://code.claude.com/docs/es/model-config.md#model-aliases), lo que requiere Claude Code v2.1.280 o posterior. El modo rápido permanece activado después del cambio. Si una nueva sesión sigue iniciándose en Opus 4.8, consulta [Una nueva sesión se inicia en un modelo diferente al que elegiste](https://code.claude.com/docs/es/model-config.md#a-new-session-starts-on-a-different-model-than-you-picked).

22> * **Para seguir en Opus 4.8 a velocidad estándar**: ejecuta [`/fast off`](https://code.claude.com/docs/es/commands)

23 

17Opus 4.7 no admite el modo rápido, por lo que cambiar a él desactiva el modo rápido. El modo rápido para Opus 4.7 fue deprecado el 25 de junio de 2026 y se eliminó el 24 de julio de 2026.24Opus 4.7 no admite el modo rápido, por lo que cambiar a él desactiva el modo rápido. El modo rápido para Opus 4.7 fue deprecado el 25 de junio de 2026 y se eliminó el 24 de julio de 2026.

18 25 

19Lo que debes saber:26Lo que debes saber:


88 95 

89* **Pro, Max y Ultra**: pagas el modo rápido desde tus créditos de uso. Ve a [**Settings > Usage**](https://claude.ai/settings/usage) en claude.ai, donde la sección **Usage credits** muestra cuánto has gastado en créditos de uso este mes. Esa cifra incluye el modo rápido pero no lo desglosa por separado.96* **Pro, Max y Ultra**: pagas el modo rápido desde tus créditos de uso. Ve a [**Settings > Usage**](https://claude.ai/settings/usage) en claude.ai, donde la sección **Usage credits** muestra cuánto has gastado en créditos de uso este mes. Esa cifra incluye el modo rápido pero no lo desglosa por separado.

90* **Team y Enterprise**: su organización paga el uso del modo rápido desde sus créditos de uso. Para ver su propio gasto de créditos de uso, ejecute [`/usage`](https://code.claude.com/docs/es/costs#check-your-usage-credits-spend). Para ver dónde su organización ve ese gasto, consulte [Claude para Teams y Enterprise](https://code.claude.com/docs/es/costs.md#claude-for-teams-and-enterprise).97* **Team y Enterprise**: su organización paga el uso del modo rápido desde sus créditos de uso. Para ver su propio gasto de créditos de uso, ejecute [`/usage`](https://code.claude.com/docs/es/costs#check-your-usage-credits-spend). Para ver dónde su organización ve ese gasto, consulte [Claude para Teams y Enterprise](https://code.claude.com/docs/es/costs.md#claude-for-teams-and-enterprise).

91* **Claude Console**: su organización paga el modo rápido junto con el resto de su uso de API. En las páginas [Usage](https://platform.claude.com/usage) y [Cost](https://platform.claude.com/cost) de Console, seleccione **Speed (Research Preview)** en el menú **Group by** para separar el modo rápido del uso de velocidad estándar. Usted ve esa opción solo cuando el rango de fechas seleccionado incluye uso del modo rápido.98* **Claude Console**: tu organización paga el modo rápido junto con el resto de su uso de API. En las páginas [Usage](https://platform.claude.com/usage) y [Cost](https://platform.claude.com/cost) de Console, selecciona **Speed (research preview)** en el menú **Group by** para separar el modo rápido del uso de velocidad estándar. Ves esa opción solo cuando el rango de fechas seleccionado incluye uso del modo rápido.

92 99 

93## Decidir cuándo usar el modo rápido100## Decidir cuándo usar el modo rápido

94 101 

Details

192 192 

193Cuando Claude Code se inicia con Google Cloud's Agent Platform configurado, verifica que los modelos que pretende usar sean accesibles en su proyecto.193Cuando Claude Code se inicia con Google Cloud's Agent Platform configurado, verifica que los modelos que pretende usar sean accesibles en su proyecto.

194 194 

195Si ha fijado una versión de modelo que es más antigua que el valor predeterminado actual de Claude Code, y su proyecto puede invocar la versión más reciente, Claude Code le solicita que actualice la fijación. Aceptar escribe el nuevo ID de modelo en su [archivo de configuración de usuario](https://code.claude.com/docs/es/settings.md) y reinicia Claude Code. Rechazar se recuerda hasta el próximo cambio de versión predeterminada.195Es posible que hayas fijado una versión de modelo más antigua que el valor predeterminado actual de Claude Code. Si tu proyecto puede invocar la versión más reciente, Claude Code te pide que actualices la fijación:

196 

197* **Si aceptas**: Claude Code escribe el nuevo ID de modelo en tu [archivo de configuración de usuario](https://code.claude.com/docs/es/settings.md) y se reinicia

198* **Si rechazas**: Claude Code recuerda tu elección hasta el próximo cambio de versión predeterminada

199 

200Para una fijación en el bloque `env` de la [configuración administrada](https://code.claude.com/docs/es/managed-settings.md), Claude Code no ejecuta ninguna verificación ni muestra ninguna solicitud.

196 201 

197Si no ha fijado un modelo y el valor predeterminado actual no está disponible en su proyecto, Claude Code retrocede para la sesión actual y muestra un aviso. Intenta primero versiones anteriores del modelo predeterminado y, cuando el valor predeterminado es un modelo Opus y no hay ninguna versión de Opus disponible, retrocede al modelo Sonnet predeterminado. El retroceso no se persiste. Habilite el modelo más reciente en [Model Garden](https://console.cloud.google.com/vertex-ai/model-garden) o [fije una versión](#5-pin-model-versions) para hacer la opción permanente.202Si no ha fijado un modelo y el valor predeterminado actual no está disponible en su proyecto, Claude Code retrocede para la sesión actual y muestra un aviso. Intenta primero versiones anteriores del modelo predeterminado y, cuando el valor predeterminado es un modelo Opus y no hay ninguna versión de Opus disponible, retrocede al modelo Sonnet predeterminado. El retroceso no se persiste. Habilite el modelo más reciente en [Model Garden](https://console.cloud.google.com/vertex-ai/model-garden) o [fije una versión](#5-pin-model-versions) para hacer la opción permanente.

198 203 

hooks.md +3 −3

Details

580| Campo | Requerido | Descripción |580| Campo | Requerido | Descripción |

581| :- | :- | :- |581| :- | :- | :- |

582| `prompt` | sí | Texto de prompt a enviar al modelo. Usa `$ARGUMENTS` como marcador de posición para la entrada JSON del hook. Escapa con una barra invertida para incluir texto literal: `\$1.00` se renderiza como `$1.00` |582| `prompt` | sí | Texto de prompt a enviar al modelo. Usa `$ARGUMENTS` como marcador de posición para la entrada JSON del hook. Escapa con una barra invertida para incluir texto literal: `\$1.00` se renderiza como `$1.00` |

583| `model` | no | Modelo a usar para evaluación. Por defecto es el modelo que Claude Code usa para [funcionalidad de fondo](https://code.claude.com/docs/es/costs.md#background-token-usage) |583| `model` | no | Modelo a usar para evaluación. Por defecto es el modelo que Claude Code usa para [funcionalidad de fondo](https://code.claude.com/docs/es/model-config.md#environment-variables) |

584 584 

585### Hacer referencia a scripts por ruta585### Hacer referencia a scripts por ruta

586 586 


3914 3914 

3915En lugar de ejecutar un comando Bash, los hooks basados en prompts:3915En lugar de ejecutar un comando Bash, los hooks basados en prompts:

3916 3916 

39171. Envían la entrada del hook y su prompt a un modelo Claude, por defecto el que Claude Code usa para [funcionalidad en segundo plano](https://code.claude.com/docs/es/costs.md#background-token-usage)39171. Envían la entrada del hook y tu prompt a un modelo Claude, por defecto el que Claude Code usa para [funcionalidad en segundo plano](https://code.claude.com/docs/es/model-config.md#environment-variables)

39182. El LLM responde con JSON estructurado que contiene una decisión39182. El LLM responde con JSON estructurado que contiene una decisión

39193. Claude Code procesa la decisión automáticamente39193. Claude Code procesa la decisión automáticamente

3920 3920 


3947| :- | :- | :- |3947| :- | :- | :- |

3948| `type` | sí | Debe ser `"prompt"` |3948| `type` | sí | Debe ser `"prompt"` |

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

3950| `model` | no | Modelo a usar para evaluación. Por defecto es el modelo que Claude Code usa para [funcionalidad en segundo plano](https://code.claude.com/docs/es/costs.md#background-token-usage) |3950| `model` | no | Modelo a usar para evaluación. Por defecto es el modelo que Claude Code usa para [funcionalidad en segundo plano](https://code.claude.com/docs/es/model-config.md#environment-variables) |

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

3952| `continueOnBlock` | no | En los eventos a los que se aplica, `true` retroalimenta una razón `ok: false` a Claude y continúa en lugar de terminar el turno. Predeterminado: `false`. Consulte [Esquema de respuesta](#response-schema) para el comportamiento por evento |3952| `continueOnBlock` | no | En los eventos a los que se aplica, `true` retroalimenta una razón `ok: false` a Claude y continúa en lugar de terminar el turno. Predeterminado: `false`. Consulte [Esquema de respuesta](#response-schema) para el comportamiento por evento |

3953 3953 

Details

708 708 

709En una [sesión de fondo](https://code.claude.com/docs/es/agent-view.md#attach-to-a-session) adjunta, `Left` lo desconecta y lo devuelve a la vista de agente, incluso mientras la respuesta aún está llegando. La pregunta lateral sigue ejecutándose mientras está fuera. La próxima vez que se adjunte a la sesión, la superposición se reabre con la pregunta lateral, o con su respuesta. Antes de v2.1.257, `Left` no se desconectaba allí.709En una [sesión de fondo](https://code.claude.com/docs/es/agent-view.md#attach-to-a-session) adjunta, `Left` lo desconecta y lo devuelve a la vista de agente, incluso mientras la respuesta aún está llegando. La pregunta lateral sigue ejecutándose mientras está fuera. La próxima vez que se adjunte a la sesión, la superposición se reabre con la pregunta lateral, o con su respuesta. Antes de v2.1.257, `Left` no se desconectaba allí.

710 710 

711`/btw` ve su conversación completa pero no tiene herramientas. Un [subagente](https://code.claude.com/docs/es/sub-agents.md) tiene herramientas y comienza a partir del indicador que recibe, o, para una [bifurcación](https://code.claude.com/docs/es/sub-agents.md#fork-the-current-conversation), a partir de una copia de esta conversación. Use `/btw` para preguntar sobre lo que Claude ya sabe de esta sesión; use un subagente para ir a descubrir algo nuevo.711`/btw` ve tu conversación completa, o la [transcripción del subagente que tienes abierta](#ask-btw-about-a-subagent), pero no tiene herramientas. Un [subagente](https://code.claude.com/docs/es/sub-agents.md) tiene herramientas y comienza a partir del prompt que recibe. Una [bifurcación](https://code.claude.com/docs/es/sub-agents.md#fork-the-current-conversation) comienza a partir de una copia de esta conversación. Usa `/btw` para preguntar sobre lo que Claude ya sabe de esta sesión; usa un subagente para ir a descubrir algo nuevo.

712 

713### Preguntar con /btw sobre un subagente

714 

715Con la [transcripción de un subagente abierta](https://code.claude.com/docs/es/sub-agents.md#observe-and-steer-running-forks), Claude responde `/btw` a partir de esa transcripción en lugar de la conversación principal, para que puedas preguntar qué hizo el subagente. Un `/btw` posterior desde esa transcripción ve solo las preguntas laterales que hiciste desde ella. Requiere Claude Code v2.1.314 o posterior.

716 

717Desde la transcripción de un compañero de un [equipo de agentes](https://code.claude.com/docs/es/agent-teams.md), Claude responde a partir de la conversación principal.

712 718 

713## Lista de tareas719## Lista de tareas

714 720 


749* **Después de que tu computadora se suspendió**: si estuvo suspendida durante más de aproximadamente 30 minutos y el límite se reinició mientras tanto, la primera línea dice `Your usage limit has reset` y la segunda dice `Press enter to continue`. Presiona `Enter` para continuar. Después de una suspensión más corta, o de una que terminó antes del reinicio, Claude Code continúa automáticamente.755* **Después de que tu computadora se suspendió**: si estuvo suspendida durante más de aproximadamente 30 minutos y el límite se reinició mientras tanto, la primera línea dice `Your usage limit has reset` y la segunda dice `Press enter to continue`. Presiona `Enter` para continuar. Después de una suspensión más corta, o de una que terminó antes del reinicio, Claude Code continúa automáticamente.

750* **Temprano**: cuando termina de agregar [créditos de uso](https://code.claude.com/docs/es/costs.md#add-usage-credits-to-your-subscription) con `/usage-credits`, inicia sesión nuevamente después de `/upgrade`, o cambia modelos con `/model` durante la espera, Claude Code verifica si el uso está disponible nuevamente y continúa de inmediato si es así. No verifica después de una actualización o compra que realice en un navegador por su cuenta. En [`opusplan`](https://code.claude.com/docs/es/model-config#opusplan-model-setting) y otras configuraciones de modelo que ejecutan el modo de plan en un modelo diferente, Claude Code espera el reinicio en su lugar.756* **Temprano**: cuando termina de agregar [créditos de uso](https://code.claude.com/docs/es/costs.md#add-usage-credits-to-your-subscription) con `/usage-credits`, inicia sesión nuevamente después de `/upgrade`, o cambia modelos con `/model` durante la espera, Claude Code verifica si el uso está disponible nuevamente y continúa de inmediato si es así. No verifica después de una actualización o compra que realice en un navegador por su cuenta. En [`opusplan`](https://code.claude.com/docs/es/model-config#opusplan-model-setting) y otras configuraciones de modelo que ejecutan el modo de plan en un modelo diferente, Claude Code espera el reinicio en su lugar.

751 757 

752La tarea continuada se ejecuta como cualquier otro turno. Claude Code aún solicita [permisos](https://code.claude.com/docs/es/permissions.md) como de costumbre, por lo que la tarea puede detenerse en un mensaje mientras está fuera. Si vuelve a alcanzar el límite, Claude Code reactiva la espera automáticamente como máximo dos veces seguidas, luego se detiene y muestra `Automatic continue stopped after repeated usage-limit hits · /rate-limit-options to try again`.758En la tarea continuada, Claude Code sigue solicitando [permisos](https://code.claude.com/docs/es/permissions.md) como de costumbre, por lo que la tarea puede detenerse en una solicitud de permiso mientras no estás. Si la tarea vuelve a alcanzar el límite, la espera comienza de nuevo.

759 

760Después de tres continuaciones automáticas, la continuación automática se detiene y aparece la notificación `Automatic continue stopped after repeated usage-limit hits`. Ejecuta `/rate-limit-options` para elegir qué hacer a continuación. Cuando envías otro prompt, o eliges una espera en ese menú, el conteo vuelve a empezar. La continuación automática también se detiene después de tres continuaciones en un [`/goal`](https://code.claude.com/docs/es/goal) o una [tarea programada con alcance de sesión](https://code.claude.com/docs/es/scheduled-tasks.md) que se ejecuta a lo largo de varias ventanas de reinicio.

753 761 

754### Cancelar la espera762### Cancelar la espera

755 763 

Details

237* Cuando el proveedor ascendente rechaza una entrada `role: "system"` dentro de `messages`, Claude Code reintenta una vez sin esos mensajes del sistema a mitad de conversación y lleva su texto en mensajes de usuario en su lugar. Las solicitudes posteriores de la conversación mantienen esa forma hasta que el desarrollador ejecute `/clear` o la conversación se compacte237* Cuando el proveedor ascendente rechaza una entrada `role: "system"` dentro de `messages`, Claude Code reintenta una vez sin esos mensajes del sistema a mitad de conversación y lleva su texto en mensajes de usuario en su lugar. Las solicitudes posteriores de la conversación mantienen esa forma hasta que el desarrollador ejecute `/clear` o la conversación se compacte

238* Cuando el proveedor ascendente rechaza solo el marcador `cache_control` en un mensaje del sistema a mitad de conversación, Claude Code mantiene los mensajes del sistema y reintenta una vez con el marcador movido. El marcador va en la última entrada de `messages` que no sea un mensaje del sistema, en ese reintento y en las solicitudes posteriores hasta que Claude Code se cierre238* Cuando el proveedor ascendente rechaza solo el marcador `cache_control` en un mensaje del sistema a mitad de conversación, Claude Code mantiene los mensajes del sistema y reintenta una vez con el marcador movido. El marcador va en la última entrada de `messages` que no sea un mensaje del sistema, en ese reintento y en las solicitudes posteriores hasta que Claude Code se cierre

239* Cuando el proveedor ascendente rechaza una [firma de pensamiento](https://platform.claude.com/docs/en/build-with-claude/extended-thinking), incluido con un `400` cuyo mensaje dice que el bloque está `bound to a different conversation`, Claude Code elimina bloques de pensamiento anteriores de la solicitud, reintenta, y los mantiene fuera de cada solicitud posterior. Las nuevas respuestas aún incluyen pensamiento239* Cuando el proveedor ascendente rechaza una [firma de pensamiento](https://platform.claude.com/docs/en/build-with-claude/extended-thinking), incluido con un `400` cuyo mensaje dice que el bloque está `bound to a different conversation`, Claude Code elimina bloques de pensamiento anteriores de la solicitud, reintenta, y los mantiene fuera de cada solicitud posterior. Las nuevas respuestas aún incluyen pensamiento

240* Cuando la puerta de enlace o su proveedor ascendente rechaza la entrada de [herramienta asesor](https://code.claude.com/docs/es/advisor.md) en `tools` como un tipo de herramienta no reconocido, Claude Code reintenta la solicitud una vez sin esa entrada y su valor `anthropic-beta`. Las solicitudes posteriores a esa URL base dejan el asesor fuera hasta que Claude Code se cierre, y `/advisor` no está disponible para el desarrollador durante ese tiempo. Claude Code reconoce este rechazo por una respuesta `400` o `422` cuyo mensaje nombra el tipo de herramienta después de `Input tag`, como `Input tag 'advisor_20260301'`. Antes de v2.1.280, Claude Code no reintentaba este rechazo240* Cuando el gateway o su proveedor ascendente rechaza la entrada de [herramienta asesor](https://code.claude.com/docs/es/advisor.md) en `tools` como un tipo de herramienta no reconocido, Claude Code reintenta una vez sin esa entrada y su valor `anthropic-beta`. Las [solicitudes posteriores](#how-long-a-rejected-beta-value-stays-out) los omiten. Claude Code reconoce este rechazo por una respuesta `400` o `422` cuyo mensaje nombra el tipo de herramienta después de `Input tag`, como `Input tag 'advisor_20260301'`. Antes de v2.1.280, Claude Code no reintentaba este rechazo

241* Cuando el proveedor ascendente rechaza `output_config.effort` o su valor `anthropic-beta`, Claude Code reintenta y no agrega ninguno de los dos a las solicitudes para ese modelo hasta que Claude Code se cierre. Tu gateway no necesita ningún cambio si reenvía el `400` del proveedor ascendente sin modificar y el mensaje:241* Cuando el proveedor ascendente rechaza `output_config.effort` o su valor `anthropic-beta`, el gateway ve la solicitud una vez más sin ellos. Las [solicitudes posteriores](#how-long-a-rejected-beta-value-stays-out) los omiten. Tu gateway no necesita ningún cambio si reenvía el `400` del proveedor ascendente sin modificar y el mensaje:

242 * Nombra `output_config.effort` junto con `Extra inputs are not permitted`242 * Nombra `output_config.effort` junto con `Extra inputs are not permitted`

243 * Dice que el modelo no admite el parámetro de esfuerzo243 * Dice que el modelo no admite el parámetro de esfuerzo

244 * Comienza con `Unexpected value(s)` y enumera `effort-2025-11-24` para el encabezado `anthropic-beta`. Requiere v2.1.310 o posterior. Los desarrolladores cuyo [`ANTHROPIC_BETAS`](https://code.claude.com/docs/es/env-vars) incluye el valor siguen enviándolo y recibiendo el `400`, así que pídeles que eliminen esa entrada244 * Comienza con `Unexpected value(s)` y enumera `effort-2025-11-24` para el encabezado `anthropic-beta`. Requiere v2.1.310 o posterior. Los desarrolladores cuyo [`ANTHROPIC_BETAS`](https://code.claude.com/docs/es/env-vars) incluye el valor siguen enviándolo y recibiendo el `400`, así que pídeles que eliminen esa entrada

245* Cuando el proveedor ascendente rechaza el campo `context_management` o su valor `anthropic-beta`, el gateway ve la solicitud una vez más sin ellos. Si el gateway vuelve a verlos en una solicitud posterior y el proveedor ascendente los rechaza de nuevo, se produce el mismo reintento. Claude Code reconoce este rechazo por su mensaje, por ejemplo uno que contiene `context_management: Extra inputs are not permitted`. Antes de v2.1.304, Claude Code no reintentaba este rechazo245* Cuando el proveedor ascendente rechaza el campo `context_management` o su valor `anthropic-beta`, el gateway ve la solicitud una vez más sin ellos. Las [solicitudes posteriores](#how-long-a-rejected-beta-value-stays-out) los omiten. Claude Code reconoce este rechazo por su mensaje, por ejemplo uno que contiene `context_management: Extra inputs are not permitted`. Antes de v2.1.304, Claude Code no reintentaba este rechazo

246* Cuando un `400` rechaza por nombre otro valor `anthropic-beta`, el gateway ve la solicitud una vez más sin él si [el reintento cubre ese valor](#retry-without-a-rejected-beta-value)

246* Cuando el proveedor ascendente rechaza un campo de herramienta beta distinto de `defer_loading`, como `strict`, el `400` llega al desarrollador. Antes de que eso ocurra, el gateway puede volver a ver la solicitud [sin los campos de búsqueda de herramientas](#retry-without-tool-search). Para dejar de enviar esos campos, haz que los desarrolladores establezcan [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities)247* Cuando el proveedor ascendente rechaza un campo de herramienta beta distinto de `defer_loading`, como `strict`, el `400` llega al desarrollador. Antes de que eso ocurra, el gateway puede volver a ver la solicitud [sin los campos de búsqueda de herramientas](#retry-without-tool-search). Para dejar de enviar esos campos, haz que los desarrolladores establezcan [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities)

247 248 

248El rechazo `bound to a different conversation` proviene de la verificación de [pensamiento preservado](https://platform.claude.com/docs/en/build-with-claude/preserved-thinking) de la API, que falla cuando el contenido de `system`, `tools`, o `messages` anteriores difiere de la solicitud que produjo el pensamiento. Una puerta de enlace que reescribe cualquiera de ese contenido puede causar el rechazo en sí; [Bibliotecas, proxies y puertas de enlace](https://platform.claude.com/docs/en/build-with-claude/preserved-thinking#libraries-proxies-gateways) cubre qué pasar sin cambios.249El rechazo `bound to a different conversation` proviene de la verificación de [pensamiento preservado](https://platform.claude.com/docs/en/build-with-claude/preserved-thinking) de la API, que falla cuando el contenido de `system`, `tools`, o `messages` anteriores difiere de la solicitud que produjo el pensamiento. Una puerta de enlace que reescribe cualquiera de ese contenido puede causar el rechazo en sí; [Bibliotecas, proxies y puertas de enlace](https://platform.claude.com/docs/en/build-with-claude/preserved-thinking#libraries-proxies-gateways) cubre qué pasar sin cambios.

249 250 

250La mayor parte de esta lógica de reintento se basa en la redacción del error del proveedor ascendente, así que reenvía los cuerpos de respuesta de error sin modificar. Un gateway que envuelve errores ascendentes en su propio sobre rompe la ruta de recuperación, incluso cuando preserva el código de estado, a menos que el mensaje del sobre lleve un token `capability_rejected:` estable. [El gateway de aplicaciones de Claude sustituye la redacción de error de los proveedores de nube por esos tokens](https://code.claude.com/docs/es/claude-apps-gateway-config.md#upstream-error-messages), por ejemplo `capability_rejected: prompt_too_long`.251La mayor parte de esta lógica de reintento se basa en la redacción del error del proveedor ascendente, así que reenvía los cuerpos de respuesta de error sin modificar. Un gateway que envuelve errores ascendentes en su propio sobre rompe la ruta de recuperación, incluso cuando preserva el código de estado, a menos que el mensaje del sobre lleve un token `capability_rejected:` estable. [El gateway de aplicaciones de Claude sustituye la redacción de error de los proveedores de nube por esos tokens](https://code.claude.com/docs/es/claude-apps-gateway-config.md#upstream-error-messages), por ejemplo `capability_rejected: prompt_too_long`.

251 252 

253#### Reintento sin un valor beta rechazado

254 

255Cuando un `400` rechaza por nombre un valor `anthropic-beta` que este reintento cubre, el gateway ve la solicitud una vez más sin él. Las [solicitudes posteriores](#how-long-a-rejected-beta-value-stays-out) omiten el valor. La mayoría de los valores que cubre requieren v2.1.314 o posterior.

256 

257Tu gateway no necesita ningún cambio si el mensaje del `400` que devuelve lleva el valor en cualquiera de estas formas:

258 

259* **La oración de la API**: la oración `Unexpected value(s)` que enumera el valor para el encabezado `anthropic-beta`

260* **Un token `beta_header:`**: `capability_rejected: beta_header:` seguido del valor, un [token `capability_rejected:`](#automatic-retry-and-error-forwarding)

261 

262El reintento no cubre casos como un valor con su propio reintento, un valor que Claude Code no reconoce o un mensaje que no nombra ningún valor:

263 

264* **Un valor con su propio reintento, como el asesor o la búsqueda de herramientas**: el gateway ve [el reintento propio de esa capacidad](#automatic-retry-and-error-forwarding) en su lugar

265* **Un valor que Claude Code no reconoce**: un valor que un desarrollador estableció mediante `ANTHROPIC_BETAS` permanece en cada solicitud, así que las solicitudes del desarrollador siguen fallando con el `400`. Pídele al desarrollador que elimine la entrada

266* **Un `invalid beta flag` sin más información**: Claude Code adivina qué valor rechazó el proveedor ascendente. Si la solicitud llevaba un valor que adivina, el gateway vuelve a ver la solicitud sin ese valor. Si el `400` sigue llegando al desarrollador, haz que tu gateway nombre el valor rechazado en una de esas formas

267 

268#### Cuánto tiempo queda fuera un valor beta rechazado

269 

270| El proveedor ascendente rechazó | Solicitudes que lo omiten | Hasta |

271| :- | :- | :- |

272| El tipo de herramienta asesor, o el valor `anthropic-beta` del asesor | Solicitudes a la misma URL base. `/advisor` no está disponible | Que Claude Code se cierre |

273| `output_config.effort` o su valor `anthropic-beta` | Solicitudes para el mismo modelo | Que Claude Code se cierre |

274| `context_management` u otro valor `anthropic-beta` que cubre el [reintento por nombre](#retry-without-a-rejected-beta-value) | Solicitudes en la misma conversación | Que la conversación termine o Claude Code reconstruya su prompt, como cuando la conversación principal se compacta |

275| `context_management` u otro valor que cubre ese reintento, cuando el mensaje de error comienza con la propia oración de la API para el rechazo, como `Unexpected value(s)`, o lleva un token `beta_header:` | También las conversaciones nuevas en el modelo que nombraba la solicitud rechazada, incluso después de `/clear` | Que Claude Code se cierre |

276 

252#### Reintento sin búsqueda de herramientas277#### Reintento sin búsqueda de herramientas

253 278 

254En v2.1.305 o posterior, una solicitud que lleva [campos `defer_loading` y bloques `tool_reference`](https://code.claude.com/docs/es/mcp#tool-search-through-a-gateway) puede llegar de nuevo sin ellos después de un `400` o `422` cuya causa Claude Code no reconoce. Después de un reintento exitoso, las solicitudes posteriores también los omiten.279En v2.1.305 o posterior, Claude Code reenvía una solicitud sin [campos `defer_loading` y bloques `tool_reference`](https://code.claude.com/docs/es/mcp#tool-search-through-a-gateway) después de un `400` o `422` que nombra la búsqueda de herramientas o cuya causa no reconoce. Después de un reintento exitoso, las solicitudes posteriores de esa conversación también los omiten.

255 280 

256Las solicitudes del desarrollador siguen funcionando sin ningún cambio en el gateway, con sus herramientas MCP cargadas de antemano. Claude Code vuelve a intentar la búsqueda de herramientas más adelante, así que el gateway puede ver otra solicitud rechazada seguida de su reintento. Para mantener los campos fuera de todas las solicitudes, haz que los desarrolladores establezcan `ENABLE_TOOL_SEARCH=false`. Para la búsqueda de herramientas en sí, Claude Code espera que el gateway reenvíe los campos `defer_loading` y los bloques `tool_reference` con su valor `anthropic-beta`.281Las solicitudes del desarrollador siguen funcionando sin ningún cambio en el gateway, con sus herramientas MCP cargadas de antemano. Cuando Claude Code vuelve a intentar la búsqueda de herramientas, el gateway ve otra solicitud rechazada seguida de su reintento. Para la búsqueda de herramientas en sí, Claude Code espera que el gateway reenvíe los campos `defer_loading` y los bloques `tool_reference` con su valor `anthropic-beta`.

257 282 

258### Deshabilitar capacidades de pre-lanzamiento283### Deshabilitar capacidades de pre-lanzamiento

259 284 

Details

166| `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY` | Consulta `/v1/models` de la puerta de enlace al inicio y añade los nombres devueltos al selector `/model` | Su puerta de enlace sirve `/v1/models` y desea que los selectores de los desarrolladores se rellenen desde ella |166| `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY` | Consulta `/v1/models` de la puerta de enlace al inicio y añade los nombres devueltos al selector `/model` | Su puerta de enlace sirve `/v1/models` y desea que los selectores de los desarrolladores se rellenen desde ella |

167| `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` | Detiene el envío de Claude Code de encabezados de capacidad de pre-lanzamiento y campos de cuerpo. [Deshabilitar capacidades de pre-lanzamiento](https://code.claude.com/docs/es/llm-gateway-protocol.md#disable-pre-release-capabilities) cubre el alcance exacto | Su puerta de enlace reenvía a un Amazon Bedrock o Google Cloud's Agent Platform ascendente que rechaza campos beta. Consulte [Requisitos de la puerta de enlace](#gateway-requirements) |167| `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` | Detiene el envío de Claude Code de encabezados de capacidad de pre-lanzamiento y campos de cuerpo. [Deshabilitar capacidades de pre-lanzamiento](https://code.claude.com/docs/es/llm-gateway-protocol.md#disable-pre-release-capabilities) cubre el alcance exacto | Su puerta de enlace reenvía a un Amazon Bedrock o Google Cloud's Agent Platform ascendente que rechaza campos beta. Consulte [Requisitos de la puerta de enlace](#gateway-requirements) |

168| `CLAUDE_CODE_SKIP_FAST_MODE_NETWORK_ERRORS` o `CLAUDE_CODE_SKIP_FAST_MODE_ORG_CHECK` | Restaura [modo rápido](https://code.claude.com/docs/es/fast-mode.md) cuando su verificación de disponibilidad, que llama a `api.anthropic.com` directamente en lugar de seguir `ANTHROPIC_BASE_URL`, falla, es interceptada, o se omite por falta de una credencial de Anthropic | Su organización usa modo rápido, y los desarrolladores se autentican con `ANTHROPIC_AUTH_TOKEN` solo, con una clave emitida por puerta de enlace en `ANTHROPIC_API_KEY` o desde un `apiKeyHelper`, o su red bloquea o intercepta solicitudes directas a `api.anthropic.com`; [usar modo rápido detrás de proxies y puertas de enlace LLM](https://code.claude.com/docs/es/fast-mode.md#use-fast-mode-behind-proxies-and-llm-gateways) cubre cuál de las dos variables coincide con su configuración |168| `CLAUDE_CODE_SKIP_FAST_MODE_NETWORK_ERRORS` o `CLAUDE_CODE_SKIP_FAST_MODE_ORG_CHECK` | Restaura [modo rápido](https://code.claude.com/docs/es/fast-mode.md) cuando su verificación de disponibilidad, que llama a `api.anthropic.com` directamente en lugar de seguir `ANTHROPIC_BASE_URL`, falla, es interceptada, o se omite por falta de una credencial de Anthropic | Su organización usa modo rápido, y los desarrolladores se autentican con `ANTHROPIC_AUTH_TOKEN` solo, con una clave emitida por puerta de enlace en `ANTHROPIC_API_KEY` o desde un `apiKeyHelper`, o su red bloquea o intercepta solicitudes directas a `api.anthropic.com`; [usar modo rápido detrás de proxies y puertas de enlace LLM](https://code.claude.com/docs/es/fast-mode.md#use-fast-mode-behind-proxies-and-llm-gateways) cubre cuál de las dos variables coincide con su configuración |

169| `ANTHROPIC_MODEL` o [`ANTHROPIC_DEFAULT_HAIKU_MODEL`](https://code.claude.com/docs/es/model-config) | Establece qué nombre de modelo Claude Code solicita para la sesión principal y para el tráfico de fondo | Su puerta de enlace enruta nombres de modelos que no coinciden con los valores predeterminados de Claude Code, o enruta [funcionalidad de fondo](https://code.claude.com/docs/es/costs.md#background-token-usage) a un modelo diferente. Enrute tanto los nombres de anulación como los nombres predeterminados de Claude Code en la puerta de enlace, ya que algunas sub-llamadas pueden solicitar el nombre predeterminado independientemente de la anulación; la [configuración de modelos](https://code.claude.com/docs/es/model-config.md) cubre qué modelo usa cada parte de una sesión |169| `ANTHROPIC_MODEL` o [`ANTHROPIC_DEFAULT_HAIKU_MODEL`](https://code.claude.com/docs/es/model-config) | Establecen qué nombre de modelo solicita Claude Code para la sesión principal y para el tráfico en segundo plano | Tu gateway enruta nombres de modelo que no coinciden con los predeterminados de Claude Code, o enrutas la [funcionalidad en segundo plano](https://code.claude.com/docs/es/model-config.md#environment-variables) a un modelo distinto. Enruta tanto los nombres de sobrescritura como los ID de modelo integrados que Claude Code solicita cuando no hay ninguna sobrescritura, ya que algunas subllamadas en segundo plano solicitan un ID integrado independientemente de la sobrescritura |

170| `ANTHROPIC_BEDROCK_BASE_URL`, `ANTHROPIC_VERTEX_BASE_URL`, `ANTHROPIC_FOUNDRY_BASE_URL`, o `ANTHROPIC_AWS_BASE_URL` con las [variables para ese proveedor](https://code.claude.com/docs/es/llm-gateway-connect.md#route-to-a-cloud-provider-through-a-gateway) | Apunte Claude Code a la puerta de enlace a través de una URL base específica del proveedor. Amazon Bedrock y Google Cloud's Agent Platform también cambian al formato de solicitud nativo de esos proveedores | Su puerta de enlace está frente a Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry, o la Plataforma Claude en AWS; consulte [Formatos de API](https://code.claude.com/docs/es/llm-gateway-protocol.md#api-formats) |170| `ANTHROPIC_BEDROCK_BASE_URL`, `ANTHROPIC_VERTEX_BASE_URL`, `ANTHROPIC_FOUNDRY_BASE_URL`, o `ANTHROPIC_AWS_BASE_URL` con las [variables para ese proveedor](https://code.claude.com/docs/es/llm-gateway-connect.md#route-to-a-cloud-provider-through-a-gateway) | Apunte Claude Code a la puerta de enlace a través de una URL base específica del proveedor. Amazon Bedrock y Google Cloud's Agent Platform también cambian al formato de solicitud nativo de esos proveedores | Su puerta de enlace está frente a Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry, o la Plataforma Claude en AWS; consulte [Formatos de API](https://code.claude.com/docs/es/llm-gateway-protocol.md#api-formats) |

171 171 

172#### Distribuir a través de configuración administrada172#### Distribuir a través de configuración administrada

mcp.md +20 −4

Details

952* Para un servidor cuyo encabezado `Authorization` configuraste, en `headers` o a través de un [`headersHelper`](#use-dynamic-headers-for-custom-authentication), un `401` o `403` al conectar no marca el servidor, porque la credencial a corregir es la que configuraste. Claude Code informa que la conexión falló en su lugar. Si estableces ese encabezado desde una referencia `${VAR}`, verifica si esa variable es una que Claude Code [lee como vacía](#credential-variables-that-read-as-empty).952* Para un servidor cuyo encabezado `Authorization` configuraste, en `headers` o a través de un [`headersHelper`](#use-dynamic-headers-for-custom-authentication), un `401` o `403` al conectar no marca el servidor, porque la credencial a corregir es la que configuraste. Claude Code informa que la conexión falló en su lugar. Si estableces ese encabezado desde una referencia `${VAR}`, verifica si esa variable es una que Claude Code [lee como vacía](#credential-variables-that-read-as-empty).

953* Para un conector [entregado a una sesión en la nube](#how-connectors-reach-claude-code), Claude Code no ejecuta un flujo de inicio de sesión, porque el proxy de la sesión se autentica con el conector con la autorización que otorgaste en claude.ai. Cuando un conector allí necesita autorización nuevamente, reconéctalo en [claude.ai/customize/connectors](https://claude.ai/customize/connectors) en lugar de desde la sesión.953* Para un conector [entregado a una sesión en la nube](#how-connectors-reach-claude-code), Claude Code no ejecuta un flujo de inicio de sesión, porque el proxy de la sesión se autentica con el conector con la autorización que otorgaste en claude.ai. Cuando un conector allí necesita autorización nuevamente, reconéctalo en [claude.ai/customize/connectors](https://claude.ai/customize/connectors) en lugar de desde la sesión.

954 954 

955Cuando un servidor OAuth en el que ya iniciaste sesión rechaza tu token almacenado con `401 Unauthorized`, Claude Code actualiza el token, se reconecta e intenta la solicitud una vez más. Solo marca el servidor en `/mcp` si ese reintento también falla. En una ejecución de `claude -p` o del Agent SDK en macOS, una solicitud que Claude Code envió mientras no podía leer tu token almacenado falla en su lugar con un [error de credenciales almacenadas](https://code.claude.com/docs/es/errors.md#couldnt-read-the-stored-credentials-for-mcp-server).955Cuando un servidor OAuth en el que ya iniciaste sesión rechaza tu token almacenado con `401 Unauthorized`, Claude Code se reconecta con o sin un token nuevo:

956 

957* **Tu inicio de sesión almacenado tiene un token de actualización**: actualiza el token, se reconecta e intenta la solicitud una vez más. El servidor se marca en `/mcp` solo si ese reintento también falla.

958* **Tu inicio de sesión almacenado no tiene token de actualización**: se conecta una vez sin el token. Si el servidor responde, sus herramientas funcionan mientras tienes la sesión cerrada, y el token rechazado se elimina. Si el servidor también rechaza esa conexión, `/mcp` muestra que el servidor necesita autenticación.

959 

960En una ejecución de `claude -p` o del Agent SDK en macOS, una solicitud que Claude Code envió mientras no podía leer tu token almacenado falla con un [error de credenciales almacenadas](https://code.claude.com/docs/es/errors.md#couldnt-read-the-stored-credentials-for-mcp-server).

956 961 

957Cuando el servidor rechaza el token de actualización almacenado, Claude Code muestra inmediatamente un aviso que apunta a `/mcp`. Abre `/mcp` y selecciona **Re-authenticate** en el servidor para iniciar sesión nuevamente antes de que la siguiente llamada a herramienta falle.962Cuando el servidor rechaza el token de actualización almacenado, Claude Code muestra inmediatamente un aviso que apunta a `/mcp`. Abre `/mcp` y selecciona **Re-authenticate** en el servidor para iniciar sesión nuevamente antes de que la siguiente llamada a herramienta falle.

958 963 


1640 1645 

1641## Responder a solicitudes de elicitación de MCP1646## Responder a solicitudes de elicitación de MCP

1642 1647 

1643Los servidores MCP pueden solicitar información estructurada de su parte durante una tarea mediante elicitación. Cuando un servidor necesita información que no puede obtener por sí solo, Claude Code muestra un diálogo interactivo y devuelve su respuesta al servidor. No se requiere configuración de su parte: los diálogos de elicitación aparecen automáticamente cuando un servidor los solicita.1648Los servidores MCP pueden solicitarte información estructurada durante una tarea mediante elicitación. Cuando un servidor necesita información que no puede obtener por sí solo, Claude Code muestra un diálogo interactivo en la terminal y devuelve tu respuesta al servidor. No se requiere configuración de tu parte: los diálogos de elicitación aparecen automáticamente cuando un servidor los solicita.

1644 1649 

1645Los servidores pueden solicitar información de dos formas:1650Los servidores pueden solicitar información de dos formas:

1646 1651 


1653 1658 

1654Si está creando un servidor MCP que utiliza elicitación, consulte la [especificación de elicitación de MCP](https://modelcontextprotocol.io/docs/learn/client-concepts#elicitation) para obtener detalles del protocolo y ejemplos de esquema.1659Si está creando un servidor MCP que utiliza elicitación, consulte la [especificación de elicitación de MCP](https://modelcontextprotocol.io/docs/learn/client-concepts#elicitation) para obtener detalles del protocolo y ejemplos de esquema.

1655 1660 

1661### Responder a una solicitud de elicitación en una sesión en la nube

1662 

1663Cuando la tarea de Claude en tu sesión en la nube espera una solicitud de un servidor MCP, el servidor necesita algo de ti, como un valor o un inicio de sesión. Si la solicitud aparece como una tarjeta en claude.ai/code o en la pestaña **Code** de la aplicación Desktop, responde en la tarjeta:

1664 

1665* **Modo de formulario**: completa los campos y luego haz clic en **Submit**

1666* **Modo de URL**: haz clic en **Open link**, termina el flujo que se abre y luego haz clic en **I’m done, continue** en la tarjeta

1667 

1668Para rechazar la solicitud, haz clic en **Decline**. Claude continúa una vez que el servidor responde.

1669 

1670Si no ves ninguna tarjeta en ninguno de los dos lugares, no puedes responder la solicitud allí. En tu propia sesión, haz clic en el botón de detener para finalizar el turno.

1671 

1656### Modos de elicitación que declara Claude Code1672### Modos de elicitación que declara Claude Code

1657 1673 

1658Si creas un servidor MCP, las capacidades de cliente que Claude Code envía al conectarse le indican a tu servidor qué modos de elicitación puede solicitar. Claude Code declara `elicitation: {form: {}, url: {}}` en las siguientes conexiones, por lo que un servidor en cualquiera de ellas puede solicitar ambos modos:1674Si creas un servidor MCP, las capacidades de cliente que Claude Code envía al conectarse le indican a tu servidor qué modos de elicitación puede solicitar. Claude Code declara `elicitation: {form: {}, url: {}}` en las siguientes conexiones, por lo que un servidor en cualquiera de ellas puede solicitar ambos modos:


1815> * **Configuraste `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`**: consulta [cómo afecta a la búsqueda de herramientas](#configure-tool-search)1831> * **Configuraste `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`**: consulta [cómo afecta a la búsqueda de herramientas](#configure-tool-search)

1816> * **Una solicitud falló con un error que menciona `defer_loading` o `tool_reference`**: consulta [Extra inputs are not permitted](https://code.claude.com/docs/es/errors.md#extra-inputs-are-not-permitted)1832> * **Una solicitud falló con un error que menciona `defer_loading` o `tool_reference`**: consulta [Extra inputs are not permitted](https://code.claude.com/docs/es/errors.md#extra-inputs-are-not-permitted)

1817 1833 

1818Cuando `ANTHROPIC_BASE_URL` apunta a un gateway, la búsqueda de herramientas está activada de forma predeterminada, por lo que las solicitudes incluyen campos de herramienta `defer_loading` y bloques `tool_reference` para que el gateway los reenvíe. Mientras la búsqueda de herramientas está activada, las herramientas MCP se [difieren](#scale-with-mcp-tool-search). Para cargar todas las herramientas por adelantado en su lugar, establece `ENABLE_TOOL_SEARCH=false` en tu shell o en el [`env` de tu configuración](https://code.claude.com/docs/es/settings-reference#env). Antes de v2.1.304, la búsqueda de herramientas estaba desactivada detrás de un gateway a menos que `ENABLE_TOOL_SEARCH` fuera `true`, `auto` o `auto:N`.1834Cuando `ANTHROPIC_BASE_URL` apunta a un gateway, Claude Code espera que el gateway reenvíe los campos de herramienta `defer_loading` y los bloques `tool_reference` [junto con el encabezado `anthropic-beta`](https://code.claude.com/docs/es/llm-gateway-protocol#beta-header-and-body-field-pairs). La búsqueda de herramientas está activada de forma predeterminada detrás del gateway, por lo que las herramientas MCP se [difieren](#scale-with-mcp-tool-search) y las solicitudes incluyen esos campos y bloques. Antes de v2.1.304, la búsqueda de herramientas estaba desactivada detrás de un gateway a menos que `ENABLE_TOOL_SEARCH` fuera `true`, `auto` o `auto:N`.

1819 1835 

1820En v2.1.305 o posterior, Claude Code puede [reintentar una solicitud sin búsqueda de herramientas](https://code.claude.com/docs/es/llm-gateway-protocol.md#retry-without-tool-search) después de un `400` o `422` cuya causa no reconoce. Cuando el reintento funciona, no aparece nada en pantalla y no necesitas hacer nada: las herramientas MCP se cargan por adelantado en su lugar. Claude Code vuelve a intentar la búsqueda de herramientas más tarde, a costa de otra solicitud rechazada. Para omitir esas solicitudes, establece `ENABLE_TOOL_SEARCH=false`.1836En v2.1.305 o posterior, Claude Code puede [reintentar una solicitud sin búsqueda de herramientas](https://code.claude.com/docs/es/llm-gateway-protocol.md#retry-without-tool-search) después de un `400` o `422`. Cuando el reintento funciona, no aparece nada en pantalla y no necesitas hacer nada: las herramientas MCP se cargan por adelantado en su lugar. Claude Code vuelve a intentar la búsqueda de herramientas más tarde, a costa de otra solicitud rechazada.

1821 1837 

1822#### Herramientas que permanecen diferidas por debajo del umbral de `ENABLE_TOOL_SEARCH=auto`1838#### Herramientas que permanecen diferidas por debajo del umbral de `ENABLE_TOOL_SEARCH=auto`

1823 1839 

memory.md +6 −5

Details

206- Incluir comentarios de documentación OpenAPI206- Incluir comentarios de documentación OpenAPI

207```207```

208 208 

209Las reglas sin un campo `paths` se cargan incondicionalmente y se aplican a todos los archivos. Una regla con alcance de ruta se carga cuando Claude usa la herramienta Read, Write o Edit en un archivo coincidente. También se carga cuando Claude ve un archivo coincidente con un comando de Bash que [cuenta como lectura](https://code.claude.com/docs/es/tools-reference.md#edit-tool-behavior), como `cat` o `head` sobre un solo archivo. La coincidencia también funciona cuando Claude llega a un archivo a través de una ruta enlazada simbólicamente al directorio del proyecto, por ejemplo en un checkout enlazado simbólicamente.209Una regla con alcance de ruta se carga cuando Claude usa la herramienta Read, Write o Edit en un archivo coincidente. También se carga cuando Claude ve un archivo coincidente con un comando de Bash que [cuenta como lectura](https://code.claude.com/docs/es/tools-reference.md#edit-tool-behavior), como `cat` o `head` sobre un solo archivo. La coincidencia también funciona cuando Claude llega a un archivo a través de una ruta enlazada simbólicamente al directorio del proyecto, por ejemplo en un checkout enlazado simbólicamente.

210 210 

211Cada patrón es relativo al directorio base de la regla:211Cada patrón es relativo al directorio base de la regla:

212 212 


219 219 

220| Patrón | Coincide con |220| Patrón | Coincide con |

221| - | - |221| - | - |

222| `**/*.ts` | Todos los archivos TypeScript en cualquier directorio |222| `**/*.ts` | Archivos `.ts` en cualquier lugar bajo el directorio base |

223| `src/**/*` | Todos los archivos bajo el directorio `src/` |223| `src/**/*` | Todos los archivos bajo `src/` del directorio base |

224| `*.md` | Archivos Markdown en la raíz del proyecto |224| `*.md` | Archivos `.md` en cualquier lugar bajo el directorio base |

225| `src/components/*.tsx` | Componentes React en un directorio específico |225| `/*.md` | Archivos `.md` directamente en el directorio base, no en subcarpetas |

226| `src/components/*.tsx` | Archivos `.tsx` directamente en `src/components/` del directorio base, no en subcarpetas |

226 227 

227Puedes especificar múltiples patrones y usar expansión de llaves para hacer coincidir múltiples extensiones en un solo patrón:228Puedes especificar múltiples patrones y usar expansión de llaves para hacer coincidir múltiples extensiones en un solo patrón:

228 229 

model-config.md +1 −1

Details

933| `ANTHROPIC_DEFAULT_FABLE_MODEL` | El modelo a utilizar para `fable`, y el ID de modelo que Claude Code reconoce como modelo Fable para el [respaldo automático de modelo](#automatic-model-fallback) en proveedores de terceros |933| `ANTHROPIC_DEFAULT_FABLE_MODEL` | El modelo a utilizar para `fable`, y el ID de modelo que Claude Code reconoce como modelo Fable para el [respaldo automático de modelo](#automatic-model-fallback) en proveedores de terceros |

934| `ANTHROPIC_DEFAULT_OPUS_MODEL` | El modelo a utilizar para `opus`, o para `opusplan` cuando Plan Mode está activo. |934| `ANTHROPIC_DEFAULT_OPUS_MODEL` | El modelo a utilizar para `opus`, o para `opusplan` cuando Plan Mode está activo. |

935| `ANTHROPIC_DEFAULT_SONNET_MODEL` | El modelo a utilizar para `sonnet`, o para `opusplan` cuando Plan Mode no está activo. |935| `ANTHROPIC_DEFAULT_SONNET_MODEL` | El modelo a utilizar para `sonnet`, o para `opusplan` cuando Plan Mode no está activo. |

936| `ANTHROPIC_DEFAULT_HAIKU_MODEL` | El modelo a utilizar para `haiku`, o [funcionalidad en segundo plano](https://code.claude.com/docs/es/costs.md#background-token-usage) |936| `ANTHROPIC_DEFAULT_HAIKU_MODEL` | El modelo a utilizar para `haiku`, o funcionalidad en segundo plano |

937| `CLAUDE_CODE_SUBAGENT_MODEL` | El modelo predeterminado para [subagentes](https://code.claude.com/docs/es/sub-agents.md#choose-a-model), compañeros de [equipo de agentes](https://code.claude.com/docs/es/agent-teams.md#specify-teammates-and-models) y agentes de [workflow](https://code.claude.com/docs/es/workflows.md) que no tienen asignado un modelo de otra manera. Acepta un alias como `haiku` o un nombre de modelo completo. Un modelo por invocación o el campo `model` de una definición, incluido `inherit`, tiene precedencia. Para cambiar eso, establece [`CLAUDE_CODE_SUBAGENT_MODEL_FORCE`](https://code.claude.com/docs/es/sub-agents#run-every-subagent-on-one-model) |937| `CLAUDE_CODE_SUBAGENT_MODEL` | El modelo predeterminado para [subagentes](https://code.claude.com/docs/es/sub-agents.md#choose-a-model), compañeros de [equipo de agentes](https://code.claude.com/docs/es/agent-teams.md#specify-teammates-and-models) y agentes de [workflow](https://code.claude.com/docs/es/workflows.md) que no tienen asignado un modelo de otra manera. Acepta un alias como `haiku` o un nombre de modelo completo. Un modelo por invocación o el campo `model` de una definición, incluido `inherit`, tiene precedencia. Para cambiar eso, establece [`CLAUDE_CODE_SUBAGENT_MODEL_FORCE`](https://code.claude.com/docs/es/sub-agents#run-every-subagent-on-one-model) |

938 938 

939En proveedores de terceros, [Personalizar la visualización y capacidades del modelo fijo](#customize-pinned-model-display-and-capabilities) describe lo que muestra la fila de un modelo fijo en el selector `/model`.939En proveedores de terceros, [Personalizar la visualización y capacidades del modelo fijo](#customize-pinned-model-display-and-capabilities) describe lo que muestra la fila de un modelo fijo en el selector `/model`.

Details

1559 1559 

1560> [!NOTE]1560> [!NOTE]

1561>1561>

1562> Las métricas de costo son aproximaciones. Para datos de facturación oficiales, consulte su proveedor de API (Claude Console, Amazon Bedrock, o Google Cloud's Agent Platform).1562> Las métricas de costo son aproximaciones. Para datos de facturación oficiales, consulta [Administrar costos para tu organización](https://code.claude.com/docs/es/costs.md#manage-costs-for-your-organization).

1563 1563 

1564Claude Code cuenta cada respuesta en streaming para las métricas de costo y token exactamente una vez, incluso cuando un gateway o proxy detrás de `ANTHROPIC_BASE_URL` envía el uso en streaming de forma progresiva a lo largo de múltiples frames.1564Claude Code cuenta cada respuesta en streaming para las métricas de costo y token exactamente una vez, incluso cuando un gateway o proxy detrás de `ANTHROPIC_BASE_URL` envía el uso en streaming de forma progresiva a lo largo de múltiples frames.

1565 1565 

Details

41* Lecturas fuera de los directorios de trabajo mientras [`permissions.blockReadsOutsideWorkingDirectories`](https://code.claude.com/docs/es/settings-reference#permissions-blockreadsoutsideworkingdirectories) está activado: los comandos Bash reconocidos de lectura de archivos generan avisos incluso en modo automático y modo `bypassPermissions`, y también lo hace cualquier [reintento sin sandbox](https://code.claude.com/docs/es/sandboxing.md#the-unsandboxed-retry-escape-hatch) que necesita aprobación para ejecutarse fuera del sandbox. Requiere Claude Code v2.1.257 o posterior.41* Lecturas fuera de los directorios de trabajo mientras [`permissions.blockReadsOutsideWorkingDirectories`](https://code.claude.com/docs/es/settings-reference#permissions-blockreadsoutsideworkingdirectories) está activado: los comandos Bash reconocidos de lectura de archivos generan avisos incluso en modo automático y modo `bypassPermissions`, y también lo hace cualquier [reintento sin sandbox](https://code.claude.com/docs/es/sandboxing.md#the-unsandboxed-retry-escape-hatch) que necesita aprobación para ejecutarse fuera del sandbox. Requiere Claude Code v2.1.257 o posterior.

42 42 

43 Un comando que el analizador de shell no puede rastrear, como uno que cambia de directorio más de una vez o ejecuta un subshell, genera avisos de la misma manera incluso cuando no nombra ninguna ruta externa. Este aviso no se aplica cuando el comando se ejecuta en el [sandbox](https://code.claude.com/docs/es/sandboxing.md) y el sandbox aplica el bloqueo.43 Un comando que el analizador de shell no puede rastrear, como uno que cambia de directorio más de una vez o ejecuta un subshell, genera avisos de la misma manera incluso cuando no nombra ninguna ruta externa. Este aviso no se aplica cuando el comando se ejecuta en el [sandbox](https://code.claude.com/docs/es/sandboxing.md) y el sandbox aplica el bloqueo.

44* Escrituras fuera de los directorios de trabajo mientras [`permissions.blockWritesOutsideWorkingDirectories`](https://code.claude.com/docs/es/settings-reference#permissions-blockwritesoutsideworkingdirectories) está activado: Claude Code rechaza las llamadas a `Write`, `Edit` y `NotebookEdit` allí, aparte de [algunos de sus propios archivos](https://code.claude.com/docs/es/settings-reference.md#what-the-write-block-refuses-and-what-stays-writable). La clave no limita los comandos de shell, las herramientas MCP ni los programas que ejecutan los hooks, así que usa [sandboxing](https://code.claude.com/docs/es/sandboxing.md) para limitar dónde escriben los comandos de shell. Requiere Claude Code v2.1.314 o posterior.

44 45 

45## Configuraciones comunes46## Configuraciones comunes

46 47 


531Respondas lo que respondas, Claude sigue trabajando:532Respondas lo que respondas, Claude sigue trabajando:

532 533 

533* **Yes, and keep allowing any reads outside the working directories**: la lectura se ejecuta, las lecturas posteriores fuera de los directorios de trabajo se ejecutan como antes, y Claude Code registra tu respuesta para que la solicitud no vuelva a aparecer534* **Yes, and keep allowing any reads outside the working directories**: la lectura se ejecuta, las lecturas posteriores fuera de los directorios de trabajo se ejecutan como antes, y Claude Code registra tu respuesta para que la solicitud no vuelva a aparecer

534* **No, and block reads outside the working directories from now on**: la lectura se rechaza, y Claude Code configura [`permissions.blockReadsOutsideWorkingDirectories`](https://code.claude.com/docs/es/settings-reference#permissions-blockreadsoutsideworkingdirectories) como `true` en tu configuración de usuario, lo que hace que las herramientas de archivos rechacen esas lecturas en todas las sesiones posteriores y en todos los modos de permisos. Para permitir que Claude lea una ruta así más adelante, agrega su directorio con `/add-dir` o elimina el ajuste.535* **No, and block reads outside the working directories from now on**: la lectura se rechaza, y Claude Code configura [`permissions.blockReadsOutsideWorkingDirectories`](https://code.claude.com/docs/es/settings-reference#permissions-blockreadsoutsideworkingdirectories) como `true` en tu configuración de usuario, lo que hace que las herramientas de archivos rechacen esas lecturas en esta sesión y en todas las posteriores, y en todos los modos de permisos. Para levantar el bloqueo, elimina el ajuste de todos los [archivos de configuración](https://code.claude.com/docs/es/settings.md#settings-files-and-who-they-affect) que lo establezcan y luego reinicia cada sesión en ejecución. Para un solo directorio en esta sesión, usa `/add-dir`.

535* **No, and ask again next time**: la lectura se rechaza, y la siguiente lectura fuera de los directorios de trabajo vuelve a pedir permiso536* **No, and ask again next time**: la lectura se rechaza, y la siguiente lectura fuera de los directorios de trabajo vuelve a pedir permiso

536* **Yes, but ask again next time**: la lectura se ejecuta, no se guarda nada, y la siguiente lectura fuera de los directorios de trabajo vuelve a pedir permiso537* **Yes, but ask again next time**: la lectura se ejecuta, no se guarda nada, y la siguiente lectura fuera de los directorios de trabajo vuelve a pedir permiso

537 538 


553 554 

554Cuando el modo automático no puede aprobar las acciones de tu sesión, lo que sucede depende del caso:555Cuando el modo automático no puede aprobar las acciones de tu sesión, lo que sucede depende del caso:

555 556 

556* **Una acción bloqueada**: Claude Code muestra una notificación y enumera la acción en `/permissions` en la pestaña **Recently denied**, donde puedes presionar `r` para reintentarla con una aprobación manual.557* **Una acción bloqueada**: Claude Code muestra una notificación y enumera la acción en `/permissions` en la pestaña **Recently blocked**, donde puedes [aprobar la acción para que Claude pueda reintentarla](https://code.claude.com/docs/es/auto-mode-config.md#review-denials).

557* **Bloqueos repetidos**: si el clasificador bloquea una acción 3 veces seguidas o 20 veces en total, el modo automático se pausa y Claude Code vuelve a pedir permiso. Aprobar la acción solicitada reanuda el modo automático. Consulta [Umbrales de bloqueos repetidos](#repeated-block-thresholds) para ver cómo se cuentan los bloqueos.558* **Bloqueos repetidos**: si el clasificador bloquea una acción 3 veces seguidas o 20 veces en total, el modo automático se pausa y Claude Code vuelve a pedir permiso. Aprobar la acción solicitada reanuda el modo automático. Consulta [Umbrales de bloqueos repetidos](#repeated-block-thresholds) para ver cómo se cuentan los bloqueos.

558* **Sin veredicto del clasificador**: cuando una comprobación de seguridad independiente del modo automático rechaza la propia solicitud del clasificador, o la respuesta del clasificador no se puede analizar, Claude Code deniega la acción sin la notificación ni la entrada en **Recently denied**. Consulta [Auto mode cannot determine the safety of an action](https://code.claude.com/docs/es/errors.md#auto-mode-cannot-determine-the-safety-of-an-action) para ver el mensaje que muestra cada caso y qué hacer.559* **Sin veredicto del clasificador**: cuando una comprobación de seguridad independiente del modo automático rechaza la propia solicitud del clasificador, o la respuesta del clasificador no se puede analizar, Claude Code bloquea la acción sin la notificación ni la entrada en **Recently blocked**. Consulta [Auto mode cannot determine the safety of an action](https://code.claude.com/docs/es/errors.md#auto-mode-cannot-determine-the-safety-of-an-action) para ver el mensaje que muestra cada caso y qué hacer.

559* **Sin veredicto del servidor**: con la [revisión del clasificador del lado del servidor](#server-side-classifier-review), Claude Code deniega una acción para la que el servidor no da veredicto, y detiene el turno después de diez respuestas seguidas sin veredicto. Consulta [The server returned no safety verdict](https://code.claude.com/docs/es/errors.md#the-server-returned-no-safety-verdict).560* **Sin veredicto del servidor**: con la [revisión del clasificador del lado del servidor](#server-side-classifier-review), Claude Code deniega una acción para la que el servidor no da veredicto, y detiene el turno después de diez respuestas seguidas sin veredicto. Consulta [The server returned no safety verdict](https://code.claude.com/docs/es/errors.md#the-server-returned-no-safety-verdict).

560* **Un cambio de modo durante una comprobación**: si cambias de modo de permisos mientras hay una comprobación del clasificador pendiente, Claude Code descarta un veredicto que el nuevo modo no habría solicitado. En su lugar, se te pide aprobación, o la acción se deniega automáticamente en el [modo `dontAsk`](#allow-only-pre-approved-tools-with-dontask-mode).561* **Un cambio de modo durante una comprobación**: si cambias de modo de permisos mientras hay una comprobación del clasificador pendiente, Claude Code descarta un veredicto que el nuevo modo no habría solicitado. En su lugar, se te pide aprobación, o la acción se deniega automáticamente en el [modo `dontAsk`](#allow-only-pre-approved-tools-with-dontask-mode).

561 562 


738 739 

739En una sesión iniciada con [`--restricted`](https://code.claude.com/docs/es/cli-reference#cli-flags), que requiere Claude Code v2.1.248 o posterior, el clasificador no puede aprobar escrituras en rutas protegidas.740En una sesión iniciada con [`--restricted`](https://code.claude.com/docs/es/cli-reference#cli-flags), que requiere Claude Code v2.1.248 o posterior, el clasificador no puede aprobar escrituras en rutas protegidas.

740 741 

742Mientras [`permissions.blockWritesOutsideWorkingDirectories`](https://code.claude.com/docs/es/settings-reference#permissions-blockwritesoutsideworkingdirectories) esté activado, Claude Code rechaza las escrituras de `Write`, `Edit` y `NotebookEdit` en archivos de configuración en todos los modos de permisos.

743 

741En los modos que enrutan escrituras en rutas protegidas al clasificador, una escritura que la [verificación de enlaces simbólicos](https://code.claude.com/docs/es/permissions.md#symlinks) resuelve a una ruta protegida le solicita en su lugar cuando la ruta que Claude solicitó no está protegida en sí misma.744En los modos que enrutan escrituras en rutas protegidas al clasificador, una escritura que la [verificación de enlaces simbólicos](https://code.claude.com/docs/es/permissions.md#symlinks) resuelve a una ruta protegida le solicita en su lugar cuando la ruta que Claude solicitó no está protegida en sí misma.

742 745 

743Las reglas [`permissions.allow`](https://code.claude.com/docs/es/permissions#manage-permissions) en archivos de configuración no pre-aprueban escrituras en rutas protegidas. La verificación de seguridad se ejecuta antes de que Claude Code evalúe las reglas de permitir desde la configuración, por lo que una entrada como `Edit(.claude/**)` en `~/.claude/settings.json` o `.claude/settings.json` no cambia el resultado por modo en la tabla anterior. En modos de permisos que solicitan, el aviso para una escritura en la carpeta `.claude/` del proyecto o en `~/.claude/` puede ofrecer una de estas opciones con alcance de sesión:746Las reglas [`permissions.allow`](https://code.claude.com/docs/es/permissions#manage-permissions) en archivos de configuración no pre-aprueban escrituras en rutas protegidas. La verificación de seguridad se ejecuta antes de que Claude Code evalúe las reglas de permitir desde la configuración, por lo que una entrada como `Edit(.claude/**)` en `~/.claude/settings.json` o `.claude/settings.json` no cambia el resultado por modo en la tabla anterior. En modos de permisos que solicitan, el aviso para una escritura en la carpeta `.claude/` del proyecto o en `~/.claude/` puede ofrecer una de estas opciones con alcance de sesión:


776* `.devcontainer.json`779* `.devcontainer.json`

777* `.ripgreprc`, `pyrightconfig.json`780* `.ripgreprc`, `pyrightconfig.json`

778* `.mcp.json`, `.claude.json`781* `.mcp.json`, `.claude.json`

782* `remote-settings.json`, la copia almacenada de la [configuración administrada por el servidor](https://code.claude.com/docs/es/server-managed-settings.md) de tu organización, y los archivos de firma, sincronización y consentimiento que Claude Code guarda junto con ella, en `~/.claude` o en el directorio al que apunta [`CLAUDE_CONFIG_DIR`](https://code.claude.com/docs/es/env-vars)

779* Un archivo que pasaste a [`--settings`](https://code.claude.com/docs/es/cli-reference#cli-flags), `--mcp-config` o `--agents` al iniciar la sesión783* Un archivo que pasaste a [`--settings`](https://code.claude.com/docs/es/cli-reference#cli-flags), `--mcp-config` o `--agents` al iniciar la sesión

780* El archivo al que apunta tu [archivo de configuración](https://code.claude.com/docs/es/settings.md#settings-files-and-who-they-affect) de usuario, de proyecto o local cuando el propio archivo de configuración es un enlace simbólico, por ejemplo hacia un repositorio de dotfiles. En los modos que enrutan escrituras en rutas protegidas al clasificador, una escritura en este archivo te pide confirmación en su lugar, incluso cuando coincide una regla de permitir. Si la ruta propia del archivo también es la de un archivo de configuración, como `.claude/settings.json` en otra carpeta, la escritura va al clasificador como ocurre con otras escrituras en rutas protegidas784* El archivo al que apunta tu [archivo de configuración](https://code.claude.com/docs/es/settings.md#settings-files-and-who-they-affect) de usuario, de proyecto o local cuando el propio archivo de configuración es un enlace simbólico, por ejemplo hacia un repositorio de dotfiles. En los modos que enrutan escrituras en rutas protegidas al clasificador, una escritura en este archivo te pide confirmación en su lugar, incluso cuando coincide una regla de permitir. Si la ruta propia del archivo también es la de un archivo de configuración, como `.claude/settings.json` en otra carpeta, la escritura va al clasificador como ocurre con otras escrituras en rutas protegidas

781 785 

permissions.md +9 −2

Details

668 668 

669No puedes agregar la mayoría de las [rutas de red](https://code.claude.com/docs/es/errors.md#working-directory-is-a-network-path), como el recurso compartido UNC `\\server\share`, como directorios de trabajo, porque buscar una de ellas puede contactar al host que nombra. En Windows, asigna el recurso compartido a una letra de unidad y pasa esa unidad con `--add-dir` al iniciar.669No puedes agregar la mayoría de las [rutas de red](https://code.claude.com/docs/es/errors.md#working-directory-is-a-network-path), como el recurso compartido UNC `\\server\share`, como directorios de trabajo, porque buscar una de ellas puede contactar al host que nombra. En Windows, asigna el recurso compartido a una letra de unidad y pasa esa unidad con `--add-dir` al iniciar.

670 670 

671Configura [`permissions.blockReadsOutsideWorkingDirectories`](https://code.claude.com/docs/es/settings-reference#permissions-blockreadsoutsideworkingdirectories) para que las herramientas de archivos rechacen las rutas fuera de los límites que establece en todos los modos de permisos. En modo automático, Claude Code ofrece activarlo la primera vez que Claude [lee fuera de los directorios de trabajo](https://code.claude.com/docs/es/permission-modes.md#first-read-outside-the-working-directories).

672 

673En las sesiones en segundo plano en macOS, el host de la sesión solicita acceso a carpetas protegidas como `~/Desktop`, `~/Documents` y `~/Downloads` por separado de tu terminal cuando Claude necesita leer o escribir archivos allí; si las lecturas en esas carpetas fallan con `Operation not permitted`, consulta [cómo otorgar acceso a carpetas a las sesiones en segundo plano](https://code.claude.com/docs/es/agent-view.md#background-sessions-can’t-read-desktop-documents-or-downloads-on-macos).671En las sesiones en segundo plano en macOS, el host de la sesión solicita acceso a carpetas protegidas como `~/Desktop`, `~/Documents` y `~/Downloads` por separado de tu terminal cuando Claude necesita leer o escribir archivos allí; si las lecturas en esas carpetas fallan con `Operation not permitted`, consulta [cómo otorgar acceso a carpetas a las sesiones en segundo plano](https://code.claude.com/docs/es/agent-view.md#background-sessions-can’t-read-desktop-documents-or-downloads-on-macos).

674 672 

673### Bloquear las lecturas y escrituras de las herramientas de archivos fuera de los directorios de trabajo

674 

675Para que las herramientas de archivos de Claude rechacen las rutas fuera de los directorios de trabajo en todos los modos de permisos, incluido `bypassPermissions`, establece una o ambas de estas claves en `true`:

676 

677* **[`permissions.blockReadsOutsideWorkingDirectories`](https://code.claude.com/docs/es/settings-reference#permissions-blockreadsoutsideworkingdirectories)**: las herramientas de archivos rechazan las lecturas allí, salvo los archivos que el propio Claude Code necesita. En modo automático, Claude Code ofrece activarlo la primera vez que Claude [lee fuera de los directorios de trabajo](https://code.claude.com/docs/es/permission-modes.md#first-read-outside-the-working-directories).

678* **[`permissions.blockWritesOutsideWorkingDirectories`](https://code.claude.com/docs/es/settings-reference#permissions-blockwritesoutsideworkingdirectories)**: las herramientas `Write`, `Edit` y `NotebookEdit` rechazan las escrituras allí, salvo algunos de los archivos propios de Claude Code, como los archivos de plan. La clave no limita los comandos de shell, las herramientas MCP ni los programas que ejecutan los hooks, así que usa [sandboxing](https://code.claude.com/docs/es/sandboxing.md) para limitar dónde escriben los comandos de shell. Requiere Claude Code v2.1.314 o posterior.

679 

680Para mantener accesible un directorio externo mientras cualquiera de las claves esté en `true`, [agrégalo como directorio de trabajo](https://code.claude.com/docs/es/settings-reference.md#let-one-directory-through-the-read-or-write-block).

681 

675### Mover la sesión a otro directorio682### Mover la sesión a otro directorio

676 683 

677Para mover la sesión a un directorio de trabajo principal diferente, en lugar de [agregar un directorio](#working-directories) junto al actual, ejecuta `/cd <path>`. Claude Code conserva la conversación, carga el `CLAUDE.md` del nuevo directorio y te pide [confiar en el espacio de trabajo](#project-allow-rules-and-workspace-trust) si no has trabajado en él antes. Después, Claude Code [encuentra la sesión movida](https://code.claude.com/docs/es/sessions.md#where-the-session-picker-looks) cuando ejecutas `--resume` desde el nuevo directorio.684Para mover la sesión a un directorio de trabajo principal diferente, en lugar de [agregar un directorio](#working-directories) junto al actual, ejecuta `/cd <path>`. Claude Code conserva la conversación, carga el `CLAUDE.md` del nuevo directorio y te pide [confiar en el espacio de trabajo](#project-allow-rules-and-workspace-trust) si no has trabajado en él antes. Después, Claude Code [encuentra la sesión movida](https://code.claude.com/docs/es/sessions.md#where-the-session-picker-looks) cuando ejecutas `--resume` desde el nuevo directorio.

Details

256 256 

257### Detener el trabajo en segundo plano257### Detener el trabajo en segundo plano

258 258 

259Los temporizadores se detienen cuando el módulo se recarga. Para trabajo de larga duración dentro de un hook, [`next.signal`](https://code.claude.com/docs/es/plugins/mods/reference#the-hook-function) es un `AbortSignal` que se aborta cuando se abandona el evento que tu hook está manejando, por ejemplo cuando el usuario interrumpe, así que pásalo a cualquier cosa de larga duración.259Los temporizadores se detienen después de que el módulo se recarga. Para trabajo de larga duración dentro de un hook, [`next.signal`](https://code.claude.com/docs/es/plugins/mods/reference#the-hook-function) es un `AbortSignal` que se aborta cuando se abandona el evento que tu hook está manejando, por ejemplo cuando el usuario interrumpe. Pásalo a cualquier cosa de larga duración.

260 260 

261### Llamadas y trabajo en segundo plano después de que el usuario interrumpe un turno261### Llamadas y trabajo en segundo plano después de que el usuario interrumpe un turno

262 262 

Details

738})738})

739```739```

740 740 

741Ahora Claude Code ejecuta tu hook `ui.render` una vez por segundo. El temporizador se detiene cuando el módulo se recarga, y la nueva instancia del módulo inicia el suyo.741Claude Code ahora ejecuta tu hook `ui.render` una vez por segundo. El temporizador se detiene después de que el módulo se recarga, y la nueva instancia del módulo inicia el suyo propio.

742 742 

743### Con qué frecuencia puede volver a dibujarse un sitio743### Con qué frecuencia puede volver a dibujarse un sitio

744 744 

plugins/org.md +1 −1

Details

339Para ejecutar canales estables y de acceso temprano, aloje dos marketplaces que apunten a diferentes refs de los mismos plugins. Luego dé a cada grupo de usuarios su propio marketplace a través de configuración administrada por punto final separada o una política de puerta de enlace. La configuración administrada por servidor desde la consola de administración [se aplica a cada usuario en su organización](https://code.claude.com/docs/es/server-managed-settings.md#current-limitations), por lo que no pueden asignar diferentes configuraciones a diferentes grupos.339Para ejecutar canales estables y de acceso temprano, aloje dos marketplaces que apunten a diferentes refs de los mismos plugins. Luego dé a cada grupo de usuarios su propio marketplace a través de configuración administrada por punto final separada o una política de puerta de enlace. La configuración administrada por servidor desde la consola de administración [se aplica a cada usuario en su organización](https://code.claude.com/docs/es/server-managed-settings.md#current-limitations), por lo que no pueden asignar diferentes configuraciones a diferentes grupos.

340 340 

341* Implemente [configuración administrada por punto final](https://code.claude.com/docs/es/managed-settings.md#delivery-mechanisms) separada, como un archivo de configuración administrada o un perfil MDM, en los dispositivos de cada grupo. Para verificar si el archivo o perfil por grupo se aplica en un dispositivo que también tiene una fuente de toda la organización, consulte [How Claude Code combines managed sources](https://code.claude.com/docs/es/managed-settings.md#precedence-within-the-managed-tier).341* Implemente [configuración administrada por punto final](https://code.claude.com/docs/es/managed-settings.md#delivery-mechanisms) separada, como un archivo de configuración administrada o un perfil MDM, en los dispositivos de cada grupo. Para verificar si el archivo o perfil por grupo se aplica en un dispositivo que también tiene una fuente de toda la organización, consulte [How Claude Code combines managed sources](https://code.claude.com/docs/es/managed-settings.md#precedence-within-the-managed-tier).

342* Defina una [política de puerta de enlace de aplicaciones Claude](https://code.claude.com/docs/es/claude-apps-gateway-config.md#managed) por grupo. La puerta de enlace aplica la primera política cuya regla de coincidencia se ajusta a un usuario, así que ordene las políticas para que cada usuario llegue a la política de su grupo. El mapa `extraKnownMarketplaces` de esa política no se fusiona con el de ninguna otra política, así que enumere cada marketplace que el grupo necesita en él, no solo su marketplace de canal.342* Define una [política del gateway de aplicaciones de Claude](https://code.claude.com/docs/es/claude-apps-gateway-config.md#managed) por grupo. De forma predeterminada, el gateway aplica la primera política cuya regla de coincidencia se ajusta a un usuario, así que ordena las políticas para que cada usuario llegue a la política de su grupo. El mapa `extraKnownMarketplaces` de esa política no se combina con el de ninguna otra política, así que enumera en él todos los marketplaces que necesita el grupo, no solo el marketplace de su canal.

343 343 

344Con cualquiera de los mecanismos, el grupo estable recibe esta configuración:344Con cualquiera de los mecanismos, el grupo estable recibe esta configuración:

345 345 

Details

51>51>

52> Hasta que acepte la confirmación única de Remote Control, `claude remote-control` explica qué hace y pregunta `Enable Remote Control? (y/n)` antes de iniciar el servidor. Responda `y` para aceptar e iniciar el servidor. Si rechaza, Claude Code sale sin iniciar el servidor y pregunta nuevamente la próxima vez que ejecute el comando.52> Hasta que acepte la confirmación única de Remote Control, `claude remote-control` explica qué hace y pregunta `Enable Remote Control? (y/n)` antes de iniciar el servidor. Responda `y` para aceptar e iniciar el servidor. Si rechaza, Claude Code sale sin iniciar el servidor y pregunta nuevamente la próxima vez que ejecute el comando.

53>53>

54> El proceso sigue ejecutándose en su terminal en modo servidor, esperando conexiones remotas. Muestra una URL de sesión que puede usar para [conectarse desde otro dispositivo](#connect-from-another-device), y puede presionar la barra espaciadora para mostrar un código QR para acceso rápido desde su teléfono. Mientras una sesión remota está activa, la terminal muestra el estado de la conexión y la actividad de las herramientas.54> El proceso sigue ejecutándose en tu terminal en modo servidor, esperando conexiones remotas. Muestra una URL que puedes usar para [conectarte desde otro dispositivo](#connect-from-another-device), y puedes presionar la barra espaciadora para mostrar un código QR para acceso rápido desde tu teléfono. Mientras una sesión remota está activa, la terminal muestra el estado de la conexión y la actividad de las herramientas.

55>55>

56> Pase cualquiera de estas banderas después de `remote-control`:56> Pase cualquiera de estas banderas después de `remote-control`:

57>57>


151 151 

152Una vez que una sesión de Remote Control está activa, tiene varias formas de conectarse desde otro dispositivo:152Una vez que una sesión de Remote Control está activa, tiene varias formas de conectarse desde otro dispositivo:

153 153 

154* **Abra la URL de la sesión** en cualquier navegador para ir directamente a la sesión en [claude.ai/code](https://claude.ai/code).154* **Abre la URL que muestra Claude Code** en cualquier navegador para ir a [claude.ai/code](https://claude.ai/code).

155* **Escanee el código QR** que se muestra junto a la URL de la sesión para abrirlo directamente en la aplicación Claude. Con `claude remote-control`, presione la barra espaciadora para alternar la visualización del código QR.155* **Escanea el código QR** que se muestra junto a la URL para abrirla en la aplicación Claude. Con `claude remote-control`, presiona la barra espaciadora para alternar la visualización del código QR.

156* **Abra [claude.ai/code](https://claude.ai/code) o la aplicación Claude** y encuentre la sesión por nombre en la lista de sesiones. En la aplicación móvil Claude, toque **Code** en la navegación para llegar a la lista de sesiones. Las sesiones de Remote Control muestran un icono de computadora con un punto de estado verde cuando están en línea.156* **Abra [claude.ai/code](https://claude.ai/code) o la aplicación Claude** y encuentre la sesión por nombre en la lista de sesiones. En la aplicación móvil Claude, toque **Code** en la navegación para llegar a la lista de sesiones. Las sesiones de Remote Control muestran un icono de computadora con un punto de estado verde cuando están en línea.

157 157 

158Cuando se conecta, el dispositivo muestra cualquier subagente y flujo de trabajo que la sesión ya tenga ejecutándose en segundo plano. Detenga uno de ellos desde el dispositivo, y Claude Code detiene esa tarea en su máquina.158Cuando se conecta, el dispositivo muestra cualquier subagente y flujo de trabajo que la sesión ya tenga ejecutándose en segundo plano. Detenga uno de ellos desde el dispositivo, y Claude Code detiene esa tarea en su máquina.

routines.md +1 −1

Details

105 105 

106**5. Seleccionar un entorno**106**5. Seleccionar un entorno**

107 107 

108Después de seleccionar un repositorio, aparece **Cloud environment** debajo. Elige un [entorno en la nube](https://code.claude.com/docs/es/cloud-environments.md) para la tarea. Los entornos controlan a qué tiene acceso la sesión en la nube:108Después de seleccionar un repositorio, aparece **Cloud environment** debajo. Elige un [entorno en la nube](https://code.claude.com/docs/es/cloud-environments.md) para la tarea. Si ya hay un entorno seleccionado, puedes conservarlo o seleccionar otro. Los entornos controlan a qué tiene acceso la sesión en la nube:

109 109 

110* **Network access**: establece el nivel de acceso a Internet disponible durante cada ejecución110* **Network access**: establece el nivel de acceso a Internet disponible durante cada ejecución

111* **Environment variables**: proporciona valores que Claude puede usar durante cada ejecución. Son [visibles para cualquiera que use el entorno](https://code.claude.com/docs/es/cloud-environments.md#what-carries-over-from-your-setup), por lo que en un entorno alojado por Anthropic, almacena las claves de las API que Claude llama durante una ejecución como [secretos de red](https://code.claude.com/docs/es/cloud-environments.md#add-network-secrets) en su lugar. Esa sección también enumera las solicitudes que nunca reciben un secreto111* **Environment variables**: proporciona valores que Claude puede usar durante cada ejecución. Son [visibles para cualquiera que use el entorno](https://code.claude.com/docs/es/cloud-environments.md#what-carries-over-from-your-setup), por lo que en un entorno alojado por Anthropic, almacena las claves de las API que Claude llama durante una ejecución como [secretos de red](https://code.claude.com/docs/es/cloud-environments.md#add-network-secrets) en su lugar. Esa sección también enumera las solicitudes que nunca reciben un secreto

Details

157* **Claves de inicio de sesión de primera parte**: [`forceLoginOrgUUID`](https://code.claude.com/docs/es/settings-reference#forceloginorguuid) y los valores `"claudeai"` y `"console"` de [`forceLoginMethod`](https://code.claude.com/docs/es/settings-reference#forceloginmethod). Si también despliegas una política MDM o un archivo de configuración administrada, establécelas allí y en la configuración administrada por servidor desde claude.ai hasta que todos los clientes ejecuten v2.1.299 o posterior. Para saber dónde establecer las claves después, y el valor de qué fuente se aplica, consulta [Qué fuente administrada suministra las claves de inicio de sesión](https://code.claude.com/docs/es/managed-settings.md#which-managed-source-supplies-login-keys).157* **Claves de inicio de sesión de primera parte**: [`forceLoginOrgUUID`](https://code.claude.com/docs/es/settings-reference#forceloginorguuid) y los valores `"claudeai"` y `"console"` de [`forceLoginMethod`](https://code.claude.com/docs/es/settings-reference#forceloginmethod). Si también despliegas una política MDM o un archivo de configuración administrada, establécelas allí y en la configuración administrada por servidor desde claude.ai hasta que todos los clientes ejecuten v2.1.299 o posterior. Para saber dónde establecer las claves después, y el valor de qué fuente se aplica, consulta [Qué fuente administrada suministra las claves de inicio de sesión](https://code.claude.com/docs/es/managed-settings.md#which-managed-source-supplies-login-keys).

158* **Claves de inicio de sesión de puerta de enlace**: Claude Code nunca lee [`forceLoginGatewayUrl`](https://code.claude.com/docs/es/settings-reference#forcelogingatewayurl), [`gatewayInternalNetworks`](https://code.claude.com/docs/es/settings-reference#gatewayinternalnetworks), ni el valor `"gateway"` de [`forceLoginMethod`](https://code.claude.com/docs/es/settings-reference#forceloginmethod) de la configuración administrada por servidor, por lo que un valor allí ni se aplica ni oculta uno establecido en una política MDM o archivo de configuración administrada. La entrada [`managedSourcesBehavior`](https://code.claude.com/docs/es/settings-reference#managedsourcesbehavior) dice qué fuente de administrador en la máquina los suministra.158* **Claves de inicio de sesión de puerta de enlace**: Claude Code nunca lee [`forceLoginGatewayUrl`](https://code.claude.com/docs/es/settings-reference#forcelogingatewayurl), [`gatewayInternalNetworks`](https://code.claude.com/docs/es/settings-reference#gatewayinternalnetworks), ni el valor `"gateway"` de [`forceLoginMethod`](https://code.claude.com/docs/es/settings-reference#forceloginmethod) de la configuración administrada por servidor, por lo que un valor allí ni se aplica ni oculta uno establecido en una política MDM o archivo de configuración administrada. La entrada [`managedSourcesBehavior`](https://code.claude.com/docs/es/settings-reference#managedsourcesbehavior) dice qué fuente de administrador en la máquina los suministra.

159 159 

160#### Cuando el `apiKeyHelper` de una máquina no está en vigor

161 

162Cuando tu configuración administrada por servidor es la fuente seleccionada, un `apiKeyHelper` en el archivo de configuración administrada o la política MDM de una máquina no está en vigor. Entonces Claude Code [rechaza los prompts](https://code.claude.com/docs/es/errors.md#claude-code-didnt-send-your-claude-ai-login) en una sesión que usaría un inicio de sesión de claude.ai guardado, siempre que se cumplan estas dos condiciones:

163 

164* El archivo o la política activa un proveedor de nube, o cualquier fuente establece una dirección de API distinta de la de Anthropic

165* La configuración administrada por servidor no establece ningún asistente y no nombra la dirección de API de Anthropic

166 

167Para eliminar el rechazo, mantén el asistente y su dirección de API en vigor, nombra la dirección de API de Anthropic en la configuración administrada por servidor o quita el asistente de la política de la máquina. El rechazo requiere Claude Code v2.1.314 o posterior.

168 

160### Comportamiento de búsqueda y almacenamiento en caché169### Comportamiento de búsqueda y almacenamiento en caché

161 170 

162Claude Code obtiene la configuración de los servidores de Anthropic al inicio y sondea actualizaciones cada hora durante sesiones activas.171Claude Code obtiene la configuración de los servidores de Anthropic al inicio y sondea actualizaciones cada hora durante sesiones activas.

settings.md +3 −0

Details

184* [`model`](https://code.claude.com/docs/es/settings-reference#model): use [`/model`](https://code.claude.com/docs/es/model-config#setting-your-model) para cambiar a mitad de sesión. Cada modelo tiene su propio caché de indicador, por lo que la primera solicitud después de un cambio relee toda la conversación sin caché; vea [Cambiar modelos](https://code.claude.com/docs/es/prompt-caching.md#switching-models)184* [`model`](https://code.claude.com/docs/es/settings-reference#model): use [`/model`](https://code.claude.com/docs/es/model-config#setting-your-model) para cambiar a mitad de sesión. Cada modelo tiene su propio caché de indicador, por lo que la primera solicitud después de un cambio relee toda la conversación sin caché; vea [Cambiar modelos](https://code.claude.com/docs/es/prompt-caching.md#switching-models)

185* [`effortLevel`](https://code.claude.com/docs/es/settings-reference#effortlevel) y [`modelSettings`](https://code.claude.com/docs/es/settings-reference#modelsettings): use [`/effort`](https://code.claude.com/docs/es/model-config#adjust-effort-level) para cambiar esfuerzo a mitad de sesión185* [`effortLevel`](https://code.claude.com/docs/es/settings-reference#effortlevel) y [`modelSettings`](https://code.claude.com/docs/es/settings-reference#modelsettings): use [`/effort`](https://code.claude.com/docs/es/model-config#adjust-effort-level) para cambiar esfuerzo a mitad de sesión

186 186 

187Si eliminas [`permissions.blockReadsOutsideWorkingDirectories`](https://code.claude.com/docs/es/settings-reference#permissions-blockreadsoutsideworkingdirectories) a mitad de sesión, las herramientas de archivos mantienen el bloqueo en la sesión en ejecución. Para levantarlo, elimina la clave de todos los archivos de configuración que la establecen y luego reinicia cada sesión en ejecución.

188 

187### Confirme qué se cargó189### Confirme qué se cargó

188 190 

189Ejecute `/status` dentro de Claude Code para ver qué fuentes de configuración están activas. La pestaña **Status** incluye una línea `Setting sources` que enumera cada archivo de configuración que Claude Code cargó para la sesión actual, como `User settings` o `Project local settings`. Cuando [configuraciones administradas](https://code.claude.com/docs/es/admin-setup.md#decide-how-settings-reach-devices) están en vigor, la entrada de configuraciones administradas muestra entre paréntesis cómo llegaron a su máquina.191Ejecute `/status` dentro de Claude Code para ver qué fuentes de configuración están activas. La pestaña **Status** incluye una línea `Setting sources` que enumera cada archivo de configuración que Claude Code cargó para la sesión actual, como `User settings` o `Project local settings`. Cuando [configuraciones administradas](https://code.claude.com/docs/es/admin-setup.md#decide-how-settings-reach-devices) están en vigor, la entrada de configuraciones administradas muestra entre paréntesis cómo llegaron a su máquina.


307| [`enableArtifact`](https://code.claude.com/docs/es/settings-reference#enableartifact) | `false` desde cualquier alcance, y `disableArtifact: true` desde cualquier alcance | Se respeta incluso cuando una fuente administrada define `true`; nada vuelve a activar la [herramienta Artifact](https://code.claude.com/docs/es/artifacts.md#disable-artifacts). Requiere Claude Code v2.1.242 o posterior |309| [`enableArtifact`](https://code.claude.com/docs/es/settings-reference#enableartifact) | `false` desde cualquier alcance, y `disableArtifact: true` desde cualquier alcance | Se respeta incluso cuando una fuente administrada define `true`; nada vuelve a activar la [herramienta Artifact](https://code.claude.com/docs/es/artifacts.md#disable-artifacts). Requiere Claude Code v2.1.242 o posterior |

308| [`isolatePeerMachines`](https://code.claude.com/docs/es/settings-reference#isolatepeermachines) | `true` desde cualquier alcance | Se respeta incluso cuando una fuente administrada define `false` |310| [`isolatePeerMachines`](https://code.claude.com/docs/es/settings-reference#isolatepeermachines) | `true` desde cualquier alcance | Se respeta incluso cuando una fuente administrada define `false` |

309| [`permissions.blockReadsOutsideWorkingDirectories`](https://code.claude.com/docs/es/settings-reference#permissions-blockreadsoutsideworkingdirectories) | `true` desde cualquier alcance | Se respeta incluso cuando una fuente administrada define `false`. Requiere Claude Code v2.1.257 o posterior |311| [`permissions.blockReadsOutsideWorkingDirectories`](https://code.claude.com/docs/es/settings-reference#permissions-blockreadsoutsideworkingdirectories) | `true` desde cualquier alcance | Se respeta incluso cuando una fuente administrada define `false`. Requiere Claude Code v2.1.257 o posterior |

312| [`permissions.blockWritesOutsideWorkingDirectories`](https://code.claude.com/docs/es/settings-reference#permissions-blockwritesoutsideworkingdirectories) | `true` desde cualquier alcance | Se respeta incluso cuando una fuente administrada define `false`. Requiere Claude Code v2.1.314 o posterior |

310| [`autoMode.classifyAllShell`](https://code.claude.com/docs/es/settings-reference#automode-classifyallshell) | `true` desde `~/.claude/settings.json` o `--settings` | Se respeta incluso cuando una fuente administrada define `false` |313| [`autoMode.classifyAllShell`](https://code.claude.com/docs/es/settings-reference#automode-classifyallshell) | `true` desde `~/.claude/settings.json` o `--settings` | Se respeta incluso cuando una fuente administrada define `false` |

311| [`remoteControlAtStartup`](https://code.claude.com/docs/es/settings-reference#remotecontrolatstartup) | `false` desde `.claude/settings.json` o `.claude/settings.local.json` | Se respeta incluso cuando una fuente administrada define `true`; un `true` de proyecto o local se ignora |314| [`remoteControlAtStartup`](https://code.claude.com/docs/es/settings-reference#remotecontrolatstartup) | `false` desde `.claude/settings.json` o `.claude/settings.local.json` | Se respeta incluso cuando una fuente administrada define `true`; un `true` de proyecto o local se ignora |

312| [`crossSessionInbound`](https://code.claude.com/docs/es/settings-reference#crosssessioninbound) | Un valor más estricto desde `.claude/settings.json` o `.claude/settings.local.json`, en la escala `accept` \< `hold` \< `refuse` | Se respeta por encima de los valores administrados, de `--settings` y de usuario; un valor de proyecto o local que no sea más estricto se ignora |315| [`crossSessionInbound`](https://code.claude.com/docs/es/settings-reference#crosssessioninbound) | Un valor más estricto desde `.claude/settings.json` o `.claude/settings.local.json`, en la escala `accept` \< `hold` \< `refuse` | Se respeta por encima de los valores administrados, de `--settings` y de usuario; un valor de proyecto o local que no sea más estricto se ignora |

Details

144| [`permissions.allow`](#permissions-allow) | Aprueba los [usos de herramientas](https://code.claude.com/docs/es/permissions.md#permission-rule-syntax) enumerados sin pedir confirmación | Configuración de permisos | Any file |144| [`permissions.allow`](#permissions-allow) | Aprueba los [usos de herramientas](https://code.claude.com/docs/es/permissions.md#permission-rule-syntax) enumerados sin pedir confirmación | Configuración de permisos | Any file |

145| [`permissions.ask`](#permissions-ask) | Pide confirmación siempre antes de los [usos de herramientas](https://code.claude.com/docs/es/permissions.md#permission-rule-syntax) enumerados | Configuración de permisos | Any file |145| [`permissions.ask`](#permissions-ask) | Pide confirmación siempre antes de los [usos de herramientas](https://code.claude.com/docs/es/permissions.md#permission-rule-syntax) enumerados | Configuración de permisos | Any file |

146| [`permissions.blockReadsOutsideWorkingDirectories`](#permissions-blockreadsoutsideworkingdirectories) | Haz que las herramientas de archivos rechacen las lecturas fuera de los [directorios de trabajo](https://code.claude.com/docs/es/permissions.md#working-directories) en todos los modos de permisos | Configuración de permisos | Any file |146| [`permissions.blockReadsOutsideWorkingDirectories`](#permissions-blockreadsoutsideworkingdirectories) | Haz que las herramientas de archivos rechacen las lecturas fuera de los [directorios de trabajo](https://code.claude.com/docs/es/permissions.md#working-directories) en todos los modos de permisos | Configuración de permisos | Any file |

147| [`permissions.blockWritesOutsideWorkingDirectories`](#permissions-blockwritesoutsideworkingdirectories) | Haz que las herramientas `Write`, `Edit` y `NotebookEdit` rechacen las rutas fuera de los [directorios de trabajo](https://code.claude.com/docs/es/permissions.md#working-directories) en todos los modos de permisos, salvo [algunos archivos propios de Claude Code](#what-the-write-block-refuses-and-what-stays-writable) | Configuración de permisos | Any file |

147| [`permissions.defaultMode`](#permissions-defaultmode) | Establece el [modo de permisos](https://code.claude.com/docs/es/permission-modes.md#which-mode-a-session-starts-in) en el que inician las nuevas sesiones | Configuración de permisos | Any file |148| [`permissions.defaultMode`](#permissions-defaultmode) | Establece el [modo de permisos](https://code.claude.com/docs/es/permission-modes.md#which-mode-a-session-starts-in) en el que inician las nuevas sesiones | Configuración de permisos | Any file |

148| [`permissions.deny`](#permissions-deny) | Bloquea los [usos de herramientas](https://code.claude.com/docs/es/permissions.md#permission-rule-syntax) enumerados, incluidas las lecturas de archivos que contienen secretos | Configuración de permisos | Any file |149| [`permissions.deny`](#permissions-deny) | Bloquea los [usos de herramientas](https://code.claude.com/docs/es/permissions.md#permission-rule-syntax) enumerados, incluidas las lecturas de archivos que contienen secretos | Configuración de permisos | Any file |

149| [`permissions.disableBypassPermissionsMode`](#permissions-disablebypasspermissionsmode) | Impide que cualquiera entre en el [modo bypassPermissions](https://code.claude.com/docs/es/permission-modes.md#skip-all-checks-with-bypasspermissions-mode) | Configuración de permisos | Any file |150| [`permissions.disableBypassPermissionsMode`](#permissions-disablebypasspermissionsmode) | Impide que cualquiera entre en el [modo bypassPermissions](https://code.claude.com/docs/es/permission-modes.md#skip-all-checks-with-bypasspermissions-mode) | Configuración de permisos | Any file |


727 728 

728### `showThinkingSummaries`729### `showThinkingSummaries`

729 730 

730Consulta resúmenes del [pensamiento extendido](https://code.claude.com/docs/es/model-config.md#extended-thinking) de Claude en las sesiones interactivas. Establécelo si quieres ver los resúmenes completos al expandir el pensamiento con `Ctrl+O`. Cuando está sin definir o es `false`, la API de Anthropic oculta los bloques de pensamiento y Claude Code muestra un resumen contraído.731Consulta resúmenes del [pensamiento extendido](https://code.claude.com/docs/es/model-config.md#extended-thinking) de Claude en las sesiones interactivas. Establécelo si quieres ver los resúmenes completos al expandir el pensamiento con `Ctrl+O`. Cuando está sin definir o es `false`, la API de Anthropic oculta los bloques de pensamiento y Claude Code muestra un marcador contraído.

731 732 

732* **Alcance**: [`Any file`](#scopes)733* **Alcance**: [`Any file`](#scopes)

733* **Tipo**: Boolean734* **Tipo**: Boolean

734 * `true`: ves los resúmenes completos del pensamiento al expandirlo con `Ctrl+O`735 * `true`: ves los resúmenes completos del pensamiento al expandirlo con `Ctrl+O`

735 * `false`: la API de Anthropic oculta los bloques de pensamiento y Claude Code muestra un resumen contraído736 * `false`: la API de Anthropic oculta los bloques de pensamiento y Claude Code muestra un marcador contraído

736* **Predeterminado**: `false`737* **Predeterminado**: `false`

737 738 

738```json settings.json theme={null}739```json settings.json theme={null}


901Controla qué herramientas puede usar Claude sin preguntar, cuáles siempre piden confirmación y cuáles están bloqueadas, y establece el [modo de permisos](https://code.claude.com/docs/es/permission-modes.md) en el que comienza una sesión. Cada clave `permissions.*` a continuación se anida bajo este objeto.902Controla qué herramientas puede usar Claude sin preguntar, cuáles siempre piden confirmación y cuáles están bloqueadas, y establece el [modo de permisos](https://code.claude.com/docs/es/permission-modes.md) en el que comienza una sesión. Cada clave `permissions.*` a continuación se anida bajo este objeto.

902 903 

903* **Scope**: [`Any file`](#scopes)904* **Scope**: [`Any file`](#scopes)

904* **Type**: objeto con `allow`, `ask`, `deny`, `additionalDirectories`, `blockReadsOutsideWorkingDirectories`, `defaultMode`, `disableBypassPermissionsMode` y `disableAutoMode`905* **Type**: objeto con `allow`, `ask`, `deny`, `additionalDirectories`, `blockReadsOutsideWorkingDirectories`, `blockWritesOutsideWorkingDirectories`, `defaultMode`, `disableBypassPermissionsMode` y `disableAutoMode`

905* **Default**: sin establecer906* **Default**: sin establecer

906 907 

907Este ejemplo aprueba comandos `npm run` sin preguntar, pide confirmación antes de `git push`, bloquea lecturas de `.env` e inicia sesiones en `acceptEdits`:908Este ejemplo aprueba comandos `npm run` sin preguntar, pide confirmación antes de `git push`, bloquea lecturas de `.env` e inicia sesiones en `acceptEdits`:


1062}1063}

1063```1064```

1064 1065 

1066Para levantar el bloqueo, elimina la clave de cada archivo de configuración que la establezca y luego reinicia cada sesión en ejecución.

1067 

1065Los directorios que agregas con `--add-dir`, `/add-dir` o `additionalDirectories` en tu configuración de usuario o administrada cuentan como directorios de trabajo para el bloqueo. Los directorios agregados solo en la configuración del repositorio no cuentan: los de `.claude/settings.json`, y los de `.claude/settings.local.json` a menos que git informe que ese archivo no está rastreado. En un directorio que no es un repositorio git, o cuando git rastrea el archivo, Claude Code trata `.claude/settings.local.json` como configuración del repositorio, así que pon los directorios que quieras mantener legibles en tu configuración de usuario en su lugar.1068Los directorios que agregas con `--add-dir`, `/add-dir` o `additionalDirectories` en tu configuración de usuario o administrada cuentan como directorios de trabajo para el bloqueo. Los directorios agregados solo en la configuración del repositorio no cuentan: los de `.claude/settings.json`, y los de `.claude/settings.local.json` a menos que git informe que ese archivo no está rastreado. En un directorio que no es un repositorio git, o cuando git rastrea el archivo, Claude Code trata `.claude/settings.local.json` como configuración del repositorio, así que pon los directorios que quieras mantener legibles en tu configuración de usuario en su lugar.

1066 1069 

1067Cuando [`autoMemoryDirectory`](#automemorydirectory) proviene del `.claude/settings.json` del proyecto, o de un `.claude/settings.local.json` [tratado como suministrado por el repositorio](https://code.claude.com/docs/es/permissions.md#when-your-local-settings-file-needs-trust), Claude Code no carga ninguna [memoria automática](https://code.claude.com/docs/es/memory.md#storage-location) desde ese directorio ni guarda ninguna en él.1070Cuando [`autoMemoryDirectory`](#automemorydirectory) proviene del `.claude/settings.json` del proyecto, o de un `.claude/settings.local.json` [tratado como suministrado por el repositorio](https://code.claude.com/docs/es/permissions.md#when-your-local-settings-file-needs-trust), Claude Code no carga ninguna [memoria automática](https://code.claude.com/docs/es/memory.md#storage-location) desde ese directorio ni guarda ninguna en él.

1068 1071 

1069Para levantar el bloqueo, elimina la clave de cada archivo de configuración que la establezca y luego inicia una nueva sesión.

1070 

1071#### Comandos en el sandbox bajo el bloqueo1072#### Comandos en el sandbox bajo el bloqueo

1072 1073 

1073Cuando el [sandboxing](https://code.claude.com/docs/es/sandboxing.md) está activado, el bloqueo también cubre los comandos en el sandbox. Claude Code les deniega el acceso de lectura a tu directorio home y a las demás raíces que contienen archivos de usuario: `/Users`, `/home`, `/root`, `/Volumes`, `/mnt`, `/media`, `/run/media` y `/srv`. Luego vuelve a abrir los directorios de trabajo, los [worktrees](https://code.claude.com/docs/es/worktrees.md) que Claude Code crea en la sesión, el directorio temporal de la sesión y las partes de `~/.claude` que los comandos necesitan, como skills y plugins. Mientras el bloqueo está en vigor, las entradas `allowRead` y `allowWrite` de la configuración del repositorio no cuentan.1074Cuando el [sandboxing](https://code.claude.com/docs/es/sandboxing.md) está activado, el bloqueo también cubre los comandos en el sandbox. Claude Code les deniega el acceso de lectura a tu directorio home y a las demás raíces que contienen archivos de usuario: `/Users`, `/home`, `/root`, `/Volumes`, `/mnt`, `/media`, `/run/media` y `/srv`. Luego vuelve a abrir los directorios de trabajo, los [worktrees](https://code.claude.com/docs/es/worktrees.md) que Claude Code crea en la sesión, el directorio temporal de la sesión y las partes de `~/.claude` que los comandos necesitan, como skills y plugins. Mientras el bloqueo está en vigor, las entradas `allowRead` y `allowWrite` de la configuración del repositorio no cuentan.


1092 1093 

1093Si un archivo que se vuelve a abrir contiene un secreto, como un token `http.extraHeader`, agrega su ruta a [`sandbox.filesystem.denyRead`](#sandbox-filesystem-denyread). Una entrada `denyRead` que cubre un archivo siempre tiene precedencia sobre esta reapertura.1094Si un archivo que se vuelve a abrir contiene un secreto, como un token `http.extraHeader`, agrega su ruta a [`sandbox.filesystem.denyRead`](#sandbox-filesystem-denyread). Una entrada `denyRead` que cubre un archivo siempre tiene precedencia sobre esta reapertura.

1094 1095 

1096### `permissions.blockWritesOutsideWorkingDirectories`

1097 

1098Haz que las herramientas `Write`, `Edit` y `NotebookEdit` rechacen rutas fuera de tus [directorios de trabajo](https://code.claude.com/docs/es/permissions.md#working-directories) en cada modo de permisos, incluido `bypassPermissions`, salvo [algunos de los propios archivos de Claude Code](#what-the-write-block-refuses-and-what-stays-writable). La clave no limita los comandos de shell, las herramientas MCP ni los programas que ejecutan los hooks. Para limitar dónde escriben los comandos de shell, activa el [sandboxing](https://code.claude.com/docs/es/sandboxing.md). Requiere Claude Code v2.1.314 o posterior.

1099 

1100Una vez activada la clave, Claude Code también elimina las herramientas `EnterWorktree` y `ExitWorktree` o rechaza las llamadas a ellas. Para seguir trabajando en worktrees, sigue [Claude no tiene la herramienta `EnterWorktree`](https://code.claude.com/docs/es/worktrees#claude-has-no-enterworktree-tool).

1101 

1102* **Scope**: [`Any file`](#scopes). Un `true` en cualquier archivo que cargue la sesión se aplica, por lo que un repositorio puede activar el bloqueo para sí mismo, pero no puede levantar el tuyo. En una [sesión en la nube](https://code.claude.com/docs/es/claude-code-on-the-web.md), es posible que Claude Code no aplique la clave, porque las herramientas de archivo se ejecutan en un contenedor que es en sí mismo el límite.

1103* **Type**: Boolean

1104 * `true`: activa el bloqueo

1105 * `false`: lo mismo que sin establecer; el bloqueo aún se aplica si otro archivo establece `true`

1106* **Default**: sin establecer, por lo que las escrituras fuera de los directorios de trabajo siguen tu [modo de permisos](https://code.claude.com/docs/es/permission-modes.md). El bloqueo también está activo mientras Claude Code no puede leer el objeto `permissions` de tu [configuración administrada](https://code.claude.com/docs/es/managed-settings.md#keys-that-fail-closed).

1107 

1108```json settings.json theme={null}

1109{

1110 "permissions": {

1111 "blockWritesOutsideWorkingDirectories": true

1112 }

1113}

1114```

1115 

1116Para probar el bloqueo, pídele a Claude que use la herramienta Write para crear un archivo fuera de tus directorios de trabajo, como `~/block-test.txt` si tu directorio home no es uno de ellos. Claude Code rechaza la llamada, y el rechazo indica que el [ajuste bloquea las escrituras fuera de los directorios de trabajo](https://code.claude.com/docs/es/errors.md#setting-blocks-writes-outside-the-working-directories).

1117 

1118Para levantar el bloqueo, elimina la clave de cada archivo de configuración que la establezca y luego reinicia Claude Code.

1119 

1120#### Qué rechaza el bloqueo de escritura y qué sigue siendo escribible

1121 

1122Algunos de los propios archivos de Claude Code siguen siendo escribibles, como los archivos de plan, el [scratchpad](https://code.claude.com/docs/es/claude-directory.md#session-scratchpad-directory), el directorio `tmp` de una [sesión en segundo plano](https://code.claude.com/docs/es/agent-view.md) y los archivos `.md` de la [memoria automática](https://code.claude.com/docs/es/memory.md#storage-location) de este proyecto.

1123 

1124Además de tus propios archivos fuera de los directorios de trabajo, el bloqueo rechaza escrituras en:

1125 

1126* **Archivos de configuración de Claude Code**: Claude Code [rechaza estas escrituras](https://code.claude.com/docs/es/errors.md#writes-to-claude-code-settings-files-are-blocked) también dentro de los directorios de trabajo, porque un archivo de configuración puede levantar el bloqueo. Edita tú mismo los archivos de configuración.

1127* **Un directorio que solo agrega la configuración del repositorio**: uno que [`additionalDirectories`](#permissions-additionaldirectories) enumera solo en `.claude/settings.json`, o en `.claude/settings.local.json` a menos que git informe que ese archivo no está rastreado

1128* **El worktree de un subagente**: las ediciones de archivos de un subagente con [`isolation: worktree`](https://code.claude.com/docs/es/worktrees#isolate-subagents-with-worktrees) se rechazan cuando su worktree está fuera de los directorios de trabajo

1129* **Memoria automática en un directorio que eligió el repositorio**: un directorio que [`autoMemoryDirectory`](#automemorydirectory) nombra en la configuración del repositorio

1130 

1131Los archivos de configuración siguen rechazados sin importar lo que agregues. Para dejar pasar una escritura en cualquiera de los demás casos, [agrega un directorio de trabajo](#let-one-directory-through-the-read-or-write-block). `/add-dir` necesita un directorio que exista, así que para los worktrees de subagentes indica el directorio `.claude/worktrees` en la raíz del repositorio.

1132 

1133#### Dejar pasar un directorio a través del bloqueo de lectura o escritura

1134 

1135Para permitir que Claude acceda a un directorio fuera del proyecto mientras `blockReadsOutsideWorkingDirectories` o `blockWritesOutsideWorkingDirectories` es `true`, agrégalo como directorio de trabajo. Ejecuta `/add-dir <directory>` en la sesión, pasa `--add-dir <directory>` al iniciar Claude Code o enuméralo en `additionalDirectories` en tu configuración de usuario o administrada. Ninguna [regla de permitir](https://code.claude.com/docs/es/permissions.md#read-and-edit) deja pasar las herramientas de archivo de Claude a través de ninguno de los dos bloqueos.

1136 

1095### `permissions.defaultMode`1137### `permissions.defaultMode`

1096 1138 

1097Establece el [modo de permisos](https://code.claude.com/docs/es/permission-modes.md) en el que comienzan las nuevas sesiones. Cuando lo dejas sin establecer, las sesiones comienzan en el [valor predeterminado integrado](https://code.claude.com/docs/es/permission-modes.md#which-mode-a-session-starts-in) para tu superficie.1139Establece el [modo de permisos](https://code.claude.com/docs/es/permission-modes.md) en el que comienzan las nuevas sesiones. Cuando lo dejas sin establecer, las sesiones comienzan en el [valor predeterminado integrado](https://code.claude.com/docs/es/permission-modes.md#which-mode-a-session-starts-in) para tu superficie.


2427* **Sesión**: estás en una sesión interactiva de terminal, en el panel de chat de la extensión de VS Code o en la pestaña Code de la aplicación de escritorio cuando la sesión se ejecuta en tu máquina o a través de SSH2469* **Sesión**: estás en una sesión interactiva de terminal, en el panel de chat de la extensión de VS Code o en la pestaña Code de la aplicación de escritorio cuando la sesión se ejecuta en tu máquina o a través de SSH

2428* **Compactación automática**: [`autoCompactEnabled`](#autocompactenabled) está activado2470* **Compactación automática**: [`autoCompactEnabled`](#autocompactenabled) está activado

2429* **Caché de prompts**: la conversación usa el [TTL de una hora de la caché de prompts](https://code.claude.com/docs/es/prompt-caching.md#which-ttl-each-request-gets)2471* **Caché de prompts**: la conversación usa el [TTL de una hora de la caché de prompts](https://code.claude.com/docs/es/prompt-caching.md#which-ttl-each-request-gets)

2430* **Flags de funciones**: Claude Code puede [obtener flags de funciones de Anthropic](https://code.claude.com/docs/es/env-vars.md#features-that-need-feature-flag-fetching)

2431* **Tamaño**: el contexto de la conversación ha alcanzado el umbral de tokens, que puedes [cambiar](#change-the-idle-compaction-threshold) respecto a su valor predeterminado de 200.0002472* **Tamaño**: el contexto de la conversación ha alcanzado el umbral de tokens, que puedes [cambiar](#change-the-idle-compaction-threshold) respecto a su valor predeterminado de 200.000

2432* **Tiempo de inactividad**: ha pasado alrededor de una hora desde la última solicitud, y tu computadora permanece activa hasta entonces2473* **Tiempo de inactividad**: ha pasado alrededor de una hora desde la última solicitud, y tu computadora permanece activa hasta entonces

2433 2474 


2449Para desactivar o activar la compactación en inactividad desde dentro de una sesión de terminal, ejecuta `/config` y cambia la fila **Idle compaction**. Tu elección se guarda en tu configuración de usuario y se aplica de inmediato. La fila requiere Claude Code v2.1.302 o posterior. Si ejecutas una de esas versiones y `/config` no muestra la fila, revisa estas causas:2490Para desactivar o activar la compactación en inactividad desde dentro de una sesión de terminal, ejecuta `/config` y cambia la fila **Idle compaction**. Tu elección se guarda en tu configuración de usuario y se aplica de inmediato. La fila requiere Claude Code v2.1.302 o posterior. Si ejecutas una de esas versiones y `/config` no muestra la fila, revisa estas causas:

2450 2491 

2451* **Otra fuente de configuración establece la clave**: un valor en la configuración administrada, el flag `--settings` o un archivo de configuración del proyecto o local sobrescribe tu configuración de usuario. Cambia la clave en esa fuente2492* **Otra fuente de configuración establece la clave**: un valor en la configuración administrada, el flag `--settings` o un archivo de configuración del proyecto o local sobrescribe tu configuración de usuario. Cambia la clave en esa fuente

2452* **Los flags de funciones no están disponibles**: donde Claude Code no puede [obtener flags de funciones de Anthropic](https://code.claude.com/docs/es/env-vars.md#features-that-need-feature-flag-fetching), la compactación en inactividad no se ejecuta, así que no hay nada que desactivar2493* **Los flags de funciones no están disponibles en una versión anterior a v2.1.314**: donde Claude Code no puede [obtener flags de funciones de Anthropic](https://code.claude.com/docs/es/env-vars.md#features-that-need-feature-flag-fetching), la compactación en inactividad no se ejecuta, así que no hay nada que desactivar

2453 2494 

2454La clave requiere Claude Code v2.1.290 o posterior. En una versión anterior, que ignora esta clave, desactiva [`autoCompactEnabled`](#autocompactenabled) para detener la compactación en inactividad.2495La clave requiere Claude Code v2.1.290 o posterior. En una versión anterior, que ignora esta clave, desactiva [`autoCompactEnabled`](#autocompactenabled) para detener la compactación en inactividad.

2455 2496 

slack.md +9 −11

Details

49 49 

501. Abre la aplicación Claude en Slack haciendo clic en "Claude" en tu sección de Aplicaciones501. Abre la aplicación Claude en Slack haciendo clic en "Claude" en tu sección de Aplicaciones

512. Abre la pestaña App Home512. Abre la pestaña App Home

523. Haz clic en "Connect" para vincular tu cuenta de Slack con tu cuenta de Claude523. Haz clic en **Connect Claude account** para vincular tu cuenta de Slack con tu cuenta de Claude

534. Completa el flujo de autenticación en tu navegador534. Completa el flujo de autenticación en tu navegador

54 54 

55**3. Configura sesiones en la nube**55**3. Configura sesiones en la nube**


71 71 

72> [!NOTE]72> [!NOTE]

73>73>

74> En modo Code + Chat, si Claude enruta un mensaje a Chat pero querías una sesión de codificación, puedes hacer clic en "Retry as Code" para crear una sesión de Claude Code en su lugar. De manera similar, si se enruta a Code pero querías una sesión de Chat, puedes elegir esa opción en ese hilo.74> En modo Code + Chat, si Claude responde en Chat pero querías una sesión de codificación, haz clic en **Switch to code repo...** en la respuesta y selecciona un repositorio. Claude entonces inicia una sesión de Claude Code con tu mensaje en su lugar.

75 75 

76**5. Agrega Claude a los canales**76**5. Agrega Claude a los canales**

77 77 


1072. **Detección**: Claude analiza tu mensaje y detecta intención de codificación1072. **Detección**: Claude analiza tu mensaje y detecta intención de codificación

1083. **Creación de sesión**: Se crea una nueva sesión de Claude Code en claude.ai/code1083. **Creación de sesión**: Se crea una nueva sesión de Claude Code en claude.ai/code

1094. **Actualizaciones de progreso**: Claude publica actualizaciones de estado en tu hilo de Slack a medida que avanza el trabajo1094. **Actualizaciones de progreso**: Claude publica actualizaciones de estado en tu hilo de Slack a medida que avanza el trabajo

1105. **Finalización**: Cuando termina, Claude te @menciona con un resumen y botones de acción1105. **Finalización**: Cuando termina, Claude actualiza su mensaje en el hilo con su respuesta final y botones de acción, y te envía un mensaje directo con un enlace a él

1116. **Revisión**: Haz clic en "View Session" para ver la transcripción completa, o "Create PR" para abrir una solicitud de extracción1116. **Revisión**: Haz clic en **View session** para ver la transcripción completa, o en **Create PR** para abrir un pull request

112 112 

113## Elementos de la interfaz de usuario113## Elementos de la interfaz de usuario

114 114 

115### Acciones de mensaje115### Acciones de mensaje

116 116 

117* **View Session**: Abre la sesión completa de Claude Code en tu navegador donde puedes ver todo el trabajo realizado, continuar la sesión o hacer solicitudes adicionales.117* **View session**: Abre la sesión completa de Claude Code en tu navegador donde puedes ver todo el trabajo realizado, continuar la sesión o hacer solicitudes adicionales.

118* **Create PR**: Crea una solicitud de extracción directamente desde los cambios de la sesión.118* **Create PR**: Abre la página de comparación de GitHub para la rama de la sesión, donde creas el pull request. Aparece en el mensaje de estado que Claude publicó cuando se inició la sesión, una vez que la sesión termina.

119* **Retry as Code**: Si Claude inicialmente responde como un asistente de chat pero querías una sesión de codificación, haz clic en este botón para reintentar la solicitud como una tarea de Claude Code.119* **Switch to code repo...**: Si Claude responde en Chat pero querías una sesión de codificación, haz clic en este botón y selecciona un repositorio, y Claude inicia una sesión de Claude Code con tu solicitud original.

120* **Change Repo**: Le permite seleccionar un repositorio diferente si Claude eligió incorrectamente.

121 120 

122### Selección de repositorio121### Selección de repositorio

123 122 

124Claude selecciona automáticamente un repositorio basado en el contexto de tu conversación de Slack. Si múltiples repositorios podrían aplicarse, Claude puede mostrar un menú desplegable permitiéndote elegir el correcto.123Claude selecciona automáticamente un repositorio basado en el contexto de tu conversación de Slack. Si Claude no puede determinar a qué repositorio te refieres, te pide que elijas: haz clic en **Select repository** y selecciona uno de la lista.

125 124 

126## Acceso y permisos125## Acceso y permisos

127 126 


221 220 

222### Se seleccionó el repositorio incorrecto221### Se seleccionó el repositorio incorrecto

223 222 

2241. Haz clic en el botón "Change Repo" para seleccionar un repositorio diferente223Incluye el nombre del repositorio en tu solicitud para una selección más precisa.

2252. Incluye el nombre del repositorio en tu solicitud para una selección más precisa

226 224 

227### Errores de autenticación225### Errores de autenticación

228 226 

sub-agents.md +2 −2

Details

1048 1048 

1049Considera [Skills](https://code.claude.com/docs/es/skills.md) en su lugar cuando quieras prompts o flujos de trabajo reutilizables que se ejecuten en el contexto de conversación principal en lugar de contexto de subagente aislado.1049Considera [Skills](https://code.claude.com/docs/es/skills.md) en su lugar cuando quieras prompts o flujos de trabajo reutilizables que se ejecuten en el contexto de conversación principal en lugar de contexto de subagente aislado.

1050 1050 

1051Para una pregunta sobre algo ya en tu conversación, usa [`/btw`](https://code.claude.com/docs/es/interactive-mode#side-questions-with-%2Fbtw) en lugar de un subagente. Ve tu contexto completo pero no tiene acceso a herramientas, y la respuesta no se añade al historial.1051Para una pregunta sobre algo ya en tu conversación, usa [`/btw`](https://code.claude.com/docs/es/interactive-mode#side-questions-with-%2Fbtw) en lugar de un subagente. No tiene acceso a herramientas, y la respuesta no se añade al historial.

1052 1052 

1053### Dejar que los subagentes generen sus propios subagentes1053### Dejar que los subagentes generen sus propios subagentes

1054 1054 


1242| `x` | Detener el fork seleccionado si se está ejecutando, o descartar su fila si ya no se está ejecutando. En la fila de la sesión principal, o en la fila del fork cuya transcripción abrió con `Enter`, `x` escribe en la solicitud en su lugar |1242| `x` | Detener el fork seleccionado si se está ejecutando, o descartar su fila si ya no se está ejecutando. En la fila de la sesión principal, o en la fila del fork cuya transcripción abrió con `Enter`, `x` escribe en la solicitud en su lugar |

1243| `Esc` | Devolver el enfoque a la entrada de solicitud |1243| `Esc` | Devolver el enfoque a la entrada de solicitud |

1244 1244 

1245Con la transcripción de un fork o subagente abierta, los mensajes de seguimiento y los [skills](https://code.claude.com/docs/es/skills.md) van a ese agente, y los comandos integrados van a tu conversación principal, con estas salvaguardas:1245Con la transcripción de un fork o subagente abierta, los mensajes de seguimiento y los [skills](https://code.claude.com/docs/es/skills.md) van a ese agente. En Claude Code v2.1.314 o posterior, [`/btw`](https://code.claude.com/docs/es/interactive-mode#ask-btw-about-a-subagent) responde a partir de la transcripción abierta. Los demás comandos integrados van a tu conversación principal, con estas salvaguardas:

1246 1246 

1247* `/compact`, `/clear` y `/rewind` actúan sobre la conversación principal, por lo que Claude Code te pide que confirmes antes de ejecutar uno de ellos desde esta vista.1247* `/compact`, `/clear` y `/rewind` actúan sobre la conversación principal, por lo que Claude Code te pide que confirmes antes de ejecutar uno de ellos desde esta vista.

1248* `/model` y `/fast` establecen el modelo y el modo rápido de la conversación principal, no los del agente visto, por lo que no se ejecutan desde esta vista. Un aviso te indica el motivo.1248* `/model` y `/fast` establecen el modelo y el modo rápido de la conversación principal, no los del agente visto, por lo que no se ejecutan desde esta vista. Un aviso te indica el motivo.

Details

6 6 

7> Referencia completa de las herramientas que Claude Code puede usar, incluidos los requisitos de permisos y el comportamiento por herramienta.7> Referencia completa de las herramientas que Claude Code puede usar, incluidos los requisitos de permisos y el comportamiento por herramienta.

8 8 

9Claude Code tiene acceso a un conjunto de herramientas integradas que le ayudan a entender y modificar tu base de código. Los nombres de las herramientas son las cadenas exactas que utilizas en [reglas de permisos](https://code.claude.com/docs/es/permissions.md#tool-specific-permission-rules), [listas de herramientas de subagentes](https://code.claude.com/docs/es/sub-agents.md), y [coincidencias de hooks](https://code.claude.com/docs/es/hooks.md).9Claude Code tiene acceso a un conjunto de herramientas integradas que le ayudan a entender y modificar tu base de código. Los nombres de las herramientas son las cadenas exactas que utilizas en [reglas de permisos](https://code.claude.com/docs/es/permissions.md#tool-specific-permission-rules), [listas de herramientas de subagentes](https://code.claude.com/docs/es/sub-agents.md), y [matchers de hooks](https://code.claude.com/docs/es/hooks.md).

10 10 

11Para controlar qué herramientas puede usar Claude y cuándo solicita permiso primero, configura [reglas de permisos](https://code.claude.com/docs/es/permissions.md#tool-specific-permission-rules) en tu configuración, [hooks](https://code.claude.com/docs/es/hooks.md), o [lista de herramientas de un subagente](https://code.claude.com/docs/es/sub-agents.md#supported-frontmatter-fields). Consulta [Configurar herramientas con reglas de permisos y hooks](#configure-tools-with-permission-rules-and-hooks) para cada lugar que acepte un nombre de herramienta.11Para controlar qué herramientas puede usar Claude y cuándo solicita permiso primero, configura [reglas de permisos](https://code.claude.com/docs/es/permissions.md#tool-specific-permission-rules) en tu configuración, [hooks](https://code.claude.com/docs/es/hooks.md), o [lista de herramientas de un subagente](https://code.claude.com/docs/es/sub-agents.md#supported-frontmatter-fields). Consulta [Configurar herramientas con reglas de permisos y hooks](#configure-tools-with-permission-rules-and-hooks) para cada lugar que acepte un nombre de herramienta.

12 12 

13Para agregar herramientas personalizadas, conecta un [servidor MCP](https://code.claude.com/docs/es/mcp.md). Para extender Claude con flujos de trabajo basados en prompts reutilizables, escribe una [skill](https://code.claude.com/docs/es/skills.md), que se ejecuta a través de la herramienta `Skill` existente en lugar de agregar una nueva entrada de herramienta.13Para agregar herramientas personalizadas, conecta un [servidor MCP](https://code.claude.com/docs/es/mcp.md). Para extender Claude con flujos de trabajo basados en prompts reutilizables, escribe un [skill](https://code.claude.com/docs/es/skills.md), que se ejecuta a través de la herramienta `Skill` existente en lugar de agregar una nueva entrada de herramienta.

14 14 

15> [!NOTE]15> [!NOTE]

16>16>

17> En [modo automático](https://code.claude.com/docs/es/permission-modes.md#eliminate-prompts-with-auto-mode), un clasificador decide la mayoría de los mensajes de permiso en lugar de ti. La columna `Permission required` muestra si la herramienta solicita permiso en [modo manual](https://code.claude.com/docs/es/permission-modes.md) para rutas dentro del directorio de trabajo. Las herramientas de acceso a archivos marcadas como No, incluidas `Read`, `Grep` y `Glob`, aún solicitan permiso para rutas fuera del [directorio de trabajo y directorios adicionales](https://code.claude.com/docs/es/permissions.md#working-directories). `Bash` está marcada como Sí pero ejecuta un conjunto integrado de [comandos de solo lectura](https://code.claude.com/docs/es/permissions.md#read-only-commands) sin solicitar permiso.17> En [modo automático](https://code.claude.com/docs/es/permission-modes.md#eliminate-prompts-with-auto-mode), un clasificador decide la mayoría de las solicitudes de permiso en lugar de ti. La columna `Permission required` muestra si la herramienta solicita permiso en [modo manual](https://code.claude.com/docs/es/permission-modes.md) para rutas dentro del directorio de trabajo. Las herramientas de acceso a archivos marcadas como No, incluidas `Read`, `Grep` y `Glob`, aún solicitan permiso para rutas fuera del [directorio de trabajo y directorios adicionales](https://code.claude.com/docs/es/permissions.md#working-directories). `Bash` está marcada como Sí pero ejecuta un conjunto integrado de [comandos de solo lectura](https://code.claude.com/docs/es/permissions.md#read-only-commands) sin solicitar permiso.

18 18 

19| Herramienta | Descripción | Permiso requerido |19| Herramienta | Descripción | Permiso requerido |

20| :- | :- | :- |20| :- | :- | :- |


27| `CronList` | Lista todas las tareas programadas con alcance de sesión | No |27| `CronList` | Lista todas las tareas programadas con alcance de sesión | No |

28| `Edit` | Realiza ediciones dirigidas a archivos específicos. Consulta [Comportamiento de la herramienta Edit](#edit-tool-behavior) | Sí |28| `Edit` | Realiza ediciones dirigidas a archivos específicos. Consulta [Comportamiento de la herramienta Edit](#edit-tool-behavior) | Sí |

29| `EndConversation` | Finaliza la sesión, en casos raros de entrada abusiva sostenida o cuando solicitas a Claude que demuestre la herramienta. Consulta [Comportamiento de la herramienta EndConversation](#endconversation-tool-behavior) | No |29| `EndConversation` | Finaliza la sesión, en casos raros de entrada abusiva sostenida o cuando solicitas a Claude que demuestre la herramienta. Consulta [Comportamiento de la herramienta EndConversation](#endconversation-tool-behavior) | No |

30| `EnterPlanMode` | Cambia a Plan Mode para diseñar un enfoque antes de codificar | No |30| `EnterPlanMode` | Cambia a modo plan para diseñar un enfoque antes de codificar | No |

31| `EnterWorktree` | Crea un [git worktree](https://code.claude.com/docs/es/worktrees.md) aislado y cambia a él. Pasa una `path` para cambiar a un worktree existente en lugar de crear uno nuevo. En la primera entrada, el destino puede ser un worktree del repositorio actual o, en un espacio de trabajo de múltiples repositorios, de un repositorio anidado dentro de él. Antes de v2.1.203, se rechazaba un worktree de un repositorio anidado. Una `path` fuera de `.claude/worktrees/` solicita tu aprobación antes de entrar, ya que mueve el directorio de trabajo de la sesión y el acceso de escritura a esa ubicación. La creación de nuevos worktrees y las rutas bajo `.claude/worktrees/` no solicitan permiso. Antes de v2.1.206, Claude entraba en rutas fuera de `.claude/worktrees/` sin solicitar permiso. Desde dentro de una sesión de worktree, o desde un subagente con un directorio de trabajo fijado como [`isolation: worktree`](https://code.claude.com/docs/es/sub-agents#supported-frontmatter-fields), solo está disponible la forma `path` y el destino debe estar bajo `.claude/worktrees/` del repositorio de la sesión | Sí |31| `EnterWorktree` | Crea un [git worktree](https://code.claude.com/docs/es/worktrees.md) aislado y cambia a él, o cambia a un worktree existente. Consulta [Comportamiento de la herramienta EnterWorktree](#enterworktree-tool-behavior) | Sí |

32| `ExitPlanMode` | Presenta un plan para aprobación y sale de Plan Mode | Sí |32| `ExitPlanMode` | Presenta un plan para aprobación y sale del modo plan | Sí |

33| `ExitWorktree` | Sale de una sesión de worktree y regresa al directorio original. No disponible para subagentes que ya se ejecutan en su propio directorio de trabajo, como con [`isolation: worktree`](https://code.claude.com/docs/es/sub-agents#supported-frontmatter-fields) | No |33| `ExitWorktree` | Sale de una sesión de worktree y regresa al directorio original. No disponible para subagentes que ya se ejecutan en su propio directorio de trabajo, como con [`isolation: worktree`](https://code.claude.com/docs/es/sub-agents#supported-frontmatter-fields). Se elimina o se rechaza una vez que [`permissions.blockWritesOutsideWorkingDirectories`](https://code.claude.com/docs/es/settings-reference#permissions-blockwritesoutsideworkingdirectories) está activado | No |

34| `Glob` | Encuentra archivos basándose en coincidencia de patrones. Ausente de forma predeterminada en macOS, Linux y WSL. Consulta [Comportamiento de la herramienta Glob](#glob-tool-behavior) | No |34| `Glob` | Encuentra archivos basándose en coincidencia de patrones. Ausente de forma predeterminada en macOS, Linux y WSL. Consulta [Comportamiento de la herramienta Glob](#glob-tool-behavior) | No |

35| `Grep` | Busca patrones en el contenido de archivos. Ausente de forma predeterminada en macOS, Linux y WSL. Consulta [Comportamiento de la herramienta Grep](#grep-tool-behavior) | No |35| `Grep` | Busca patrones en el contenido de archivos. Ausente de forma predeterminada en macOS, Linux y WSL. Consulta [Comportamiento de la herramienta Grep](#grep-tool-behavior) | No |

36| `ListAgents` | Lista los agentes con los que Claude puede comunicarse con `SendMessage`: subagentes en la sesión, compañeros de [equipo de agentes](https://code.claude.com/docs/es/agent-teams.md), tus otras sesiones locales de Claude Code, y, mientras esta sesión esté conectada a [Remote Control](https://code.claude.com/docs/es/remote-control.md), tus [sesiones en la nube](https://code.claude.com/docs/es/claude-code-on-the-web.md) y tus sesiones de Remote Control en otras máquinas. Respalda el comando `/list-agents`. Consulta [mensajería entre sesiones](https://code.claude.com/docs/es/cross-session-messaging.md). Requiere Claude Code v2.1.224 o posterior, y aparece solo en sesiones donde [la mensajería entre sesiones está habilitada](https://code.claude.com/docs/es/cross-session-messaging.md#availability). Las filas de compañeros de equipo y la primera línea que muestra el nombre de esta sesión requieren v2.1.239 o posterior | No |36| `ListAgents` | Lista los agentes con los que Claude puede comunicarse con `SendMessage`: subagentes en la sesión, compañeros de [equipo de agentes](https://code.claude.com/docs/es/agent-teams.md), tus otras sesiones locales de Claude Code, y, mientras esta sesión esté conectada a [Remote Control](https://code.claude.com/docs/es/remote-control.md), tus [sesiones en la nube](https://code.claude.com/docs/es/claude-code-on-the-web.md) y tus sesiones de Remote Control en otras máquinas. Respalda el comando `/list-agents`. Consulta [mensajería entre sesiones](https://code.claude.com/docs/es/cross-session-messaging.md). Requiere Claude Code v2.1.224 o posterior, y aparece solo en sesiones donde [la mensajería entre sesiones está habilitada](https://code.claude.com/docs/es/cross-session-messaging.md#availability). Las filas de compañeros de equipo y la primera línea que muestra el nombre de esta sesión requieren v2.1.239 o posterior | No |


49| `SendMessage` | Envía un mensaje a otro agente: un compañero de [equipo de agentes](https://code.claude.com/docs/es/agent-teams.md), un [subagente que reanuda](https://code.claude.com/docs/es/sub-agents.md#resume-subagents) por ID o nombre de agente, o una de tus otras sesiones de Claude Code, en esta máquina o más allá. La mensajería de otras sesiones requiere Claude Code v2.1.224 o posterior. [Mensajería entre sesiones](https://code.claude.com/docs/es/cross-session-messaging.md) cubre qué sesiones puede alcanzar Claude, [cómo se ve un mensaje cuando llega](https://code.claude.com/docs/es/cross-session-messaging.md#what-a-message-looks-like), y [cómo Claude recibe un aviso cuando otra sesión se queda inactiva](https://code.claude.com/docs/es/cross-session-messaging.md#get-a-notice-when-another-session-goes-idle). Claude puede incluir una entrada `summary` opcional, típicamente de 5-10 palabras, que Claude Code muestra como una vista previa de una línea. Cuando Claude la omite en un [mensaje de texto plano](https://code.claude.com/docs/es/cross-session-messaging.md#limitations), Claude Code usa la primera línea del mensaje como resumen. Claude Code trunca un resumen más largo que 200 caracteres con puntos suspensivos | No |49| `SendMessage` | Envía un mensaje a otro agente: un compañero de [equipo de agentes](https://code.claude.com/docs/es/agent-teams.md), un [subagente que reanuda](https://code.claude.com/docs/es/sub-agents.md#resume-subagents) por ID o nombre de agente, o una de tus otras sesiones de Claude Code, en esta máquina o más allá. La mensajería de otras sesiones requiere Claude Code v2.1.224 o posterior. [Mensajería entre sesiones](https://code.claude.com/docs/es/cross-session-messaging.md) cubre qué sesiones puede alcanzar Claude, [cómo se ve un mensaje cuando llega](https://code.claude.com/docs/es/cross-session-messaging.md#what-a-message-looks-like), y [cómo Claude recibe un aviso cuando otra sesión se queda inactiva](https://code.claude.com/docs/es/cross-session-messaging.md#get-a-notice-when-another-session-goes-idle). Claude puede incluir una entrada `summary` opcional, típicamente de 5-10 palabras, que Claude Code muestra como una vista previa de una línea. Cuando Claude la omite en un [mensaje de texto plano](https://code.claude.com/docs/es/cross-session-messaging.md#limitations), Claude Code usa la primera línea del mensaje como resumen. Claude Code trunca un resumen más largo que 200 caracteres con puntos suspensivos | No |

50| `SendUserFile` | Envía archivos de la sesión a ti con un título opcional, para que un informe generado, diagrama, captura de pantalla o artefacto construido llegue a tu dispositivo en lugar de solo ser mencionado en la transcripción. La entrada `display` opcional controla la presentación: `render` abre el archivo en línea en el cliente, `attach` muestra solo una tarjeta de descarga, y cuando no está establecida el cliente decide por tipo de archivo. Disponible cuando un cliente [Remote Control](https://code.claude.com/docs/es/remote-control.md) está conectado o en una [sesión en la nube](https://code.claude.com/docs/es/claude-code-on-the-web.md). La entrega se ejecuta a través de infraestructura alojada por Anthropic, por lo que la herramienta no está disponible en Amazon Bedrock, Agent Platform de Google Cloud, o Microsoft Foundry | No |50| `SendUserFile` | Envía archivos de la sesión a ti con un título opcional, para que un informe generado, diagrama, captura de pantalla o artefacto construido llegue a tu dispositivo en lugar de solo ser mencionado en la transcripción. La entrada `display` opcional controla la presentación: `render` abre el archivo en línea en el cliente, `attach` muestra solo una tarjeta de descarga, y cuando no está establecida el cliente decide por tipo de archivo. Disponible cuando un cliente [Remote Control](https://code.claude.com/docs/es/remote-control.md) está conectado o en una [sesión en la nube](https://code.claude.com/docs/es/claude-code-on-the-web.md). La entrega se ejecuta a través de infraestructura alojada por Anthropic, por lo que la herramienta no está disponible en Amazon Bedrock, Agent Platform de Google Cloud, o Microsoft Foundry | No |

51| `ShareOnboardingGuide` | Carga `ONBOARDING.md` y devuelve un enlace de uso compartido que los compañeros de equipo pueden abrir en Claude Code. Llamado desde `/team-onboarding` después de que se escribe la guía. Disponible para suscriptores de claude.ai en los planes Team y Enterprise | Sí |51| `ShareOnboardingGuide` | Carga `ONBOARDING.md` y devuelve un enlace de uso compartido que los compañeros de equipo pueden abrir en Claude Code. Llamado desde `/team-onboarding` después de que se escribe la guía. Disponible para suscriptores de claude.ai en los planes Team y Enterprise | Sí |

52| `Skill` | Ejecuta una [skill](https://code.claude.com/docs/es/skills.md#control-who-invokes-a-skill) dentro de la conversación principal | Sí |52| `Skill` | Ejecuta un [skill](https://code.claude.com/docs/es/skills.md#control-who-invokes-a-skill) dentro de la conversación principal | Sí |

53| `SubagentHandback` | Entrega el informe final de un subagente a cualquier conversación que reciba el resultado de ese subagente. Proporcionado solo en [modo automático](https://code.claude.com/docs/es/permission-modes.md#eliminate-prompts-with-auto-mode), a subagentes que la herramienta Agent ejecuta localmente que no sean [bifurcaciones](https://code.claude.com/docs/es/sub-agents.md#fork-the-current-conversation), y disponible en la CLI de terminal, extensiones de IDE, sesiones en la nube y el Agent SDK; el clasificador revisa el informe antes de que se entregue. Requiere Claude Code v2.1.271 o posterior | No |53| `SubagentHandback` | Entrega el informe final de un subagente a cualquier conversación que reciba el resultado de ese subagente. Proporcionado solo en [modo automático](https://code.claude.com/docs/es/permission-modes.md#eliminate-prompts-with-auto-mode), a subagentes que la herramienta Agent ejecuta localmente que no sean [bifurcaciones](https://code.claude.com/docs/es/sub-agents.md#fork-the-current-conversation), y disponible en la CLI de terminal, extensiones de IDE, sesiones en la nube y el Agent SDK; el clasificador revisa el informe antes de que se entregue. Requiere Claude Code v2.1.271 o posterior | No |

54| `TaskCreate` | Crea una nueva tarea en la lista de tareas. Proporcionado de forma predeterminada solo en los modelos enumerados en [Disponibilidad de la herramienta Task](#task-tool-availability), y en otros modelos cuando optas por participar | No |54| `TaskCreate` | Crea una nueva tarea en la lista de tareas. Proporcionado de forma predeterminada solo en los modelos enumerados en [Disponibilidad de la herramienta Task](#task-tool-availability), y en otros modelos cuando optas por participar | No |

55| `TaskGet` | Recupera detalles completos para una tarea específica. Proporcionado de forma predeterminada solo en los modelos enumerados en [Disponibilidad de la herramienta Task](#task-tool-availability), y en otros modelos cuando optas por participar | No |55| `TaskGet` | Recupera detalles completos para una tarea específica. Proporcionado de forma predeterminada solo en los modelos enumerados en [Disponibilidad de la herramienta Task](#task-tool-availability), y en otros modelos cuando optas por participar | No |


299* **Modo de inicio**: no una sesión [`--bare`](https://code.claude.com/docs/es/headless#start-faster-with-bare-mode). El modo bare carga solo herramientas de shell y archivo, por lo que la herramienta nunca se registra allí.299* **Modo de inicio**: no una sesión [`--bare`](https://code.claude.com/docs/es/headless#start-faster-with-bare-mode). El modo bare carga solo herramientas de shell y archivo, por lo que la herramienta nunca se registra allí.

300* **Proveedor**: no disponible en [Amazon Bedrock](https://code.claude.com/docs/es/amazon-bedrock.md), [Claude Platform en AWS](https://code.claude.com/docs/es/claude-platform-on-aws.md), [Agent Platform de Google Cloud](https://code.claude.com/docs/es/google-vertex-ai.md), o [Microsoft Foundry](https://code.claude.com/docs/es/microsoft-foundry.md), o en sesiones que iniciaron sesión a través de una [puerta de enlace en la nube](https://code.claude.com/docs/es/claude-apps-gateway).300* **Proveedor**: no disponible en [Amazon Bedrock](https://code.claude.com/docs/es/amazon-bedrock.md), [Claude Platform en AWS](https://code.claude.com/docs/es/claude-platform-on-aws.md), [Agent Platform de Google Cloud](https://code.claude.com/docs/es/google-vertex-ai.md), o [Microsoft Foundry](https://code.claude.com/docs/es/microsoft-foundry.md), o en sesiones que iniciaron sesión a través de una [puerta de enlace en la nube](https://code.claude.com/docs/es/claude-apps-gateway).

301 301 

302## Comportamiento de la herramienta EnterWorktree

303 

304La herramienta EnterWorktree crea un [worktree de git](https://code.claude.com/docs/es/worktrees.md) aislado y cambia a él. Si se le indica un `path`, cambia a un worktree existente en lugar de crear uno nuevo.

305 

306* **Qué worktrees puede indicar `path`**: en la primera entrada, el destino puede ser un worktree del repositorio actual. En un repositorio que contiene otros repositorios, también puede ser un worktree de un repositorio anidado dentro de él.

307* **Cuándo se te pide confirmación**: un `path` fuera de `.claude/worktrees/` solicita tu aprobación antes de entrar, ya que mueve el directorio de trabajo de la sesión y el acceso de escritura a esa ubicación. La creación de un nuevo worktree y las rutas bajo `.claude/worktrees/` no piden confirmación. Antes de la v2.1.206, Claude entraba a rutas fuera de `.claude/worktrees/` sin pedir confirmación.

308* **Desde dentro de un worktree**: desde una sesión de worktree, solo está disponible la forma con `path` y el destino debe estar bajo `.claude/worktrees/` del repositorio de la sesión. Lo mismo aplica a un subagente con un directorio de trabajo fijado, como [`isolation: worktree`](https://code.claude.com/docs/es/sub-agents#supported-frontmatter-fields).

309* **Cuando falta la herramienta**: una vez que [`permissions.blockWritesOutsideWorkingDirectories`](https://code.claude.com/docs/es/settings-reference#permissions-blockwritesoutsideworkingdirectories) está activado, Claude Code elimina `EnterWorktree` y `ExitWorktree` o rechaza las llamadas a ellas. Para seguir trabajando en worktrees, consulta [Claude no tiene la herramienta `EnterWorktree`](https://code.claude.com/docs/es/worktrees#claude-has-no-enterworktree-tool).

310 

302## Comportamiento de la herramienta Glob311## Comportamiento de la herramienta Glob

303 312 

304La herramienta Glob encuentra archivos por patrón de nombre. En Windows, es parte del conjunto de herramientas predeterminado. En macOS, Linux y WSL, Claude Code deja Glob y [Grep](#grep-tool-behavior) fuera del conjunto de herramientas predeterminado, y Claude busca con `find` y `grep` a través de la herramienta Bash en su lugar. En el shell de Claude esos dos comandos ejecutan versiones integradas de `bfs` y `ugrep`, y las búsquedas llegan a tus hooks y reglas de permisos como llamadas `Bash`.313La herramienta Glob encuentra archivos por patrón de nombre. En Windows, es parte del conjunto de herramientas predeterminado. En macOS, Linux y WSL, Claude Code deja Glob y [Grep](#grep-tool-behavior) fuera del conjunto de herramientas predeterminado, y Claude busca con `find` y `grep` a través de la herramienta Bash en su lugar. En el shell de Claude esos dos comandos ejecutan versiones integradas de `bfs` y `ugrep`, y las búsquedas llegan a tus hooks y reglas de permisos como llamadas `Bash`.

worktrees.md +17 −3

Details

41 41 

42### Pida a Claude que cree un worktree42### Pida a Claude que cree un worktree

43 43 

44También puede pedirle a Claude que "trabaje en un worktree" durante una sesión, y creará uno con la herramienta [`EnterWorktree`](https://code.claude.com/docs/es/tools-reference). Una vez en un worktree, Claude puede cambiar directamente a otro bajo `.claude/worktrees/` llamando a `EnterWorktree` con la ruta de destino; el worktree anterior permanece en el disco sin cambios.44También puedes pedirle a Claude que "trabaje en un worktree" durante una sesión, y creará uno con la herramienta [`EnterWorktree`](https://code.claude.com/docs/es/tools-reference#enterworktree-tool-behavior). Una vez en un worktree, Claude puede cambiar directamente a otro bajo `.claude/worktrees/` llamando a `EnterWorktree` con la ruta de destino; el worktree anterior permanece en el disco sin cambios.

45 45 

46Cuando Claude entra en una ruta fuera del directorio `.claude/worktrees/` del repositorio, Claude Code solicita tu aprobación primero. El cambio lleva a esa ubicación el directorio de trabajo de la sesión, el acceso de escritura y la configuración del proyecto, como `CLAUDE.md` y los ajustes. Una [regla de permisos](https://code.claude.com/docs/es/permissions.md) de `EnterWorktree` o elegir "no preguntar de nuevo" no suprime esta solicitud; solo el modo `bypassPermissions` la omite.46Cuando Claude entra en una ruta fuera del directorio `.claude/worktrees/` del repositorio, Claude Code solicita tu aprobación primero. El cambio lleva a esa ubicación el directorio de trabajo de la sesión, el acceso de escritura y la configuración del proyecto, como `CLAUDE.md` y los ajustes. Una [regla de permisos](https://code.claude.com/docs/es/permissions.md) de `EnterWorktree` o elegir "no preguntar de nuevo" no suprime esta solicitud; solo el modo `bypassPermissions` la omite.

47 47 


52> * **`${CLAUDE_PROJECT_DIR}` permanece en su lugar**: todavía apunta a la raíz del proyecto donde comenzó la sesión, por lo que un comando de hook como `${CLAUDE_PROJECT_DIR}/.claude/hooks/check-style.sh` todavía ejecuta el script en el checkout principal.52> * **`${CLAUDE_PROJECT_DIR}` permanece en su lugar**: todavía apunta a la raíz del proyecto donde comenzó la sesión, por lo que un comando de hook como `${CLAUDE_PROJECT_DIR}/.claude/hooks/check-style.sh` todavía ejecuta el script en el checkout principal.

53> * **`cwd` sigue a Claude**: el campo `cwd` en el [JSON de entrada](https://code.claude.com/docs/es/hooks.md#common-input-fields) del hook es la raíz del worktree, y se mueve nuevamente cuando Claude ejecuta `cd`. Léalo cuando un hook necesite la ruta del worktree.53> * **`cwd` sigue a Claude**: el campo `cwd` en el [JSON de entrada](https://code.claude.com/docs/es/hooks.md#common-input-fields) del hook es la raíz del worktree, y se mueve nuevamente cuando Claude ejecuta `cd`. Léalo cuando un hook necesite la ruta del worktree.

54 54 

55#### Claude no tiene la herramienta `EnterWorktree`

56 

57Si le pides a Claude que trabaje en un worktree y no tiene la herramienta `EnterWorktree` ni `ExitWorktree`, verifica si [`permissions.blockWritesOutsideWorkingDirectories`](https://code.claude.com/docs/es/settings-reference#permissions-blockwritesoutsideworkingdirectories) está activado. Cuando la clave está activada, Claude Code elimina ambas herramientas de worktree o rechaza las llamadas a ellas.

58 

59Puedes seguir trabajando en worktrees mientras la clave está activada:

60 

61* **Sesiones interactivas**: inicia la sesión en un worktree con `claude --worktree`.

62* **[Sesiones en segundo plano](https://code.claude.com/docs/es/agent-view.md#how-file-edits-are-isolated)**: Claude Code rechaza las ediciones de una sesión en segundo plano en tu checkout principal hasta que la sesión llama a `EnterWorktree`, herramienta que no tiene. Cualquiera de estas opciones permite que la sesión edite:

63 * Iníciala con `claude --bg --worktree`

64 * Establece [`worktree.bgIsolation`](https://code.claude.com/docs/es/settings-reference#worktree-bgisolation) en `"none"`

65 * Haz que Claude edite en un worktree creado con `git worktree add` dentro del directorio en el que se inició la sesión

66 

67Para recuperar las herramientas, ejecuta `/status` en la sesión para listar las [fuentes de configuración que cargó](https://code.claude.com/docs/es/settings.md#check-what-loaded) y elimina la clave de cada archivo que la establezca. Luego reinicia Claude Code. Si la configuración administrada establece la clave, pregunta a tu administrador si la política debería cambiar.

68 

55## Limpie worktrees69## Limpie worktrees

56 70 

57Cuando sale de una sesión de worktree interactiva, Claude verifica el worktree para el trabajo que la eliminación eliminaría: archivos cambiados o sin seguimiento, trabajo sin confirmar dentro de submódulos extraídos y nuevos commits. Estas reglas se aplican a los worktrees que Claude creó con git. Para un worktree que su hook [WorktreeCreate](https://code.claude.com/docs/es/hooks.md#worktreecreate) creó, consulte [WorktreeRemove](https://code.claude.com/docs/es/hooks.md#worktreeremove) en su lugar.71Cuando sale de una sesión de worktree interactiva, Claude verifica el worktree para el trabajo que la eliminación eliminaría: archivos cambiados o sin seguimiento, trabajo sin confirmar dentro de submódulos extraídos y nuevos commits. Estas reglas se aplican a los worktrees que Claude creó con git. Para un worktree que su hook [WorktreeCreate](https://code.claude.com/docs/es/hooks.md#worktreecreate) creó, consulte [WorktreeRemove](https://code.claude.com/docs/es/hooks.md#worktreeremove) en su lugar.


67 81 

68## Reanude una sesión de worktree82## Reanude una sesión de worktree

69 83 

70Cuando reanuda una sesión que terminó dentro de un worktree sin [salir de él](#clean-up-worktrees), Claude Code devuelve la sesión a ese worktree. Esto se aplica a reanudaciones interactivas, a `--continue` y `--resume` en [modo no interactivo](https://code.claude.com/docs/es/headless.md) con `-p`, y al Agent SDK. `--continue` elige la sesión más reciente registrada en el directorio desde el que lanza. De vuelta dentro del worktree, Claude aún puede salir de él con la herramienta [`ExitWorktree`](https://code.claude.com/docs/es/tools-reference).84Cuando reanudas una sesión que terminó dentro de un worktree sin [salir de él](#clean-up-worktrees), Claude Code devuelve la sesión a ese worktree. Esto se aplica a reanudaciones interactivas, a `--continue` y `--resume` en [modo no interactivo](https://code.claude.com/docs/es/headless.md) con `-p`, y al Agent SDK. `--continue` elige la sesión más reciente registrada en el directorio desde el que lanzas. De vuelta dentro del worktree, Claude puede salir con la herramienta [`ExitWorktree`](https://code.claude.com/docs/es/tools-reference) [cuando la sesión tiene esa herramienta](#claude-has-no-enterworktree-tool).

71 85 

72Antes de devolver la sesión a su worktree, Claude Code verifica que el worktree siga siendo un checkout separado del principal, y se niega a reingresar a un worktree que falla la verificación. Para un git worktree, la verificación lee sus metadatos de git. Un worktree sin metadatos de git, como uno que un [hook `WorktreeCreate`](#non-git-version-control) creó, puede pasar la verificación; los casos que Claude Code aún se niega están listados con sus recuperaciones bajo [Claude Code se niega a usar un worktree](#claude-code-refuses-to-use-a-worktree). Para los mensajes y cómo recuperarse de cada uno, consulte [La sesión se reanuda fuera de su worktree](#the-session-resumes-outside-its-worktree).86Antes de devolver la sesión a su worktree, Claude Code verifica que el worktree siga siendo un checkout separado del principal, y se niega a reingresar a un worktree que falla la verificación. Para un git worktree, la verificación lee sus metadatos de git. Un worktree sin metadatos de git, como uno que un [hook `WorktreeCreate`](#non-git-version-control) creó, puede pasar la verificación; los casos que Claude Code aún se niega están listados con sus recuperaciones bajo [Claude Code se niega a usar un worktree](#claude-code-refuses-to-use-a-worktree). Para los mensajes y cómo recuperarse de cada uno, consulte [La sesión se reanuda fuera de su worktree](#the-session-resumes-outside-its-worktree).

73 87 


91 105 

92Claude Code aplica cuatro verificaciones:106Claude Code aplica cuatro verificaciones:

93 107 

94* **Ediciones de archivos**: Claude Code bloquea un `Edit`, `Write`, o `NotebookEdit` que apunta a una ruta en el checkout principal.108* **Ediciones de archivos**: Claude Code bloquea un `Edit`, `Write`, o `NotebookEdit` que apunta a una ruta en el checkout principal. Para cambiar un archivo en el checkout principal, edítalo tú mismo o inicia una sesión interactiva allí.

95* **Directorio de trabajo del comando**: Claude Code bloquea un comando Bash, PowerShell, o Monitor cuyo directorio de trabajo se resuelve al checkout principal, o cuyo directorio de trabajo no puede verificar que permanece fuera de él.109* **Directorio de trabajo del comando**: Claude Code bloquea un comando Bash, PowerShell, o Monitor cuyo directorio de trabajo se resuelve al checkout principal, o cuyo directorio de trabajo no puede verificar que permanece fuera de él.

96* **Redirecciones de git**: Claude Code bloquea un comando Bash o Monitor que redirige git al checkout principal. La redirección puede venir a través de `git -C`, `--git-dir`, una variable `GIT_DIR` o `GIT_WORK_TREE`, o un `cd` al checkout principal antes de ejecutar git.110* **Redirecciones de git**: Claude Code bloquea un comando Bash o Monitor que redirige git al checkout principal. La redirección puede venir a través de `git -C`, `--git-dir`, una variable `GIT_DIR` o `GIT_WORK_TREE`, o un `cd` al checkout principal antes de ejecutar git.

97* **Forma del comando**: Claude Code bloquea un comando Bash o Monitor cuando no puede verificar desde el texto del comando que cualquier git que ejecute el comando permanece dentro del worktree. Eso sucede, por ejemplo, cuando el nombre del comando se calcula en tiempo de ejecución, cuando la sintaxis no se puede analizar, o cuando una expansión como `${!name}` o `${ command; }` podría ejecutar un comando que el texto no especifica. Claude Code le dice a Claude cómo reescribir el comando rechazado, como dividirlo en comandos simples y separados. No puede desactivar esta verificación.111* **Forma del comando**: Claude Code bloquea un comando Bash o Monitor cuando no puede verificar desde el texto del comando que cualquier git que ejecute el comando permanece dentro del worktree. Eso sucede, por ejemplo, cuando el nombre del comando se calcula en tiempo de ejecución, cuando la sintaxis no se puede analizar, o cuando una expansión como `${!name}` o `${ command; }` podría ejecutar un comando que el texto no especifica. Claude Code le dice a Claude cómo reescribir el comando rechazado, como dividirlo en comandos simples y separados. No puede desactivar esta verificación.