SpyBara
Go Premium

Documentation 2026-10-06 23:59 UTC to 2026-10-07 05:58 UTC

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

1337| `mcpServer` | `{ name: string; source: string }` | Para una herramienta `mcp__*`, el servidor MCP que la proporciona y de dónde proviene la definición de ese servidor, con los campos de [`McpServerProvenance`](#mcpserverprovenance). Ausente para otras herramientas. Requiere Agent SDK v0.3.274 o posterior |1337| `mcpServer` | `{ name: string; source: string }` | Para una herramienta `mcp__*`, el servidor MCP que la proporciona y de dónde proviene la definición de ese servidor, con los campos de [`McpServerProvenance`](#mcpserverprovenance). Ausente para otras herramientas. Requiere Agent SDK v0.3.274 o posterior |

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

1339| `defaultToNo` | `boolean` | Cuando es `true`, una sola pulsación accidental no debe aprobar esta solicitud: abre tu solicitud en su opción de rechazo, no preselecciones la aprobación y no ofrezcas ningún atajo de aprobación de una sola tecla. Requiere Agent SDK v0.3.268 o posterior |1339| `defaultToNo` | `boolean` | Cuando es `true`, una sola pulsación accidental no debe aprobar esta solicitud: abre tu solicitud en su opción de rechazo, no preselecciones la aprobación y no ofrezcas ningún atajo de aprobación de una sola tecla. Requiere Agent SDK v0.3.268 o posterior |

1340| `suppressAlwaysAllowRule` | `boolean` | Cuando es `true`, no ofrezcas una opción persistente de permitir siempre para esta solicitud, porque la regla que escribiría concede más que la propia acción de la solicitud. Requiere Agent SDK v0.3.268 o posterior |1340| `suppressAlwaysAllowRule` | `boolean` | Cuando es `true`, no ofrezcas una opción persistente de permitir siempre para esta solicitud. Requiere Agent SDK v0.3.268 o posterior |

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

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

1343| `requestId` | `string` | El `request_id` del sobre `control_request`. Un `control_response` que tu aplicación envíe fuera del SDK, como un HTTP POST firmado, debe repetir este valor para que el proceso de Claude Code pueda asociar la respuesta con la solicitud |1343| `requestId` | `string` | El `request_id` del sobre `control_request`. Un `control_response` que tu aplicación envíe fuera del SDK, como un HTTP POST firmado, debe repetir este valor para que el proceso de Claude Code pueda asociar la respuesta con la solicitud |

agent-view.md +1 −0

Details

819| `claude rm <id> --discard-unpushed <commit>@<worktree-id>` | Eliminar una sesión cuya eliminación fue rechazada por commits no enviados, descartando el worktree junto con su rama y commits. Pasa el valor exacto que imprimió el rechazo; consulta [Qué elimina la eliminación de una sesión](#what-deleting-a-session-removes). Requiere v2.1.260 o posterior |819| `claude rm <id> --discard-unpushed <commit>@<worktree-id>` | Eliminar una sesión cuya eliminación fue rechazada por commits no enviados, descartando el worktree junto con su rama y commits. Pasa el valor exacto que imprimió el rechazo; consulta [Qué elimina la eliminación de una sesión](#what-deleting-a-session-removes). Requiere v2.1.260 o posterior |

820| `claude rm <id> --force-remove-worktree <worktree-id>` | Eliminar una sesión cuya eliminación fue rechazada porque git o el hook `WorktreeRemove` no pudieron eliminar su worktree, eliminando el directorio worktree de todas formas y dejando su rama en el repositorio. Pasa el valor exacto que imprimió el rechazo; consulta [Qué elimina la eliminación de una sesión](#what-deleting-a-session-removes). Requiere v2.1.268 o posterior |820| `claude rm <id> --force-remove-worktree <worktree-id>` | Eliminar una sesión cuya eliminación fue rechazada porque git o el hook `WorktreeRemove` no pudieron eliminar su worktree, eliminando el directorio worktree de todas formas y dejando su rama en el repositorio. Pasa el valor exacto que imprimió el rechazo; consulta [Qué elimina la eliminación de una sesión](#what-deleting-a-session-removes). Requiere v2.1.268 o posterior |

821| `claude daemon status` | Imprimir el estado del [supervisor](#the-supervisor-process), versión, directorio de socket y número de workers |821| `claude daemon status` | Imprimir el estado del [supervisor](#the-supervisor-process), versión, directorio de socket y número de workers |

822| `claude daemon logs` | Seguir el archivo de log del supervisor, [`~/.claude/daemon.log`](#where-state-is-stored), imprimiendo las líneas nuevas a medida que llegan hasta que presiones `Ctrl+C` |

822| `claude daemon stop --any` | Detener el proceso supervisor y las sesiones en segundo plano que aloja. Pasa `--keep-workers` para dejar las sesiones en segundo plano en ejecución de modo que el siguiente supervisor se reconecte a ellas. El siguiente `claude agents` o `claude --bg` inicia un nuevo supervisor |823| `claude daemon stop --any` | Detener el proceso supervisor y las sesiones en segundo plano que aloja. Pasa `--keep-workers` para dejar las sesiones en segundo plano en ejecución de modo que el siguiente supervisor se reconecte a ellas. El siguiente `claude agents` o `claude --bg` inicia un nuevo supervisor |

823 824 

824`claude attach` y `claude logs` pueden recibir parte del nombre de una sesión en ejecución en lugar del ID, como en `claude logs "auth refactor"`. Pasar un nombre requiere Claude Code v2.1.290 o posterior.825`claude attach` y `claude logs` pueden recibir parte del nombre de una sesión en ejecución en lugar del ID, como en `claude logs "auth refactor"`. Pasar un nombre requiere Claude Code v2.1.290 o posterior.

Details

75| - | - |75| - | - |

76| Claude Code v2.1.195 o posterior | El subcomando `claude gateway` y el flujo de inicio de sesión de la puerta de enlace se envían en v2.1.195. Las compilaciones públicas anteriores no los incluyen. Tanto la máquina que ejecuta el servidor de la puerta de enlace como la máquina de cada desarrollador deben estar en v2.1.195 o posterior; ejecute `claude update` para obtener la versión más reciente. El [upstream de Claude Platform en AWS](/docs/es/claude-apps-gateway-config#claude-platform-on-aws) requiere Claude Code v2.1.198 o posterior en el servidor de la puerta de enlace. |76| Claude Code v2.1.195 o posterior | El subcomando `claude gateway` y el flujo de inicio de sesión de la puerta de enlace se envían en v2.1.195. Las compilaciones públicas anteriores no los incluyen. Tanto la máquina que ejecuta el servidor de la puerta de enlace como la máquina de cada desarrollador deben estar en v2.1.195 o posterior; ejecute `claude update` para obtener la versión más reciente. El [upstream de Claude Platform en AWS](/docs/es/claude-apps-gateway-config#claude-platform-on-aws) requiere Claude Code v2.1.198 o posterior en el servidor de la puerta de enlace. |

77| Proveedor de identidad OpenID Connect (OIDC) | Okta, Microsoft Entra ID, Google Workspace, Keycloak, o Dex, o cualquier otro IdP compatible con OIDC como PingFederate. La puerta de enlace ejecuta el descubrimiento OIDC estándar y el flujo de código de autorización en su contra. SAML y LDAP no son compatibles. |77| Proveedor de identidad OpenID Connect (OIDC) | Okta, Microsoft Entra ID, Google Workspace, Keycloak, o Dex, o cualquier otro IdP compatible con OIDC como PingFederate. La puerta de enlace ejecuta el descubrimiento OIDC estándar y el flujo de código de autorización en su contra. SAML y LDAP no son compatibles. |

78| PostgreSQL 14 o posterior | Respalda el flujo de inicio de sesión del dispositivo, donde la devolución de llamada del navegador escribe y la CLI de sondeo lee, además de contadores de límite de velocidad. Cualquier Postgres administrado funciona, incluido el nivel más pequeño. Sin límites de gasto configurados, la puerta de enlace almacena algunos KB de estado de autenticación de corta duración; con [límites de gasto](/docs/es/claude-apps-gateway-spend-limits), también contiene tablas duraderas de gasto, auditoría e identidad que deben respaldarse. Se recomienda TLS a través de `?sslmode=require`. |78| PostgreSQL 11 o posterior | Respalda el flujo de inicio de sesión del dispositivo y los contadores de rate limit. Funciona un servicio de PostgreSQL administrado, incluido el nivel más pequeño; consulta [qué bases de datos son compatibles](/docs/es/claude-apps-gateway-deploy#postgres). Con [límites de gasto](/docs/es/claude-apps-gateway-spend-limits), también contiene tablas duraderas de gasto, auditoría e identidad de las que se debe hacer copia de seguridad. Se recomienda TLS mediante `?sslmode=require`. PostgreSQL 11, 12 y 13 requieren Claude Code v2.1.290 o posterior en el servidor del gateway. El proyecto PostgreSQL ya no mantiene esas versiones, así que usa una más reciente siempre que puedas. |

79| Upstream de modelo | Credenciales de Amazon Bedrock, credenciales de Claude Platform en AWS, credenciales de Google Cloud, un recurso de Microsoft Foundry o una clave de API de Anthropic. Se admiten múltiples upstreams con conmutación por error. |79| Upstream de modelo | Credenciales de Amazon Bedrock, credenciales de Claude Platform en AWS, credenciales de Google Cloud, un recurso de Microsoft Foundry o una clave de API de Anthropic. Se admiten múltiples upstreams con conmutación por error. |

80| HTTPS | La puerta de enlace debe ser accesible a través de `https://` desde portátiles de desarrolladores y desde cualquier navegador utilizado para el inicio de sesión; la puerta de enlace sirve la página de verificación del dispositivo en el mismo oyente. Proporcione un certificado TLS a través de `listen.tls` o ejecute detrás de una entrada que termine TLS, y establezca `listen.public_url` en el origen externo en ambos casos. En `/login`, Claude Code acepta un origen `http://` simple solo cuando el host de la puerta de enlace es loopback: `localhost`, `127.0.0.1` o `::1`. |80| HTTPS | La puerta de enlace debe ser accesible a través de `https://` desde portátiles de desarrolladores y desde cualquier navegador utilizado para el inicio de sesión; la puerta de enlace sirve la página de verificación del dispositivo en el mismo oyente. Proporcione un certificado TLS a través de `listen.tls` o ejecute detrás de una entrada que termine TLS, y establezca `listen.public_url` en el origen externo en ambos casos. En `/login`, Claude Code acepta un origen `http://` simple solo cuando el host de la puerta de enlace es loopback: `localhost`, `127.0.0.1` o `::1`. |

81| Dirección de red privada | En `/login`, Claude Code requiere que el nombre de host o la dirección IP de la puerta de enlace se resuelvan solo a direcciones privadas: RFC 1918, link-local, CGNAT `100.64.0.0/10`, IPv6 ULA `fc00::/7` o loopback. Para una puerta de enlace que aloja, cualquier dirección pública fuera de un bloque que declare se rechaza; consulte el [modelo de amenaza](/docs/es/claude-apps-gateway-deploy#threat-model-summary) en la guía de implementación. Si las máquinas de desarrolladores enrutan HTTPS a través de un proxy corporativo, el inicio de sesión también requiere que el host del proxy se resuelva a direcciones privadas; si no es así, agregue el host de la puerta de enlace a `NO_PROXY` para que la CLI se conecte directamente. Si su red interna está numerada desde espacio IPv4 público que su organización posee, [declare esos bloques](#allow-a-gateway-on-public-address-space-you-own) para que `/login` acepte una puerta de enlace allí. |81| Dirección de red privada | En `/login`, Claude Code requiere que el nombre de host o la dirección IP de la puerta de enlace se resuelvan solo a direcciones privadas: RFC 1918, link-local, CGNAT `100.64.0.0/10`, IPv6 ULA `fc00::/7` o loopback. Para una puerta de enlace que aloja, cualquier dirección pública fuera de un bloque que declare se rechaza; consulte el [modelo de amenaza](/docs/es/claude-apps-gateway-deploy#threat-model-summary) en la guía de implementación. Si las máquinas de desarrolladores enrutan HTTPS a través de un proxy corporativo, el inicio de sesión también requiere que el host del proxy se resuelva a direcciones privadas; si no es así, agregue el host de la puerta de enlace a `NO_PROXY` para que la CLI se conecte directamente. Si su red interna está numerada desde espacio IPv4 público que su organización posee, [declare esos bloques](#allow-a-gateway-on-public-address-space-you-own) para que `/login` acepte una puerta de enlace allí. |


90 Decida primero el nombre de host de la puerta de enlace, porque el URI de redirección debe coincidir con él. Cree una nueva aplicación web OIDC y establezca el URI de redirección en `https://claude-gateway.<su-dominio>/oauth/callback`, donde el host es el mismo valor que establece como [`listen.public_url`](/docs/es/claude-apps-gateway-config#listen) en el paso 3. Anote el `client_id` y `client_secret`. Las instrucciones por IdP están en [Configuración del proveedor de identidad](/docs/es/claude-apps-gateway-deploy#identity-provider-setup).90 Decida primero el nombre de host de la puerta de enlace, porque el URI de redirección debe coincidir con él. Cree una nueva aplicación web OIDC y establezca el URI de redirección en `https://claude-gateway.<su-dominio>/oauth/callback`, donde el host es el mismo valor que establece como [`listen.public_url`](/docs/es/claude-apps-gateway-config#listen) en el paso 3. Anote el `client_id` y `client_secret`. Las instrucciones por IdP están en [Configuración del proveedor de identidad](/docs/es/claude-apps-gateway-deploy#identity-provider-setup).

91 </Step>91 </Step>

92 92 

93 <Step title="Aprovisionar una base de datos PostgreSQL">93 <Step title="Aprovisiona una base de datos PostgreSQL">

94 Cualquier Postgres 14 o posterior funciona, incluido el nivel administrado más pequeño. La puerta de enlace ejecuta sus propias migraciones de esquema al arrancar, por lo que el rol de la base de datos necesita derechos para crear y alterar tablas; consulte [`store`](/docs/es/claude-apps-gateway-config#store).94 Usa PostgreSQL 11 o posterior. El nivel administrado más pequeño es suficiente. El gateway ejecuta sus propias migraciones de esquema al arrancar, por lo que el rol de la base de datos necesita permisos para crear y modificar tablas; consulta [`store`](/docs/es/claude-apps-gateway-config#store).

95 </Step>95 </Step>

96 96 

97 <Step title="Escribir gateway.yaml">97 <Step title="Escribir gateway.yaml">

Details

158El gateway lee la clave y el certificado una sola vez al arrancar, así que un archivo modificado solo surte efecto tras un reinicio. Rota en este orden para que ninguna solicitud de token presente un certificado que el IdP no tenga:158El gateway lee la clave y el certificado una sola vez al arrancar, así que un archivo modificado solo surte efecto tras un reinicio. Rota en este orden para que ninguna solicitud de token presente un certificado que el IdP no tenga:

159 159 

1601. Sube el nuevo certificado al IdP junto al antiguo.1601. Sube el nuevo certificado al IdP junto al antiguo.

1612. Reemplaza los archivos de clave y certificado que carga `gateway.yaml` y luego reinicia el gateway.1612. Reemplaza los archivos de clave y certificado que carga `gateway.yaml` y luego reinicia el gateway. Si ejecutas varias réplicas, un [reinicio progresivo](/docs/es/claude-apps-gateway-deploy#upgrades) funciona, porque el IdP tiene ambos certificados hasta que eliminas el antiguo.

1623. Elimina el certificado antiguo del IdP.1623. Después de que todas las réplicas se hayan reiniciado, elimina el certificado antiguo del IdP.

163 163 

164<h4 id="idp-requests-through-a-forward-proxy">164<h4 id="idp-requests-through-a-forward-proxy">

165 Solicitudes al IdP a través de un proxy de reenvío165 Solicitudes al IdP a través de un proxy de reenvío


227 227 

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

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

230| `postgres_url` | Sí | URL `postgres://` o `postgresql://`. Requerido: el punto de encuentro de la concesión de dispositivos, donde escribe la devolución de llamada del navegador y lee la CLI que sondea, necesita estado compartido entre réplicas. El gateway ejecuta sus propias migraciones de esquema al arrancar y al actualizarse, por lo que el rol necesita permisos para crear y alterar tablas en el esquema de destino. Consulta [Actualizaciones](/docs/es/claude-apps-gateway-deploy#upgrades) y [Postgres](/docs/es/claude-apps-gateway-deploy#postgres). |230| `postgres_url` | Sí | URL `postgres://` o `postgresql://` con un solo host, no una lista separada por comas. El gateway ejecuta sus propias migraciones de esquema al arrancar y al actualizarse, por lo que el rol necesita permisos para crear y alterar tablas en el esquema de destino. Consulta [Actualizaciones](/docs/es/claude-apps-gateway-deploy#upgrades) y [Postgres](/docs/es/claude-apps-gateway-deploy#postgres). |

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

232| `password` | No | Credencial de la base de datos. Establécela aquí en lugar de en `postgres_url` para que la credencial quede fuera de la URL. Acepta cualquier carácter y tiene precedencia sobre las credenciales de la URL. |232| `password` | No | Credencial de la base de datos. Establécela aquí en lugar de en `postgres_url` para que la credencial quede fuera de la URL. Acepta cualquier carácter y tiene precedencia sobre las credenciales de la URL. |

233| `max_connections` | No | Tamaño del pool de conexiones de Postgres por réplica. Por defecto `5`, que es conservador y adecuado para bases de datos compartidas. Con los [límites de gasto](#admin) habilitados, la ruta crítica realiza algunas operaciones por solicitud de inferencia, así que auméntalo para una base de datos dedicada bajo carga, y mantén réplicas × este valor por debajo del `max_connections` de la base de datos. |233| `max_connections` | No | Tamaño del pool de conexiones de Postgres por réplica. Por defecto `5`, que es conservador y adecuado para bases de datos compartidas. Con los [límites de gasto](#admin) habilitados, la ruta crítica realiza algunas operaciones por solicitud de inferencia, así que auméntalo para una base de datos dedicada bajo carga, y mantén réplicas × este valor por debajo del `max_connections` de la base de datos. |

Details

249 Postgres249 Postgres

250</h3>250</h3>

251 251 

252El gateway guarda su estado en una base de datos PostgreSQL:

253 

254* **Base de datos**: PostgreSQL propiamente dicho, autoalojado o administrado, en la [versión mínima](/docs/es/claude-apps-gateway#prerequisites) o posterior. No se admiten bases de datos que solo implementan el protocolo de Postgres, como las bases de datos SQL distribuidas.

255* **Dirección**: `store.postgres_url` acepta un solo host. Si la base de datos tiene varios nodos, usa la dirección que está delante de ellos, como el endpoint de tu servicio administrado, un balanceador de carga o una IP virtual. Configura un [período de gracia de disponibilidad](#readiness-grace-period) más largo de lo que tarda una conmutación por error.

256 

252La puerta de enlace contiene cinco tablas de datos más una tabla `_migrations`, todas creadas por sus migraciones de tiempo de arranque:257La puerta de enlace contiene cinco tablas de datos más una tabla `_migrations`, todas creadas por sus migraciones de tiempo de arranque:

253 258 

254| Tabla | Contenidos | Retención |259| Tabla | Contenidos | Retención |


396| CLI `/login`: `Could not resolve the configured HTTP proxy` | El nombre de host en `HTTPS_PROXY` o `HTTP_PROXY` no se resuelve desde la máquina del desarrollador, normalmente porque no está conectada a la red corporativa | Pide al desarrollador que se conecte a tu red o VPN y vuelva a intentarlo, o corrige la URL del proxy |401| CLI `/login`: `Could not resolve the configured HTTP proxy` | El nombre de host en `HTTPS_PROXY` o `HTTP_PROXY` no se resuelve desde la máquina del desarrollador, normalmente porque no está conectada a la red corporativa | Pide al desarrollador que se conecte a tu red o VPN y vuelva a intentarlo, o corrige la URL del proxy |

397| CLI `/login`: `Could not resolve gateway host <host>` | La máquina no puede resolver el nombre DNS interno del gateway, normalmente porque no está en la red corporativa | Pide al desarrollador que se conecte a tu red o VPN y luego reintente `/login` |402| CLI `/login`: `Could not resolve gateway host <host>` | La máquina no puede resolver el nombre DNS interno del gateway, normalmente porque no está en la red corporativa | Pide al desarrollador que se conecte a tu red o VPN y luego reintente `/login` |

398| El arranque sale con un error de validación de configuración que menciona `store.postgres_url` | No hay Postgres configurado; el gateway requiere Postgres | Establece `store.postgres_url`. Para desarrollo local, usa un contenedor desechable: `docker run --rm -p 5432:5432 -e POSTGRES_HOST_AUTH_METHOD=trust postgres`. |403| El arranque sale con un error de validación de configuración que menciona `store.postgres_url` | No hay Postgres configurado; el gateway requiere Postgres | Establece `store.postgres_url`. Para desarrollo local, usa un contenedor desechable: `docker run --rm -p 5432:5432 -e POSTGRES_HOST_AUTH_METHOD=trust postgres`. |

404| El arranque sale con: `store.postgres_url in <path> is not a URL the gateway can read`, o, antes de v2.1.290, un simple `Invalid URL` o `URI error` | No se puede analizar la URL, por ejemplo porque enumera más de un host o su contraseña tiene un `/`, `?`, `#` o `%` sin codificar | Indica [un solo host](#postgres) y mueve la contraseña a [`store.password`](/docs/es/claude-apps-gateway-config#store) |

399| El arranque sale con: `requires the native binary` | Se está ejecutando con Node en lugar del binario nativo | Instala Claude Code con uno de los [métodos de instalación independiente](/docs/es/setup) |405| El arranque sale con: `requires the native binary` | Se está ejecutando con Node en lugar del binario nativo | Instala Claude Code con uno de los [métodos de instalación independiente](/docs/es/setup) |

400| El arranque sale con un error de descubrimiento OIDC después de `config.load` | `oidc.issuer` no es accesible, o la cadena TLS no es de confianza | Verifica que el emisor sea accesible desde el pod y sirva `/.well-known/openid-configuration`. Establece `ca_cert_pem` para una PKI privada. Si el pod llega al IdP solo a través de un proxy de reenvío, establece [`oidc.use_proxy: true`](/docs/es/claude-apps-gateway-config#idp-requests-through-a-forward-proxy); en versiones anteriores a v2.1.227, dale al pod una ruta directa a cada uno de los endpoints del IdP en su lugar. Si el pod tampoco puede resolver el nombre de host del IdP, o el proxy rechaza `CONNECT` a una dirección IP, consulta [Salida solo por proxy](/docs/es/claude-apps-gateway-config#proxy-only-egress), que requiere v2.1.277 o posterior. |406| El arranque sale con un error de descubrimiento OIDC después de `config.load` | `oidc.issuer` no es accesible, o la cadena TLS no es de confianza | Verifica que el emisor sea accesible desde el pod y sirva `/.well-known/openid-configuration`. Establece `ca_cert_pem` para una PKI privada. Si el pod llega al IdP solo a través de un proxy de reenvío, establece [`oidc.use_proxy: true`](/docs/es/claude-apps-gateway-config#idp-requests-through-a-forward-proxy); en versiones anteriores a v2.1.227, dale al pod una ruta directa a cada uno de los endpoints del IdP en su lugar. Si el pod tampoco puede resolver el nombre de host del IdP, o el proxy rechaza `CONNECT` a una dirección IP, consulta [Salida solo por proxy](/docs/es/claude-apps-gateway-config#proxy-only-egress), que requiere v2.1.277 o posterior. |

401| El arranque sale con un error de permisos de Postgres | El rol de la base de datos no tiene derechos DDL sobre su esquema | Otorga al rol `CREATE` sobre el esquema del gateway para que pueda crear y modificar sus tablas al arrancar |407| El arranque sale con un error de permisos de Postgres | El rol de la base de datos no tiene derechos DDL sobre su esquema | Otorga al rol `CREATE` sobre el esquema del gateway para que pueda crear y modificar sus tablas al arrancar |

402| Registro: `could not connect to Postgres at boot, attempt 1 of 3` | La base de datos aún no era accesible cuando se inició el gateway, por ejemplo en una instancia en frío cuya red todavía se está levantando | Si el gateway luego termina de arrancar, no hace falta hacer nada. Cuando la base de datos no es accesible, el gateway intenta la conexión tres veces, con dos segundos de diferencia, antes de salir. Si sale con `could not connect to Postgres`, revisa `store.postgres_url` y la ruta de red hacia la base de datos. Si se agota el tiempo de espera de los intentos en lugar de ser rechazados, aumenta [`store.connect_timeout_seconds`](/docs/es/claude-apps-gateway-config#store) para darle más tiempo a cada uno. |408| Registro: `could not connect to Postgres at boot, attempt 1 of 3` | La base de datos aún no era accesible cuando se inició el gateway, por ejemplo en una instancia en frío cuya red todavía se está levantando | Si el gateway luego termina de arrancar, no hace falta hacer nada. Cuando la base de datos no es accesible, el gateway intenta la conexión tres veces, con dos segundos de diferencia, antes de salir. Si sale con `could not connect to Postgres`, revisa `store.postgres_url`, incluido que indique un solo host, y la ruta de red hacia la base de datos. Si se agota el tiempo de espera de los intentos en lugar de ser rechazados, aumenta [`store.connect_timeout_seconds`](/docs/es/claude-apps-gateway-config#store) para darle más tiempo a cada uno. |

403| `/oauth/callback` muestra "Sign-in could not be completed" | Dominio de correo electrónico rechazado, falló la validación del id\_token, o `email_verified` es explícitamente `false`, que el gateway siempre rechaza sin posibilidad de sobrescribirlo | Revisa `allowed_email_domains` y que el IdP devuelva un claim `email` verificado. Para `email_verified: false`, corrige la verificación del lado del IdP. Si tu IdP emite el correo electrónico con un nombre de claim diferente, establece `oidc.email_claim`. |409| `/oauth/callback` muestra "Sign-in could not be completed" | Dominio de correo electrónico rechazado, falló la validación del id\_token, o `email_verified` es explícitamente `false`, que el gateway siempre rechaza sin posibilidad de sobrescribirlo | Revisa `allowed_email_domains` y que el IdP devuelva un claim `email` verificado. Para `email_verified: false`, corrige la verificación del lado del IdP. Si tu IdP emite el correo electrónico con un nombre de claim diferente, establece `oidc.email_claim`. |

404| Registro: `token exchange failed request_id=<id>: id_token missing email claim` | El IdP no incluye `email` en el id\_token de forma predeterminada. Este rechazo solo se produce cuando `allowed_email_domains` está establecido; sin él, la falta de correo electrónico genera una sesión sin correo electrónico | Configura el IdP para que emita `email` en el id\_token. Okta: agrega `email` a los claims del token de ID de un servidor de autorización personalizado. Entra: agrega `email` como claim opcional en el registro de la aplicación. PingFederate: habilita una OpenID Connect Policy que emita `email`. Si el IdP sirve `email` desde el endpoint de userinfo pero no lo incluye en el id\_token, como el servidor de autorización de organización de Okta, establece `oidc.userinfo_fallback: true`. |410| Registro: `token exchange failed request_id=<id>: id_token missing email claim` | El IdP no incluye `email` en el id\_token de forma predeterminada. Este rechazo solo se produce cuando `allowed_email_domains` está establecido; sin él, la falta de correo electrónico genera una sesión sin correo electrónico | Configura el IdP para que emita `email` en el id\_token. Okta: agrega `email` a los claims del token de ID de un servidor de autorización personalizado. Entra: agrega `email` como claim opcional en el registro de la aplicación. PingFederate: habilita una OpenID Connect Policy que emita `email`. Si el IdP sirve `email` desde el endpoint de userinfo pero no lo incluye en el id\_token, como el servidor de autorización de organización de Okta, establece `oidc.userinfo_fallback: true`. |

405| Registro: `refresh failed request_id=<id>: invalid_token (…) (at userinfo_no_id_token, …)`, y los desarrolladores ven `Cloud gateway session expired` cada `session.ttl_hours` | El IdP aceptó el token de actualización pero no devolvió ningún id\_token con él, así que el gateway solicitó los claims del usuario al endpoint de userinfo del IdP. El IdP rechazó allí el token de acceso actualizado. El gateway responde `temporarily_unavailable`, por lo que Claude Code conserva el token de actualización pero no puede renovar la sesión. Las versiones del gateway anteriores a v2.1.260 registran la misma línea sin el detalle `(at …)`. | Establece [`oidc.scope_on_refresh: true`](/docs/es/claude-apps-gateway-config#oidc), disponible en el gateway v2.1.260 o posterior, para que la solicitud de actualización pida `openid` de nuevo. Algunos IdP, como Okta, devuelven un id\_token en la actualización solo cuando se solicita. En PingFederate, habilita **Return ID Token On Refresh Grant** en **Applications > OAuth > OpenID Connect Policy Management** en su lugar. La clave no cambia el comportamiento de PingFederate. Para otros IdP que sigan omitiéndolo, verifica si el endpoint de userinfo acepta tokens de acceso emitidos por una actualización. Como solución provisional, aumenta [`session.ttl_hours`](/docs/es/claude-apps-gateway-config#session). Consulta [Configuración del proveedor de identidad](#identity-provider-setup) para conocer la contrapartida en cuanto al desaprovisionamiento. |411| Registro: `refresh failed request_id=<id>: invalid_token (…) (at userinfo_no_id_token, …)`, y los desarrolladores ven `Cloud gateway session expired` cada `session.ttl_hours` | El IdP aceptó el token de actualización pero no devolvió ningún id\_token con él, así que el gateway solicitó los claims del usuario al endpoint de userinfo del IdP. El IdP rechazó allí el token de acceso actualizado. El gateway responde `temporarily_unavailable`, por lo que Claude Code conserva el token de actualización pero no puede renovar la sesión. Las versiones del gateway anteriores a v2.1.260 registran la misma línea sin el detalle `(at …)`. | Establece [`oidc.scope_on_refresh: true`](/docs/es/claude-apps-gateway-config#oidc), disponible en el gateway v2.1.260 o posterior, para que la solicitud de actualización pida `openid` de nuevo. Algunos IdP, como Okta, devuelven un id\_token en la actualización solo cuando se solicita. En PingFederate, habilita **Return ID Token On Refresh Grant** en **Applications > OAuth > OpenID Connect Policy Management** en su lugar. La clave no cambia el comportamiento de PingFederate. Para otros IdP que sigan omitiéndolo, verifica si el endpoint de userinfo acepta tokens de acceso emitidos por una actualización. Como solución provisional, aumenta [`session.ttl_hours`](/docs/es/claude-apps-gateway-config#session). Consulta [Configuración del proveedor de identidad](#identity-provider-setup) para conocer la contrapartida en cuanto al desaprovisionamiento. |

Details

168 La pista de EKS reutiliza ambos documentos de política en un rol de IRSA en lugar de los dos roles de ECS; consulte el paso de implementación.168 La pista de EKS reutiliza ambos documentos de política en un rol de IRSA en lugar de los dos roles de ECS; consulte el paso de implementación.

169 </Step>169 </Step>

170 170 

171 <Step title="Aprovisione Amazon RDS para PostgreSQL">171 <Step title="Aprovisiona Amazon RDS para PostgreSQL">

172 La instancia se ejecuta en las subredes privadas sin dirección pública y con cifrado de almacenamiento activado. La versión del motor se fija en Postgres 16, que satisface el piso compatible del gateway de PostgreSQL 14 y garantiza que la familia del grupo de parámetros a continuación coincida con la instancia.172 La instancia ejecuta Postgres 16 en las subredes privadas, sin dirección pública y con el cifrado de almacenamiento activado.

173 173 

174 Primero, cree el grupo de subredes que coloca la base de datos en las subredes privadas, y un grupo de parámetros con `rds.force_ssl=1` para que el servidor rechace las conexiones de texto sin formato. La versión del motor se fija una vez porque la familia del grupo de parámetros debe coincidir con la versión principal del motor que ejecuta la instancia:174 Primero, cree el grupo de subredes que coloca la base de datos en las subredes privadas, y un grupo de parámetros con `rds.force_ssl=1` para que el servidor rechace las conexiones de texto sin formato. La versión del motor se fija una vez porque la familia del grupo de parámetros debe coincidir con la versión principal del motor que ejecuta la instancia:

175 175 

Details

442`claude --cloud` y `claude --teleport` requieren iniciar sesión con una cuenta de claude.ai. Si te autenticas con una clave de API, o tus detalles de cuenta almacenados están obsoletos, verás uno de estos:442`claude --cloud` y `claude --teleport` requieren iniciar sesión con una cuenta de claude.ai. Si te autenticas con una clave de API, o tus detalles de cuenta almacenados están obsoletos, verás uno de estos:

443 443 

444* `Unable to get organization UUID`444* `Unable to get organization UUID`

445* Un mensaje de que la autenticación con clave de API no es suficiente445* ``Cloud sessions need a claude.ai sign-in. Run `claude auth login` (or /login in a local session), then try again.``

446* `Error loading Claude Code sessions` en el selector de sesiones, cuando ejecutas `claude --teleport` sin un ID de sesión446* `Error loading Claude Code sessions` en el selector de sesiones, cuando ejecutas `claude --teleport` sin un ID de sesión

447 447 

448Ejecuta `/login` para iniciar sesión con tu cuenta de claude.ai, luego reintenta el comando. Si el error nombra tu proveedor en su lugar, consulta la [tabla de errores](#errors-when-sending-to-a-cloud-session): las sesiones en la nube no están disponibles a través de proveedores de terceros.448Ejecuta [`claude auth login`](/docs/es/cli-reference#cli-commands) en tu shell para iniciar sesión con tu cuenta de claude.ai, luego reintenta el comando. Dentro de una sesión en ejecución, `/login` hace lo mismo. Si el error nombra tu proveedor en su lugar, consulta la [tabla de errores](#errors-when-sending-to-a-cloud-session): las sesiones en la nube no están disponibles a través de proveedores de terceros.

449 

450De la v2.1.274 a la v2.1.289, el mensaje de inicio de sesión decía `Claude Code cloud sessions require authentication with a Claude.ai account. API key authentication is not sufficient. Please run /login to authenticate, or check your authentication status with /status.`

449 451 

450<h3 id="remote-control-session-expired-or-access-denied">452<h3 id="remote-control-session-expired-or-access-denied">

451 Sesión de Control Remoto expirada o acceso denegado453 Sesión de Control Remoto expirada o acceso denegado

Details

31| `claude attach <id\|name>` | Adjuntarse a una [sesión en segundo plano](/docs/es/agent-view#manage-sessions-from-the-shell) en esta terminal. Pasar parte del nombre de una sesión en ejecución en lugar del ID requiere Claude Code v2.1.290 o posterior | `claude attach 7c5dcf5d` |31| `claude attach <id\|name>` | Adjuntarse a una [sesión en segundo plano](/docs/es/agent-view#manage-sessions-from-the-shell) en esta terminal. Pasar parte del nombre de una sesión en ejecución en lugar del ID requiere Claude Code v2.1.290 o posterior | `claude attach 7c5dcf5d` |

32| `claude auto-mode defaults` | Imprimir las reglas integradas del clasificador del [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode) como JSON. Usa `claude auto-mode config` para ver tu configuración efectiva con los ajustes aplicados. `--label <prefix>` imprime solo las reglas cuya etiqueta comienza con ese prefijo, sin distinguir mayúsculas y minúsculas. Requiere Claude Code v2.1.208 o posterior | `claude auto-mode defaults --label 'Git Destructive'` |32| `claude auto-mode defaults` | Imprimir las reglas integradas del clasificador del [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode) como JSON. Usa `claude auto-mode config` para ver tu configuración efectiva con los ajustes aplicados. `--label <prefix>` imprime solo las reglas cuya etiqueta comienza con ese prefijo, sin distinguir mayúsculas y minúsculas. Requiere Claude Code v2.1.208 o posterior | `claude auto-mode defaults --label 'Git Destructive'` |

33| `claude auto-mode reset` | Restaurar la configuración predeterminada del [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode) eliminando la sección `autoMode` de tu archivo de configuración de usuario. Solicita confirmación antes de escribir; pasa `-y`/`--yes` para omitir la solicitud. Las reglas de la [configuración administrada](/docs/es/server-managed-settings) o del flag `--settings` siguen aplicándose. Requiere Claude Code v2.1.212 o posterior. Consulta [Inspeccionar los valores predeterminados y tu configuración efectiva](/docs/es/auto-mode-config#inspect-the-defaults-and-your-effective-config) | `claude auto-mode reset --yes` |33| `claude auto-mode reset` | Restaurar la configuración predeterminada del [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode) eliminando la sección `autoMode` de tu archivo de configuración de usuario. Solicita confirmación antes de escribir; pasa `-y`/`--yes` para omitir la solicitud. Las reglas de la [configuración administrada](/docs/es/server-managed-settings) o del flag `--settings` siguen aplicándose. Requiere Claude Code v2.1.212 o posterior. Consulta [Inspeccionar los valores predeterminados y tu configuración efectiva](/docs/es/auto-mode-config#inspect-the-defaults-and-your-effective-config) | `claude auto-mode reset --yes` |

34| `claude daemon logs` | Seguir el archivo de registro del [supervisor](/docs/es/agent-view#the-supervisor-process) de sesiones en segundo plano, `~/.claude/daemon.log`, imprimiendo las líneas nuevas a medida que llegan hasta que presiones `Ctrl+C` | `claude daemon logs` |

35| `claude daemon run` | Ejecutar el [supervisor](/docs/es/agent-view#the-supervisor-process) de sesiones en segundo plano en primer plano en esta terminal, imprimiendo su registro | `claude daemon run` |

34| `claude daemon status` | Imprimir el estado del [supervisor](/docs/es/agent-view#the-supervisor-process) de sesiones en segundo plano, su versión, directorio de socket y recuento de trabajadores para diagnósticos. Sale con 1 si el supervisor no se está ejecutando | `claude daemon status` |36| `claude daemon status` | Imprimir el estado del [supervisor](/docs/es/agent-view#the-supervisor-process) de sesiones en segundo plano, su versión, directorio de socket y recuento de trabajadores para diagnósticos. Sale con 1 si el supervisor no se está ejecutando | `claude daemon status` |

35| `claude daemon stop --any` | Detener el [supervisor](/docs/es/agent-view#the-supervisor-process) de sesiones en segundo plano y las sesiones que aloja. Pasa `--keep-workers` para dejar las sesiones en segundo plano en ejecución para que el próximo supervisor se reconecte a ellas. `--any` confirma la detención de un supervisor bajo demanda, que es el predeterminado. Usa esto para recuperarte de un [supervisor que no responde](/docs/es/agent-view#agent-view-says-the-background-service-did-not-respond) | `claude daemon stop --any --keep-workers` |37| `claude daemon stop --any` | Detener el [supervisor](/docs/es/agent-view#the-supervisor-process) de sesiones en segundo plano y las sesiones que aloja. Pasa `--keep-workers` para dejar las sesiones en segundo plano en ejecución para que el próximo supervisor se reconecte a ellas. `--any` confirma la detención de un supervisor bajo demanda, que es el predeterminado. Usa esto para recuperarte de un [supervisor que no responde](/docs/es/agent-view#agent-view-says-the-background-service-did-not-respond) | `claude daemon stop --any --keep-workers` |

36| `claude doctor` | Imprimir diagnósticos de solo lectura de instalación y configuración desde la terminal sin iniciar una sesión, incluida la salud de la instalación, los errores de validación de archivos de configuración y la idoneidad para Remote Control. Para la verificación de configuración dentro de la sesión que también puede aplicar correcciones, ejecuta [`/doctor`](/docs/es/commands#all-commands) | `claude doctor` |38| `claude doctor` | Imprimir diagnósticos de solo lectura de instalación y configuración desde la terminal sin iniciar una sesión, incluida la salud de la instalación, los errores de validación de archivos de configuración y la idoneidad para Remote Control. Para la verificación de configuración dentro de la sesión que también puede aplicar correcciones, ejecuta [`/doctor`](/docs/es/commands#all-commands) | `claude doctor` |

desktop.md +1 −1

Details

1092Para ver qué versión de la aplicación de escritorio está ejecutando:1092Para ver qué versión de la aplicación de escritorio está ejecutando:

1093 1093 

1094* **macOS**: haga clic en **Claude** en la barra de menú, luego **About Claude**1094* **macOS**: haga clic en **Claude** en la barra de menú, luego **About Claude**

1095* **Windows**: haga clic en **Help**, luego **About**1095* **Windows**: haz clic en **Help**, luego en **About Claude**

1096 1096 

1097Haga clic en el número de versión para copiarlo a su portapapeles.1097Haga clic en el número de versión para copiarlo a su portapapeles.

1098 1098 

Details

92* Guardar una captura de pantalla con **Cmd+S** o una grabación de pantalla con **Cmd+R**, usando los botones de captura del panel o los atajos; los archivos se guardan en tu Escritorio92* Guardar una captura de pantalla con **Cmd+S** o una grabación de pantalla con **Cmd+R**, usando los botones de captura del panel o los atajos; los archivos se guardan en tu Escritorio

93* Detener la transmisión de un dispositivo sin apagarlo haciendo clic en **Detach simulator**, que devuelve el panel a su estado **Attach simulator**93* Detener la transmisión de un dispositivo sin apagarlo haciendo clic en **Detach simulator**, que devuelve el panel a su estado **Attach simulator**

94 94 

95Para ajustar el streaming de video desde el simulador, abre el menú **Display** del panel. Reduce la **Frame rate** o **Resolution** si el panel sobrecarga tu Mac. Ambos ajustes cambian cómo el panel muestra el dispositivo, no cómo se ejecuta la aplicación.95Si el panel muestra un menú **Display**, úsalo para ajustar el streaming de video desde el simulador. Reduce la **Frame rate** o **Resolution** si el panel sobrecarga tu Mac. Ambos ajustes cambian cómo el panel muestra el dispositivo, no cómo se ejecuta la aplicación.

96 96 

97Tú y Claude controlan el mismo dispositivo, por lo que tus toques cambian el estado de la aplicación que Claude ve. Para que Claude verifique una pantalla específica, navega a ella tocando, luego pregunta. Mientras Claude controla el dispositivo, el panel muestra una insignia **Claude is using this device** encima de la pantalla; espera a tocar hasta que la insignia desaparezca, para que el resultado refleje la aplicación en lugar de tu entrada.97Tú y Claude controlan el mismo dispositivo, por lo que tus toques cambian el estado de la aplicación que Claude ve. Para que Claude verifique una pantalla específica, navega a ella tocando, luego pregunta. Mientras Claude controla el dispositivo, el panel muestra una insignia **Claude is using this device** encima de la pantalla; espera a tocar hasta que la insignia desaparezca, para que el resultado refleje la aplicación en lugar de tu entrada.

98 98 

env-vars.md +1 −0

Details

354| `CLAUDE_CODE_PERFORCE_MODE` | Establécela en `1` para activar la protección contra escritura compatible con Perforce. Cuando está establecida, Edit, Write y NotebookEdit fallan con una sugerencia de `p4 edit <file>` si el archivo de destino no tiene el bit de escritura del propietario, que Perforce borra en los archivos sincronizados hasta que `p4 edit` los abre. Esto evita que Claude Code omita el seguimiento de cambios de Perforce |354| `CLAUDE_CODE_PERFORCE_MODE` | Establécela en `1` para activar la protección contra escritura compatible con Perforce. Cuando está establecida, Edit, Write y NotebookEdit fallan con una sugerencia de `p4 edit <file>` si el archivo de destino no tiene el bit de escritura del propietario, que Perforce borra en los archivos sincronizados hasta que `p4 edit` los abre. Esto evita que Claude Code omita el seguimiento de cambios de Perforce |

355| `CLAUDE_CODE_PLUGIN_CACHE_DIR` | Sobrescribe el directorio raíz de los plugins. A pesar del nombre, establece el directorio principal, no la caché en sí: los marketplaces y la caché de plugins se encuentran en subdirectorios bajo esta ruta. El valor predeterminado es `~/.claude/plugins` |355| `CLAUDE_CODE_PLUGIN_CACHE_DIR` | Sobrescribe el directorio raíz de los plugins. A pesar del nombre, establece el directorio principal, no la caché en sí: los marketplaces y la caché de plugins se encuentran en subdirectorios bajo esta ruta. El valor predeterminado es `~/.claude/plugins` |

356| `CLAUDE_CODE_PLUGIN_DIRS` | Directorios de plugins que se cargan para la sesión, cada uno de la misma forma en que lo carga un flag [`--plugin-dir`](/docs/es/plugins/cli-reference#flags-that-load-a-plugin-for-one-session). Separa varias rutas con `:` en Unix o con `;` en Windows. Indica cada ruta como una ruta absoluta o haz que empiece con `~`, porque Claude Code omite las rutas relativas. Requiere Claude Code v2.1.280 o posterior. Consulta [Cargar un plugin para una sesión](/docs/es/plugins/create#load-a-directory-or-archive-for-one-session) |356| `CLAUDE_CODE_PLUGIN_DIRS` | Directorios de plugins que se cargan para la sesión, cada uno de la misma forma en que lo carga un flag [`--plugin-dir`](/docs/es/plugins/cli-reference#flags-that-load-a-plugin-for-one-session). Separa varias rutas con `:` en Unix o con `;` en Windows. Indica cada ruta como una ruta absoluta o haz que empiece con `~`, porque Claude Code omite las rutas relativas. Requiere Claude Code v2.1.280 o posterior. Consulta [Cargar un plugin para una sesión](/docs/es/plugins/create#load-a-directory-or-archive-for-one-session) |

357| `CLAUDE_CODE_PLUGIN_DIR_WATCH` | Controla si Claude Code recarga un [mod](/docs/es/plugins/mods/overview) cuando cambian los archivos del mod. La recarga se aplica a un mod que cargas desde un directorio con `--plugin-dir`, y está activada de forma predeterminada en las sesiones interactivas. Establécela en `1` para activarla también en las sesiones no interactivas, o en `0` para desactivarla en todas las sesiones. Requiere Claude Code v2.1.287 o posterior. Consulta [configuración y variables de entorno de los mods](/docs/es/plugins/mods/reference#settings-and-environment-variables) |

357| `CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS` | Tiempo de espera en milisegundos para clonar o actualizar un marketplace de plugins (predeterminado: 120000). Aumenta este valor para repositorios grandes o conexiones de red lentas. Consulta [Se agotó el tiempo de espera de git clone](/docs/es/plugins/troubleshooting#git-clone-timed-out-after-120s) |358| `CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS` | Tiempo de espera en milisegundos para clonar o actualizar un marketplace de plugins (predeterminado: 120000). Aumenta este valor para repositorios grandes o conexiones de red lentas. Consulta [Se agotó el tiempo de espera de git clone](/docs/es/plugins/troubleshooting#git-clone-timed-out-after-120s) |

358| `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE` | Establécela en `1` para omitir el intento de volver a clonar y seguir usando la copia existente del marketplace cuando una actualización del marketplace no puede acceder al remoto o autenticarse en él. Es útil en entornos sin conexión o aislados (airgapped) donde volver a clonar fallaría de la misma forma. Consulta [Las actualizaciones del marketplace fallan en entornos sin conexión](/docs/es/plugins/troubleshooting#marketplace-updates-keep-failing-offline) |359| `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE` | Establécela en `1` para omitir el intento de volver a clonar y seguir usando la copia existente del marketplace cuando una actualización del marketplace no puede acceder al remoto o autenticarse en él. Es útil en entornos sin conexión o aislados (airgapped) donde volver a clonar fallaría de la misma forma. Consulta [Las actualizaciones del marketplace fallan en entornos sin conexión](/docs/es/plugins/troubleshooting#marketplace-updates-keep-failing-offline) |

359| `CLAUDE_CODE_PLUGIN_PREFER_HTTPS` | Establécela en `1` para clonar los orígenes abreviados `owner/repo` de GitHub a través de HTTPS en lugar de SSH. Se aplica a la instalación y actualización de plugins, y a `/plugin marketplace add` y `update`. Es útil en runners de CI, contenedores o cualquier entorno sin una clave SSH configurada para `github.com` |360| `CLAUDE_CODE_PLUGIN_PREFER_HTTPS` | Establécela en `1` para clonar los orígenes abreviados `owner/repo` de GitHub a través de HTTPS en lugar de SSH. Se aplica a la instalación y actualización de plugins, y a `/plugin marketplace add` y `update`. Es útil en runners de CI, contenedores o cualquier entorno sin una clave SSH configurada para `github.com` |

errors.md +1 −0

Details

197| `Cloud sessions cannot be created from a --restricted session` | [Errores de línea de comandos](#cloud-sessions-cannot-be-created-from-a-restricted-session) |197| `Cloud sessions cannot be created from a --restricted session` | [Errores de línea de comandos](#cloud-sessions-cannot-be-created-from-a-restricted-session) |

198| `Cloud sessions are disabled by your organization's policy` | [Errores de línea de comandos](#cloud-sessions-are-disabled-by-your-organizations-policy) |198| `Cloud sessions are disabled by your organization's policy` | [Errores de línea de comandos](#cloud-sessions-are-disabled-by-your-organizations-policy) |

199| `Couldn't verify your organization's policy for cloud sessions` | [Errores de línea de comandos](#cloud-sessions-are-disabled-by-your-organizations-policy) |199| `Couldn't verify your organization's policy for cloud sessions` | [Errores de línea de comandos](#cloud-sessions-are-disabled-by-your-organizations-policy) |

200| `Cloud sessions need a claude.ai sign-in` | [No se puede obtener el UUID de la organización](/docs/es/claude-code-on-the-web#unable-to-get-organization-uuid) |

200| `Error: --json-schema is not a valid JSON Schema` | [Errores de línea de comandos](#the-json-schema-value-is-not-a-valid-json-schema) |201| `Error: --json-schema is not a valid JSON Schema` | [Errores de línea de comandos](#the-json-schema-value-is-not-a-valid-json-schema) |

201| `Error: Invalid --agents configuration:` | [Errores de línea de comandos](#invalid-agents-configuration) |202| `Error: Invalid --agents configuration:` | [Errores de línea de comandos](#invalid-agents-configuration) |

202| `Error: --agents takes a JSON object, or a file path only with --print (-p)` | [Errores de línea de comandos](#invalid-agents-configuration) |203| `Error: --agents takes a JSON object, or a file path only with --print (-p)` | [Errores de línea de comandos](#invalid-agents-configuration) |

Details

733You are a security reviewer. Read the changed files and report injection, authentication, and secrets-handling risks.733You are a security reviewer. Read the changed files and report injection, authentication, and secrets-handling risks.

734```734```

735 735 

736Este agente se llama `my-plugin:security-reviewer`, y el usuario puede [invocarlo explícitamente](/docs/es/sub-agents#invoke-subagents-explicitly) con `@agent-my-plugin:security-reviewer`. La forma del nombre es `<plugin>:<name>`, donde `<name>` viene del frontmatter, o del nombre del archivo cuando no hay ninguno.736Este agente se llama `my-plugin:security-reviewer`, y el usuario puede [invocarlo explícitamente](/docs/es/sub-agents#invoke-subagents-explicitly) con `@agent-my-plugin:security-reviewer`. La forma del nombre es `<plugin>:<name>`, donde `<name>` viene del campo `name` del frontmatter, o del nombre del archivo cuando falta ese campo.

737 737 

738La clave de manifiesto `agents` reemplaza el escaneo de `agents/`.738La clave de manifiesto `agents` reemplaza el escaneo de `agents/`.

739 739 

Details

428 428 

429| Elemento | Qué dibuja | Dónde |429| Elemento | Qué dibuja | Dónde |

430| :- | :- | :- |430| :- | :- | :- |

431| `Box` | Un contenedor flex. Acepta props de diseño como `flexDirection`, `columnGap`, `padding`, `borderStyle` y `width`. | En todas partes |431| `Box` | Un contenedor flex. Acepta props de diseño como `flexDirection`, `columnGap`, `padding`, [`borderStyle`](/docs/es/plugins/mods/reference#box-border-styles) y `width`. | En todas partes |

432| `Text` | Texto con estilo. Acepta `color`, `bold`, `dimColor`, `italic` y `wrap`. Un `color` es una clave del tema o un color como `'red'`. Un `wrap` es `'wrap'`, `'truncate'`, `'truncate-start'`, `'truncate-middle'` o `'truncate-end'`. | En todas partes |432| `Text` | Texto con estilo. Acepta `color`, `bold`, `dimColor`, `italic` y `wrap`. Un `color` es una clave del tema o un color como `'red'`. Un `wrap` es `'wrap'`, `'truncate'`, `'truncate-start'`, `'truncate-middle'` o `'truncate-end'`. | En todas partes |

433| `Button` | Un control que llama a `onPress` | En todas partes |433| `Button` | Un control que llama a `onPress` | En todas partes |

434| `Link`, `Code`, `Markdown` | Un enlace con `href` y una `label` opcional, un bloque de código y texto con el mismo formato que las respuestas de Claude. `Markdown` recibe su contenido en una prop `text`, no en `children`, y necesita una `key` cuando pasas `onLinkPress`. | En todas partes |434| `Link`, `Code`, `Markdown` | Un enlace con `href` y una `label` opcional, un bloque de código y texto con el mismo formato que las respuestas de Claude. `Markdown` recibe su contenido en una prop `text`, no en `children`, y necesita una `key` cuando pasas `onLinkPress`. | En todas partes |


563Muchos paneles son un campo de texto con una lista debajo. El ejemplo de esta sección es un panel de notas: escribes una nota y pulsas Enter para añadirla, y cada nota tiene un botón `x` que la elimina. Con dos notas añadidas, la terminal dibuja el panel así:563Muchos paneles son un campo de texto con una lista debajo. El ejemplo de esta sección es un panel de notas: escribes una nota y pulsas Enter para añadirla, y cada nota tiene un botón `x` que la elimina. Con dos notas añadidas, la terminal dibuja el panel así:

564 564 

565```text theme={null}565```text theme={null}

566╭──────────────────────────────────────────────────────────╮566╭────────────────────────────────────────────────────────✕─╮

567│ Note: Type a note and press Enter ⏎ add ✕ │567│ Note: Type a note and press Enter ⏎ add │

568│ x buy milk │568│ x buy milk │

569│ x call bob │569│ x call bob │

570╰──────────────────────────────────────────────────────────╯570╰──────────────────────────────────────────────────────────╯

571```571```

572 572 

573La `✕` del borde superior es la marca propia de Claude Code para cerrar el panel.

574 

573El ejemplo usa estas técnicas:575El ejemplo usa estas técnicas:

574 576 

575* **Recibir texto escrito**: un `Input` llama a `onSubmit(value)` con el texto del campo cuando el usuario pulsa Enter, y a `onInput(value)` en cada cambio577* **Recibir texto escrito**: un `Input` llama a `onSubmit(value)` con el texto del campo cuando el usuario pulsa Enter, y a `onInput(value)` en cada cambio

Details

242Para ajustar un árbol a su punto de renderizado, lee estas props en el hook:242Para ajustar un árbol a su punto de renderizado, lee estas props en el hook:

243 243 

244* **Ancho de un `Pane` o de la banda**: dibuja según `e.props.bodyColumns`244* **Ancho de un `Pane` o de la banda**: dibuja según `e.props.bodyColumns`

245* **Altura de un `Pane` junto a la transcripción**: cuando `e.props.placement` es `'dock'`, `e.props.scroll.bodyRows` es el número de filas que tiene el panel245* **Altura de un `Pane` junto a la transcripción**: cuando `e.props.placement` es `'dock'`, `e.props.scroll.bodyRows` es el número de filas que tiene el panel para tu árbol

246* **Altura de un `Pane` encima del prompt**: cuando `e.props.placement` es `'inline'`, el panel crece con tu árbol hasta un límite, y `bodyRows` es ese límite. El [campo `rows` de `$.ui.open`](/docs/es/plugins/mods/interface#open-a-pane-at-the-right-time) solicita un límite distinto.246* **Altura de un `Pane` encima del prompt**: cuando `e.props.placement` es `'inline'`, el panel crece con tu árbol hasta un límite, y `bodyRows` es ese límite. El [campo `rows` de `$.ui.open`](/docs/es/plugins/mods/interface#open-a-pane-at-the-right-time) solicita un límite distinto.

247 247 

248Un árbol más alto que el panel se desplaza como un todo.248Un árbol más alto que el panel se desplaza como un todo.


255 255 

256| Elemento | Props principales | Terminal | Escritorio |256| Elemento | Props principales | Terminal | Escritorio |

257| :- | :- | :-: | :-: |257| :- | :- | :-: | :-: |

258| [`Box`](/docs/es/plugins/mods/interface#build-a-tree-from-elements) | `key`, diseño flex, `gap`, `padding`, `margin`, `width`, `height`, `borderStyle`, `backgroundColor`, `position`, `hover` | ✓ | ✓ |258| [`Box`](/docs/es/plugins/mods/interface#build-a-tree-from-elements) | `key`, diseño flex, `gap`, `padding`, `margin`, `width`, `height`, [`borderStyle`](#box-border-styles), `backgroundColor`, `position`, `hover` | ✓ | ✓ |

259| [`Text`](/docs/es/plugins/mods/interface#build-a-tree-from-elements) | `color`, `backgroundColor`, `bold`, `italic`, `underline`, `dimColor`, `inverse`, `wrap` | ✓ | ✓ |259| [`Text`](/docs/es/plugins/mods/interface#build-a-tree-from-elements) | `color`, `backgroundColor`, `bold`, `italic`, `underline`, `dimColor`, `inverse`, `wrap` | ✓ | ✓ |

260| [`Button`](/docs/es/plugins/mods/interface#respond-to-presses-and-typing) | `key`, `label`, `onPress`, `hotkey`, `plain`, `dimColor`, `autoFocus`, `action` | ✓ | ✓ |260| [`Button`](/docs/es/plugins/mods/interface#respond-to-presses-and-typing) | `key`, `label`, `onPress`, `hotkey`, `plain`, `dimColor`, `autoFocus`, `action` | ✓ | ✓ |

261| `Link` | `href`, `label` | ✓ | ✓ |261| `Link` | `href`, `label` | ✓ | ✓ |


270 270 

271Más reglas de `Button`: `action` nombra una de las propias [acciones de atajos de teclado](/docs/es/keybindings) de Claude Code, y el atajo del usuario para ella presiona el botón cuando ese atajo es un acorde o una tecla con modificador. Un `hotkey` de dígito en un botón de la banda también se activa cuando el usuario escribe solo ese dígito en un prompt vacío y hace una pausa. Cuando dos botones de un mismo dibujo nombran el mismo `hotkey`, el último se queda con él. `autoFocus` solo acepta `true` en cualquier control, así que omite la prop para dejarla desactivada.271Más reglas de `Button`: `action` nombra una de las propias [acciones de atajos de teclado](/docs/es/keybindings) de Claude Code, y el atajo del usuario para ella presiona el botón cuando ese atajo es un acorde o una tecla con modificador. Un `hotkey` de dígito en un botón de la banda también se activa cuando el usuario escribe solo ese dígito en un prompt vacío y hace una pausa. Cuando dos botones de un mismo dibujo nombran el mismo `hotkey`, el último se queda con él. `autoFocus` solo acepta `true` en cualquier control, así que omite la prop para dejarla desactivada.

272 272 

273<h3 id="box-border-styles">

274 Estilos de borde de `Box`

275</h3>

276 

277Para dibujar un borde alrededor de un `Box`, establece su `borderStyle` en uno de estos nombres, como en `borderStyle: 'round'`. Cada fila indica lo que dibuja la terminal para ese nombre y muestra el borde superior.

278 

279| `borderStyle` | Lo que dibuja la terminal | Borde superior |

280| :- | :- | :- |

281| `'single'` | Líneas finas con esquinas cuadradas | `┌──┐` |

282| `'double'` | Líneas dobles | `╔══╗` |

283| `'round'` | Líneas finas con esquinas redondeadas | `╭──╮` |

284| `'bold'` | Líneas gruesas | `┏━━┓` |

285| `'singleDouble'` | Líneas finas arriba y abajo, líneas dobles en los lados | `╓──╖` |

286| `'doubleSingle'` | Líneas dobles arriba y abajo, líneas finas en los lados | `╒══╕` |

287| `'classic'` | Los caracteres ASCII `+`, `-` y `\|` | `+--+` |

288| `'arrow'` | Flechas que apuntan hacia el interior del `Box` | `↘↓↓↙` |

289| `'dashed'` | Líneas discontinuas con esquinas en blanco | `╌╌` |

290| `'quote'` | Una barra, `▎`, a lo largo del lado izquierdo y celdas en blanco en los otros tres lados | En blanco |

291 

292Un `Box` cuyo `borderStyle` nombra cualquier otra cosa, como `'rounded'`, se dibuja sin borde.

293 

273<h2 id="limits">294<h2 id="limits">

274 Límites295 Límites

275</h2>296</h2>

Details

15<Note>15<Note>

16 Estos casos se tratan en otras páginas:16 Estos casos se tratan en otras páginas:

17 17 

18 * **Por qué los alcances, la caché y la precedencia se comportan de la manera que lo hacen**: lea [Plugin loading reference](/docs/es/plugins/loading)18 * **Por qué los alcances, la caché y la precedencia se comportan de la manera en que lo hacen**: lee la [referencia de carga de plugins](/docs/es/plugins/loading)

19 * **Buscar un indicador, campo o comando**: use la [plugin commands reference](/docs/es/plugins/cli-reference), la [manifest reference](/docs/es/plugins/manifest-reference), o la [marketplace reference](/docs/es/plugins/marketplace-reference)19 * **Buscar un flag, campo o comando**: usa la [referencia de comandos de plugins](/docs/es/plugins/cli-reference), la [referencia del manifiesto](/docs/es/plugins/manifest-reference) o la [referencia de marketplaces](/docs/es/plugins/marketplace-reference)

20 * **Un mensaje `hooks module not loaded` o `hooks module did not load`**: el plugin es un [mod](/docs/es/plugins/mods/overview), así que lee [El mod no se carga](/docs/es/plugins/mods/troubleshoot#the-mod-doesn’t-load)

20</Note>21</Note>

21 22 

22Busque el mensaje exacto que vio. Cada mensaje se enumera bajo la etapa que lo produce, que no siempre es el comando que ejecutó. Por ejemplo, una instalación puede fallar porque falta un mercado, por lo que ese mensaje está bajo [Add a marketplace](#add-a-marketplace).23Busque el mensaje exacto que vio. Cada mensaje se enumera bajo la etapa que lo produce, que no siempre es el comando que ejecutó. Por ejemplo, una instalación puede fallar porque falta un mercado, por lo que ese mensaje está bajo [Add a marketplace](#add-a-marketplace).

Details

43 <Step title="Abrir la consola de administración">43 <Step title="Abrir la consola de administración">

44 En la consola de claude.ai, ve a [**Organization settings > Claude Code > Managed settings**](https://claude.ai/admin-settings/claude-code).44 En la consola de claude.ai, ve a [**Organization settings > Claude Code > Managed settings**](https://claude.ai/admin-settings/claude-code).

45 45 

46 Si el enlace te redirige a una página de Organization settings diferente en lugar de la página de Claude Code, tu cuenta no tiene el rol requerido. Los roles de Admin y otros roles que no sean Owner no pueden ver ni editar la configuración administrada, así que pide a un Owner o Primary Owner de tu organización que realice el cambio. Consulta [Control de acceso](#access-control).46 En una organización Team o Enterprise, si la página indica que no tienes acceso, pide a un [Owner o Primary Owner](#access-control) que realice el cambio.

47 </Step>47 </Step>

48 48 

49 <Step title="Definir tu configuración">49 <Step title="Definir tu configuración">

sessions.md +3 −3

Details

83* Terminal: `claude --continue`, `claude --resume <session-id>` o `claude --resume <name>` cuando el nombre coincide con una sesión, sin `-p`. Claude Code restaura el modo de permisos en el que estaba la sesión, excepto en los casos de la tabla. Pase `--permission-mode` o `--dangerously-skip-permissions` para anular el modo restaurado.83* Terminal: `claude --continue`, `claude --resume <session-id>` o `claude --resume <name>` cuando el nombre coincide con una sesión, sin `-p`. Claude Code restaura el modo de permisos en el que estaba la sesión, excepto en los casos de la tabla. Pase `--permission-mode` o `--dangerously-skip-permissions` para anular el modo restaurado.

84* No interactivo: `claude -p --resume` o `claude -p --continue`. Claude Code inicia la ejecución en el modo de permisos en el que se iniciaría una nueva ejecución de `claude -p`, excepto que una sesión que terminó en modo de plan se reanuda en modo de plan bajo las [condiciones a continuación](#resume-in-plan-mode-with-p).84* No interactivo: `claude -p --resume` o `claude -p --continue`. Claude Code inicia la ejecución en el modo de permisos en el que se iniciaría una nueva ejecución de `claude -p`, excepto que una sesión que terminó en modo de plan se reanuda en modo de plan bajo las [condiciones a continuación](#resume-in-plan-mode-with-p).

85* VS Code: el panel de conversación de la extensión. La tabla cubre solo una conversación que terminó en modo de plan; para el resto, consulte [reanudar conversaciones pasadas](/docs/es/vs-code#resume-past-conversations).85* VS Code: el panel de conversación de la extensión. La tabla cubre solo una conversación que terminó en modo de plan; para el resto, consulte [reanudar conversaciones pasadas](/docs/es/vs-code#resume-past-conversations).

86* Selector de sesiones en el lanzamiento: una sesión que selecciona del [selector de sesiones](#use-the-session-picker), ya sea que lo haya abierto con `claude --resume` solo, `claude --from-pr` o un nombre que coincida con más de una sesión. Claude Code no restaura el modo de permisos almacenado. Inicia la sesión en el modo de permisos en el que iniciaría una nueva sesión desde la misma línea de comandos.86* Selector de sesiones en el lanzamiento: una sesión que seleccionas del [selector de sesiones](#use-the-session-picker), ya sea que lo hayas abierto con `claude --resume` solo, `claude --from-pr` o un nombre que coincida con más de una sesión. Claude Code inicia la sesión en el modo de permisos en el que iniciaría una nueva sesión desde la misma línea de comandos, excepto que una sesión que terminó en modo plan se reanuda en modo plan a menos que pases `--permission-mode`, `--dangerously-skip-permissions` o `--fork-session`. No se restaura ningún otro modo de permisos almacenado.

87* `/resume` dentro de una sesión, con o sin argumento: Claude Code no restaura el modo de permisos almacenado. La conversación a la que cambia continúa en el modo de permisos en el que está su sesión actual.87* `/resume` dentro de una sesión, con o sin argumento: la conversación a la que cambias continúa en el modo de permisos en el que está tu sesión actual, excepto que una conversación que terminó en modo plan se reanuda en modo plan, incluso si iniciaste Claude Code con `--permission-mode` o `--dangerously-skip-permissions`. Si esa conversación ya estaba abierta antes en esta ejecución de Claude Code, como la conversación con la que empezaste o una que dejaste con `/clear` o `/resume`, continúa en cambio en tu modo de permisos actual.

88 88 

89Restaurar el modo de plan en las rutas no interactivas y VS Code requiere Claude Code v2.1.246 o posterior. Cada fila nombra el modo de permisos en el que terminó la sesión, cuál de las rutas de terminal, no interactiva y VS Code la reanuda, y el modo de permisos en el que Claude Code inicia la sesión reanudada.89Restaurar el modo de plan en las rutas no interactivas y VS Code requiere Claude Code v2.1.246 o posterior. Cada fila nombra el modo de permisos en el que terminó la sesión, cuál de las rutas de terminal, no interactiva y VS Code la reanuda, y el modo de permisos en el que Claude Code inicia la sesión reanudada.

90 90 

91| Sesión terminada en | Cómo reanuda | Modo de permisos después de reanudar |91| Sesión terminada en | Cómo reanuda | Modo de permisos después de reanudar |

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

93| `bypassPermissions` | Terminal | El modo de permisos en el que se iniciaría una nueva sesión. Para [omitir permisos](/docs/es/permission-modes#skip-all-checks-with-bypasspermissions-mode) de nuevo, habilítelo en el lanzamiento con una de sus banderas de lanzamiento o `permissions.defaultMode: "bypassPermissions"` en [configuración de usuario, `--settings` o configuración administrada](/docs/es/settings-reference#permissions-defaultmode) |93| `bypassPermissions` | Terminal | El modo de permisos en el que se iniciaría una nueva sesión. Para [omitir permisos](/docs/es/permission-modes#skip-all-checks-with-bypasspermissions-mode) de nuevo, habilítelo en el lanzamiento con una de sus banderas de lanzamiento o `permissions.defaultMode: "bypassPermissions"` en [configuración de usuario, `--settings` o configuración administrada](/docs/es/settings-reference#permissions-defaultmode) |

94| `plan` | Terminal | El modo de permisos en el que se iniciaría una nueva sesión |94| `plan` | Terminal | Modo plan. Con `--fork-session`, el modo de permisos en el que se iniciaría una nueva sesión |

95| `auto` | Terminal | `auto`, solo cuando su cuenta aún cumple con los [requisitos del modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode) |95| `auto` | Terminal | `auto`, solo cuando su cuenta aún cumple con los [requisitos del modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode) |

96| Manual | Terminal | Manual cuando una nueva sesión se iniciaría en modo automático desde el [valor predeterminado integrado](/docs/es/permission-modes#which-mode-a-session-starts-in). Cuando un `defaultMode` de un archivo de configuración [entra en vigor](/docs/es/permission-modes#which-mode-a-session-starts-in), Claude Code inicia la sesión reanudada en ese modo en su lugar |96| Manual | Terminal | Manual cuando una nueva sesión se iniciaría en modo automático desde el [valor predeterminado integrado](/docs/es/permission-modes#which-mode-a-session-starts-in). Cuando un `defaultMode` de un archivo de configuración [entra en vigor](/docs/es/permission-modes#which-mode-a-session-starts-in), Claude Code inicia la sesión reanudada en ese modo en su lugar |

97| `plan` | No interactivo, bajo las [condiciones a continuación](#resume-in-plan-mode-with-p) | Modo de plan |97| `plan` | No interactivo, bajo las [condiciones a continuación](#resume-in-plan-mode-with-p) | Modo de plan |

sub-agents.md +2 −2

Details

310 310 

311| Campo | Requerido | Descripción |311| Campo | Requerido | Descripción |

312| :- | :- | :- |312| :- | :- | :- |

313| `name` | Sí | Identificador único, como `code-reviewer` o `reviewer-v2`. [Hooks](/docs/es/hooks#subagentstart) reciben este valor como `agent_type`. El nombre del archivo no tiene que coincidir. Los nombres no pueden contener `:`, que está reservado para [identificadores con alcance de plugin](/docs/es/plugins/overview) como `my-plugin:reviewer`. Claude Code no carga un archivo cuyo nombre contiene uno y registra un error en el registro de depuración. Antes de v2.1.218, tales nombres fueron aceptados |313| `name` | Sí | Identificador único de 256 caracteres como máximo, como `code-reviewer` o `reviewer-v2`. Los [hooks](/docs/es/hooks#subagentstart) reciben este valor como `agent_type`. El nombre del archivo no tiene que coincidir. Los nombres no pueden contener `:`, que está reservado para [identificadores con alcance de plugin](/docs/es/plugins/overview) como `my-plugin:reviewer` |

314| `description` | Sí | Cuándo Claude debe delegar en este subagente |314| `description` | Sí | Cuándo Claude debe delegar en este subagente |

315| `tools` | No | [Herramientas](#available-tools) que el subagente puede usar, como una cadena separada por comas como `Read, Grep, Bash` o una lista YAML. Hereda todas las herramientas disponibles para subagentes si se omite. Si ninguna entrada en la lista se resuelve a una herramienta, el subagente generalmente [falla al lanzarse](/docs/es/errors#agent-would-be-spawned-with-zero-tools) con un error nombrando las entradas. Para precargar Skills en el contexto, use el campo `skills` en lugar de listar `Skill` aquí |315| `tools` | No | [Herramientas](#available-tools) que el subagente puede usar, como una cadena separada por comas como `Read, Grep, Bash` o una lista YAML. Hereda todas las herramientas disponibles para subagentes si se omite. Si ninguna entrada en la lista se resuelve a una herramienta, el subagente generalmente [falla al lanzarse](/docs/es/errors#agent-would-be-spawned-with-zero-tools) con un error nombrando las entradas. Para precargar Skills en el contexto, use el campo `skills` en lugar de listar `Skill` aquí |

316| `disallowedTools` | No | Herramientas a denegar, eliminadas de la lista heredada o especificada. Mismo formato que `tools`. Una entrada con un especificador, como `Bash(git push *)`, aún [elimina la herramienta completa](#available-tools) |316| `disallowedTools` | No | Herramientas a denegar, eliminadas de la lista heredada o especificada. Mismo formato que `tools`. Una entrada con un especificador, como `Bash(git push *)`, aún [elimina la herramienta completa](#available-tools) |


348 348 

349* **Sin `name`**: Claude Code trata el archivo como documentación guardada junto a sus agentes.349* **Sin `name`**: Claude Code trata el archivo como documentación guardada junto a sus agentes.

350* **Un `---` de apertura que no es la primera línea del archivo**: Claude Code lee el archivo como si no tuviera frontmatter y lo trata como documentación.350* **Un `---` de apertura que no es la primera línea del archivo**: Claude Code lee el archivo como si no tuviera frontmatter y lo trata como documentación.

351* **Un `name` que comienza con `-` o contiene `:`**: Claude Code omite el archivo y escribe un error en el registro de depuración. Consulte la fila `name` en la tabla anterior.351* **Un `name` que comienza con `-`, contiene `:` o tiene más de 256 caracteres**: Claude Code omite el archivo y escribe un error en el registro de depuración.

352* **Un `name` pero sin `description`**: Claude Code omite el archivo y escribe la razón en el registro de depuración.352* **Un `name` pero sin `description`**: Claude Code omite el archivo y escribe la razón en el registro de depuración.

353* **YAML que no se analiza**: Claude Code no lee campos del archivo, lo omite y escribe el error de análisis en el registro de depuración.353* **YAML que no se analiza**: Claude Code no lee campos del archivo, lo omite y escribe el error de análisis en el registro de depuración.

354 354 

vs-code.md +1 −1

Details

606| `environmentVariables` | `[]` | Establecer variables de entorno para el proceso de Claude. Para una configuración compartida, usa en su lugar la configuración de Claude Code. Una entrada [`CLAUDE_CONFIG_DIR`](/docs/es/env-vars) solo se aplica cuando su valor es una ruta absoluta; la extensión no expande `~` e ignora un valor relativo. |606| `environmentVariables` | `[]` | Establecer variables de entorno para el proceso de Claude. Para una configuración compartida, usa en su lugar la configuración de Claude Code. Una entrada [`CLAUDE_CONFIG_DIR`](/docs/es/env-vars) solo se aplica cuando su valor es una ruta absoluta; la extensión no expande `~` e ignora un valor relativo. |

607| `disableLoginPrompt` | `false` | Omitir mensajes de autenticación (para configuraciones de proveedores de terceros) |607| `disableLoginPrompt` | `false` | Omitir mensajes de autenticación (para configuraciones de proveedores de terceros) |

608| `allowDangerouslySkipPermissions` | `false` | Agrega Bypass permissions al selector de modo. Úselo solo en espacios aislados sin acceso a Internet. |608| `allowDangerouslySkipPermissions` | `false` | Agrega Bypass permissions al selector de modo. Úselo solo en espacios aislados sin acceso a Internet. |

609| `claudeProcessWrapper` | - | Ejecutable utilizado para iniciar el proceso de Claude. La ruta del binario incluido se pasa como argumento cuando está presente. Establezca esto en un binario `claude` instalado por separado si la compilación de la extensión no incluye uno para su plataforma. En una configuración envuelta, las conversaciones comienzan en modo Manual a menos que establezca `initialPermissionMode` o haya seleccionado Manual, Editar automáticamente o Auto en una conversación anterior, porque la extensión omite los ajustes y los pasos predeterminados integrados allí; consulte [Switch permission modes](/docs/es/permission-modes#switch-permission-modes). Un error "Unsupported platform" en la activación significa que no hay binario incluido para su plataforma; consulte [which platforms have prebuilt binaries](/docs/es/troubleshoot-install#native-binary-not-found-after-npm-install). |609| `claudeProcessWrapper` | - | Ejecutable utilizado para iniciar el proceso de Claude. La ruta del binario incluido se pasa como argumento cuando está presente. Establece esto en un binario `claude` instalado por separado si la compilación de la extensión no incluye uno para tu plataforma. |

610 610 

611<h2 id="use-a-screen-reader">611<h2 id="use-a-screen-reader">

612 Usar un lector de pantalla612 Usar un lector de pantalla