SpyBara
Go Premium

Documentation 2026-11-12 23:02 UTC to 2026-11-13 02:58 UTC

36 files changed +156 −126. View all changes and history on the product overview
2026
Fri 13 02:58 Thu 12 23:02 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

349 349 

350### Cuando un modelo se deshabilita durante la sesión350### Cuando un modelo se deshabilita durante la sesión

351 351 

352Si tu cuenta pierde acceso al modelo con el que se ejecuta tu sesión, por ejemplo porque un administrador lo deshabilita en tu cuenta de Amazon Bedrock, Claude Code cambia la sesión a otro modelo en lugar de fallar en cada solicitud, y muestra `Switched to <fallback> because <model> is not available`. Intenta los mismos modelos que el respaldo de inicio: primero versiones anteriores del mismo nivel y, para una sesión de Opus sin ninguna versión de Opus disponible, el modelo Sonnet predeterminado.352Cuando Amazon Bedrock rechaza el modelo de tu sesión por no estar disponible para tu cuenta, Claude Code cambia tu sesión a otro modelo y puedes seguir trabajando. Verás un mensaje que comienza con `Switched to <fallback> because <model> is not available`. Esto ocurre, por ejemplo, cuando un administrador deshabilita el modelo o cuando el modelo más nuevo aún no está disponible para tu cuenta.

353 353 

354El cambio se aplica solo a un nivel que no hayas fijado, la misma condición que el respaldo de inicio. Una sesión con una versión específica que elegiste, o con un [ARN de perfil de inferencia de aplicación](#map-each-model-version-to-an-inference-profile), mantiene su modelo y, sin una cadena de modelos de respaldo, la solicitud falla. En [modo automático](https://code.claude.com/docs/es/permission-modes.md#enable-auto-mode-on-bedrock-agent-platform-or-foundry), Claude Code cambia solo a un modelo que el modo automático admite en Amazon Bedrock. Si ninguno de esos modelos está disponible tampoco, la solicitud falla con [AWS authentication failed](https://code.claude.com/docs/es/errors.md#aws-authentication-failed) y una sugerencia para habilitar el modelo.354Si configuraste una [cadena de modelos de respaldo](https://code.claude.com/docs/es/model-config.md#fallback-model-chains), Claude Code cambia en su lugar al respaldo que configuraste. Sin una cadena, la solicitud falla en casos como estos:

355 355 

356Una [cadena de modelos de respaldo](https://code.claude.com/docs/es/model-config.md#fallback-model-chains) que configures reemplaza el cambio de nivel: ante estos rechazos, Claude Code cambia en su lugar al respaldo que configuraste. Para que las solicitudes rechazadas fallen en lugar de cambiar, establece [`CLAUDE_CODE_DISABLE_MODEL_ACCESS_FALLBACK=1`](https://code.claude.com/docs/es/env-vars). Una cadena de respaldo que hayas configurado sigue cambiando ante estos rechazos; elimina también la cadena si quieres que todas las solicitudes rechazadas fallen.356* Tu sesión usa un modelo fijado, una versión específica que elegiste o un [ARN de perfil de inferencia de aplicación](#map-each-model-version-to-an-inference-profile)

357* Ninguno de los [modelos que Claude Code intenta](#startup-model-checks) está disponible. En [modo automático](https://code.claude.com/docs/es/permission-modes.md#enable-auto-mode-on-bedrock-agent-platform-or-foundry), Claude Code cambia solo a un modelo que el modo automático admite en Amazon Bedrock.

358 

359Para seguir trabajando, ejecuta `/model` en la sesión y presiona `s` sobre un modelo que tu cuenta pueda usar, lo que deja tu predeterminado sin cambios. Un `403` se muestra como [AWS authentication failed](https://code.claude.com/docs/es/errors.md#aws-authentication-failed).

360 

361Para que las solicitudes rechazadas fallen en lugar de cambiar, establece [`CLAUDE_CODE_DISABLE_MODEL_ACCESS_FALLBACK=1`](https://code.claude.com/docs/es/env-vars). Si configuraste una cadena de modelos de respaldo, elimínala también, ya que Claude Code sigue cambiando a ese respaldo.

357 362 

358## Prefijos de perfil de inferencia entre regiones363## Prefijos de perfil de inferencia entre regiones

359 364 

Details

315 {315 {

316 "matcher": "Edit|Write",316 "matcher": "Edit|Write",

317 "hooks": [317 "hooks": [

318 { "type": "command", "command": "npx prettier --write --ignore-unknown \"$(jq -r '.tool_input.file_path')\"" }318 { "type": "command", "command": "f=$(jq -r '.tool_input.file_path') && npx prettier --write --ignore-unknown \"$f\"" }

319 ]319 ]

320 }320 }

321 ]321 ]

Details

74| PostgreSQL 11 o posterior | Respalda el flujo de inicio de sesión de dispositivo y los contadores de rate limit. Funciona un servicio administrado de PostgreSQL, incluido el nivel más pequeño; consulta [qué bases de datos son compatibles](https://code.claude.com/docs/es/claude-apps-gateway-deploy.md#postgres). Con [límites de gasto](https://code.claude.com/docs/es/claude-apps-gateway-spend-limits.md), también almacena tablas duraderas de gasto, auditoría e identidad que deben respaldarse. Se recomienda TLS mediante `?sslmode=require`. PostgreSQL 11, 12 y 13 requieren Claude Code v2.1.290 o posterior en el servidor del gateway. El proyecto PostgreSQL ya no mantiene esas versiones, así que usa una más reciente cuando puedas. |74| PostgreSQL 11 o posterior | Respalda el flujo de inicio de sesión de dispositivo y los contadores de rate limit. Funciona un servicio administrado de PostgreSQL, incluido el nivel más pequeño; consulta [qué bases de datos son compatibles](https://code.claude.com/docs/es/claude-apps-gateway-deploy.md#postgres). Con [límites de gasto](https://code.claude.com/docs/es/claude-apps-gateway-spend-limits.md), también almacena tablas duraderas de gasto, auditoría e identidad que deben respaldarse. Se recomienda TLS mediante `?sslmode=require`. PostgreSQL 11, 12 y 13 requieren Claude Code v2.1.290 o posterior en el servidor del gateway. El proyecto PostgreSQL ya no mantiene esas versiones, así que usa una más reciente cuando puedas. |

75| Upstream de modelos | Credenciales de Amazon Bedrock, credenciales de Claude Platform on AWS, credenciales de Google Cloud, un recurso de Microsoft Foundry o una clave de API de Anthropic. Se admiten varios upstreams con conmutación por error. |75| Upstream de modelos | Credenciales de Amazon Bedrock, credenciales de Claude Platform on AWS, credenciales de Google Cloud, un recurso de Microsoft Foundry o una clave de API de Anthropic. Se admiten varios upstreams con conmutación por error. |

76| HTTPS | El gateway debe ser accesible mediante `https://` desde las laptops de los desarrolladores y desde cualquier navegador que se use para iniciar sesión; el gateway sirve la página de verificación de dispositivo en el mismo listener. Proporciona un certificado TLS mediante `listen.tls` o ejecútalo detrás de un ingress que termine TLS, y en ambos casos establece `listen.public_url` en el origen externo. En `/login`, Claude Code acepta un origen `http://` simple solo cuando el host del gateway es loopback: `localhost`, `127.0.0.1` o `::1`. |76| HTTPS | El gateway debe ser accesible mediante `https://` desde las laptops de los desarrolladores y desde cualquier navegador que se use para iniciar sesión; el gateway sirve la página de verificación de dispositivo en el mismo listener. Proporciona un certificado TLS mediante `listen.tls` o ejecútalo detrás de un ingress que termine TLS, y en ambos casos establece `listen.public_url` en el origen externo. En `/login`, Claude Code acepta un origen `http://` simple solo cuando el host del gateway es loopback: `localhost`, `127.0.0.1` o `::1`. |

77| Dirección de red privada | En `/login`, Claude Code requiere que el hostname o la dirección IP del gateway resuelva solo a direcciones privadas: RFC 1918, link-local, CGNAT `100.64.0.0/10`, IPv6 ULA `fc00::/7` o loopback. Para un gateway que alojas tú, se rechaza cualquier dirección pública fuera de un bloque que declares; consulta el [modelo de amenazas](https://code.claude.com/docs/es/claude-apps-gateway-deploy.md#threat-model-summary) en la guía de despliegue. Si las máquinas de los desarrolladores enrutan HTTPS a través de un proxy corporativo, el inicio de sesión también requiere que el host del proxy resuelva a direcciones privadas; si no es así, agrega el host del gateway a `NO_PROXY` para que la CLI se conecte directamente. Si tu red interna está numerada con espacio IPv4 público que pertenece a tu organización, [declara esos bloques](#allow-a-gateway-on-public-address-space-you-own) para que `/login` acepte un gateway ahí. |77| Dirección de red privada | En `/login`, Claude Code requiere que el hostname o la dirección IP del gateway resuelva solo a direcciones privadas: RFC 1918 y rangos link-local, CGNAT `100.64.0.0/10`, IPv6 ULA `fc00::/7` y loopback. Consulta el [modelo de amenazas](https://code.claude.com/docs/es/claude-apps-gateway-deploy.md#threat-model-summary). Si tu red interna está numerada con espacio IPv4 público que pertenece a tu organización, [declara esos bloques](#allow-a-gateway-on-public-address-space-you-own) para que `/login` acepte un gateway ahí. |

78| Entorno de ejecución Linux | El servidor del gateway solo se ejecuta en el binario nativo de Linux. macOS funciona para desarrollo local. Windows no es compatible como plataforma de servidor. |78| Entorno de ejecución Linux | El servidor del gateway solo se ejecuta en el binario nativo de Linux. macOS funciona para desarrollo local. Windows no es compatible como plataforma de servidor. |

79 79 

80Cuando `HTTPS_PROXY` o `HTTP_PROXY` se aplica al host del gateway, el inicio de sesión también requiere un proxy cuyo hostname resuelva a direcciones privadas o bien el host del gateway en `NO_PROXY` en las máquinas de los desarrolladores. Si esas máquinas también establecen `no_proxy`, agrega ahí también el host del gateway; de lo contrario, las solicitudes de modelos seguirán pasando por el proxy.

81 

80### Pasos82### Pasos

81 83 

82**1. Registra un cliente OAuth en tu IdP**84**1. Registra un cliente OAuth en tu IdP**

Details

656 656 

657| Configuración | Cómo |657| Configuración | Cómo |

658| - | - |658| - | - |

659| RBAC | Otorga a la identidad del gateway `Azure AI User` o `Cognitive Services User` sobre el recurso de Microsoft Foundry |659| RBAC | Concede a la identidad del gateway el rol `Foundry User` o `Cognitive Services User` en el recurso de Microsoft Foundry |

660| Despliegues | Microsoft Foundry usa nombres de despliegue elegidos por el administrador, no IDs de modelo canónicos. Agrega un bloque [`models:`](#models) que asigne cada ID canónico a tu nombre de despliegue. |660| Despliegues | Microsoft Foundry usa nombres de despliegue elegidos por el administrador, no IDs de modelo canónicos. Agrega un bloque [`models:`](#models) que asigne cada ID canónico a tu nombre de despliegue. |

661| AKS (workload identity) | Federa una User-Assigned Managed Identity con el emisor de OIDC del clúster y vincúlala a la cuenta de servicio del gateway. `use_azure_ad: true` la recoge a través de `WorkloadIdentityCredential`. |661| AKS (workload identity) | Federa una User-Assigned Managed Identity con el emisor de OIDC del clúster y vincúlala a la cuenta de servicio del gateway. `use_azure_ad: true` la recoge a través de `WorkloadIdentityCredential`. |

662| ACI / App Service | Habilita la managed identity asignada por el sistema o por el usuario en el recurso. `use_azure_ad: true` la recoge. |662| ACI / App Service | Habilita la managed identity asignada por el sistema o por el usuario en el recurso. `use_azure_ad: true` la recoge. |


1001 1001 

1002Cada clave bajo `upstream_model` debe coincidir con el `name` de un upstream configurado, que de forma predeterminada es el nombre del proveedor. Una clave que no coincide con ningún upstream hace fallar el arranque, así que omite las líneas de los proveedores que no uses.1002Cada clave bajo `upstream_model` debe coincidir con el `name` de un upstream configurado, que de forma predeterminada es el nombre del proveedor. Una clave que no coincide con ningún upstream hace fallar el arranque, así que omite las líneas de los proveedores que no uses.

1003 1003 

1004Para permitir que los desarrolladores usen el alias `fable` con `auto_include_builtin_models: false`, agrega una entrada `claude-fable-5` a `models`. Ese es el ID al que se resuelve el [alias `fable`](https://code.claude.com/docs/es/model-config#fable-alias-resolution) para los desarrolladores con sesión iniciada en el gateway. Sin ella, sus mensajes fallan con un error que empieza por `API Error: 400 model claude-fable-5 is not in the operator's model allowlist`.

1005 

1004### `managed`1006### `managed`

1005 1007 

1006El 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.1008El 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.


1025Una captura general `match: {}`, que por convención se coloca al final, se trata como una capa base. Todas las demás políticas heredan de la captura general cualquier clave que no establezcan, por lo que las entradas por rol solo necesitan enumerar lo que difiere del valor predeterminado de la organización. Las reglas de fusión dependen del tipo de clave:1027Una captura general `match: {}`, que por convención se coloca al final, se trata como una capa base. Todas las demás políticas heredan de la captura general cualquier clave que no establezcan, por lo que las entradas por rol solo necesitan enumerar lo que difiere del valor predeterminado de la organización. Las reglas de fusión dependen del tipo de clave:

1026 1028 

1027* **Listas de permitidos**: `availableModels` y `permissions.allow`. La lista de una política específica reemplaza por completo la de la base.1029* **Listas de permitidos**: `availableModels` y `permissions.allow`. La lista de una política específica reemplaza por completo la de la base.

1028* **Listas de denegación y arrays de hooks**: `permissions.deny`, `permissions.ask`, `disabledMcpjsonServers`, `deniedMcpServers`, `blockedMarketplaces`, `deniedModels` y cada array de tipo de evento de `hooks`. Estas toman la unión de la base y la política, de modo que una denegación o un hook de auditoría de toda la organización no se pueda descartar accidentalmente con una sobrescritura por rol.1030* **Listas de denegación y arrays de hooks**: toman la unión de la base y la política:

1031 * `permissions.deny` y `permissions.ask`

1032 * `disabledMcpjsonServers` y `deniedMcpServers`

1033 * `blockedMarketplaces` y `deniedModels`

1034 * Los arrays de tipos de evento de `hooks`

1029* **Claves de tipo registro**: `env`, `modelOverrides` y `skillOverrides`. Estas se fusionan superficialmente, por lo que un bloque `env` por rol sobrescribe las claves que establece y hereda el resto de la base.1035* **Claves de tipo registro**: `env`, `modelOverrides` y `skillOverrides`. Estas se fusionan superficialmente, por lo que un bloque `env` por rol sobrescribe las claves que establece y hereda el resto de la base.

1030 1036 

1031`availableModels` también se aplica del lado del servidor en `/v1/messages`, por lo que un modelo denegado devuelve `400` independientemente de lo que envíe el cliente. Una lista vacía deniega todos los modelos. La comprobación también cubre el modelo con el que empieza una sesión antes de que el desarrollador elija uno, así que [inicia las sesiones en un modelo que la política permita](#start-sessions-on-a-model-the-policy-allows).1037`availableModels` también se aplica del lado del servidor en `/v1/messages`, por lo que un modelo denegado devuelve `400` independientemente de lo que envíe el cliente. Una lista vacía deniega todos los modelos. La comprobación también cubre el modelo con el que empieza una sesión antes de que el desarrollador elija uno, así que [inicia las sesiones en un modelo que la política permita](#start-sessions-on-a-model-the-policy-allows).

Details

92 92 

93Más allá del binario, la imagen necesita:93Más allá del binario, la imagen necesita:

94 94 

95* **Una imagen basada en glibc**: las únicas dependencias dinámicas de la compilación de glibc son las bibliotecas de glibc. Las imágenes basadas en Musl necesitan la compilación `linux-x64-musl` o `linux-arm64-musl` más paquetes adicionales; consulte [Configuración de Alpine Linux](https://code.claude.com/docs/es/setup.md#alpine-linux-and-musl-based-distributions).95* **Una imagen basada en glibc**: las únicas dependencias dinámicas de la compilación de glibc son bibliotecas de glibc. Las imágenes basadas en musl necesitan la compilación `linux-x64-musl` o `linux-arm64-musl`, cuya única dependencia dinámica es musl.

96* **Un directorio de estado escribible**: la puerta de enlace se ejecuta como cualquier usuario, pero las imágenes mínimas no tienen inicio escribible. Establezca `CLAUDE_CONFIG_DIR` en una ruta escribible como `/tmp/.claude`.96* **Un directorio de estado escribible**: la puerta de enlace se ejecuta como cualquier usuario, pero las imágenes mínimas no tienen inicio escribible. Establezca `CLAUDE_CONFIG_DIR` en una ruta escribible como `/tmp/.claude`.

97* **El comando del contenedor**: `claude gateway --config /etc/claude/gateway.yaml`, con el archivo de configuración montado de solo lectura y secretos suministrados como variables de entorno; la puerta de enlace escucha en `listen.port`, predeterminado `8080`.97* **El comando del contenedor**: `claude gateway --config /etc/claude/gateway.yaml`, con el archivo de configuración montado de solo lectura y secretos suministrados como variables de entorno; la puerta de enlace escucha en `listen.port`, predeterminado `8080`.

98 98 

Details

274 274 

275El hilo se ejecuta en [modo automático](https://code.claude.com/docs/es/permission-modes.md#eliminate-prompts-with-auto-mode), por lo que Claude ejecuta comandos y edita archivos en esa carpeta sin pedirle cada vez. Si el modo automático no está disponible o está desactivado en Claude Code de esa computadora, el hilo se ejecuta sin él, y cualquier aviso de permiso que genere espera su respuesta en el hilo, como [Desbloquear un hilo esperando aprobación](#unblock-a-thread-waiting-on-approval) describe.275El hilo se ejecuta en [modo automático](https://code.claude.com/docs/es/permission-modes.md#eliminate-prompts-with-auto-mode), por lo que Claude ejecuta comandos y edita archivos en esa carpeta sin pedirle cada vez. Si el modo automático no está disponible o está desactivado en Claude Code de esa computadora, el hilo se ejecuta sin él, y cualquier aviso de permiso que genere espera su respuesta en el hilo, como [Desbloquear un hilo esperando aprobación](#unblock-a-thread-waiting-on-approval) describe.

276 276 

277Para ejecutar el hilo en otro modo, inicia `claude remote-control` con [`--settings`](https://code.claude.com/docs/es/remote-control#start-a-remote-control-session). Luego [`permissions.defaultMode`](https://code.claude.com/docs/es/permission-modes#start-in-a-different-mode), en ese archivo o en la configuración de esa computadora, puede elegir otro modo.

278 

277Mientras el hilo se ejecuta, un icono de portátil en su encabezado muestra si tu computadora está conectada. Haz clic en él para ver qué carpeta está usando el hilo o para desactivar la conexión. El hilo se pausa mientras esa computadora está en reposo, y se detiene si la aplicación de escritorio o `claude remote-control` se cierra.279Mientras el hilo se ejecuta, un icono de portátil en su encabezado muestra si tu computadora está conectada. Haz clic en él para ver qué carpeta está usando el hilo o para desactivar la conexión. El hilo se pausa mientras esa computadora está en reposo, y se detiene si la aplicación de escritorio o `claude remote-control` se cierra.

278 280 

279* **Para volver a poner en marcha el hilo**: consulta [Lost contact with your folder](#lost-contact-with-your-folder)281* **Para volver a poner en marcha el hilo**: consulta [Lost contact with your folder](#lost-contact-with-your-folder)

commands.md +0 −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.

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.38* **[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.

41 39 

42Para agregar tus propios comandos, consulta [skills](https://code.claude.com/docs/es/skills.md).40Para agregar tus propios comandos, consulta [skills](https://code.claude.com/docs/es/skills.md).

43 41 

Details

71 71 

72Lanza **Claude** desde tu lanzador de aplicaciones, o ejecuta `claude-desktop` desde una terminal, e inicia sesión con tu cuenta de Anthropic.72Lanza **Claude** desde tu lanzador de aplicaciones, o ejecuta `claude-desktop` desde una terminal, e inicia sesión con tu cuenta de Anthropic.

73 73 

74La aplicación de Linux inicia sesión de la misma manera que en macOS y Windows: con una suscripción a claude.ai, o a través del SSO de tu organización. Para la autenticación con clave de API, usa la [CLI](https://code.claude.com/docs/es/quickstart.md). Para usar Desktop con Amazon Bedrock, Agent Platform de Google Cloud, Microsoft Foundry o un gateway de LLM en su lugar, consulta [Claude Desktop en 3P](https://claude.com/docs/third-party/claude-desktop/overview). Para servidores proxy y autoridades de certificación personalizadas en esos despliegues, consulta [configuración de red](https://code.claude.com/docs/es/network-config.md).74La aplicación de Linux inicia sesión de la misma manera que en macOS y Windows: con una suscripción a claude.ai, o a través del SSO de tu organización. Para usar Desktop con una clave de API de Claude, Amazon Bedrock, Agent Platform de Google Cloud, Microsoft Foundry o un gateway de LLM en su lugar, consulta [Claude Desktop en 3P](https://claude.com/docs/third-party/claude-desktop/overview). Para servidores proxy y autoridades de certificación personalizadas en esos despliegues, consulta [configuración de red](https://code.claude.com/docs/es/network-config.md).

75 75 

76### Instalar desde un archivo descargado76### Instalar desde un archivo descargado

77 77 

Details

83 83 

84**8. Elige el modo de permisos y el modelo**84**8. Elige el modo de permisos y el modelo**

85 85 

86En la barra de herramientas del cuadro de instrucciones, selecciona un [modo de permisos](#permissions-for-scheduled-tasks) y un modelo. Si no los cambias, las ejecuciones usan tu configuración de Claude Code y el modelo predeterminado.86En la barra de herramientas del cuadro de instrucciones, selecciona un [modo de permisos](#permissions-for-scheduled-tasks) y un modelo.

87 

88* **Modo de permisos**: si no lo cambias, las ejecuciones usan tu configuración de Claude Code.

89* **Modelo**: si el menú de modelos muestra **Default · Set by admin** y no eliges otro modelo, las ejecuciones usan el modelo que tu organización estableció en la [configuración administrada](https://code.claude.com/docs/es/managed-settings.md). Una [ejecución de recuperación](#missed-runs) que se inicia al abrir la aplicación puede usar en su lugar el [modelo predeterminado en tiempo de ejecución para tu cuenta](https://code.claude.com/docs/es/model-config.md#default-model-setting).

87 90 

88**9. Crea la tarea**91**9. Crea la tarea**

89 92 

90Haz clic en **Create**. Si aún no has confiado en la carpeta, Desktop te pide que confíes en ella en este momento. Se abre la página de detalles de la tarea.93Haz clic en **Create**. Si aún no has confiado en la carpeta, Desktop te pide que confíes en ella en este momento. Se abre la página de detalles de la tarea.

91 94 

95Para ver qué modelo representa **Default · Set by admin**, haz clic en **Run now** en la página de detalles para ejecutar la tarea de inmediato. Luego [abre la sesión de la ejecución](#find-a-runs-session), donde la fila debajo del cuadro del prompt muestra el nombre del modelo.

96 

92En la página de detalles, haz clic en el ícono de lápiz para abrir el [formulario **Edit**](#manage-scheduled-tasks). Ahí puedes cambiar la **Description** que Desktop completó a partir de tus instrucciones, seleccionar **Worktree** o cambiar la programación a **Manual** o **Custom**.97En la página de detalles, haz clic en el ícono de lápiz para abrir el [formulario **Edit**](#manage-scheduled-tasks). Ahí puedes cambiar la **Description** que Desktop completó a partir de tus instrucciones, seleccionar **Worktree** o cambiar la programación a **Manual** o **Custom**.

93 98 

94También puedes crear una tarea describiendo lo que deseas en cualquier sesión. Por ejemplo, "configura una revisión de código diaria que se ejecute cada mañana a las 9am" crea una tarea recurrente. Una solicitud como "recuérdame mañana a las 3pm que verifique el deploy" crea una tarea única que se desactiva después de ejecutarse.99También puedes crear una tarea describiendo lo que deseas en cualquier sesión. Por ejemplo, "configura una revisión de código diaria que se ejecute cada mañana a las 9am" crea una tarea recurrente. Una solicitud como "recuérdame mañana a las 3pm que verifique el deploy" crea una tarea única que se desactiva después de ejecutarse.


181 186 

182Para permitir que una tarea cambie su propia programación o prompt con la herramienta MCP `update_scheduled_task`, haz clic en **Run now** y aprueba la llamada cada vez.187Para permitir que una tarea cambie su propia programación o prompt con la herramienta MCP `update_scheduled_task`, haz clic en **Run now** y aprueba la llamada cada vez.

183 188 

184Para editar el prompt de una tarea en disco, abra `~/.claude/scheduled-tasks/<task-name>/SKILL.md` (o bajo [`CLAUDE_CONFIG_DIR`](https://code.claude.com/docs/es/env-vars) si está configurado). El archivo utiliza frontmatter YAML para `name` y `description`, con el prompt como cuerpo. Los cambios surten efecto en la próxima ejecución. La programación, carpeta, modelo y estado habilitado no están en este archivo: cámbielos a través del formulario Edit o pídale a Claude.189Para editar el prompt de una tarea en disco, abre `~/.claude/scheduled-tasks/<task-name>/SKILL.md` (o bajo [`CLAUDE_CONFIG_DIR`](https://code.claude.com/docs/es/env-vars) si está configurado). El archivo utiliza frontmatter YAML para `name` y `description`, con el prompt como cuerpo. Los cambios surten efecto en la próxima ejecución. La programación, la carpeta y el estado habilitado no están en este archivo: cámbialos a través del formulario Edit o pídeselo a Claude.

185 190 

186## Recursos relacionados191## Recursos relacionados

187 192 

errors.md +48 −5

Details

122| `A request to MCP server "<name>" was sent without your stored credentials` | [Autenticación](#couldnt-read-the-stored-credentials-for-mcp-server) |122| `A request to MCP server "<name>" was sent without your stored credentials` | [Autenticación](#couldnt-read-the-stored-credentials-for-mcp-server) |

123| `This server's URL is missing or not a valid URL, so sign-in can't start` | [Autenticación](#mcp-server-url-is-missing-or-not-a-valid-url) |123| `This server's URL is missing or not a valid URL, so sign-in can't start` | [Autenticación](#mcp-server-url-is-missing-or-not-a-valid-url) |

124| `Issuer mismatch in authorization response (RFC 9207)` | [Autenticación](#issuer-mismatch-in-authorization-response) |124| `Issuer mismatch in authorization response (RFC 9207)` | [Autenticación](#issuer-mismatch-in-authorization-response) |

125| `Stopped an OAuth request` | [Autenticación](#stopped-an-oauth-request) |

125| `Refusing to send credentials to non-https token endpoint` / `<short-name> from the MCP SDK for <server-url>` | [Autenticación](#refusing-to-send-credentials-to-non-https-token-endpoint) |126| `Refusing to send credentials to non-https token endpoint` / `<short-name> from the MCP SDK for <server-url>` | [Autenticación](#refusing-to-send-credentials-to-non-https-token-endpoint) |

126| `Cloud gateway session expired — run /login to reconnect.` | [Autenticación](#cloud-gateway-session-expired) |127| `Cloud gateway session expired — run /login to reconnect.` | [Autenticación](#cloud-gateway-session-expired) |

127| `Cloud gateway <url> no longer accepts this session` | [Autenticación](#cloud-gateway-session-expired) |128| `Cloud gateway <url> no longer accepts this session` | [Autenticación](#cloud-gateway-session-expired) |


251| `Ultrareview did not start` | [Errores de línea de comandos](#ultrareview-did-not-start) |252| `Ultrareview did not start` | [Errores de línea de comandos](#ultrareview-did-not-start) |

252| `Remote Control did not start: "<question>" got no answer` | [Errores de línea de comandos](#remote-control-did-not-start-got-no-answer) |253| `Remote Control did not start: "<question>" got no answer` | [Errores de línea de comandos](#remote-control-did-not-start-got-no-answer) |

253| `` `<flag>` before `remote-control` is not carried over to the sessions Remote Control starts `` | [Errores de línea de comandos](#not-carried-over-to-the-sessions-remote-control-starts) |254| `` `<flag>` before `remote-control` is not carried over to the sessions Remote Control starts `` | [Errores de línea de comandos](#not-carried-over-to-the-sessions-remote-control-starts) |

255| `Remote Control did not start, because sessions would skip part or all of the --settings file` | [Errores de línea de comandos](#remote-control-did-not-start-because-of-the-settings-file) |

256| `The settings file <file> has changed since Remote Control started, so this session did not start` | [Errores de línea de comandos](#settings-file-changed-since-remote-control-started) |

254| `--sandbox is not supported by claude remote-control` / `--no-sandbox is not supported by claude remote-control` | [Errores de línea de comandos](#sandbox-is-not-supported-by-claude-remote-control) |257| `--sandbox is not supported by claude remote-control` / `--no-sandbox is not supported by claude remote-control` | [Errores de línea de comandos](#sandbox-is-not-supported-by-claude-remote-control) |

255| `` `claude import` is not yet available in this build `` | [Errores de línea de comandos](#claude-import-is-not-yet-available-in-this-build) |258| `` `claude import` is not yet available in this build `` | [Errores de línea de comandos](#claude-import-is-not-yet-available-in-this-build) |

256| `Could not read Claude Code config` | [Errores de línea de comandos](#could-not-read-claude-code-config) |259| `Could not read Claude Code config` | [Errores de línea de comandos](#could-not-read-claude-code-config) |


825Las llamadas posteriores en la misma respuesta de Claude pueden denegarse con este motivo:828Las llamadas posteriores en la misma respuesta de Claude pueden denegarse con este motivo:

826 829 

827```text theme={null}830```text theme={null}

828another call in this response was changed by a hook after auto mode reviewed it, or could not be confirmed unchanged831another call in this response was changed after auto mode reviewed it, or could not be confirmed unchanged

829```832```

830 833 

831Claude puede entonces volver a emitir cada llamada denegada para que el servidor la revise. Si se abre una solicitud de permiso, respóndela. No necesitas hacer nada más, a menos que Claude diga en su respuesta que el modo automático no pudo verificar la llamada. En ese caso, detén el cambio o aprueba la llamada tú mismo, y pídele a Claude que vuelva a intentar la llamada:834Claude puede entonces volver a emitir cada llamada denegada para que el servidor la revise. Si se abre una solicitud de permiso, respóndela. No necesitas hacer nada más, a menos que Claude diga en su respuesta que el modo automático no pudo verificar la llamada. En ese caso, detén el cambio o aprueba la llamada tú mismo, y pídele a Claude que vuelva a intentar la llamada:


1822 1825 

1823Antes de la v2.1.232, Claude Code usaba el runtime v2 solo en un despliegue gradual o cuando definías `MCP_SDK_GENERATION=v2`.1826Antes de la v2.1.232, Claude Code usaba el runtime v2 solo en un despliegue gradual o cuando definías `MCP_SDK_GENERATION=v2`.

1824 1827 

1828### Stopped an OAuth request

1829 

1830Este mensaje significa que Claude Code detuvo una [solicitud OAuth para un servidor MCP](https://code.claude.com/docs/es/mcp.md#authenticate-with-remote-mcp-servers) porque un endpoint OAuth la redirigió. En ambas formas del mensaje, la primera dirección es la que envió la redirección:

1831 

1832```text theme={null}

1833Stopped an OAuth request, which can hold secrets: https://auth.example.com redirected it to https://other.example.com. Ask the owner of https://auth.example.com to remove that redirect.

1834Stopped an OAuth request: https://auth.example.com redirected it more than 5 times. Ask the owner of https://auth.example.com to fix those redirects.

1835```

1836 

1837**Qué hacer:**

1838 

1839* Pide a quien administre la primera dirección, como el operador del servidor MCP, que elimine o corrija la redirección. Luego vuelve a intentarlo desde `/mcp`.

1840 

1825### Se rechaza enviar credenciales a un endpoint de token que no es https1841### Se rechaza enviar credenciales a un endpoint de token que no es https

1826 1842 

1827En el [runtime v2](https://code.claude.com/docs/es/mcp.md#mcp-client-runtimes), Claude Code envía una solicitud de token de [OAuth de MCP](https://code.claude.com/docs/es/mcp.md#authenticate-with-remote-mcp-servers) solo a un endpoint de token servido por HTTPS o en `localhost`, `127.0.0.1` o `::1`. Este mensaje significa que el endpoint de token del servidor no es ninguna de esas opciones, así que Claude Code se detuvo antes de enviar la solicitud. Eso ocurre después del inicio de sesión en el navegador, así que el paso del navegador se completa primero, y de nuevo cada vez que Claude Code renueva el token del servidor.1843En el [runtime v2](https://code.claude.com/docs/es/mcp.md#mcp-client-runtimes), Claude Code envía una solicitud de token de [OAuth de MCP](https://code.claude.com/docs/es/mcp.md#authenticate-with-remote-mcp-servers) solo a un endpoint de token servido por HTTPS o en `localhost`, `127.0.0.1` o `::1`. Este mensaje significa que el endpoint de token del servidor no es ninguna de esas opciones, así que Claude Code se detuvo antes de enviar la solicitud. Eso ocurre después del inicio de sesión en el navegador, así que el paso del navegador se completa primero, y de nuevo cada vez que Claude Code renueva el token del servidor.


2207 2223 

2208### Host no permitido en una sesión en la nube2224### Host no permitido en una sesión en la nube

2209 2225 

2210La política de red del entorno bloqueó una solicitud HTTP saliente de una sesión en la nube o de una tarea programada en la nube.2226En una sesión en la nube o en una tarea programada en la nube, un `403` o un error de DNS como `ENOTFOUND` puede significar que el host solicitado no está en la [lista de permitidos del entorno en la nube](https://code.claude.com/docs/es/cloud-environments.md#access-levels). Para confirmarlo, compara el host con esa lista. Un `403` con este encabezado confirma el bloqueo, pero no todos los `403` de solicitudes bloqueadas lo incluyen:

2211 2227 

2212```text theme={null}2228```text theme={null}

2213HTTP 4032229HTTP 403


2565 2581 

2566Claude Code normalmente cambia el tamaño de las imágenes grandes de forma automática. Estos errores significan que la imagen no se pudo decodificar ni redimensionar para que cupiera dentro de los límites de la API.2582Claude Code normalmente cambia el tamaño de las imágenes grandes de forma automática. Estos errores significan que la imagen no se pudo decodificar ni redimensionar para que cupiera dentro de los límites de la API.

2567 2583 

2584El error que ves puede nombrar un límite de píxeles diferente, como `2576x2576px` donde estos ejemplos dicen `2000x2000px`.

2585 

2568**Qué hacer:**2586**Qué hacer:**

2569 2587 

2570* Si el mensaje te pide que conviertas la imagen, conviértela a PNG, JPEG, GIF o WebP y vuelve a adjuntarla. Claude Code puede verificar las dimensiones de estos formatos a partir del encabezado del archivo, sin decodificar la imagen.2588* Si el mensaje te pide que conviertas la imagen, conviértela a PNG, JPEG, GIF o WebP y vuelve a adjuntarla. Claude Code puede verificar las dimensiones de estos formatos a partir del encabezado del archivo, sin decodificar la imagen.


2873* **Un motivo escrito por un hook**: un hook PreModelSwitch proporcionó ese motivo cuando [denegó el cambio o pidió confirmación](https://code.claude.com/docs/es/hooks.md#premodelswitch-decision-control). Atiende lo que pide, o elige un modelo que tus hooks permitan.2891* **Un motivo escrito por un hook**: un hook PreModelSwitch proporcionó ese motivo cuando [denegó el cambio o pidió confirmación](https://code.claude.com/docs/es/hooks.md#premodelswitch-decision-control). Atiende lo que pide, o elige un modelo que tus hooks permitan.

2874* **`PreModelSwitch hook <name> did not respond before its timeout`**: un hook que no responde antes de que se agote su [tiempo de espera](https://code.claude.com/docs/es/hooks.md#timeouts) bloquea el cambio. Corrige el comando que se queda colgado o aumenta el `timeout` de ese hook, y luego vuelve a cambiar.2892* **`PreModelSwitch hook <name> did not respond before its timeout`**: un hook que no responde antes de que se agote su [tiempo de espera](https://code.claude.com/docs/es/hooks.md#timeouts) bloquea el cambio. Corrige el comando que se queda colgado o aumenta el `timeout` de ese hook, y luego vuelve a cambiar.

2875* **`confirmation required, and this session cannot ask`**: un hook respondió `ask` sin un motivo, y una solicitud de control no tiene forma de mostrar la solicitud de confirmación. Un comando `/model` en una [ejecución con `-p`](https://code.claude.com/docs/es/headless) reporta la misma condición con `(run /model interactively to confirm)` después del motivo. Haz el cambio desde una sesión interactiva, o cambia la decisión del hook para este modelo.2893* **`confirmation required, and this session cannot ask`**: un hook respondió `ask` sin un motivo, y una solicitud de control no tiene forma de mostrar la solicitud de confirmación. Un comando `/model` en una [ejecución con `-p`](https://code.claude.com/docs/es/headless) reporta la misma condición con `(run /model interactively to confirm)` después del motivo. Haz el cambio desde una sesión interactiva, o cambia la decisión del hook para este modelo.

2876* **`so organization-managed PreModelSwitch hooks could not be checked`**: Claude Code no pudo determinar qué hooks PreModelSwitch entregan los [plugins administrados](https://code.claude.com/docs/es/settings-reference.md#enabledplugins) de tu organización, por ejemplo porque un plugin administrado no se cargó. Uno de esos hooks podría bloquear el cambio, así que Claude Code lo rechaza en lugar de aplicarlo sin verificar. El principio del motivo indica qué falló. Claude Code vuelve a verificar en cada intento de cambio, por lo que un fallo que ya se resolvió deja de bloquear; si sigue fallando, ejecuta `claude --debug` y vuelve a cambiar para capturar los detalles, y luego corrige el plugin o pídele a tu administrador que lo corrija.2894* **`so organization-managed PreModelSwitch hooks could not be checked`**: Claude Code anterior a la v2.1.323 rechaza el cambio cuando no puede determinar qué hooks PreModelSwitch proporcionan tus [plugins administrados](https://code.claude.com/docs/es/settings-reference.md#enabledplugins). El texto antes de esta frase indica qué falló. Para detener el rechazo, actualiza Claude Code. Para que además se ejecuten los hooks de un plugin que falló, corrige el plugin o consulta a tu administrador. Para más detalles, inicia `claude --debug` en tu shell y cambia de modelo; luego lee el [registro de depuración](https://code.claude.com/docs/es/hooks.md#debug-hooks).

2877* **`a PreModelSwitch hook failed before answering`** o **`PreModelSwitch hooks were cancelled (the control stream closed) before answering`**: la ejecución del hook terminó sin un veredicto, y Claude Code no lo trata como una aprobación. Ejecuta `claude --debug` para ver qué falló y luego vuelve a cambiar.2895* **`a PreModelSwitch hook failed before answering`** o **`PreModelSwitch hooks were cancelled (the control stream closed) before answering`**: la ejecución del hook terminó sin un veredicto, y Claude Code no lo trata como una aprobación. Ejecuta `claude --debug` para ver qué falló y luego vuelve a cambiar.

2878 2896 

2879Antes de v2.1.260, el rechazo por plugins administrados decía `plugin hooks could not be loaded, so PreModelSwitch hooks could not be checked; see the debug log`. Claude Code reintentaba la carga del plugin una vez y luego rechazaba los cambios posteriores en la sesión, incluso cuando tu organización no administraba ningún plugin. En esas versiones, reinicia la sesión para volver a ejecutar la carga del plugin.2897Antes de v2.1.260, el rechazo por plugins administrados decía `plugin hooks could not be loaded, so PreModelSwitch hooks could not be checked; see the debug log`. Claude Code reintentaba la carga del plugin una vez y luego rechazaba los cambios posteriores en la sesión, incluso cuando tu organización no administraba ningún plugin. En esas versiones, reinicia la sesión para volver a ejecutar la carga del plugin.


3522Iniciaste [Remote Control](https://code.claude.com/docs/es/remote-control.md) con un flag global de `claude` antes del verbo `remote-control`, uno que restringiría o configuraría las sesiones que inicia Remote Control, como `--settings`, `--setting-sources`, `--permission-mode`, `--disallowed-tools` o `--mcp-config`. Un flag colocado antes del verbo nunca llega a esas sesiones. En su lugar, Claude Code se niega a iniciar y nombra el flag:3540Iniciaste [Remote Control](https://code.claude.com/docs/es/remote-control.md) con un flag global de `claude` antes del verbo `remote-control`, uno que restringiría o configuraría las sesiones que inicia Remote Control, como `--settings`, `--setting-sources`, `--permission-mode`, `--disallowed-tools` o `--mcp-config`. Un flag colocado antes del verbo nunca llega a esas sesiones. En su lugar, Claude Code se niega a iniciar y nombra el flag:

3523 3541 

3524```text theme={null}3542```text theme={null}

3525Error: `--settings` before `remote-control` is not carried over to the sessions Remote Control starts, so Remote Control refuses to start rather than drop it — remove it, and give Remote Control's own options after the verb (see `claude remote-control --help`).3543Error: `--settings` before `remote-control` is not carried over to the sessions Remote Control starts, so Remote Control refuses to start rather than drop it — remove it, and give Remote Control's own options after the verb (see `claude remote-control --help`). Pass settings with `claude remote-control --settings <file>`.

3526```3544```

3527 3545 

3528Claude Code no rechaza los flags globales que es inofensivo descartar, como `--verbose`, `--model`, o un `--session-id` o `--plugin-dir` inyectado por un wrapper: los ignora y Remote Control se inicia.3546Claude Code no rechaza los flags globales que es inofensivo descartar, como `--verbose`, `--model`, o un `--session-id` o `--plugin-dir` inyectado por un wrapper: los ignora y Remote Control se inicia.


3536 3554 

3537Antes de v2.1.248, `claude remote-control` no aceptaba sus propios flags cuando un flag global iba primero, y el comando fallaba con un error `unknown option`.3555Antes de v2.1.248, `claude remote-control` no aceptaba sus propios flags cuando un flag global iba primero, y el comando fallaba con un error `unknown option`.

3538 3556 

3557### Remote Control no se inició por el archivo de `--settings`

3558 

3559El archivo que pasaste a [`claude remote-control --settings`](https://code.claude.com/docs/es/remote-control#start-a-remote-control-session) tiene un problema:

3560 

3561```text theme={null}

3562Error: Remote Control did not start, because sessions would skip part or all of the --settings file ./rc-settings.json: Invalid or malformed JSON

3563```

3564 

3565**Qué hacer:**

3566 

3567* Corrige el problema que indica el mensaje y luego vuelve a ejecutar tu comando `claude remote-control`

3568 

3569### The settings file has changed since Remote Control started

3570 

3571Este mensaje en la terminal que ejecuta `claude remote-control` significa que las sesiones no se iniciarán a partir del archivo que pasaste a [`--settings`](https://code.claude.com/docs/es/remote-control#start-a-remote-control-session) tal como está ahora:

3572 

3573```text theme={null}

3574Session failed: Error: The settings file /path/to/settings.json has changed since Remote Control started, so this session did not start. Restart `claude remote-control` to use it as it is now.

3575```

3576 

3577**Qué hacer:**

3578 

3579* Para usar el archivo tal como está ahora, detén `claude remote-control` y vuelve a ejecutar el mismo comando. Para recuperar las sesiones que estaba atendiendo, consulta [Reanudar sesiones después de detener el servidor](https://code.claude.com/docs/es/remote-control.md#resume-sessions-after-stopping-the-server).

3580* Para conservar la configuración con la que se inició Remote Control, restaura el contenido del archivo tal como estaba y luego vuelve a ejecutar el comando si `claude remote-control` ha terminado

3581 

3539### `--sandbox` or `--no-sandbox` is not supported by claude remote-control3582### `--sandbox` or `--no-sandbox` is not supported by claude remote-control

3540 3583 

3541Este error significa que el comando que inicia tu servidor de [Remote Control](https://code.claude.com/docs/es/remote-control.md) pasa `--sandbox` o `--no-sandbox` después de `remote-control`, y `claude remote-control` no acepta ninguno de los dos flags. El servidor termina con el código 1 en lugar de iniciarse:3584Este error significa que el comando que inicia tu servidor de [Remote Control](https://code.claude.com/docs/es/remote-control.md) pasa `--sandbox` o `--no-sandbox` después de `remote-control`, y `claude remote-control` no acepta ninguno de los dos flags. El servidor termina con el código 1 en lugar de iniciarse:


3960 4003 

3961* **No pasaste una rama base**: Claude Code comparó contra la rama predeterminada del repositorio y sugiere pasar tu base explícitamente, como en el ejemplo anterior4004* **No pasaste una rama base**: Claude Code comparó contra la rama predeterminada del repositorio y sugiere pasar tu base explícitamente, como en el ejemplo anterior

3962* **Pasaste una rama base que ya estaba en tu clon**: la sugerencia dice ``Make sure <branch> exists locally or on origin (try `git fetch origin <branch>`)``4005* **Pasaste una rama base que ya estaba en tu clon**: la sugerencia dice ``Make sure <branch> exists locally or on origin (try `git fetch origin <branch>`)``

3963* **Pasaste una rama base que no estaba en tu clon**: Claude Code la obtuvo de origin antes de comparar. La sugerencia dice ``<branch> was fetched from origin but shares no history with HEAD. If another branch is your real base, pass it explicitly (`/code-review ultra <branch>`)``; cuando Claude Code no puede saber si tu clon es superficial, sugiere `git fetch --unshallow origin` en su lugar. Antes de v2.1.221, la sugerencia proponía `git fetch --unshallow origin` para cada rama base obtenida, y en un clon completo ese comando falla con `fatal: --unshallow on a complete repository does not make sense`.4006* **Pasaste una rama base que no estaba en tu clon**: Claude Code la obtuvo de origin antes de comparar. La sugerencia dice ``<branch> was fetched from origin but shares no history with HEAD. If another branch is your real base, pass it explicitly (`/code-review ultra <branch>`)``; cuando Claude Code no puede determinar si tu clon es superficial (shallow), sugiere `git fetch --unshallow origin` en su lugar. Antes de la v2.1.221, la sugerencia proponía `git fetch --unshallow origin` para cada rama base obtenida, y en un clon completo ese comando falla con `fatal: --unshallow on a complete repository does not make sense`.

3964 4007 

3965**Qué hacer:**4008**Qué hacer:**

3966 4009 

gateways.md +1 −1

Details

63* **Telemetría del cliente**: Claude Code desactiva su análisis de cliente vinculado a Anthropic cuando una sesión inicia sesión en una puerta de enlace de aplicaciones Claude. Para mantener la telemetría de inicio anterior al inicio de sesión también desactivada, entregue [`DISABLE_TELEMETRY`](https://code.claude.com/docs/es/managed-settings#turn-telemetry-off-for-your-organization) en la [configuración de cliente administrada](https://code.claude.com/docs/es/claude-apps-gateway-config.md#client-side-managed-settings) en cada dispositivo.63* **Telemetría del cliente**: Claude Code desactiva su análisis de cliente vinculado a Anthropic cuando una sesión inicia sesión en una puerta de enlace de aplicaciones Claude. Para mantener la telemetría de inicio anterior al inicio de sesión también desactivada, entregue [`DISABLE_TELEMETRY`](https://code.claude.com/docs/es/managed-settings#turn-telemetry-off-for-your-organization) en la [configuración de cliente administrada](https://code.claude.com/docs/es/claude-apps-gateway-config.md#client-side-managed-settings) en cada dispositivo.

64* **Telemetría del cliente en otras puertas de enlace**: si Claude Code envía la secuencia de telemetría del cliente opcional depende de su proveedor, y la [tabla de valores predeterminados de telemetría](https://code.claude.com/docs/es/data-usage.md#default-behaviors-by-api-provider) cubre cada caso.64* **Telemetría del cliente en otras puertas de enlace**: si Claude Code envía la secuencia de telemetría del cliente opcional depende de su proveedor, y la [tabla de valores predeterminados de telemetría](https://code.claude.com/docs/es/data-usage.md#default-behaviors-by-api-provider) cubre cada caso.

65* **Destinos de telemetría**: dónde Claude Code envía la telemetría de una sesión de puerta de enlace depende de cómo inició sesión la sesión, y [Lo que se aplica a los desarrolladores](https://code.claude.com/docs/es/claude-apps-gateway#whats-enforced-on-developers) dice dónde van las exportaciones de cada tipo de sesión.65* **Destinos de telemetría**: dónde Claude Code envía la telemetría de una sesión de puerta de enlace depende de cómo inició sesión la sesión, y [Lo que se aplica a los desarrolladores](https://code.claude.com/docs/es/claude-apps-gateway#whats-enforced-on-developers) dice dónde van las exportaciones de cada tipo de sesión.

66* **Proxies HTTP corporativos**: un `HTTPS_PROXY` se sitúa entre Claude Code y cada servidor con el que habla, incluida la puerta de enlace. Si su red requiere uno, [configure el proxy](https://code.claude.com/docs/es/network-config.md) además de la puerta de enlace. Para una puerta de enlace de aplicaciones Claude que usted aloja, [el inicio de sesión verifica que el host del proxy también esté en una red privada](https://code.claude.com/docs/es/claude-apps-gateway#prerequisites); si no es así, agregue el host de la puerta de enlace a `NO_PROXY` para que la CLI se conecte a él directamente.66* **Proxies HTTP corporativos**: Claude Code envía sus solicitudes, incluidas las dirigidas al gateway, a través del proxy definido en `HTTPS_PROXY`. Si tu red requiere un proxy, [configúralo](https://code.claude.com/docs/es/network-config.md). Si el proxy se aplica a un gateway de aplicaciones Claude que alojas tú, el [inicio de sesión](https://code.claude.com/docs/es/claude-apps-gateway#prerequisites) necesita que el nombre de host del proxy se resuelva a direcciones privadas, o que el host del gateway esté en `NO_PROXY`.

67 67 

68## Próximos pasos68## Próximos pasos

69 69 

Details

83>83>

84> Cree una aplicación de Microsoft Entra con una credencial federada para su repositorio, siguiendo la [guía de Microsoft para autenticarse desde GitHub Actions](https://learn.microsoft.com/en-us/azure/developer/github/connect-from-azure-openid-connect):84> Cree una aplicación de Microsoft Entra con una credencial federada para su repositorio, siguiendo la [guía de Microsoft para autenticarse desde GitHub Actions](https://learn.microsoft.com/en-us/azure/developer/github/connect-from-azure-openid-connect):

85>85>

86> * Registre una aplicación de Microsoft Entra y agregue una credencial de identidad federada que confíe en los tokens que GitHub emite a su repositorio. Una identidad administrada asignada por el usuario funciona en lugar de una aplicación. Ambas tienen el ID de cliente que anota a continuación86> * Registra una aplicación de Microsoft Entra y agrega una credencial de identidad federada que confíe en los tokens que GitHub emite a tu repositorio. Una identidad administrada asignada por el usuario funciona en lugar de una aplicación. Ambas tienen el ID de cliente que anotas a continuación

87> * Asigne a la aplicación el rol `Azure AI User` en su recurso de Foundry. Consulte [Configuración de RBAC de Azure](https://code.claude.com/docs/es/microsoft-foundry.md#azure-rbac-configuration) para un rol personalizado más estrecho87> * Asigna a la aplicación el rol `Foundry User` en tu recurso de Foundry. Consulta [Configuración de RBAC de Azure](https://code.claude.com/docs/es/microsoft-foundry.md#azure-rbac-configuration) para conocer el otro rol integrado y los roles personalizados

88>88>

89> Anote el ID de cliente de la aplicación, su ID de inquilino y su ID de suscripción. Los agregará como secretos en el siguiente paso.89> Anote el ID de cliente de la aplicación, su ID de inquilino y su ID de suscripción. Los agregará como secretos en el siguiente paso.

90 90 

Details

228 228 

229### Cuando un modelo se deshabilita durante la sesión229### Cuando un modelo se deshabilita durante la sesión

230 230 

231Si su proyecto pierde acceso al modelo en el que se ejecuta su sesión, por ejemplo porque un administrador lo deshabilita en [Model Garden](https://console.cloud.google.com/vertex-ai/model-garden), Claude Code cambia la sesión a otro modelo en lugar de fallar en cada solicitud, y muestra `Switched to <fallback> because <model> is not available`. Intenta los mismos modelos que el retroceso de inicio: versiones anteriores del mismo nivel primero y, para una sesión de Opus sin ninguna versión de Opus disponible, el modelo Sonnet predeterminado.231Cuando Agent Platform rechaza el modelo de tu sesión por no estar disponible en tu proyecto o región, Claude Code cambia tu sesión a otro modelo y puedes seguir trabajando. Verás un mensaje que comienza con `Switched to <fallback> because <model> is not available`. Esto ocurre, por ejemplo, cuando un administrador deshabilita el modelo en [Model Garden](https://console.cloud.google.com/vertex-ai/model-garden) o cuando no se ofrece en tu región.

232 232 

233El cambio se aplica solo a un nivel que no ha fijado, la misma condición que el retroceso de inicio. Una sesión en una versión específica que eligió mantiene su modelo y, sin una cadena de modelo de retroceso, la solicitud falla en su lugar. En [modo automático](https://code.claude.com/docs/es/permission-modes.md#enable-auto-mode-on-bedrock-agent-platform-or-foundry), Claude Code cambia solo a un modelo que el modo automático admite en Agent Platform. Si ninguno de esos modelos está disponible tampoco, la solicitud falla.233Si configuraste una [cadena de modelos de respaldo](https://code.claude.com/docs/es/model-config.md#fallback-model-chains), Claude Code cambia a tu respaldo configurado en su lugar. Sin una cadena, la solicitud falla en casos como estos:

234 234 

235Una [cadena de modelo de retroceso](https://code.claude.com/docs/es/model-config.md#fallback-model-chains) que configure reemplaza el cambio de nivel: en estos rechazos Claude Code cambia a su retroceso configurado en su lugar. Para que las solicitudes rechazadas fallen en lugar de cambiar, establezca [`CLAUDE_CODE_DISABLE_MODEL_ACCESS_FALLBACK=1`](https://code.claude.com/docs/es/env-vars). Una cadena de retroceso que configuró aún cambia en estos rechazos; elimine la cadena también si desea que cada solicitud rechazada falle.235* Tu sesión está en un modelo fijado o en una versión específica que elegiste

236* Ninguno de los [modelos que Claude Code intenta](#startup-model-checks) está disponible. En [modo automático](https://code.claude.com/docs/es/permission-modes.md#enable-auto-mode-on-bedrock-agent-platform-or-foundry), Claude Code solo cambia a un modelo que el modo automático admite en Agent Platform.

237 

238Para seguir trabajando, ejecuta `/model` en la sesión y presiona `s` sobre un modelo disponible en tu proyecto y región, lo cual deja tu valor predeterminado sin cambios.

239 

240Para que las solicitudes rechazadas fallen en lugar de cambiar, establece [`CLAUDE_CODE_DISABLE_MODEL_ACCESS_FALLBACK=1`](https://code.claude.com/docs/es/env-vars). Si configuraste una cadena de modelos de respaldo, elimínala también, porque Claude Code sigue cambiando a ese respaldo.

236 241 

237## Configuración de IAM242## Configuración de IAM

238 243 

hooks.md +9 −3

Details

3000 3000 

3001Se ejecuta cuando un archivo de configuración cambia durante una sesión. Úsalo para auditar cambios de configuración, aplicar políticas de seguridad o bloquear modificaciones no autorizadas en los archivos de configuración.3001Se ejecuta cuando un archivo de configuración cambia durante una sesión. Úsalo para auditar cambios de configuración, aplicar políticas de seguridad o bloquear modificaciones no autorizadas en los archivos de configuración.

3002 3002 

3003Claude Code ejecuta los hooks ConfigChange cuando cambia un archivo de configuración, un archivo de política administrada o un archivo de skill. Para la política administrada, los ejecuta solo cuando cambia `managed-settings.json` o un archivo en `managed-settings.d/`. Aplica la [configuración administrada por el servidor](https://code.claude.com/docs/es/server-managed-settings.md) y los cambios en las preferencias administradas de macOS o en la política del registro de Windows sin ejecutarlos. En WSL con [`wslInheritsWindowsSettings`](https://code.claude.com/docs/es/settings-reference#wslinheritswindowssettings), también aplica un archivo de configuración administrada del lado de Windows que haya cambiado, en su sondeo de políticas, sin ejecutarlos.3003Claude Code ejecuta los hooks ConfigChange cuando cambia un archivo de configuración, un archivo de política administrada o un archivo de skill. Para la política administrada, los ejecuta solo cuando cambia `managed-settings.json` o un archivo en `managed-settings.d/`.

3004 3004 

3005El matcher filtra según el origen de la configuración:3005El matcher filtra según el origen de la configuración:

3006 3006 


3012| `policy_settings` | Cambia `managed-settings.json` o un archivo en `managed-settings.d/` |3012| `policy_settings` | Cambia `managed-settings.json` o un archivo en `managed-settings.d/` |

3013| `skills` | Cambia un archivo de skill en `.claude/skills/` |3013| `skills` | Cambia un archivo de skill en `.claude/skills/` |

3014 3014 

3015Este ejemplo registra todos los cambios de configuración para auditorías de seguridad:3015Los cambios como estos surten efecto sin ejecutar los hooks:

3016 

3017* Las reglas y los ajustes que guardas con **Yes, and don't ask again**, `/permissions` o `/model`, en la sesión desde la que los guardaste. Si otra sesión abierta carga el mismo archivo, los hooks se ejecutan allí.

3018* Las actualizaciones de la [configuración administrada por el servidor](https://code.claude.com/docs/es/server-managed-settings.md), las preferencias administradas de macOS o la política del registro de Windows

3019* En WSL con [`wslInheritsWindowsSettings`](https://code.claude.com/docs/es/settings-reference#wslinheritswindowssettings), un archivo de configuración administrada del lado de Windows que haya cambiado, que Claude Code detecta en su sondeo de políticas

3020 

3021Este ejemplo registra los cambios de configuración para auditorías de seguridad:

3016 3022 

3017```json theme={null}3023```json theme={null}

3018{3024{


3335 "hooks": [3341 "hooks": [

3336 {3342 {

3337 "type": "command",3343 "type": "command",

3338 "command": "bash -c 'jq -r .worktree_path | xargs rm -rf'"3344 "command": "bash -c 'p=$(jq -er .worktree_path) && rm -rf -- \"$p\"'"

3339 }3345 }

3340 ]3346 ]

3341 }3347 }

hooks-guide.md +3 −3

Details

50 "PostToolUse": [50 "PostToolUse": [

51 {51 {

52 "matcher": "Edit|Write",52 "matcher": "Edit|Write",

53 "hooks": [{ "type": "command", "command": "jq -r '.tool_input.file_path' | xargs npx prettier --write" }]53 "hooks": [{ "type": "command", "command": "f=$(jq -r '.tool_input.file_path') && npx prettier --write --ignore-unknown \"$f\"" }]

54 }54 }

55 ],55 ],

56 "Notification": [56 "Notification": [


221 "hooks": [221 "hooks": [

222 {222 {

223 "type": "command",223 "type": "command",

224 "command": "jq -r '.tool_input.file_path' | xargs npx prettier --write"224 "command": "f=$(jq -r '.tool_input.file_path') && npx prettier --write --ignore-unknown \"$f\""

225 }225 }

226 ]226 ]

227 }227 }


336 336 

337Haz un seguimiento de cuándo cambian los archivos de configuración o de skills durante una sesión. El evento `ConfigChange` se dispara cuando un proceso externo o un editor modifica un archivo de configuración, para que puedas registrar los cambios por motivos de cumplimiento o bloquear modificaciones no autorizadas.337Haz un seguimiento de cuándo cambian los archivos de configuración o de skills durante una sesión. El evento `ConfigChange` se dispara cuando un proceso externo o un editor modifica un archivo de configuración, para que puedas registrar los cambios por motivos de cumplimiento o bloquear modificaciones no autorizadas.

338 338 

339Este ejemplo añade cada cambio a un registro de auditoría. Agrega esto a `~/.claude/settings.json`:339Este ejemplo añade cada evento a un registro de auditoría. Agrega esto a `~/.claude/settings.json`:

340 340 

341```json theme={null}341```json theme={null}

342{342{

Details

36| `Esc` | Interrumpir Claude o cerrar un diálogo | Detiene la respuesta actual o la llamada de herramienta a mitad de turno para que pueda redirigir. Claude mantiene el trabajo realizado hasta ahora. Si tiene [mensajes en cola](#queue-messages-while-claude-works), Claude Code los envía a continuación. Cuando un diálogo está abierto, `Esc` cierra el diálogo. Mientras un elemento de pie de página está seleccionado, como una fila en el [panel de subagentes](https://code.claude.com/docs/es/sub-agents.md#run-subagents-in-foreground-or-background) debajo del símbolo del sistema, `Esc` [lo deselecciona](https://code.claude.com/docs/es/keybindings.md#footer-actions) en lugar de interrumpir. En un aviso de permiso, `Esc` rechaza la acción, lo mismo que [**No** sin un comentario](https://code.claude.com/docs/es/permissions.md#add-a-comment-when-you-answer-a-permission-prompt) |36| `Esc` | Interrumpir Claude o cerrar un diálogo | Detiene la respuesta actual o la llamada de herramienta a mitad de turno para que pueda redirigir. Claude mantiene el trabajo realizado hasta ahora. Si tiene [mensajes en cola](#queue-messages-while-claude-works), Claude Code los envía a continuación. Cuando un diálogo está abierto, `Esc` cierra el diálogo. Mientras un elemento de pie de página está seleccionado, como una fila en el [panel de subagentes](https://code.claude.com/docs/es/sub-agents.md#run-subagents-in-foreground-or-background) debajo del símbolo del sistema, `Esc` [lo deselecciona](https://code.claude.com/docs/es/keybindings.md#footer-actions) en lugar de interrumpir. En un aviso de permiso, `Esc` rechaza la acción, lo mismo que [**No** sin un comentario](https://code.claude.com/docs/es/permissions.md#add-a-comment-when-you-answer-a-permission-prompt) |

37| `Esc` + `Esc` | Borrar borrador de entrada o rebobinar | Cuando la entrada del prompt contiene texto, doble `Esc` lo borra y guarda el borrador en el historial para que `Up` lo recupere. Cuando la entrada está vacía, doble `Esc` abre el [menú de rebobinado](https://code.claude.com/docs/es/checkpointing.md) para restaurar o resumir código y conversación desde un punto anterior |37| `Esc` + `Esc` | Borrar borrador de entrada o rebobinar | Cuando la entrada del prompt contiene texto, doble `Esc` lo borra y guarda el borrador en el historial para que `Up` lo recupere. Cuando la entrada está vacía, doble `Esc` abre el [menú de rebobinado](https://code.claude.com/docs/es/checkpointing.md) para restaurar o resumir código y conversación desde un punto anterior |

38| `Ctrl+Enter` o `Ctrl+X Ctrl+S` | Enviar mensajes en cola ahora | Envía sus [mensajes en cola](#queue-messages-while-claude-works) y su borrador con ellos de inmediato. [Cuando Claude Code envía lo que puso en cola](#when-claude-code-sends-what-you-queued) cubre lo que sucede con el turno en el que Claude está trabajando. En [modo shell](#shell-mode-with-prefix), la tecla solo pone en cola su comando. En terminales que no reportan teclas extendidas, `Ctrl+Enter` llega como `Enter` simple; `Ctrl+X Ctrl+S` funciona en cualquier terminal. Requiere Claude Code v2.1.275 o posterior |38| `Ctrl+Enter` o `Ctrl+X Ctrl+S` | Enviar mensajes en cola ahora | Envía sus [mensajes en cola](#queue-messages-while-claude-works) y su borrador con ellos de inmediato. [Cuando Claude Code envía lo que puso en cola](#when-claude-code-sends-what-you-queued) cubre lo que sucede con el turno en el que Claude está trabajando. En [modo shell](#shell-mode-with-prefix), la tecla solo pone en cola su comando. En terminales que no reportan teclas extendidas, `Ctrl+Enter` llega como `Enter` simple; `Ctrl+X Ctrl+S` funciona en cualquier terminal. Requiere Claude Code v2.1.275 o posterior |

39| `Shift+Tab`, o `Alt+M` en Windows cuando el tiempo de ejecución de Node o Bun no habilita el modo de entrada VT | Ciclar modos de permiso | Cicle a través de `default` (etiquetado como Manual en el indicador de modo), `acceptEdits`, `plan` y, cuando esté disponible, `bypassPermissions` y luego `auto`. Desde `auto`, la primera pulsación cambia a `default`. Consulte [modos de permiso](https://code.claude.com/docs/es/permission-modes.md). En un aviso de permiso de archivo, la misma tecla cierra un [campo de comentario](https://code.claude.com/docs/es/permissions.md#add-a-comment-when-you-answer-a-permission-prompt) abierto. Sin campo abierto, selecciona la opción que permite la acción para el resto de la sesión, cuando el aviso ofrece esa opción |39| `Shift+Tab`, o `Alt+M` en Windows cuando el tiempo de ejecución de Node o Bun no habilita el modo de entrada VT | Ciclar modos de permisos | Cicla a través de `default` (etiquetado como Manual en el indicador de modo), `acceptEdits` y `plan`, y luego `bypassPermissions` y `auto` cuando estén disponibles. Consulta [modos de permisos](https://code.claude.com/docs/es/permission-modes.md). En una solicitud de permiso de archivo, la misma tecla cierra un [campo de comentario](https://code.claude.com/docs/es/permissions.md#add-a-comment-when-you-answer-a-permission-prompt) abierto. Sin campo abierto, selecciona la opción que permite la acción para el resto de la sesión, cuando la solicitud ofrece esa opción. En la solicitud de aprobación del plan, aprueba el plan |

40| `Option+P` (macOS) o `Alt+P` (Windows/Linux) | Cambiar modelo | Cambie modelos sin borrar su símbolo del sistema |40| `Option+P` (macOS) o `Alt+P` (Windows/Linux) | Cambiar modelo | Cambie modelos sin borrar su símbolo del sistema |

41| `Option+T` (macOS) o `Alt+T` (Windows/Linux) | Alternar pensamiento extendido | Habilita o deshabilita el modo de pensamiento extendido. No tiene efecto en Opus 5.5, Sonnet 5.5, Haiku 5.5 o los modelos Fable, que siempre utilizan pensamiento extendido. Funciona en macOS sin configurar Option como Meta |41| `Option+T` (macOS) o `Alt+T` (Windows/Linux) | Alternar pensamiento extendido | Habilita o deshabilita el modo de pensamiento extendido. No tiene efecto en Opus 5.5, Sonnet 5.5, Haiku 5.5 o los modelos Fable, que siempre utilizan pensamiento extendido. Funciona en macOS sin configurar Option como Meta |

42| `Option+O` (macOS) o `Alt+O` (Windows/Linux) | Alternar modo rápido | Habilitar o deshabilitar [modo rápido](https://code.claude.com/docs/es/fast-mode.md) |42| `Option+O` (macOS) o `Alt+O` (Windows/Linux) | Alternar modo rápido | Habilitar o deshabilitar [modo rápido](https://code.claude.com/docs/es/fast-mode.md) |


81| :- | :- | :- |81| :- | :- | :- |

82| Escape rápido | `\` + `Enter` | Funciona en todas las terminales |82| Escape rápido | `\` + `Enter` | Funciona en todas las terminales |

83| Tecla Option | `Option+Enter` | Después de habilitar [Option como Meta](https://code.claude.com/docs/es/terminal-config.md#enable-option-key-shortcuts-on-macos) en macOS |83| Tecla Option | `Option+Enter` | Después de habilitar [Option como Meta](https://code.claude.com/docs/es/terminal-config.md#enable-option-key-shortcuts-on-macos) en macOS |

84| Shift+Enter | `Shift+Enter` | Nativo en iTerm2, WezTerm, Ghostty, Kitty, Warp, Apple Terminal, Windows Terminal. Para otras terminales, consulte [Ingresar símbolos del sistema multilínea](https://code.claude.com/docs/es/terminal-config.md#enter-multiline-prompts) |84| Shift+Enter | `Shift+Enter` | Nativo en iTerm2, WezTerm, Ghostty, Kitty, Warp, Windows Terminal. Para otras terminales, consulta [Ingresar prompts multilínea](https://code.claude.com/docs/es/terminal-config.md#enter-multiline-prompts) |

85| Secuencia de control | `Ctrl+J` | Funciona en cualquier terminal sin configuración |85| Secuencia de control | `Ctrl+J` | Funciona en cualquier terminal sin configuración |

86| Modo de pegado | Pegar directamente | Para bloques de código, registros |86| Modo de pegado | Pegar directamente | Para bloques de código, registros |

87 87 


137 137 

138Habilite la edición de estilo vim a través de `/config` → Editor mode.138Habilite la edición de estilo vim a través de `/config` → Editor mode.

139 139 

140Claude Code mantiene su modo vim y la posición del cursor cuando alterna el [visor de transcripción](#transcript-viewer) con `Ctrl+O` o abre y cierra un panel como `/config`. Si deja el prompt en modo NORMAL, sigue en modo NORMAL cuando regresa, con el cursor donde lo dejó.

141 

142### Cambio de modo140### Cambio de modo

143 141 

144| Comando | Acción | Desde el modo |142| Comando | Acción | Desde el modo |


302 * Presiona `Ctrl+C` para cancelar y restaurar tu entrada original300 * Presiona `Ctrl+C` para cancelar y restaurar tu entrada original

303 * Presiona `Backspace` con la búsqueda vacía para cancelar301 * Presiona `Backspace` con la búsqueda vacía para cancelar

304 302 

305Aceptar una coincidencia o cancelar la búsqueda surte efecto de inmediato, incluso mientras Claude Code todavía está cargando el historial.

306 

307Para encontrar un prompt anterior cuando solo recuerdas algo largo que pegaste en él, como un registro de errores, presiona `Ctrl+R` y escribe una palabra del contenido pegado. Requiere Claude Code v2.1.314 o posterior.303Para encontrar un prompt anterior cuando solo recuerdas algo largo que pegaste en él, como un registro de errores, presiona `Ctrl+R` y escribe una palabra del contenido pegado. Requiere Claude Code v2.1.314 o posterior.

308 304 

309## Comandos Bash en segundo plano305## Comandos Bash en segundo plano


600 596 

601### Qué subraya Claude Code597### Qué subraya Claude Code

602 598 

603Poco después de que deje de escribir, Claude Code subraya las palabras que el diccionario no conoce. Deja sola la palabra que aún está escribiendo hasta que se mueva más allá de ella, y nunca cambia su texto. También omite el texto que parece código:599Poco después de que dejes de escribir, Claude Code subraya las palabras que el diccionario no conoce. No toca la palabra que aún estás escribiendo hasta que pases a la siguiente. También omite el texto que parece código:

604 600 

605* Comandos como `/help`, menciones `@`, URLs, rutas de archivo, y banderas como `--verbose`601* Comandos como `/help`, menciones `@`, URLs, rutas de archivo, y banderas como `--verbose`

606* Palabras con dígitos, guiones bajos, o una letra mayúscula después de la primera, y texto entre comillas invertidas602* Palabras con dígitos, guiones bajos, o una letra mayúscula después de la primera, y texto entre comillas invertidas

keybindings.md +6 −1

Details

581 581 

582Claude Code vincula estos acordes predeterminados en el prefijo `ctrl+x`, por contexto:582Claude Code vincula estos acordes predeterminados en el prefijo `ctrl+x`, por contexto:

583 583 

584* `Chat`: `ctrl+x ctrl+k`, `ctrl+x ctrl+e`, `ctrl+x enter`, `ctrl+x ctrl+a`, `ctrl+x ctrl+s` y `ctrl+x tab`584* `Chat`: `ctrl+x ctrl+k`, `ctrl+x ctrl+e`, `ctrl+x enter`, `ctrl+x ctrl+a`, `ctrl+x ctrl+s`, `ctrl+x tab`, `ctrl+x ctrl+=`, `ctrl+x ctrl+-`, `ctrl+x ctrl+_`, `ctrl+x =` y `ctrl+x -`

585* `Task`: `ctrl+x ctrl+b`585* `Task`: `ctrl+x ctrl+b`

586* `DiffPanel`: `ctrl+x b`586* `DiffPanel`: `ctrl+x b`

587* `Pane`: `ctrl+x left`, `ctrl+x right`, `ctrl+x up`, `ctrl+x down` y `ctrl+x x`587* `Pane`: `ctrl+x left`, `ctrl+x right`, `ctrl+x up`, `ctrl+x down` y `ctrl+x x`


631 "ctrl+x ctrl+a": null,631 "ctrl+x ctrl+a": null,

632 "ctrl+x ctrl+s": null,632 "ctrl+x ctrl+s": null,

633 "ctrl+x tab": null,633 "ctrl+x tab": null,

634 "ctrl+x ctrl+=": null,

635 "ctrl+x ctrl+-": null,

636 "ctrl+x ctrl+_": null,

637 "ctrl+x =": null,

638 "ctrl+x -": null,

634 "ctrl+x": "chat:newline"639 "ctrl+x": "chat:newline"

635 }640 }

636 }641 }

Details

156 156 

157### Conflictos con un inicio de sesión existente157### Conflictos con un inicio de sesión existente

158 158 

159Una variable de credencial de gateway tiene precedencia sobre un inicio de sesión de claude.ai guardado o una clave de Console. Con `ANTHROPIC_AUTH_TOKEN`, la variable tiene precedencia de inmediato. Con `ANTHROPIC_API_KEY`, se te solicita una vez en modo interactivo que apruebes la clave antes de que tome el control.159Tus solicitudes usan una variable de credencial del gateway en lugar de un inicio de sesión de claude.ai guardado. Con `ANTHROPIC_AUTH_TOKEN`, la variable tiene precedencia de inmediato. Con `ANTHROPIC_API_KEY`, se te solicita una vez en modo interactivo que apruebes la clave antes de que tome el control.

160 160 

161Ejecute `/status` para confirmar qué fuente de credencial está activa. Si el inicio muestra una advertencia de conflicto de autenticación que nombra dos fuentes, consulte la primera fila de la [tabla de solución de problemas](#troubleshoot-gateway-errors) para saber cuál descartar. Para borrar un inicio de sesión guardado para que solo permanezca la credencial de puerta de enlace, ejecute `/logout`.161Ejecute `/status` para confirmar qué fuente de credencial está activa. Si el inicio muestra una advertencia de conflicto de autenticación que nombra dos fuentes, consulte la primera fila de la [tabla de solución de problemas](#troubleshoot-gateway-errors) para saber cuál descartar. Para borrar un inicio de sesión guardado para que solo permanezca la credencial de puerta de enlace, ejecute `/logout`.

162 162 


506 506 

507| Error | Causa | Solución |507| Error | Causa | Solución |

508| :- | :- | :- |508| :- | :- | :- |

509| Una advertencia de inicio que nombra dos fuentes de credencial y termina en `auth may not work as expected`. Las versiones más antiguas muestran `Auth conflict: Both a token (SOURCE) and an API key (SOURCE) are set` en su lugar. | Una credencial de puerta de enlace y un inicio de sesión guardado están ambos activos; la variable se usa para solicitudes, pero el inicio de sesión obsoleto puede causar comportamiento de autenticación inesperado | Desestablezca la variable para usar el inicio de sesión guardado, o ejecute `/logout` para usar la credencial de puerta de enlace |509| Una advertencia de inicio que nombra dos fuentes de credenciales y termina en `auth may not work as expected`. Las versiones más antiguas muestran `Auth conflict: Both a token (SOURCE) and an API key (SOURCE) are set` en su lugar. | Una credencial del gateway y un inicio de sesión guardado están activos al mismo tiempo | Quita la variable para usar el inicio de sesión guardado, o ejecuta `/logout` para usar la credencial del gateway |

510| Errores `401` que nombran un token inválido o no reconocido | La credencial no es una que la puerta de enlace emitió, o está en un encabezado que la puerta de enlace no lee | Confirme que la variable coincida con su tipo de credencial en la [tabla de credencial](#set-the-credential-variable), y regenere la clave en la puerta de enlace si fue revocada |510| Errores `401` que nombran un token inválido o no reconocido | La credencial no es una que la puerta de enlace emitió, o está en un encabezado que la puerta de enlace no lee | Confirme que la variable coincida con su tipo de credencial en la [tabla de credencial](#set-the-credential-variable), y regenere la clave en la puerta de enlace si fue revocada |

511| `Your apiKeyHelper script is failing`, o `apiKeyHelper failed:` en stderr en modo no interactivo | El comando en la configuración [`apiKeyHelper`](https://code.claude.com/docs/es/settings-reference#apikeyhelper) no produjo una clave utilizable, por lo que las solicitudes llevan una clave de marcador de posición | Ejecute el comando directamente para ver por qué falla, y vuelva a autenticarse con su proveedor de credenciales si reporta una sesión expirada; consulte [la referencia de errores](https://code.claude.com/docs/es/errors.md#your-apikeyhelper-script-is-failing) |511| `Your apiKeyHelper script is failing`, o `apiKeyHelper failed:` en stderr en modo no interactivo | El comando en la configuración [`apiKeyHelper`](https://code.claude.com/docs/es/settings-reference#apikeyhelper) no produjo una clave utilizable, por lo que las solicitudes llevan una clave de marcador de posición | Ejecute el comando directamente para ver por qué falla, y vuelva a autenticarse con su proveedor de credenciales si reporta una sesión expirada; consulte [la referencia de errores](https://code.claude.com/docs/es/errors.md#your-apikeyhelper-script-is-failing) |

512| `Connection refused — a firewall or proxy may be blocking it (ConnectionRefused)` cuando nada responde en la dirección, o `Can't reach the API server — check your internet or DNS (ENOTFOUND)` cuando el nombre de host no se resuelve, a menudo después de una pausa silenciosa mientras Claude Code [reintenta con retroceso](https://code.claude.com/docs/es/errors.md#automatic-retries). El código entre paréntesis varía; [Unable to connect to API](https://code.claude.com/docs/es/errors.md#unable-to-connect-to-api) cubre los códigos y la redacción anterior | Nada respondió en la URL base: la dirección es incorrecta, o una VPN o firewall bloquea la ruta a la puerta de enlace | Ejecute la [prueba de curl anterior](#verify-the-connection), que falla inmediatamente con la misma causa, y confirme la URL y la ruta de red con su equipo de puerta de enlace |512| `Connection refused — a firewall or proxy may be blocking it (ConnectionRefused)` cuando nada responde en la dirección, o `Can't reach the API server — check your internet or DNS (ENOTFOUND)` cuando el nombre de host no se resuelve, a menudo después de una pausa silenciosa mientras Claude Code [reintenta con retroceso](https://code.claude.com/docs/es/errors.md#automatic-retries). El código entre paréntesis varía; [Unable to connect to API](https://code.claude.com/docs/es/errors.md#unable-to-connect-to-api) cubre los códigos y la redacción anterior | Nada respondió en la URL base: la dirección es incorrecta, o una VPN o firewall bloquea la ruta a la puerta de enlace | Ejecute la [prueba de curl anterior](#verify-the-connection), que falla inmediatamente con la misma causa, y confirme la URL y la ruta de red con su equipo de puerta de enlace |


520| `/fast` reporta `Fast mode unavailable due to network connectivity issues` mientras las solicitudes de inferencia funcionan | La verificación de disponibilidad del [modo rápido](https://code.claude.com/docs/es/fast-mode.md) va directamente a `api.anthropic.com` y no sigue `ANTHROPIC_BASE_URL`, por lo que, si el tráfico de salida directo está bloqueado, la verificación falla | Agrega `api.anthropic.com` a la lista de dominios permitidos si el tráfico de salida está bloqueado, o establece una variable de omisión. Consulta [usar el modo rápido detrás de proxies y gateways de LLM](https://code.claude.com/docs/es/fast-mode.md#use-fast-mode-behind-proxies-and-llm-gateways) |520| `/fast` reporta `Fast mode unavailable due to network connectivity issues` mientras las solicitudes de inferencia funcionan | La verificación de disponibilidad del [modo rápido](https://code.claude.com/docs/es/fast-mode.md) va directamente a `api.anthropic.com` y no sigue `ANTHROPIC_BASE_URL`, por lo que, si el tráfico de salida directo está bloqueado, la verificación falla | Agrega `api.anthropic.com` a la lista de dominios permitidos si el tráfico de salida está bloqueado, o establece una variable de omisión. Consulta [usar el modo rápido detrás de proxies y gateways de LLM](https://code.claude.com/docs/es/fast-mode.md#use-fast-mode-behind-proxies-and-llm-gateways) |

521| `/fast` reporta `Fast mode is currently unavailable` en una sesión que se autentica con una clave emitida por el gateway en `ANTHROPIC_API_KEY` | Mientras `ANTHROPIC_BASE_URL` apunta a tu gateway y la clave no tiene el formato de una clave de API de Anthropic, Claude Code no envía la verificación de disponibilidad del [modo rápido](https://code.claude.com/docs/es/fast-mode.md). Sin una verificación exitosa previa en caché, trata el modo rápido como no disponible | Establece `CLAUDE_CODE_SKIP_FAST_MODE_NETWORK_ERRORS=1`; consulta [usar el modo rápido detrás de proxies y gateways de LLM](https://code.claude.com/docs/es/fast-mode.md#use-fast-mode-behind-proxies-and-llm-gateways) |521| `/fast` reporta `Fast mode is currently unavailable` en una sesión que se autentica con una clave emitida por el gateway en `ANTHROPIC_API_KEY` | Mientras `ANTHROPIC_BASE_URL` apunta a tu gateway y la clave no tiene el formato de una clave de API de Anthropic, Claude Code no envía la verificación de disponibilidad del [modo rápido](https://code.claude.com/docs/es/fast-mode.md). Sin una verificación exitosa previa en caché, trata el modo rápido como no disponible | Establece `CLAUDE_CODE_SKIP_FAST_MODE_NETWORK_ERRORS=1`; consulta [usar el modo rápido detrás de proxies y gateways de LLM](https://code.claude.com/docs/es/fast-mode.md#use-fast-mode-behind-proxies-and-llm-gateways) |

522| `/fast` reporta `Fast mode has been disabled by your organization` en una sesión autenticada con `ANTHROPIC_AUTH_TOKEN`, aunque la organización tiene el modo rápido habilitado | La verificación de disponibilidad requiere un inicio de sesión en claude.ai o una clave de API; con solo un token bearer, Claude Code trata el modo rápido como deshabilitado sin enviar la verificación | Establece `CLAUDE_CODE_SKIP_FAST_MODE_ORG_CHECK=1`; consulta [usar el modo rápido detrás de proxies y gateways de LLM](https://code.claude.com/docs/es/fast-mode.md#use-fast-mode-behind-proxies-and-llm-gateways) |522| `/fast` reporta `Fast mode has been disabled by your organization` en una sesión autenticada con `ANTHROPIC_AUTH_TOKEN`, aunque la organización tiene el modo rápido habilitado | La verificación de disponibilidad requiere un inicio de sesión en claude.ai o una clave de API; con solo un token bearer, Claude Code trata el modo rápido como deshabilitado sin enviar la verificación | Establece `CLAUDE_CODE_SKIP_FAST_MODE_ORG_CHECK=1`; consulta [usar el modo rápido detrás de proxies y gateways de LLM](https://code.claude.com/docs/es/fast-mode.md#use-fast-mode-behind-proxies-and-llm-gateways) |

523| `/feedback` guarda un archivo local en una sesión que usa `ANTHROPIC_BASE_URL` | Detrás de un gateway, `ANTHROPIC_AUTH_TOKEN` y una clave que no tiene el formato de una clave de API de Anthropic no son credenciales de Anthropic. Sin una, Claude Code escribe el informe en un archivo local en `~/.claude/feedback-bundles/` en lugar de enviarlo | Envía el archivo a tu representante de cuenta de Anthropic o adjúntalo a una solicitud de soporte. Consulta [servicios de telemetría](https://code.claude.com/docs/es/data-usage.md#telemetry-services) |

523| Claude Code le pide que inicie sesión aunque la [prueba de curl](#verify-the-connection) tenga éxito | La CLI no tiene credencial propia: una URL base alcanzable no es una, y en una sesión interactiva un bloque `env` en el `.claude/settings.json` o `.claude/settings.local.json` de un proyecto se aplica solo después del asistente de primera ejecución y la [solicitud de confianza](https://code.claude.com/docs/es/permissions.md#what-runs-before-you-trust-a-folder) | Establezca `ANTHROPIC_AUTH_TOKEN` en algún lugar que Claude Code lea antes de la configuración de primera ejecución: una exportación de shell, el bloque `env` en `~/.claude/settings.json`, o configuración administrada |524| Claude Code le pide que inicie sesión aunque la [prueba de curl](#verify-the-connection) tenga éxito | La CLI no tiene credencial propia: una URL base alcanzable no es una, y en una sesión interactiva un bloque `env` en el `.claude/settings.json` o `.claude/settings.local.json` de un proyecto se aplica solo después del asistente de primera ejecución y la [solicitud de confianza](https://code.claude.com/docs/es/permissions.md#what-runs-before-you-trust-a-folder) | Establezca `ANTHROPIC_AUTH_TOKEN` en algún lugar que Claude Code lea antes de la configuración de primera ejecución: una exportación de shell, el bloque `env` en `~/.claude/settings.json`, o configuración administrada |

524| `ANTHROPIC_API_KEY` está establecido pero ignorado, sin solicitud | La clave necesita una aprobación única en sesiones interactivas, y una clave previamente rechazada se ignora sin preguntar de nuevo | Habilítela bajo `/config` con la opción `Use custom API key` |525| `ANTHROPIC_API_KEY` está establecido pero ignorado, sin solicitud | La clave necesita una aprobación única en sesiones interactivas, y una clave previamente rechazada se ignora sin preguntar de nuevo | Habilítela bajo `/config` con la opción `Use custom API key` |

525| `This machine's managed settings require a first-party login`, o [`Administrator policy requires a Cloud gateway sign-in`](https://code.claude.com/docs/es/errors#administrator-policy-requires-a-cloud-gateway-sign-in) cuando la configuración administrada establece `forceLoginMethod` en `"gateway"` o también establece `forceLoginGatewayUrl` | La configuración administrada incluye `forceLoginMethod` o `forceLoginOrgUUID`, que no pueden coexistir con `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN`, o `apiKeyHelper` | Su administrador debe eliminar `forceLoginMethod`, `forceLoginOrgUUID`, y `forceLoginGatewayUrl` de la configuración administrada para usar credenciales de puerta de enlace, o eliminar la credencial de puerta de enlace y usar el inicio de sesión que la configuración administrada requiere. Los dos no pueden combinarse |526| `This machine's managed settings require a first-party login`, o [`Administrator policy requires a Cloud gateway sign-in`](https://code.claude.com/docs/es/errors#administrator-policy-requires-a-cloud-gateway-sign-in) cuando la configuración administrada establece `forceLoginMethod` en `"gateway"` o también establece `forceLoginGatewayUrl` | La configuración administrada incluye `forceLoginMethod` o `forceLoginOrgUUID`, que no pueden coexistir con `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN`, o `apiKeyHelper` | Su administrador debe eliminar `forceLoginMethod`, `forceLoginOrgUUID`, y `forceLoginGatewayUrl` de la configuración administrada para usar credenciales de puerta de enlace, o eliminar la credencial de puerta de enlace y usar el inicio de sesión que la configuración administrada requiere. Los dos no pueden combinarse |

Details

142claude -p "Reply with one word: connected"142claude -p "Reply with one word: connected"

143```143```

144 144 

145**Punto de control**: el indicador devuelve una respuesta, y la solicitud aparece en el registro de la puerta de enlace como un `POST` a la ruta `/v1/messages` con estado `200`. Claude Code añade una cadena de consulta como `?beta=true`, así que coincida en la ruta, no en la URL completa. Dos mensajes de fallo apuntan en direcciones diferentes:145**Checkpoint**: el prompt devuelve una respuesta, y la solicitud aparece en el registro del gateway como un `POST` a la ruta `/v1/messages` con estado `200`. Claude Code añade una cadena de consulta como `?beta=true`, así que busca coincidencias con la ruta, no con la URL completa. Revisa el mensaje de fallo:

146 146 

147* `Not logged in`: verifique el registro de la puerta de enlace para distinguir las dos causas. Si está vacío, ninguna credencial alcanzó la sesión y ninguna solicitud salió de la máquina; vuelva a ejecutar las exportaciones en el shell que está probando. Si muestra una solicitud rechazada con `x-api-key` en el cuerpo `401`, la puerta de enlace espera claves en ese encabezado en su lugar; cambie a `ANTHROPIC_API_KEY`147* `Not logged in`: revisa el registro del gateway. Si está vacío, ninguna credencial llegó a la sesión y ninguna solicitud salió de la máquina; vuelve a ejecutar los exports en el shell desde el que estás probando. Si muestra un `401` del gateway que menciona `x-api-key`, el gateway espera las claves en ese encabezado; cambia a `ANTHROPIC_API_KEY`. Si muestra un `401` de `api.anthropic.com` o del endpoint de tu proveedor, corrige la credencial del proveedor que tiene el gateway

148* `Failed to authenticate. API Error: 401` significa que se envió una credencial y fue rechazada, y el registro de la puerta de enlace dice dónde: un `401` que nombra `api.anthropic.com` o el punto final de su proveedor significa que la puerta de enlace alcanzó el ascendente pero su credencial de proveedor fue rechazada, así que la clave de desarrollador funcionó y la credencial de proveedor que la puerta de enlace tiene es incorrecta o un marcador de posición148* `Failed to authenticate. API Error: 401` significa que se envió una credencial y fue rechazada, y el registro de la puerta de enlace dice dónde: un `401` que nombra `api.anthropic.com` o el punto final de su proveedor significa que la puerta de enlace alcanzó el ascendente pero su credencial de proveedor fue rechazada, así que la clave de desarrollador funcionó y la credencial de proveedor que la puerta de enlace tiene es incorrecta o un marcador de posición

149 149 

150Una URL base incorrecta o inaccesible produce un síntoma diferente: Claude Code [reintenta la conexión con retroceso](https://code.claude.com/docs/es/errors.md#automatic-retries) y puede quedarse sin salida durante varios minutos antes de reportar un error. Si el comando parece colgarse, verifique el registro de la puerta de enlace en lugar de esperar; ninguna solicitud que llegue significa que `ANTHROPIC_BASE_URL` no apunta a la puerta de enlace.150Una URL base incorrecta o inaccesible produce un síntoma diferente: Claude Code [reintenta la conexión con retroceso](https://code.claude.com/docs/es/errors.md#automatic-retries) y puede quedarse sin salida durante varios minutos antes de reportar un error. Si el comando parece colgarse, verifique el registro de la puerta de enlace en lugar de esperar; ninguna solicitud que llegue significa que `ANTHROPIC_BASE_URL` no apunta a la puerta de enlace.


247 247 

248Debería ver líneas `data:` llegar incrementalmente. La respuesta completa llegando de una vez después de una pausa significa que la puerta de enlace está almacenando en búfer, lo que detiene Claude Code; un `404` significa que el nombre del modelo no está enrutado. Repita por nombre de modelo.248Debería ver líneas `data:` llegar incrementalmente. La respuesta completa llegando de una vez después de una pausa significa que la puerta de enlace está almacenando en búfer, lo que detiene Claude Code; un `404` significa que el nombre del modelo no está enrutado. Repita por nombre de modelo.

249 249 

250Luego inicie `claude` y envíe un mensaje. Cada síntoma en este paso tiene una causa:250Luego inicia `claude`, envía un mensaje y compara lo que ves:

251 251 

252* Un indicador de inicio de sesión significa una brecha de credencial. Ejecute `/status` y abra la pestaña **Status**: cuando la línea `Setting sources` no incluye configuración administrada, la distribución no alcanzó la máquina; cuando lo hace, la credencial de desarrollador no fue entregada, así que establezca `ANTHROPIC_AUTH_TOKEN` o el `apiKeyHelper`252* Una pantalla de inicio de sesión, o `Not logged in` sin nada nuevo en el registro del gateway, significa que falta una credencial. Ejecuta `/status` y abre la pestaña **Status**: si la línea `Setting sources` no incluye la configuración administrada, la distribución no llegó a la máquina; si la incluye, la credencial de desarrollador no se entregó, así que establece `ANTHROPIC_AUTH_TOKEN` o el `apiKeyHelper`

253* Los errores `Failed to authenticate` significan que la puerta de enlace está rechazando solicitudes; su registro dice qué credencial falló. Un rechazo que la puerta de enlace registra a sí misma nombra la clave de desarrollador, mientras que un `401` de `api.anthropic.com` o el punto final de su proveedor significa que la credencial de proveedor que la puerta de enlace tiene fue rechazada253* `Please run /login · API Error: 401`, `Not logged in` o `Invalid API key` con un `401` en el registro del gateway: comprueba quién emitió el `401`. Corrige la clave de desarrollador o su encabezado si lo emitió el gateway, o la credencial del proveedor que tiene el gateway si provino de `api.anthropic.com` o del endpoint de tu proveedor

254* Es normal que aparezca una única solicitud de aprobación para la clave en el primer uso cuando el gateway espera las claves en el encabezado `x-api-key`, establecidas como `ANTHROPIC_API_KEY`254* Es normal que aparezca una única solicitud de aprobación para la clave en el primer uso cuando el gateway espera las claves en el encabezado `x-api-key`, establecidas como `ANTHROPIC_API_KEY`

255 255 

256Si su organización usa [modo rápido](https://code.claude.com/docs/es/fast-mode.md), ejecute `/fast` aquí también: la verificación de disponibilidad llama a `api.anthropic.com` directamente en lugar de seguir la URL base de la puerta de enlace, así que una sesión enrutada por puerta de enlace puede reportar modo rápido como no disponible o deshabilitado aunque la inferencia funcione. [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) asigna cada mensaje a la variable que lo restaura, distribuida con [el resto de la configuración](#distribute-the-configuration).256Si su organización usa [modo rápido](https://code.claude.com/docs/es/fast-mode.md), ejecute `/fast` aquí también: la verificación de disponibilidad llama a `api.anthropic.com` directamente en lugar de seguir la URL base de la puerta de enlace, así que una sesión enrutada por puerta de enlace puede reportar modo rápido como no disponible o deshabilitado aunque la inferencia funcione. [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) asigna cada mensaje a la variable que lo restaura, distribuida con [el resto de la configuración](#distribute-the-configuration).

Details

147 147 

148## Configuración de RBAC de Azure148## Configuración de RBAC de Azure

149 149 

150Los roles predeterminados `Azure AI User` y `Cognitive Services User` incluyen todos los permisos necesarios para invocar modelos de Claude.150Si te autenticas con Microsoft Entra ID o con un token de portador emitido por este, asigna a tu identidad el rol `Foundry User` o `Cognitive Services User` en tu recurso de Foundry. Es posible que todavía veas `Foundry User` con su nombre anterior, `Azure AI User`.

151 151 

152Para permisos más restrictivos, cree un rol personalizado con lo siguiente:152Si estos roles no satisfacen tus necesidades, consulta la [documentación de RBAC de Microsoft Foundry](https://learn.microsoft.com/en-us/azure/foundry/concepts/rbac-foundry) para conocer los roles personalizados.

153 

154```json theme={null}

155{

156 "permissions": [

157 {

158 "dataActions": [

159 "Microsoft.CognitiveServices/accounts/providers/*"

160 ]

161 }

162 ]

163}

164```

165 

166Para más detalles, consulte la [documentación de RBAC de Microsoft Foundry](https://learn.microsoft.com/en-us/azure/ai-foundry/concepts/rbac-azure-ai-foundry).

167 153 

168## Ventana de contexto de 1M tokens154## Ventana de contexto de 1M tokens

169 155 

model-config.md +5 −3

Details

157 157 

158Cuando el modelo activo al inicio proviene de la configuración de proyecto o administrada en lugar de tu propia selección, el encabezado de inicio muestra qué archivo de configuración lo estableció. Ejecuta `/model` para sobrescribirlo; la configuración de proyecto o administrada se vuelve a aplicar en el próximo inicio. En plataformas que integran Claude Code y establecen [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](https://code.claude.com/docs/es/env-vars), la configuración de modelo del host tiene precedencia sobre la configuración de modelo administrada, mientras que una lista de modelos permitidos `availableModels` administrada sigue vigente a menos que el host proporcione la suya; [Excepciones a la precedencia de la configuración administrada](https://code.claude.com/docs/es/settings.md#exceptions-to-managed-settings-precedence) indica qué claves y variables sobrescribe el host.158Cuando el modelo activo al inicio proviene de la configuración de proyecto o administrada en lugar de tu propia selección, el encabezado de inicio muestra qué archivo de configuración lo estableció. Ejecuta `/model` para sobrescribirlo; la configuración de proyecto o administrada se vuelve a aplicar en el próximo inicio. En plataformas que integran Claude Code y establecen [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](https://code.claude.com/docs/es/env-vars), la configuración de modelo del host tiene precedencia sobre la configuración de modelo administrada, mientras que una lista de modelos permitidos `availableModels` administrada sigue vigente a menos que el host proporcione la suya; [Excepciones a la precedencia de la configuración administrada](https://code.claude.com/docs/es/settings.md#exceptions-to-managed-settings-precedence) indica qué claves y variables sobrescribe el host.

159 159 

160Si tú o tu organización configuran [hooks PreModelSwitch](https://code.claude.com/docs/es/hooks.md#premodelswitch), se ejecutan antes de que se aplique un cambio solicitado y pueden bloquearlo o pedirte que lo confirmes.160Si tú o tu organización configuran [hooks PreModelSwitch](https://code.claude.com/docs/es/hooks.md#premodelswitch), se ejecutan antes de que se aplique un cambio solicitado y pueden bloquearlo o pedirte que lo confirmes. Para averiguar por qué un hook bloqueó un cambio y qué hacer, consulta [Model switch was blocked by a PreModelSwitch hook](https://code.claude.com/docs/es/errors.md#model-switch-was-blocked-by-a-premodelswitch-hook).

161 161 

162Cuando Claude Code no puede determinar qué hooks PreModelSwitch entregan los [plugins administrados](https://code.claude.com/docs/es/settings-reference.md#enabledplugins) de tu organización, por ejemplo porque un plugin administrado no se cargó, rechaza el cambio en lugar de aplicarlo sin verificar, y vuelve a verificar en cada nuevo intento. Consulta [Model switch was blocked by a PreModelSwitch hook](https://code.claude.com/docs/es/errors.md#model-switch-was-blocked-by-a-premodelswitch-hook) para ver el mensaje y cómo recuperarte.162Si un [plugin administrado](https://code.claude.com/docs/es/settings-reference.md#enabledplugins) o sus hooks no se cargan, aún puedes cambiar de modelo. Los hooks PreModelSwitch del plugin no se ejecutan, por lo que un cambio que uno de ellos habría bloqueado puede aplicarse. Los demás hooks PreModelSwitch que sí se cargaron siguen ejecutándose y pueden bloquearlo. Si Claude Code anterior a v2.1.323 rechaza el cambio con `so organization-managed PreModelSwitch hooks could not be checked`, actualiza Claude Code.

163 

164Para ver qué falló, ejecuta `/plugin` en tu sesión y abre la [pestaña **Errors**](https://code.claude.com/docs/es/plugins/troubleshooting.md#failed-to-load-hooks-from-and-hooks-that-dont-fire). Si no aparece nada allí, inicia una nueva sesión con `claude --debug` desde tu shell y cambia a un modelo diferente; luego lee el [registro de depuración](https://code.claude.com/docs/es/hooks.md#debug-hooks). Después de corregir el plugin, o de que una [actualización del plugin](https://code.claude.com/docs/es/plugins/install.md#keep-plugins-updated) traiga a tu máquina la corrección de tu administrador, ejecuta `/reload-plugins` en tu sesión para que sus hooks se ejecuten.

163 165 

164Cuando cambias de modelo mediante el método `setModel()` del [Agent SDK](https://code.claude.com/docs/es/agent-sdk/overview.md), a través de una aplicación como la [aplicación de escritorio](https://code.claude.com/docs/es/desktop.md), o desde un dispositivo conectado mediante [Remote Control](https://code.claude.com/docs/es/remote-control.md), Claude Code verifica el valor al hacer el cambio:166Cuando cambias de modelo mediante el método `setModel()` del [Agent SDK](https://code.claude.com/docs/es/agent-sdk/overview.md), a través de una aplicación como la [aplicación de escritorio](https://code.claude.com/docs/es/desktop.md), o desde un dispositivo conectado mediante [Remote Control](https://code.claude.com/docs/es/remote-control.md), Claude Code verifica el valor al hacer el cambio:

165 167 


903 905 

904### Corregir la ventana para un gateway o ID de modelo personalizado906### Corregir la ventana para un gateway o ID de modelo personalizado

905 907 

906Cualquiera de estas advertencias de inicio significa que Claude Code no reconoce el ID de modelo de tu sesión, por lo que no puede determinar la ventana de contexto del modelo y asume 200K tokens:908Cualquiera de estas advertencias significa que Claude Code no reconoce el ID de modelo de tu sesión, por lo que no puede determinar la ventana de contexto del modelo y asume 200K tokens:

907 909 

908```text theme={null}910```text theme={null}

909⚠ Model "my-gateway-opus" isn't recognized · context assumed to be 200k tokens · ...911⚠ Model "my-gateway-opus" isn't recognized · context assumed to be 200k tokens · ...

Details

431> * **Sin espacios permitidos**: los valores no pueden contener espacios. Por ejemplo, `user.organizationName=My Company` es inválido431> * **Sin espacios permitidos**: los valores no pueden contener espacios. Por ejemplo, `user.organizationName=My Company` es inválido

432> * **Formato**: debe ser pares clave=valor separados por comas: `key1=value1,key2=value2`432> * **Formato**: debe ser pares clave=valor separados por comas: `key1=value1,key2=value2`

433> * **Caracteres permitidos**: solo caracteres ASCII de EE.UU. excluyendo caracteres de control, espacios en blanco, comillas dobles, comas, puntos y comas y barras invertidas433> * **Caracteres permitidos**: solo caracteres ASCII de EE.UU. excluyendo caracteres de control, espacios en blanco, comillas dobles, comas, puntos y comas y barras invertidas

434> * **Caracteres especiales**: los caracteres fuera del rango permitido deben estar codificados en porcentaje434> * **Caracteres especiales**: los caracteres fuera del rango permitido deben estar codificados en porcentaje, y un `=` dentro de un valor debe escribirse como `%3D`

435>435>

436> Para un valor que necesitaría un espacio, use guiones bajos o camelCase en su lugar. Los siguientes ejemplos establecen `org.name` con cada forma:436> Para un valor que necesitaría un espacio, use guiones bajos o camelCase en su lugar. Los siguientes ejemplos establecen `org.name` con cada forma:

437>437>

Details

304claude --permission-mode plan304claude --permission-mode plan

305```305```

306 306 

307Presiona `Shift+Tab` de nuevo para salir del modo plan sin aprobar un plan.307Sin ninguna solicitud de aprobación abierta, presiona `Shift+Tab` de nuevo para salir del modo plan. En la solicitud de aprobación, presiona primero `Esc`, ya que presionar `Shift+Tab` allí aprueba el plan.

308 308 

309### Revisa y aprueba un plan309### Revisa y aprueba un plan

310 310 

Details

344 "PostToolUse": [344 "PostToolUse": [

345 {345 {

346 "matcher": "Write|Edit",346 "matcher": "Write|Edit",

347 "hooks": [{ "type": "command", "command": "jq -r '.tool_input.file_path' | xargs npm run lint:fix" }]347 "hooks": [{ "type": "command", "command": "f=$(jq -r '.tool_input.file_path') && npm run lint:fix -- \"$f\"" }]

348 }348 }

349 ]349 ]

350 }350 }

Details

196 196 

197### Comprobar un resultado con `expect`197### Comprobar un resultado con `expect`

198 198 

199El kit tiene estas aserciones, y la que elijas va después del valor que estás comprobando, como en `expect(answer.text).toBe('ok')`:199`expect` tiene su propio conjunto de aserciones, como `toEqual` y `toHaveLength`, que van después del valor que estás comprobando, como en `expect(answer.text).toBe('ok')`. Para ver la lista completa, busca `type Matchers` en `claude-code/index.d.ts` dentro de [los tipos para tu compilación](https://code.claude.com/docs/es/plugins/mods/create.md#get-the-types-for-your-build). Pon `.not` delante de la aserción para comprobar lo contrario. Para comprobar con qué se resuelve o se rechaza una promesa, pon `.resolves` o `.rejects` justo después de `expect(...)` y usa `await` en la línea, como en `await expect(promise).rejects.toThrow()`.

200 

201* **Igualdad**: `toBe` para el mismo valor u objeto, `toEqual` para la estructura, `toStrictEqual` para la estructura más los campos `undefined` y el prototipo, y `toMatchObject` para los campos que nombres

202* **Texto**: `toMatch`, que acepta una expresión regular o una subcadena, `toStartWith` y `toEndWith`

203* **Números**: `toBeGreaterThan`, `toBeGreaterThanOrEqual`, `toBeLessThan`, `toBeLessThanOrEqual`

204* **Contenido**: `toContain` para una subcadena o un miembro, `toContainEqual` para un miembro comparado por estructura, `toHaveLength` y `toHaveProperty`

205* **Presencia y tipo**: `toBeDefined`, `toBeUndefined`, `toBeNull`, `toBeTruthy`, `toBeFalsy`, `toBeNaN`, `toBeInstanceOf`

206* **Lanzamiento de excepciones**: `toThrow`, para una función que llama `expect`, o para una promesa que compruebas con `.rejects`

207 

208Pon `.not` delante de una aserción para comprobar lo contrario, y `.resolves` o `.rejects` para comprobar con qué se resuelve o rechaza una promesa.

209 200 

210Cuando un `expect` falla dentro de un stub o hook que pasaste a `on` como una función simple en lugar de un generador asíncrono, la prueba falla. El motor omite ese hook, y la salida del fallo lo nombra, como `in the test's store.set hook`.201Cuando un `expect` falla dentro de un stub o hook que pasaste a `on` como una función simple en lugar de un generador asíncrono, la prueba falla. El motor omite ese hook, y la salida del fallo lo nombra, como `in the test's store.set hook`.

211 202 

Details

67> | `--capacity <N>` | Número máximo de sesiones concurrentes. El valor predeterminado es 32. No se puede usar con `--spawn=session`. |67> | `--capacity <N>` | Número máximo de sesiones concurrentes. El valor predeterminado es 32. No se puede usar con `--spawn=session`. |

68> | `--[no-]create-session-in-dir` | Pre-crear una sesión en el directorio actual cuando el servidor se inicia, para que tenga un lugar donde escribir inmediatamente. En modo `worktree` esta sesión permanece en el directorio actual mientras las sesiones bajo demanda obtienen worktrees aislados. Habilitado de forma predeterminada. Si pasa `--no-create-session-in-dir` para comenzar sin ninguno, Claude Code archiva las sesiones del servidor cuando lo detiene, por lo que no hay nada que [reanudar](#resume-sessions-after-stopping-the-server). |68> | `--[no-]create-session-in-dir` | Pre-crear una sesión en el directorio actual cuando el servidor se inicia, para que tenga un lugar donde escribir inmediatamente. En modo `worktree` esta sesión permanece en el directorio actual mientras las sesiones bajo demanda obtienen worktrees aislados. Habilitado de forma predeterminada. Si pasa `--no-create-session-in-dir` para comenzar sin ninguno, Claude Code archiva las sesiones del servidor cuando lo detiene, por lo que no hay nada que [reanudar](#resume-sessions-after-stopping-the-server). |

69> | `--permission-mode <mode>` | Establezca el [modo de permiso](https://code.claude.com/docs/es/permission-modes.md) inicial para las sesiones del servidor, como `acceptEdits`. Acepta `manual` como alias para `default`; un modo no reconocido detiene el servidor al inicio y enumera los modos válidos. |69> | `--permission-mode <mode>` | Establezca el [modo de permiso](https://code.claude.com/docs/es/permission-modes.md) inicial para las sesiones del servidor, como `acceptEdits`. Acepta `manual` como alias para `default`; un modo no reconocido detiene el servidor al inicio y enumera los modos válidos. |

70> | `--settings <file>` | Aplica un archivo de configuración JSON a las sesiones del servidor, con la misma [precedencia](https://code.claude.com/docs/es/settings.md#settings-precedence) que `claude --settings`. Indica una ruta de archivo, no una cadena JSON. Requiere Claude Code v2.1.321 o posterior. |

70> | `--chrome` / `--no-chrome` | Active o desactive la [integración de Chrome](https://code.claude.com/docs/es/chrome.md) en las sesiones que crea el servidor, para que Claude pueda usar Chrome en su máquina mientras trabaja desde otro dispositivo. Sin ninguna bandera, la sesión que el servidor pre-crea y cualquier sesión que inicie usted mismo desde claude.ai/code o la aplicación Claude comienzan con Chrome desactivado, incluso si [habilitó Chrome de forma predeterminada](https://code.claude.com/docs/es/chrome.md#enable-chrome-by-default). Una sesión que el servidor inicia para uno de sus hilos de [proyecto](https://code.claude.com/docs/es/claude-projects.md) sigue esa configuración en su lugar, excepto en modo `bypassPermissions`. Requiere Claude Code v2.1.273 o posterior. |71> | `--chrome` / `--no-chrome` | Active o desactive la [integración de Chrome](https://code.claude.com/docs/es/chrome.md) en las sesiones que crea el servidor, para que Claude pueda usar Chrome en su máquina mientras trabaja desde otro dispositivo. Sin ninguna bandera, la sesión que el servidor pre-crea y cualquier sesión que inicie usted mismo desde claude.ai/code o la aplicación Claude comienzan con Chrome desactivado, incluso si [habilitó Chrome de forma predeterminada](https://code.claude.com/docs/es/chrome.md#enable-chrome-by-default). Una sesión que el servidor inicia para uno de sus hilos de [proyecto](https://code.claude.com/docs/es/claude-projects.md) sigue esa configuración en su lugar, excepto en modo `bypassPermissions`. Requiere Claude Code v2.1.273 o posterior. |

71> | `-d`, `--debug[=<filter>]` | Active el registro de depuración para el servidor, opcionalmente filtrado por categoría. Pase un filtro solo en la forma `=`, como `--debug=api,hooks`. Requiere Claude Code v2.1.282 o posterior. |72> | `-d`, `--debug[=<filter>]` | Active el registro de depuración para el servidor, opcionalmente filtrado por categoría. Pase un filtro solo en la forma `=`, como `--debug=api,hooks`. Requiere Claude Code v2.1.282 o posterior. |

72> | `--debug-file <path>` | Escriba registros de depuración en el archivo dado. |73> | `--debug-file <path>` | Escriba registros de depuración en el archivo dado. |

73> | `--verbose` | Mostrar registros detallados de conexión y sesión. |74> | `--verbose` | Mostrar registros detallados de conexión y sesión. |

74> | `--sandbox`, `--no-sandbox` | Eliminados en v2.1.300. Si pasas cualquiera de los dos flags, el servidor [sale con un error](https://code.claude.com/docs/es/errors.md#sandbox-is-not-supported-by-claude-remote-control) en lugar de iniciarse. |75> | `--sandbox`, `--no-sandbox` | Eliminados en v2.1.300. Si pasas cualquiera de los dos flags, el servidor [sale con un error](https://code.claude.com/docs/es/errors.md#sandbox-is-not-supported-by-claude-remote-control) en lugar de iniciarse. |

75>76>

76> Si pasa una bandera global `claude` antes de `remote-control`, o un script contenedor agrega una, Claude Code no lleva la bandera a las sesiones que crea el servidor. Claude Code deja pasar la bandera solo cuando se sabe que dejarla no cambia lo que esas sesiones pueden hacer, como `--verbose` o `--model`. Para cualquier otra bandera, como `--settings`, Claude Code [se niega a iniciar](https://code.claude.com/docs/es/errors.md#not-carried-over-to-the-sessions-remote-control-starts) y nombra la bandera a eliminar.77> Si pasas un flag global de `claude` antes de `remote-control`, o un script contenedor agrega uno, Claude Code no traslada el flag a las sesiones que crea el servidor. El servidor aún se inicia con algunos flags, como `--verbose` o `--model`. Con cualquier otro flag, el servidor [no se inicia](https://code.claude.com/docs/es/errors.md#not-carried-over-to-the-sessions-remote-control-starts). Para pasar un archivo de configuración, coloca `--settings` después de `remote-control`.

77>78>

78> Para sandboxear las sesiones que crea el servidor, active [sandboxing](https://code.claude.com/docs/es/sandboxing.md) en un archivo de configuración.79> Para sandboxear las sesiones que crea el servidor, active [sandboxing](https://code.claude.com/docs/es/sandboxing.md) en un archivo de configuración.

79>80>

routines.md +1 −1

Details

431 431 

432Cada tarea programada usa un [entorno en la nube](https://code.claude.com/docs/es/cloud-environments.md) que controla el acceso a la red, las variables de entorno y los scripts de configuración. La tarea hereda la política de red del entorno en cada ejecución.432Cada tarea programada usa un [entorno en la nube](https://code.claude.com/docs/es/cloud-environments.md) que controla el acceso a la red, las variables de entorno y los scripts de configuración. La tarea hereda la política de red del entorno en cada ejecución.

433 433 

434El entorno **Default** usa acceso **Limited** con **Allow package managers** marcado, por lo que sus ejecuciones llegan a la [lista de permitidos predeterminada](https://code.claude.com/docs/es/cloud-environments.md#default-allowed-domains). Una solicitud a un host bloqueado falla con `403` y `x-deny-reason: host_not_allowed`. El tráfico de los conectores MCP se enruta a través de los servidores de Anthropic, por lo que los conectores que agregas a la tarea funcionan sin agregar sus hosts a **Allowed domains**. Elimina los conectores que no necesites en [Conectores](#connectors).434El entorno **Default** usa acceso **Limited** con **Allow package managers** marcado, por lo que sus ejecuciones llegan a la [lista de permitidos predeterminada](https://code.claude.com/docs/es/cloud-environments.md#default-allowed-domains). Una solicitud a un host bloqueado falla con [un error como `403` o `ENOTFOUND`](https://code.claude.com/docs/es/errors#host-not-allowed-in-a-cloud-session). El tráfico de los conectores MCP se enruta a través de los servidores de Anthropic, por lo que los conectores que agregas a la tarea funcionan sin agregar sus hosts a **Allowed domains**. Elimina los conectores que no necesites en [Conectores](#connectors).

435 435 

436Para permitir dominios adicionales en uno de tus propios entornos, sigue estos pasos. Un [entorno compartido por la organización](https://code.claude.com/docs/es/cloud-environments.md#organization-shared-environments) se abre en modo de solo lectura aquí, por lo que un Owner cambia su acceso a la red desde la página **Cloud environments** en la [configuración de administración](https://claude.ai/admin-settings) en su lugar.436Para permitir dominios adicionales en uno de tus propios entornos, sigue estos pasos. Un [entorno compartido por la organización](https://code.claude.com/docs/es/cloud-environments.md#organization-shared-environments) se abre en modo de solo lectura aquí, por lo que un Owner cambia su acceso a la red desde la página **Cloud environments** en la [configuración de administración](https://claude.ai/admin-settings) en su lugar.

437 437 

sandboxing.md +5 −3

Details

276 276 

277Estas rutas se aplican a nivel del sistema operativo, por lo que todos los comandos que se ejecutan dentro del sandbox, incluidos sus procesos hijos, las respetan. Este es el enfoque recomendado cuando una herramienta necesita acceso de escritura a una ubicación específica, en lugar de excluir la herramienta del sandbox por completo con `excludedCommands`.277Estas rutas se aplican a nivel del sistema operativo, por lo que todos los comandos que se ejecutan dentro del sandbox, incluidos sus procesos hijos, las respetan. Este es el enfoque recomendado cuando una herramienta necesita acceso de escritura a una ubicación específica, en lugar de excluir la herramienta del sandbox por completo con `excludedCommands`.

278 278 

279En Linux y WSL2, una entrada para una ruta que todavía no existe no tiene efecto, así que crea la ruta primero.

280 

279Cuando defines el mismo arreglo de sistema de archivos en varios [alcances de configuración](https://code.claude.com/docs/es/settings.md#settings-precedence), Claude Code los combina, uniendo las rutas en lugar de reemplazar el arreglo de un alcance por el de otro. Claude Code deja una entrada fuera de la combinación cuando la cubre un bloqueo de [Evitar que los desarrolladores amplíen la política](#keep-developers-from-widening-the-policy).281Cuando defines el mismo arreglo de sistema de archivos en varios [alcances de configuración](https://code.claude.com/docs/es/settings.md#settings-precedence), Claude Code los combina, uniendo las rutas en lugar de reemplazar el arreglo de un alcance por el de otro. Claude Code deja una entrada fuera de la combinación cuando la cubre un bloqueo de [Evitar que los desarrolladores amplíen la política](#keep-developers-from-widening-the-policy).

280 282 

281Si excluyes una fuente con [`--setting-sources`](https://code.claude.com/docs/es/cli-reference) en la CLI o con [`settingSources`](https://code.claude.com/docs/es/agent-sdk/claude-code-features#control-filesystem-settings-with-settingsources) en el Agent SDK, Claude Code ignora sus entradas de `sandbox.filesystem`, sus reglas de permisos de `Edit` y sus reglas de denegación de `Read` al construir la configuración del sandbox. Requiere Claude Code v2.1.246 o posterior.283Si excluyes una fuente con [`--setting-sources`](https://code.claude.com/docs/es/cli-reference) en la CLI o con [`settingSources`](https://code.claude.com/docs/es/agent-sdk/claude-code-features#control-filesystem-settings-with-settingsources) en el Agent SDK, Claude Code ignora sus entradas de `sandbox.filesystem`, sus reglas de permisos de `Edit` y sus reglas de denegación de `Read` al construir la configuración del sandbox. Requiere Claude Code v2.1.246 o posterior.


376 378 

377Como desactivar el aislamiento del sistema de archivos amplía lo que pueden hacer los comandos en el sandbox, Claude Code respeta `filesystem.disabled` solo desde estas fuentes de configuración:379Como desactivar el aislamiento del sistema de archivos amplía lo que pueden hacer los comandos en el sandbox, Claude Code respeta `filesystem.disabled` solo desde estas fuentes de configuración:

378 380 

379* La configuración de usuario, la configuración administrada y el flag de CLI `--settings` pueden establecerlo. La configuración del proyecto en `.claude/settings.json` y `.claude/settings.local.json` no puede, así que un proyecto clonado no puede desactivar el aislamiento del sistema de archivos.381* La configuración de usuario, la configuración administrada y el flag de CLI `--settings` pueden establecerlo. La configuración del proyecto en `.claude/settings.json` y `.claude/settings.local.json` no puede establecerlo.

380* Cuando la configuración administrada configura `sandbox.filesystem` de cualquier forma, o incluye alguna entrada de `sandbox.credentials.files` con `"mode": "deny"`, solo la configuración administrada puede establecer la clave. Esto evita que los desarrolladores desactiven el aislamiento del sistema de archivos en ese despliegue; para desactivarlo para todos, establece `"disabled": true` en la configuración administrada.382* Cuando la configuración administrada configura `sandbox.filesystem` de cualquier forma, o incluye alguna entrada de `sandbox.credentials.files` con `"mode": "deny"`, solo la configuración administrada puede establecer la clave. Para desactivar el aislamiento del sistema de archivos para todos, establece `"disabled": true` en la configuración administrada.

381* Cuando [`CLAUDE_CODE_SUBPROCESS_ENV_SCRUB`](https://code.claude.com/docs/es/env-vars) está definida, Claude Code ignora `filesystem.disabled` desde cualquier fuente, incluida la configuración administrada, y mantiene activado el aislamiento del sistema de archivos.383* Cuando [`CLAUDE_CODE_SUBPROCESS_ENV_SCRUB`](https://code.claude.com/docs/es/env-vars) está definida, Claude Code ignora `filesystem.disabled` desde cualquier fuente, incluida la configuración administrada.

382 384 

383Una entrada `mask` [válida](https://code.claude.com/docs/es/settings-reference.md#invalid-credential-entries-in-managed-settings) no bloquea la clave, incluso cuando Claude Code [recurre a `deny`](#mask-credential-files) para ella al iniciar. Agrega una ruta que no se pueda enmascarar, como un directorio de credenciales, como una entrada `deny` explícita en la configuración administrada, lo que bloquea la clave.385Una entrada `mask` [válida](https://code.claude.com/docs/es/settings-reference.md#invalid-credential-entries-in-managed-settings) no bloquea la clave, incluso cuando Claude Code [recurre a `deny`](#mask-credential-files) para ella al iniciar. Agrega una ruta que no se pueda enmascarar, como un directorio de credenciales, como una entrada `deny` explícita en la configuración administrada, lo que bloquea la clave.

384 386 

settings.md +1 −1

Details

177 177 

178Claude Code observa sus archivos de configuración y los recarga cuando cambian, por lo que aplica la mayoría de ediciones a la sesión en ejecución sin un reinicio, incluyendo ediciones a `permissions`, `hooks` y asistentes de credenciales como `apiKeyHelper`. Claude Code también carga un archivo de configuración que crea a mitad de sesión si su carpeta existía cuando la sesión comenzó. Para la carpeta `.claude/` del proyecto, carga el archivo incluso cuando crea la carpeta en la misma sesión.178Claude Code observa sus archivos de configuración y los recarga cuando cambian, por lo que aplica la mayoría de ediciones a la sesión en ejecución sin un reinicio, incluyendo ediciones a `permissions`, `hooks` y asistentes de credenciales como `apiKeyHelper`. Claude Code también carga un archivo de configuración que crea a mitad de sesión si su carpeta existía cuando la sesión comenzó. Para la carpeta `.claude/` del proyecto, carga el archivo incluso cuando crea la carpeta en la misma sesión.

179 179 

180La recarga cubre configuraciones de usuario, proyecto, local y administradas, y Claude Code ejecuta el [hook `ConfigChange`](https://code.claude.com/docs/es/hooks#configchange) para cada cambio de archivo de configuración que detecta, no para configuraciones administradas que llegan desde MDM o la consola de claude.ai. Las configuraciones administradas que llegan a través de MDM o de la consola de claude.ai alcanzan una sesión en ejecución en un cronograma en lugar de al guardar; la [tabla de entrega](https://code.claude.com/docs/es/managed-settings.md#choose-a-delivery-mechanism) lo da por fuente.180La recarga abarca la configuración de usuario, de proyecto, local y administrada. Claude Code ejecuta el [hook `ConfigChange`](https://code.claude.com/docs/es/hooks#configchange) para las ediciones directas de archivos de configuración, no para la configuración administrada que llega desde MDM o desde la consola de claude.ai. La configuración administrada que llega a través de MDM o desde la consola de claude.ai alcanza una sesión en ejecución según un cronograma y no al guardar; la [tabla de entrega](https://code.claude.com/docs/es/managed-settings.md#choose-a-delivery-mechanism) lo indica para cada origen.

181 181 

182Claude Code lee algunas claves solo una vez, al inicio de la sesión, por lo que una edición a una de ellas no alcanza la sesión en ejecución. Las claves del lado del administrador que también esperan un reinicio, como `requiredMinimumVersion`, se enumeran bajo [dónde y cuándo se aplica una política](https://code.claude.com/docs/es/managed-settings.md#where-and-when-a-policy-applies). Las que es más probable que edite a mitad de sesión:182Claude Code lee algunas claves solo una vez, al inicio de la sesión, por lo que una edición a una de ellas no alcanza la sesión en ejecución. Las claves del lado del administrador que también esperan un reinicio, como `requiredMinimumVersion`, se enumeran bajo [dónde y cuándo se aplica una política](https://code.claude.com/docs/es/managed-settings.md#where-and-when-a-policy-applies). Las que es más probable que edite a mitad de sesión:

183 183 

Details

1533}1533}

1534```1534```

1535 1535 

1536En Linux y WSL2, una entrada para una ruta que aún no existe no tiene efecto, así que crea la ruta primero.

1537 

1536Claude Code combina las entradas de `allowWrite` y las rutas de tus reglas de permisos allow `Edit(...)` de todos los alcances de configuración que carga la sesión, y deja fuera las de la configuración del repositorio mientras [`permissions.blockReadsOutsideWorkingDirectories`](#sandboxed-commands-under-the-block) está activado. Los [bloqueos de repositorio](https://code.claude.com/docs/es/sandboxing.md#repository-settings-under-an-admin-required-sandbox) también pueden dejar fuera las entradas de un repositorio. Una entrada `allowWrite` no puede levantar una [ruta protegida](https://code.claude.com/docs/es/sandboxing.md#protected-paths).1538Claude Code combina las entradas de `allowWrite` y las rutas de tus reglas de permisos allow `Edit(...)` de todos los alcances de configuración que carga la sesión, y deja fuera las de la configuración del repositorio mientras [`permissions.blockReadsOutsideWorkingDirectories`](#sandboxed-commands-under-the-block) está activado. Los [bloqueos de repositorio](https://code.claude.com/docs/es/sandboxing.md#repository-settings-under-an-admin-required-sandbox) también pueden dejar fuera las entradas de un repositorio. Una entrada `allowWrite` no puede levantar una [ruta protegida](https://code.claude.com/docs/es/sandboxing.md#protected-paths).

1537 1539 

1538### `sandbox.filesystem.denyWrite`1540### `sandbox.filesystem.denyWrite`

setup.md +8 −26

Details

40>40>

41> **macOS, Linux, WSL:**41> **macOS, Linux, WSL:**

42>42>

43> ```bash theme={null}43> ```bash theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}

44> curl -fsSL https://claude.ai/install.sh | bash44> curl -fsSL https://claude.ai/install.sh | bash

45> ```45> ```

46>46>


48>48>

49> **Windows PowerShell:**49> **Windows PowerShell:**

50>50>

51> ```powershell theme={null}51> ```powershell theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}

52> irm https://claude.ai/install.ps1 | iex52> irm https://claude.ai/install.ps1 | iex

53> ```53> ```

54>54>

55> **Windows CMD:**55> **Windows CMD:**

56>56>

57> ```batch theme={null}57> ```batch theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}

58> curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd58> curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd

59> ```59> ```

60>60>


72 72 

73> [tab] Homebrew73> [tab] Homebrew

74>74>

75> ```bash theme={null}75> ```bash theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}

76> brew install --cask claude-code76> brew install --cask claude-code

77> ```77> ```

78>78>


84 84 

85> [tab] WinGet85> [tab] WinGet

86>86>

87> ```powershell theme={null}87> ```powershell theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}

88> winget install Anthropic.ClaudeCode88> winget install Anthropic.ClaudeCode

89> ```89> ```

90>90>


141 141 

142### Alpine Linux y distribuciones basadas en musl142### Alpine Linux y distribuciones basadas en musl

143 143 

144Instalar Claude Code en Alpine y otras distribuciones basadas en musl/uClibc requiere `bash` y `curl` para el comando de instalación, y `libgcc`, `libstdc++` y `ripgrep` en tiempo de ejecución. Alpine no incluye `bash` o `curl` de forma predeterminada, por lo que el comando de instalación documentado falla con un error `not found` hasta que los instale. Instale estos paquetes usando el gestor de paquetes de su distribución, luego establezca `USE_BUILTIN_RIPGREP=0`.144En Alpine y otras distribuciones basadas en musl, el [comando de instalación](#install-claude-code) requiere `bash` y `curl`, y Claude Code en sí requiere `bash` o `zsh`. Alpine no incluye `bash` ni `curl` de forma predeterminada, por lo que el comando de instalación documentado falla con un error `not found` hasta que los instales.

145 145 

146Este ejemplo instala los paquetes requeridos en Alpine:146Este ejemplo instala los paquetes requeridos en Alpine:

147 147 

148```bash theme={null}148```bash theme={null}

149apk add bash curl libgcc libstdc++ ripgrep149apk add bash curl

150```

151 

152En Alpine, `ripgrep` está en el repositorio de comunidad. Si `apk` informa que falta el paquete, agregue el repositorio de comunidad a `/etc/apk/repositories`, usando su versión de Alpine:

153 

154```bash theme={null}

155echo "https://dl-cdn.alpinelinux.org/alpine/v3.22/community" >> /etc/apk/repositories

156```

157 

158Ejecute `apk update` para actualizar el índice de paquetes e intente nuevamente el comando `apk add`.

159 

160Luego establezca `USE_BUILTIN_RIPGREP` en `0` en su archivo [`settings.json`](https://code.claude.com/docs/es/settings-reference#all-settings):

161 

162```json theme={null}

163{

164 "env": {

165 "USE_BUILTIN_RIPGREP": "0"

166 }

167}

168```150```

169 151 

170## Verificar su instalación152## Verificar su instalación


443> wget -O /etc/apk/keys/claude-code.rsa.pub \425> wget -O /etc/apk/keys/claude-code.rsa.pub \

444> https://downloads.claude.ai/keys/claude-code.rsa.pub426> https://downloads.claude.ai/keys/claude-code.rsa.pub

445> echo "https://downloads.claude.ai/claude-code/apk/stable" >> /etc/apk/repositories427> echo "https://downloads.claude.ai/claude-code/apk/stable" >> /etc/apk/repositories

446> apk add claude-code428> apk add bash claude-code

447> ```429> ```

448>430>

449> Para cambiar al canal `latest`, elimine la línea del repositorio `stable` y agregue el repositorio `latest`:431> Para cambiar al canal `latest`, elimine la línea del repositorio `stable` y agregue el repositorio `latest`:

Details

26 26 

27| Terminal | Shift+Enter para nueva línea |27| Terminal | Shift+Enter para nueva línea |

28| :- | :- |28| :- | :- |

29| Ghostty, Kitty, iTerm2, WezTerm, Warp, Apple Terminal, Windows Terminal | Funciona sin configuración |29| Ghostty, Kitty, iTerm2, WezTerm, Warp, Windows Terminal | Funciona sin configuración |

30| Otras terminales compatibles con el protocolo de teclado de kitty, como foot y Alacritty 0.16 o posterior | Funciona sin configuración. Requiere Claude Code v2.1.269 o posterior |30| Otras terminales compatibles con el protocolo de teclado de kitty, como foot y Alacritty 0.16 o posterior | Funciona sin configuración. Requiere Claude Code v2.1.269 o posterior |

31| VS Code, Cursor, Devin Desktop, Alacritty anterior a 0.16, Zed | Ejecuta `/terminal-setup` una vez |31| VS Code, Cursor, Devin Desktop, Alacritty anterior a 0.16, Zed | Ejecuta `/terminal-setup` una vez |

32| gnome-terminal, IDE de JetBrains como PyCharm y Android Studio | No disponible; usa Ctrl+J o `\` y luego Enter |32| gnome-terminal, IDE de JetBrains como PyCharm y Android Studio | No disponible; usa Ctrl+J o `\` y luego Enter |

Details

127 127 

128Claude utiliza `AskUserQuestion` para hacerte preguntas de opción múltiple cuando necesita una decisión o una aclaración. Responde seleccionando una opción, o escribe tu propio texto a través de la fila `Other` o el campo de notas.128Claude utiliza `AskUserQuestion` para hacerte preguntas de opción múltiple cuando necesita una decisión o una aclaración. Responde seleccionando una opción, o escribe tu propio texto a través de la fila `Other` o el campo de notas.

129 129 

130Cuando respondes escribiendo tu propio texto, Claude Code retransmite la respuesta con una redacción neutral para que Claude siga lo que escribiste, incluida una solicitud para esperar o explicar primero.

131 

132### Tiempo de espera de continuación automática de preguntas130### Tiempo de espera de continuación automática de preguntas

133 131 

134Las preguntas permanecen abiertas hasta que las respondas. Si quieres que una pregunta que dejas sin responder se cierre eventualmente y permita que Claude continúe sin ti, establece el ajuste [`askUserQuestionTimeout`](https://code.claude.com/docs/es/settings-reference#askuserquestiontimeout) en `60s`, `5m` o `10m`, ya sea en tu `settings.json` de usuario o desde la fila **Question auto-continue timeout** en `/config`.132Las preguntas permanecen abiertas hasta que las respondas. Si quieres que una pregunta que dejas sin responder se cierre eventualmente y permita que Claude continúe sin ti, establece el ajuste [`askUserQuestionTimeout`](https://code.claude.com/docs/es/settings-reference#askuserquestiontimeout) en `60s`, `5m` o `10m`, ya sea en tu `settings.json` de usuario o desde la fila **Question auto-continue timeout** en `/config`.


525 523 

526## Comportamiento de la herramienta Read524## Comportamiento de la herramienta Read

527 525 

528La herramienta Read toma una ruta de archivo y devuelve el contenido con números de línea. Claude recibe instrucciones para pasar siempre rutas absolutas.526La herramienta Read toma una ruta de archivo y devuelve el contenido con números de línea.

529 527 

530Leer un archivo vacío devuelve un aviso de que el archivo existe pero su contenido está vacío, y un `offset` más allá de la última línea devuelve un aviso que proporciona el recuento de líneas del archivo.528Leer un archivo vacío devuelve un aviso de que el archivo existe pero su contenido está vacío, y un `offset` más allá de la última línea devuelve un aviso que proporciona el recuento de líneas del archivo.

531 529 

Details

388> Get-Command claude | Select-Object Source388> Get-Command claude | Select-Object Source

389> ```389> ```

390 390 

391En Linux, verifica si faltan bibliotecas compartidas. Si `ldd` muestra bibliotecas faltantes, es posible que debas instalar paquetes del sistema. En Alpine Linux y otras distribuciones basadas en musl, consulta [Configuración de Alpine Linux](https://code.claude.com/docs/es/setup.md#alpine-linux-and-musl-based-distributions).391En Linux, verifica si faltan bibliotecas compartidas. Si `ldd` muestra bibliotecas faltantes, es posible que debas instalar paquetes del sistema. En Alpine Linux y otras distribuciones basadas en musl, consulta [Discrepancia de binario musl o glibc en Linux](#linux-musl-or-glibc-binary-mismatch).

392 392 

393```bash theme={null}393```bash theme={null}

394ldd "$(command -v claude)" | grep "not found"394ldd "$(command -v claude)" | grep "not found"


906 906 

907### Discrepancia de binario musl o glibc en Linux907### Discrepancia de binario musl o glibc en Linux

908 908 

909Si ves errores sobre bibliotecas compartidas faltantes como `libstdc++.so.6` o `libgcc_s.so.1` después de la instalación, es posible que el instalador haya descargado la variante de binario incorrecta para tu sistema.909Si ves errores sobre bibliotecas compartidas faltantes como `ld-linux-x86-64.so.2` o `ld-linux-aarch64.so.1` después de la instalación, es posible que el instalador haya descargado la variante de binario incorrecta para tu sistema.

910 910 

911```text theme={null}911```text theme={null}

912Error loading shared library libstdc++.so.6: No such file or directory912Error loading shared library ld-linux-x86-64.so.2: No such file or directory

913```913```

914 914 

915Esto puede ocurrir en sistemas basados en glibc que tienen instalados paquetes de compilación cruzada de musl, lo que hace que el instalador detecte incorrectamente el sistema como musl.

916 

917**Soluciones:**915**Soluciones:**

918 916 

9191. **Verifica qué libc usa tu sistema**:9171. **Verifica qué libc usa tu sistema**:


924 922 

9252. **Si estás en glibc pero obtuviste el binario musl**, elimina la instalación y reinstala. También puedes descargar manualmente el binario correcto usando el manifiesto en `https://downloads.claude.ai/claude-code-releases/{VERSION}/manifest.json`. Abre un [issue en GitHub](https://github.com/anthropics/claude-code/issues) con la salida de `ldd --version` y `ls /lib/libc.musl*`.9232. **Si estás en glibc pero obtuviste el binario musl**, elimina la instalación y reinstala. También puedes descargar manualmente el binario correcto usando el manifiesto en `https://downloads.claude.ai/claude-code-releases/{VERSION}/manifest.json`. Abre un [issue en GitHub](https://github.com/anthropics/claude-code/issues) con la salida de `ldd --version` y `ls /lib/libc.musl*`.

926 924 

9273. **Si realmente estás en musl**, como Alpine Linux, instala los paquetes requeridos:9253. **Si estás en musl pero obtuviste el binario glibc**, [elimina la instalación](https://code.claude.com/docs/es/setup.md#uninstall-claude-code). En Alpine Linux, primero instala los paquetes que indica [Configuración de Alpine Linux](https://code.claude.com/docs/es/setup.md#alpine-linux-and-musl-based-distributions). Luego ejecuta el [comando de instalación](https://code.claude.com/docs/es/setup.md#install-claude-code), que instala el binario musl.

928 ```bash theme={null}

929 apk add libgcc libstdc++ ripgrep

930 ```

931 En Alpine, `ripgrep` está en el repositorio community. Si `apk` reporta que falta el paquete, consulta [Configuración de Alpine Linux](https://code.claude.com/docs/es/setup.md#alpine-linux-and-musl-based-distributions).

932 926 

933### `Illegal instruction`927### `Illegal instruction`

934 928 

Details

152> apk add ripgrep152> apk add ripgrep

153> ```153> ```

154>154>

155> `ripgrep` está en el repositorio de comunidad de Alpine. Si `apk` informa que el paquete falta, consulte [Configuración de Alpine Linux](https://code.claude.com/docs/es/setup.md#alpine-linux-and-musl-based-distributions).155> `ripgrep` está en el repositorio de comunidad de Alpine.

156 156 

157> [tab] Arch157> [tab] Arch

158>158>

workflows.md +0 −2

Details

75| :- | :- |75| :- | :- |

76| `/deep-research <question>` | Distribuye búsquedas web sobre una pregunta desde varios ángulos, obtiene y contrasta las fuentes que encuentra, vota sobre cada afirmación y devuelve un informe con citas en el que se filtran las afirmaciones que no superaron el contraste. Requiere que la [herramienta WebSearch](https://code.claude.com/docs/es/tools-reference.md#websearch-tool-behavior) esté disponible |76| `/deep-research <question>` | Distribuye búsquedas web sobre una pregunta desde varios ángulos, obtiene y contrasta las fuentes que encuentra, vota sobre cada afirmación y devuelve un informe con citas en el que se filtran las afirmaciones que no superaron el contraste. Requiere que la [herramienta WebSearch](https://code.claude.com/docs/es/tools-reference.md#websearch-tool-behavior) esté disponible |

77 77 

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

79 

80Los [flujos de trabajo que guardas](#save-the-workflow-for-reuse) tú mismo se convierten en comandos de la misma manera y aparecen en el autocompletado de `/` junto a los incluidos.78Los [flujos de trabajo que guardas](#save-the-workflow-for-reuse) tú mismo se convierten en comandos de la misma manera y aparecen en el autocompletado de `/` junto a los incluidos.

81 79 

82### Observa la ejecución80### Observa la ejecución