SpyBara
Go Premium

Documentation 2026-11-05 23:03 UTC to 2026-11-06 23:01 UTC

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

167 167 

168### Permisos de herramientas168### Permisos de herramientas

169 169 

170Claude determina qué herramientas llamar basándose en la tarea, pero usted controla si esas llamadas pueden ejecutarse. Puede aprobar automáticamente herramientas específicas, bloquear otras completamente o requerir aprobación para todo. Tres opciones funcionan juntas para determinar qué se ejecuta:170Claude determina qué herramientas llamar basándose en la tarea, pero tú controlas si esas llamadas pueden ejecutarse. Usa estas opciones para aprobar automáticamente herramientas, bloquear herramientas y establecer el modo de permisos:

171 171 

172* **`allowed_tools` / `allowedTools`** aprueba automáticamente las herramientas listadas. Un agente de solo lectura con `["Read", "Glob", "Grep"]` en su lista de herramientas permitidas ejecuta esas herramientas sin pedir confirmación, salvo las lecturas desde [rutas de red](https://code.claude.com/docs/es/permissions.md#network-paths). Las herramientas no listadas aún están disponibles, y las llamadas a ellas que necesitan aprobación se transfieren al modo de permisos y a `canUseTool`.172* **`allowed_tools` / `allowedTools`** aprueba automáticamente las herramientas listadas. Un agente de solo lectura con `["Read", "Glob", "Grep"]` en su lista de herramientas permitidas ejecuta esas herramientas sin pedir confirmación, salvo las lecturas desde [rutas de red](https://code.claude.com/docs/es/permissions.md#network-paths). Las herramientas no listadas aún están disponibles, y las llamadas a ellas que necesitan aprobación se transfieren al modo de permisos y a `canUseTool`.

173* **`disallowed_tools` / `disallowedTools`** bloquea las herramientas listadas, independientemente de otras configuraciones. Vea [Permisos](https://code.claude.com/docs/es/agent-sdk/permissions.md) para el orden en que se verifican las reglas antes de que se ejecute una herramienta.173* **`disallowed_tools` / `disallowedTools`** bloquea las herramientas listadas, independientemente de otras configuraciones. Vea [Permisos](https://code.claude.com/docs/es/agent-sdk/permissions.md) para el orden en que se verifican las reglas antes de que se ejecute una herramienta.

Details

303 303 

304La API reporta el conteo de salida real al final de la respuesta, y Claude Code lo añade al mensaje de resultado. Lea los tokens de salida del `usage` del resultado, o de `modelUsage` para un desglose por modelo.304La API reporta el conteo de salida real al final de la respuesta, y Claude Code lo añade al mensaje de resultado. Lea los tokens de salida del `usage` del resultado, o de `modelUsage` para un desglose por modelo.

305 305 

306Para observar el conteo de salida de una respuesta crecer mientras se transmite, establezca `includePartialMessages`, o `include_partial_messages` en Python, y lea `usage` de cada evento de flujo `message_delta`, tipado como [`SDKPartialAssistantMessage`](https://code.claude.com/docs/es/agent-sdk/typescript#sdkpartialassistantmessage) en TypeScript y [`StreamEvent`](https://code.claude.com/docs/es/agent-sdk/python#streamevent) en Python.

307 

308### Rastrear costos en conversaciones fallidas306### Rastrear costos en conversaciones fallidas

309 307 

310Tanto los mensajes de resultado de éxito como de error incluyen `usage` y `total_cost_usd`; en Python ambos campos se tipan como opcionales, así que verifique que no sean `None` antes de leerlos.308Tanto los mensajes de resultado de éxito como de error incluyen `usage` y `total_cost_usd`; en Python ambos campos se tipan como opcionales, así que verifique que no sean `None` antes de leerlos.

Details

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

227| `onFailure` | `"continue" \| "block"` | `undefined` | Qué ocurre cuando falla una devolución de llamada. Establece `"block"` para [bloquear la acción cuando falla una devolución de llamada](#block-the-action-when-a-callback-fails). En Python, usa `on_failure` |227| `onFailure` | `"continue" \| "block"` | `undefined` | Qué ocurre cuando falla una devolución de llamada. Establece `"block"` para [bloquear la acción cuando falla una devolución de llamada](#block-the-action-when-a-callback-fails). En Python, usa `on_failure` |

228 228 

229Usa el patrón `matcher` para dirigirte a herramientas específicas siempre que sea posible. Un matcher con `'Bash'` solo se ejecuta para comandos Bash, mientras que omitir el patrón ejecuta tus devoluciones de llamada para cada ocurrencia del evento.229Usa el patrón `matcher` para dirigirte a herramientas específicas siempre que sea posible. Con un matcher `'Bash'`, tus devoluciones de llamada se ejecutan para comandos Bash. En Claude Code v2.1.314 o posterior, también se ejecutan en `PreToolUse` y `PermissionRequest` para comandos de Monitor, que [pueden denegar pero no aprobar](https://code.claude.com/docs/es/hooks.md#match-monitor-commands). Sin matcher, se ejecutan para cada ocurrencia del evento.

230 230 

231### Funciones de devolución de llamada231### Funciones de devolución de llamada

232 232 

Details

70>70>

71> La ruta debe apuntar al directorio raíz del plugin: el directorio padre de `skills/`, `agents/`, `hooks/`, `commands/`, o `.claude-plugin/`.71> La ruta debe apuntar al directorio raíz del plugin: el directorio padre de `skills/`, `agents/`, `hooks/`, `commands/`, o `.claude-plugin/`.

72 72 

73### Recargar plugins en una sesión en ejecución

74 

75Para aplicar un cambio en los skills, comandos, agentes o hooks de un plugin sin iniciar una nueva sesión, llama a [`reloadPlugins()`](https://code.claude.com/docs/es/agent-sdk/typescript#query-object) en el objeto `Query` del SDK de TypeScript. El SDK de Python no expone un método equivalente; en su lugar, envía [`/reload-plugins`](https://code.claude.com/docs/es/plugins/cli-reference#reload-plugins) como prompt en la sesión.

76 

73### Agregar plugins a una sesión en ejecución77### Agregar plugins a una sesión en ejecución

74 78 

75En el SDK de TypeScript, llama a [`reloadPlugins()`](https://code.claude.com/docs/es/agent-sdk/typescript#load-more-plugin-folders-with-addplugins) en el objeto `Query` que devolvió `query()`, e indica el directorio del plugin en la opción `addPlugins` de esa llamada. Cada entrada de `addPlugins` es un objeto `{ type: "local", path }` con una `path` absoluta. Requiere TypeScript Agent SDK v0.3.301 o posterior.79En el SDK de TypeScript, llama a [`reloadPlugins()`](https://code.claude.com/docs/es/agent-sdk/typescript#load-more-plugin-folders-with-addplugins) en el objeto `Query` que devolvió `query()`, e indica el directorio del plugin en la opción `addPlugins` de esa llamada. Cada entrada de `addPlugins` es un objeto `{ type: "local", path }` con una `path` absoluta. Requiere TypeScript Agent SDK v0.3.301 o posterior.

Details

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

1386| `disabled` | `type` | Deshabilitar el pensamiento |1386| `disabled` | `type` | Deshabilitar el pensamiento |

1387 1387 

1388El campo opcional `display` controla si el texto del pensamiento se devuelve `"summarized"` u `"omitted"`. En Claude Opus 4.7 y posteriores, el predeterminado de la API es `"omitted"`, así que establece `"summarized"` para recibir el contenido del pensamiento en las salidas [`ThinkingBlock`](#thinkingblock). Claude Code no pasa tu valor de `display` a algunos proveedores, como Amazon Bedrock y Agent Platform de Google Cloud. En esos proveedores, Opus 4.7 y posteriores devuelven salidas `ThinkingBlock` vacías incluso cuando estableces `display` en `"summarized"`.1388El campo opcional `display` controla si el texto del pensamiento se devuelve `"summarized"` u `"omitted"`. En Claude Opus 4.7 y posteriores, el predeterminado de la API es `"omitted"`, así que establece `"summarized"` para recibir el contenido del pensamiento en las salidas [`ThinkingBlock`](#thinkingblock). En proveedores como Amazon Bedrock y Agent Platform de Google Cloud, Claude Code no pasa `display` para los modelos anteriores que reconoce. Esos son Opus 4.6, Sonnet 4.6, Haiku 4.5 y modelos anteriores, que usan su valor predeterminado.

1389 1389 

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

1391 1391 


2517 2517 

2518### Ejemplo de uso de hook2518### Ejemplo de uso de hook

2519 2519 

2520Este ejemplo registra dos hooks: uno que bloquea comandos Bash peligrosos como `rm -rf /`, y otro que registra todo el uso de herramientas para auditoría. El hook de seguridad solo se ejecuta en comandos Bash (a través del `matcher`), mientras que el hook de registro se ejecuta en todas las herramientas.2520Este ejemplo registra dos hooks: uno que bloquea comandos Bash peligrosos como `rm -rf /`, y otro que registra todo el uso de herramientas para auditoría. Con su [matcher `Bash`](https://code.claude.com/docs/es/agent-sdk/hooks#matchers), el hook de seguridad se ejecuta en las llamadas a la herramienta Bash. El hook de registro no tiene matcher, por lo que se ejecuta en cada llamada a herramienta.

2521 2521 

2522```python theme={null}2522```python theme={null}

2523import asyncio2523import asyncio


3668 3668 

3669### `SandboxIgnoreViolations`3669### `SandboxIgnoreViolations`

3670 3670 

3671Configuración para ignorar violaciones de sandbox específicas.3671Violaciones que se omiten del informe de violaciones del sandbox. Cada clave coincide con parte de un comando, o `*` para todos los comandos, y cada valor enumera el texto que debe coincidir en una línea de violación: `{"*": ["/etc/hosts"]}` oculta las violaciones que mencionan `/etc/hosts`. Un acceso que coincide sigue estando bloqueado. Consulta [`sandbox.ignoreViolations`](https://code.claude.com/docs/es/settings-reference#sandbox-ignoreviolations).

3672 3672 

3673```python theme={null}3673```python theme={null}

3674class SandboxIgnoreViolations(TypedDict, total=False):3674SandboxIgnoreViolations = dict[str, list[str]]

3675 file: list[str]

3676 network: list[str]

3677```3675```

3678 3676 

3679| Propiedad | Tipo | Predeterminado | Descripción |

3680| :- | :- | :- | :- |

3681| `file` | `list[str]` | `[]` | Patrones de ruta de archivo para ignorar violaciones |

3682| `network` | `list[str]` | `[]` | Patrones de red para ignorar violaciones |

3683 

3684### Respaldo de permisos para comandos sin sandbox3677### Respaldo de permisos para comandos sin sandbox

3685 3678 

3686Cuando `allowUnsandboxedCommands` está habilitado, el modelo puede solicitar ejecutar comandos fuera del sandbox estableciendo `dangerouslyDisableSandbox: True` en la entrada de la herramienta. Estas solicitudes vuelven al sistema de permisos existente, lo que significa que se invocará su controlador `can_use_tool`, permitiéndole implementar lógica de autorización personalizada.3679Cuando `allowUnsandboxedCommands` está habilitado, el modelo puede solicitar ejecutar comandos fuera del sandbox estableciendo `dangerouslyDisableSandbox: True` en la entrada de la herramienta. Estas solicitudes vuelven al sistema de permisos existente, lo que significa que se invocará su controlador `can_use_tool`, permitiéndole implementar lógica de autorización personalizada.

Details

1931 1931 

1932El mismo par de campos aparece en [`SDKSystemMessage`](#sdksystemmessage) y en [`SDKControlInitializeResponse`](#sdkcontrolinitializeresponse), para que puedas leer el estado del modo rápido antes del primer turno.1932El mismo par de campos aparece en [`SDKSystemMessage`](#sdksystemmessage) y en [`SDKControlInitializeResponse`](#sdkcontrolinitializeresponse), para que puedas leer el estado del modo rápido antes del primer turno.

1933 1933 

1934El campo `origin` reenvía el [`SDKMessageOrigin`](#sdkmessageorigin) del mensaje de usuario que desencadenó este resultado. Los resultados que llevan `origin: { kind: "task-notification" }` incluyen:1934El campo `origin` contiene el [`SDKMessageOrigin`](#sdkmessageorigin) que Claude Code asignó al mensaje de usuario que desencadenó este resultado, no una copia del `origin` que enviaste. Entre los resultados que llevan `origin: { kind: "task-notification" }` están:

1935 1935 

1936* **Turnos de seguimiento sintéticos**: cuando el SDK inyecta un turno de seguimiento sintético, por ejemplo por una tarea en segundo plano terminada, el `SDKResultMessage` resultante lleva este tipo1936* **Turnos de seguimiento sintéticos**: cuando el SDK inyecta un turno de seguimiento sintético, por ejemplo por una tarea en segundo plano terminada, el `SDKResultMessage` resultante lleva este tipo

1937* **Tareas programadas que se dispararon y mensajes de otras sesiones**: las tareas programadas en la nube cuyo disparador se activó y los mensajes verificados por el servidor de tus otras sesiones también llegan con este tipo, cada uno con el `subkind` descrito en [Subtipos de task-notification](#task-notification-subkinds)1937* **Tareas programadas que se dispararon y mensajes de otras sesiones**: las tareas programadas en la nube cuyo disparador se activó y los mensajes verificados por el servidor de tus otras sesiones también llegan con este tipo, cada uno con el `subkind` descrito en [Subtipos de task-notification](#task-notification-subkinds)


1940 1940 

1941Cuando varias finalizaciones de tareas en segundo plano se encolan juntas, Claude Code puede responderlas en un solo turno en lugar de un turno por cada una. Cada finalización sigue produciendo su propio resultado con este origen. Todas las finalizaciones que Claude Code responde juntas, excepto la última, producen resultados vacíos con `num_turns: 0`, en orden, y el resultado de la última lleva el turno que las responde a todas.1941Cuando varias finalizaciones de tareas en segundo plano se encolan juntas, Claude Code puede responderlas en un solo turno en lugar de un turno por cada una. Cada finalización sigue produciendo su propio resultado con este origen. Todas las finalizaciones que Claude Code responde juntas, excepto la última, producen resultados vacíos con `num_turns: 0`, en orden, y el resultado de la última lleva el turno que las responde a todas.

1942 1942 

1943El campo está ausente en los resultados emitidos antes de cualquier turno del usuario, como los errores de inicio.1943`origin` no aparece cuando Claude Code no asignó ninguno, por ejemplo:

1944 

1945* En un turno que inicias con un mensaje que no tiene ni `origin` ni [`isSynthetic`](#sdkusermessage)

1946* En resultados emitidos antes de cualquier turno del usuario, como los errores de inicio

1944 1947 

1945Cuando un hook `PreToolUse` devuelve `permissionDecision: "defer"`, el resultado tiene `stop_reason: "tool_deferred"` y `deferred_tool_use` lleva el `id`, el `name` y el `input` de la herramienta pendiente. Lee este campo para mostrar la solicitud en tu propia interfaz y luego reanuda con el mismo `session_id` para continuar. Consulta [Diferir una llamada a herramienta para más tarde](https://code.claude.com/docs/es/hooks.md#defer-a-tool-call-for-later) para ver el recorrido completo.1948Cuando un hook `PreToolUse` devuelve `permissionDecision: "defer"`, el resultado tiene `stop_reason: "tool_deferred"` y `deferred_tool_use` lleva el `id`, el `name` y el `input` de la herramienta pendiente. Lee este campo para mostrar la solicitud en tu propia interfaz y luego reanuda con el mismo `session_id` para continuar. Consulta [Diferir una llamada a herramienta para más tarde](https://code.claude.com/docs/es/hooks.md#defer-a-tool-call-for-later) para ver el recorrido completo.

1946 1949 


2435 2438 

2436### `SDKMessageOrigin`2439### `SDKMessageOrigin`

2437 2440 

2438Procedencia de un mensaje con rol de usuario. Aparece como `origin` en [`SDKUserMessage`](#sdkusermessage) y se reenvía al [`SDKResultMessage`](#sdkresultmessage) correspondiente para que puedas saber qué activó un turno determinado.2441Procedencia de un mensaje con rol de usuario. Aparece como `origin` en [`SDKUserMessage`](#sdkusermessage). El [`SDKResultMessage`](#sdkresultmessage) de un turno incluye el `origin` que Claude Code asignó, para que puedas saber qué desencadenó ese turno.

2439 2442 

2440```typescript theme={null}2443```typescript theme={null}

2441type SDKMessageOrigin =2444type SDKMessageOrigin =


2462 | { kind: "unclassified" };2465 | { kind: "unclassified" };

2463```2466```

2464 2467 

2468Tu aplicación puede establecer estos tipos de `origin` en un mensaje que envía:

2469 

2470* `{ kind: "human" }`: lo que escribió el usuario

2471* `{ kind: "task-notification", subkind: "scheduled-trigger" }`: una [ejecución programada que declaras](#declare-a-scheduled-run)

2472 

2473Deja los demás tipos a Claude Code y a los servidores de Anthropic. Si estableces uno de esos tipos, Claude lee el mensaje como si fuera del usuario de forma predeterminada.

2474 

2475Para enviar texto que el usuario no escribió, como una página obtenida o la salida de otro agente, envíalo como un mensaje independiente con [`isSynthetic`](#sdkusermessage) establecido en `true` y sin establecer `origin`. Establece también [`client_composed`](#sdkusermessage) en `true`, para que el texto que empieza con `/` no se ejecute como un comando.

2476 

2465| `kind` | Significado |2477| `kind` | Significado |

2466| - | - |2478| - | - |

2467| `human` | Entrada directa del usuario final. Si tu aplicación reenvía lo que escribió el usuario como un mensaje de usuario, establece su `origin` en `{ kind: "human" }` de forma explícita: Claude Code trata un mensaje de usuario sin `origin` como no atribuido, y las verificaciones que exigen un prompt escrito por una persona, como la [palabra clave de flujo de trabajo `ultracode`](https://code.claude.com/docs/es/workflows#ask-for-a-workflow-in-your-prompt), no lo aceptan. Antes de v2.1.210, Claude Code trataba un `origin` ausente en un mensaje de usuario como entrada humana. |2479| `human` | Entrada directa del usuario final. Si tu aplicación reenvía lo que escribió el usuario como un mensaje de usuario, establece su `origin` en `{ kind: "human" }`. Sin ese `origin`, Claude sigue leyendo el mensaje como si fuera del usuario, pero las comprobaciones que requieren un prompt escrito por una persona, como la [palabra clave de flujo de trabajo `ultracode`](https://code.claude.com/docs/es/workflows#ask-for-a-workflow-in-your-prompt), no aceptan el mensaje. |

2468| `channel` | Mensaje que llega por un [canal](https://code.claude.com/docs/es/channels.md). `server` es el nombre del servidor MCP de origen. |2480| `channel` | Mensaje que llega por un [canal](https://code.claude.com/docs/es/channels.md). `server` es el nombre del servidor MCP de origen. |

2469| `peer` | Mensaje de otro agente: un [compañero de equipo](https://code.claude.com/docs/es/agent-teams.md) dentro del proceso o un [par entre sesiones](https://code.claude.com/docs/es/cross-session-messaging.md), es decir, otra de tus sesiones de Claude Code. Consulta [Campos de origen de par](#peer-origin-fields) para ver la semántica de cada campo y el modelo de confianza. |2481| `peer` | Mensaje de otro agente de Claude Code: un [compañero de equipo](https://code.claude.com/docs/es/agent-teams.md) dentro del proceso o un [par entre sesiones](https://code.claude.com/docs/es/cross-session-messaging.md), otra de tus sesiones de Claude Code. La [aplicación de escritorio](https://code.claude.com/docs/es/desktop.md#work-across-sessions), que retransmite esos mensajes entre tus sesiones, declara este tipo con [`fromMode`](#peer-origin-fields). Para retransmitir la salida de otro agente desde tu propia aplicación, establece `isSynthetic` y `client_composed` en su lugar. Consulta [Campos de origen peer](#peer-origin-fields) para conocer la semántica de cada campo y el modelo de confianza. |

2470| `task-notification` | Turno sintético inyectado para una entrega que llega sin un prompt nuevo del usuario, como una tarea en segundo plano terminada; consulta [`SDKTaskNotificationMessage`](#sdktasknotificationmessage) para esa rama. Un prompt que tu aplicación [declara como ejecución programada](#declare-a-scheduled-run) también lleva este tipo. El `subkind` opcional indica qué generó la notificación. Consulta [Subtipos de notificación de tarea](#task-notification-subkinds). |2482| `task-notification` | Turno sintético inyectado para una entrega que llega sin un prompt nuevo del usuario, como una tarea en segundo plano terminada; consulta [`SDKTaskNotificationMessage`](#sdktasknotificationmessage) para esa rama. Un prompt que tu aplicación [declara como ejecución programada](#declare-a-scheduled-run) también lleva este tipo. El `subkind` opcional indica qué generó la notificación. Consulta [Subtipos de notificación de tarea](#task-notification-subkinds). |

2471| `coordinator` | Mensaje de un coordinador de equipo en un [equipo de agentes](https://code.claude.com/docs/es/agent-teams.md). |2483| `coordinator` | Mensaje de un coordinador de equipo en un [equipo de agentes](https://code.claude.com/docs/es/agent-teams.md). |

2472| `auto-continuation` | Turno sintético inyectado cuando la sesión continúa sin una entrada nueva del usuario, como un resultado de comando que activa un prompt de seguimiento. |2484| `auto-continuation` | Turno sintético inyectado cuando la sesión continúa sin una entrada nueva del usuario, como un resultado de comando que activa un prompt de seguimiento. |

2473| `unclassified` | Turno inyectado cuyo origen no se pudo determinar. Requiere Claude Code v2.1.223 o posterior. Cuando Claude Code recibe un [`SDKUserMessage`](#sdkusermessage) con `isSynthetic: true` y no puede clasificarlo como ningún otro `kind`, establece este tipo al llegar el mensaje y le presenta el turno al modelo como una fuente que no es el usuario, en lugar de tratarlo como entrada humana. Tu aplicación no debe establecer este valor. |2485| `unclassified` | Mensaje marcado como no proveniente del usuario, como un [`SDKUserMessage`](#sdkusermessage) que envías con `isSynthetic: true`. Requiere Claude Code v2.1.223 o posterior. |

2474 2486 

2475### Subtipos de notificación de tarea2487### Subtipos de notificación de tarea

2476 2488 


2494Un origen `peer` identifica qué agente envió el mensaje: un [compañero de equipo](https://code.claude.com/docs/es/agent-teams.md) en el mismo proceso que envía a `main` con `SendMessage`, o un [par entre sesiones](https://code.claude.com/docs/es/cross-session-messaging.md), otra de tus sesiones de Claude Code. Los pares entre sesiones requieren Claude Code v2.1.224 o posterior en macOS y Linux; consulta la [disponibilidad de la mensajería entre sesiones](https://code.claude.com/docs/es/cross-session-messaging.md#availability) para conocer el requisito de Windows nativo. Un par entre sesiones puede ejecutarse en la misma máquina, o en [otra de tus máquinas](https://code.claude.com/docs/es/cross-session-messaging.md#message-sessions-on-other-machines) cuando su mensaje llega a través de [Remote Control](https://code.claude.com/docs/es/remote-control.md).2506Un origen `peer` identifica qué agente envió el mensaje: un [compañero de equipo](https://code.claude.com/docs/es/agent-teams.md) en el mismo proceso que envía a `main` con `SendMessage`, o un [par entre sesiones](https://code.claude.com/docs/es/cross-session-messaging.md), otra de tus sesiones de Claude Code. Los pares entre sesiones requieren Claude Code v2.1.224 o posterior en macOS y Linux; consulta la [disponibilidad de la mensajería entre sesiones](https://code.claude.com/docs/es/cross-session-messaging.md#availability) para conocer el requisito de Windows nativo. Un par entre sesiones puede ejecutarse en la misma máquina, o en [otra de tus máquinas](https://code.claude.com/docs/es/cross-session-messaging.md#message-sessions-on-other-machines) cuando su mensaje llega a través de [Remote Control](https://code.claude.com/docs/es/remote-control.md).

2495 2507 

2496* `from`: el nombre del compañero de equipo, o la dirección del remitente en el caso de un par entre sesiones. En un [mensaje unidireccional entre máquinas](https://code.claude.com/docs/es/cross-session-messaging.md#message-sessions-on-other-machines), el remitente no tiene dirección de respuesta y `from` es `"unknown"`. El valor lo escribe el remitente; `verifiedPeerPid` es la identidad verificada.2508* `from`: el nombre del compañero de equipo, o la dirección del remitente en el caso de un par entre sesiones. En un [mensaje unidireccional entre máquinas](https://code.claude.com/docs/es/cross-session-messaging.md#message-sessions-on-other-machines), el remitente no tiene dirección de respuesta y `from` es `"unknown"`. El valor lo escribe el remitente; `verifiedPeerPid` es la identidad verificada.

2497* `fromMode`: la clase de permisos de la sesión que envía, `bypass` o `prompting`, declarada por un host que retransmite un mensaje de par entre tus sesiones, como la [aplicación de escritorio](https://code.claude.com/docs/es/desktop.md#work-across-sessions). Claude Code lo lee en la sesión receptora cuando aplica los [controles de mensajes entrantes](https://code.claude.com/docs/es/cross-session-messaging.md#control-inbound-messages). Requiere Agent SDK v0.3.234 o posterior.2509* `fromMode`: la clase de permisos de la sesión remitente, `bypass` o `prompting`. Claude Code lo lee en la sesión receptora cuando aplica los [controles de entrada](https://code.claude.com/docs/es/cross-session-messaging.md#control-inbound-messages). Requiere Agent SDK v0.3.234 o posterior.

2498* `senderTaskId`: el ID de tarea del compañero de equipo. Ausente en el caso de un par entre sesiones.2510* `senderTaskId`: el ID de tarea del compañero de equipo. Ausente en el caso de un par entre sesiones.

2499* `name`: el nombre para mostrar del remitente, normalizado por Claude Code: elimina los puntos de código Unicode de control, de formato, sustitutos y separadores de línea o de párrafo, luego recorta el resultado y lo limita a 64 puntos de código con puntos suspensivos. Requiere Claude Code v2.1.205 o posterior.2511* `name`: el nombre para mostrar del remitente, normalizado por Claude Code: elimina los puntos de código Unicode de control, de formato, sustitutos y separadores de línea o de párrafo, luego recorta el resultado y lo limita a 64 puntos de código con puntos suspensivos. Requiere Claude Code v2.1.205 o posterior.

2500* `body`: el cuerpo del mensaje decodificado sin el sobre peer, idéntico byte a byte a lo que ve el modelo. Presente en un único mensaje de compañero de equipo, ausente cuando se combinan varios; en el caso de un par entre sesiones, presente solo cuando el turno es exactamente un sobre peer formado por Claude Code. Muestra `name` y `body` en lugar de volver a analizar el texto del mensaje. Antes de la v2.1.299, los mensajes combinados conservaban el `body` del primer mensaje. Requiere Claude Code v2.1.205 o posterior.2512* `body`: el cuerpo del mensaje decodificado sin el sobre peer, idéntico byte a byte a lo que ve el modelo. Presente en un único mensaje de compañero de equipo, ausente cuando se combinan varios; en el caso de un par entre sesiones, presente solo cuando el turno es exactamente un sobre peer formado por Claude Code. Muestra `name` y `body` en lugar de volver a analizar el texto del mensaje. Antes de la v2.1.299, los mensajes combinados conservaban el `body` del primer mensaje. Requiere Claude Code v2.1.205 o posterior.


5418 | { type: "disabled" }; // Sin pensamiento extendido5430 | { type: "disabled" }; // Sin pensamiento extendido

5419```5431```

5420 5432 

5421El campo opcional `display` controla si el texto de pensamiento se devuelve `"summarized"` u `"omitted"`. En Claude Opus 4.7 y posterior, el valor predeterminado de la API es `"omitted"`, así que establece `"summarized"` para recibir contenido de pensamiento en bloques `thinking`. Claude Code no pasa tu valor de `display` a algunos proveedores, como Amazon Bedrock y Agent Platform de Google Cloud. En esos proveedores, Opus 4.7 y posterior devuelven bloques `thinking` vacíos incluso cuando estableces `display` en `"summarized"`.5433El campo opcional `display` controla si el texto de pensamiento se devuelve `"summarized"` u `"omitted"`. En Claude Opus 4.7 y posterior, el valor predeterminado de la API es `"omitted"`, así que establece `"summarized"` para recibir contenido de pensamiento en bloques `thinking`. En proveedores como Amazon Bedrock y Agent Platform de Google Cloud, Claude Code no pasa `display` para los modelos anteriores que reconoce. Esos son Opus 4.6, Sonnet 4.6, Haiku 4.5 y modelos anteriores, que usan su valor predeterminado.

5422 5434 

5423### `SpawnedProcess`5435### `SpawnedProcess`

5424 5436 


6039| `allowUnsandboxedCommands` | `boolean` | `true` | Permita que el modelo solicite ejecutar comandos fuera del sandbox. Cuando es `true`, el modelo puede establecer `dangerouslyDisableSandbox` en la entrada de herramienta, que se vuelve al [sistema de permisos](#permissions-fallback-for-unsandboxed-commands) |6051| `allowUnsandboxedCommands` | `boolean` | `true` | Permita que el modelo solicite ejecutar comandos fuera del sandbox. Cuando es `true`, el modelo puede establecer `dangerouslyDisableSandbox` en la entrada de herramienta, que se vuelve al [sistema de permisos](#permissions-fallback-for-unsandboxed-commands) |

6040| `network` | [`SandboxNetworkConfig`](#sandboxnetworkconfig) | `undefined` | Configuración de sandbox específica de red |6052| `network` | [`SandboxNetworkConfig`](#sandboxnetworkconfig) | `undefined` | Configuración de sandbox específica de red |

6041| `filesystem` | [`SandboxFilesystemConfig`](#sandboxfilesystemconfig) | `undefined` | Configuración de sandbox específica del sistema de archivos para restricciones de lectura/escritura |6053| `filesystem` | [`SandboxFilesystemConfig`](#sandboxfilesystemconfig) | `undefined` | Configuración de sandbox específica del sistema de archivos para restricciones de lectura/escritura |

6042| `ignoreViolations` | `Record<string, string[]>` | `undefined` | Mapa de subcadenas de comando, o `*` para cada comando, a subcadenas del texto de violación a ignorar, como `{ "*": ['/etc/hosts'] }`; consulte [`sandbox.ignoreViolations`](https://code.claude.com/docs/es/settings-reference#sandbox-ignoreviolations) |6054| `ignoreViolations` | `Record<string, string[]>` | `undefined` | Violaciones que se excluyen del informe de violaciones del sandbox. Cada clave coincide con parte de un comando, o `*` para todos los comandos, y cada valor enumera el texto que debe coincidir en una línea de violación: `{ "*": ['/etc/hosts'] }` oculta las violaciones que mencionan `/etc/hosts`. Consulta [`sandbox.ignoreViolations`](https://code.claude.com/docs/es/settings-reference#sandbox-ignoreviolations) |

6043| `enableWeakerNestedSandbox` | `boolean` | `false` | Habilite un sandbox anidado más débil para compatibilidad |6055| `enableWeakerNestedSandbox` | `boolean` | `false` | Habilite un sandbox anidado más débil para compatibilidad |

6044| `allowNestedUserNamespaces` | `boolean` | `false` | Permite que los comandos en sandbox en Linux y WSL2 creen espacios de nombres de usuario. Antes de establecerlo en `true`, lee [`sandbox.allowNestedUserNamespaces`](https://code.claude.com/docs/es/settings-reference#sandbox-allownestedusernamespaces), que cubre las herramientas que lo necesitan y el límite de seguridad que desactivas. Requiere Claude Code v2.1.305 o posterior |6056| `allowNestedUserNamespaces` | `boolean` | `false` | Permite que los comandos en sandbox en Linux y WSL2 creen espacios de nombres de usuario. Antes de establecerlo en `true`, lee [`sandbox.allowNestedUserNamespaces`](https://code.claude.com/docs/es/settings-reference#sandbox-allownestedusernamespaces), que cubre las herramientas que lo necesitan y el límite de seguridad que desactivas. Requiere Claude Code v2.1.305 o posterior |

6045| `ripgrep` | `{ command: string; args?: string[] }` | `undefined` | Configuración de binario ripgrep personalizado para entornos sandbox |6057| `ripgrep` | `{ command: string; args?: string[] }` | `undefined` | Configuración de binario ripgrep personalizado para entornos sandbox |

agent-teams.md +1 −1

Details

296>296>

297> Para que pida confirmación antes de editar, presiona Enter en la fila `main` del panel de agentes y cambia también el líder al modo Manual. Entonces el líder también pide confirmación, al igual que cualquier otro compañero de equipo en modo Manual.297> Para que pida confirmación antes de editar, presiona Enter en la fila `main` del panel de agentes y cambia también el líder al modo Manual. Entonces el líder también pide confirmación, al igual que cualquier otro compañero de equipo en modo Manual.

298 298 

299No puedes establecer modos de permisos por compañero de equipo en el momento de la generación. Un nuevo compañero de equipo comienza con el modo del líder, incluido el modo `bypassPermissions`, que se activa con `--dangerously-skip-permissions`. Si el líder está en el [modo `dontAsk`](https://code.claude.com/docs/es/permission-modes#allow-only-pre-approved-tools-with-dontask-mode), el compañero de equipo comienza en [modo Manual](https://code.claude.com/docs/es/permission-modes.md#available-modes) en su lugar.299No puedes establecer modos de permisos por compañero de equipo en el momento de la generación. Un nuevo compañero de equipo comienza con el modo del líder, incluido el modo `bypassPermissions`, que se activa con `--dangerously-skip-permissions`. Si el líder está en el [modo `dontAsk`](https://code.claude.com/docs/es/permission-modes#allow-only-pre-approved-tools-with-dontask-mode), el compañero de equipo comienza en [modo Manual](https://code.claude.com/docs/es/permission-modes.md#available-modes) en su lugar. Para un compañero de equipo de panel dividido de un líder en modo Manual o `dontAsk`, esto requiere Claude Code v2.1.317 o posterior.

300 300 

301Un compañero de equipo [en proceso](#choose-a-display-mode) se ejecuta bajo las reglas de permitir y denegar activas del líder, por lo que [`--disallowedTools`](https://code.claude.com/docs/es/cli-reference#cli-flags), `--tools` y `--allowedTools` se aplican a él. Para un compañero de equipo de panel dividido, revisa cada flag:301Un compañero de equipo [en proceso](#choose-a-display-mode) se ejecuta bajo las reglas de permitir y denegar activas del líder, por lo que [`--disallowedTools`](https://code.claude.com/docs/es/cli-reference#cli-flags), `--tools` y `--allowedTools` se aplican a él. Para un compañero de equipo de panel dividido, revisa cada flag:

302 302 

artifacts.md +1 −1

Details

141 141 

142* **Sesión en la nube sin acceso a la red**: para un [entorno en la nube](https://code.claude.com/docs/es/cloud-environments.md#access-levels), ese es el nivel **None**. En [modo automático](https://code.claude.com/docs/es/permission-modes.md#eliminate-prompts-with-auto-mode), el clasificador puede aprobar en tu lugar; en una sesión de [Cowork](https://claude.com/product/cowork), la aprobación es exclusivamente tuya.142* **Sesión en la nube sin acceso a la red**: para un [entorno en la nube](https://code.claude.com/docs/es/cloud-environments.md#access-levels), ese es el nivel **None**. En [modo automático](https://code.claude.com/docs/es/permission-modes.md#eliminate-prompts-with-auto-mode), el clasificador puede aprobar en tu lugar; en una sesión de [Cowork](https://claude.com/product/cowork), la aprobación es exclusivamente tuya.

143* **Artefacto público de otra organización**: Claude Code te pregunta primero, incluso en modo automático. Cuando Claude Code no puede preguntarte, como en el modo `bypassPermissions`, Claude no puede leer el artefacto. Claude puede leer estos artefactos solo mientras la [obtención de feature flags](https://code.claude.com/docs/es/env-vars.md#features-that-need-feature-flag-fetching) esté activada.143* **Artefacto público de otra organización**: Claude Code te pregunta primero, incluso en modo automático. Cuando Claude Code no puede preguntarte, como en el modo `bypassPermissions`, Claude no puede leer el artefacto. Claude puede leer estos artefactos solo mientras la [obtención de feature flags](https://code.claude.com/docs/es/env-vars.md#features-that-need-feature-flag-fetching) esté activada.

144* **Propietario o ajuste de red sin confirmar**: cuando Claude Code no puede confirmar quién creó el artefacto, o no puede confirmar el ajuste de red de una sesión en la nube, pregunta, y tu aprobación cubre esa única solicitud.144* **Propietario o ajuste de red sin confirmar**: cuando Claude Code no puede confirmar quién creó el artefacto, o no puede confirmar el ajuste de red de una sesión en la nube, pregunta, y tu aprobación cubre esa única solicitud. En [modo automático](https://code.claude.com/docs/es/permission-modes.md#eliminate-prompts-with-auto-mode), el clasificador puede aprobar o bloquear la lectura en lugar de preguntarte.

145* **Modo plan**: en [modo plan](https://code.claude.com/docs/es/permission-modes.md#analyze-before-you-edit-with-plan-mode), Claude Code pregunta antes de que la herramienta Artifact lea un artefacto creado por otra persona de tu organización.145* **Modo plan**: en [modo plan](https://code.claude.com/docs/es/permission-modes.md#analyze-before-you-edit-with-plan-mode), Claude Code pregunta antes de que la herramienta Artifact lea un artefacto creado por otra persona de tu organización.

146 146 

147Cuando Claude lee el artefacto con WebFetch, las propias [reglas de solicitud de permisos](https://code.claude.com/docs/es/tools-reference.md#webfetch-tool-behavior) de WebFetch siguen aplicándose.147Cuando Claude lee el artefacto con WebFetch, las propias [reglas de solicitud de permisos](https://code.claude.com/docs/es/tools-reference.md#webfetch-tool-behavior) de WebFetch siguen aplicándose.

Details

29 29 

30## Haga que la sesión sea elegible30## Haga que la sesión sea elegible

31 31 

32Si una puerta de enlace es la causa, pida al administrador de su empresa o al proveedor de su puerta de enlace que pasen las solicitudes y respuestas sin cambios. Eso significa reenviar los encabezados de solicitud y los campos del cuerpo tal como están, incluidos los que la puerta de enlace no reconoce, como el campo de solicitud `safeguards`, y devolver respuestas y eventos de transmisión sin descartar claves como el campo `safeguard_results` o reescribir IDs de uso de herramientas, como describe la [guía de compatibilidad de puerta de enlace](https://code.claude.com/docs/es/llm-gateway-protocol.md#feature-pass-through). Una puerta de enlace que pasa el tráfico de esta manera sigue funcionando con esta característica y con futuras. Las nuevas sesiones entonces utilizan las comprobaciones del servidor nuevamente.32Si un gateway impide que las comprobaciones del lado del servidor del modo automático lleguen a tus sesiones y tú no lo administras, envía los requisitos que se indican a continuación al administrador de tu empresa o al proveedor de tu gateway. Cuando [el upstream acepta el formato que recibe el gateway](https://code.claude.com/docs/es/llm-gateway-protocol.md#format-mismatch-with-the-upstream), Claude Code espera que el gateway pase las solicitudes y respuestas sin cambios, como describe la [guía de compatibilidad de gateways](https://code.claude.com/docs/es/llm-gateway-protocol.md#feature-pass-through):

33 

34* **Solicitudes**: para dejar pasar las comprobaciones, el gateway reenvía sin cambios tanto el encabezado `anthropic-beta` como el campo del cuerpo `safeguards`, porque [ambos viajan como un par](https://code.claude.com/docs/es/llm-gateway-protocol.md#beta-header-and-body-field-pairs). En el [formato InvokeModel de Amazon Bedrock](https://code.claude.com/docs/es/llm-gateway-protocol.md#api-formats), reenvía el campo del cuerpo `anthropic_beta` en lugar del encabezado.

35* **Respuestas**: el gateway devuelve las respuestas y los eventos de streaming sin descartar campos ni reescribir los IDs de uso de herramientas. Para dejar pasar los resultados de las comprobaciones, conserva el campo `safeguard_results`.

36 

37Un gateway que pasa el tráfico de esta manera sigue funcionando con esta característica y con las futuras. Las nuevas sesiones vuelven entonces a utilizar las comprobaciones del servidor.

33 38 

34Si ya sabe que su puerta de enlace no puede proporcionar las comprobaciones del servidor, indique a Claude Code que no las solicite allí estableciendo `CLAUDE_CODE_AUTO_MODE_SERVER` en `0` antes de iniciar la sesión, en su shell o en la [clave de configuración `env`](https://code.claude.com/docs/es/settings-reference#env):39Si ya sabe que su puerta de enlace no puede proporcionar las comprobaciones del servidor, indique a Claude Code que no las solicite allí estableciendo `CLAUDE_CODE_AUTO_MODE_SERVER` en `0` antes de iniciar la sesión, en su shell o en la [clave de configuración `env`](https://code.claude.com/docs/es/settings-reference#env):

35 40 

channels.md +1 −1

Details

354| Característica | Qué hace | Bueno para |354| Característica | Qué hace | Bueno para |

355| - | - | - |355| - | - | - |

356| [Sesiones en la nube](https://code.claude.com/docs/es/claude-code-on-the-web.md) | Ejecuta tareas en una nueva sandbox en la nube, clonada desde GitHub | Delegar trabajo asincrónico independiente que verifica más tarde |356| [Sesiones en la nube](https://code.claude.com/docs/es/claude-code-on-the-web.md) | Ejecuta tareas en una nueva sandbox en la nube, clonada desde GitHub | Delegar trabajo asincrónico independiente que verifica más tarde |

357| [Claude en Slack](https://code.claude.com/docs/es/slack.md) | Genera una sesión en la nube desde una mención `@Claude` en un canal o hilo | Iniciar tareas directamente desde el contexto de conversación del equipo |357| [Claude en Slack](https://code.claude.com/docs/es/slack.md) | Genera una sesión en la nube desde una mención `@Claude` en un canal o hilo | Iniciar tareas directamente desde una conversación del equipo |

358| [Servidor MCP](https://code.claude.com/docs/es/mcp.md) estándar | Claude lo consulta durante una tarea; nada se envía a la sesión | Dar a Claude acceso bajo demanda para leer o consultar un sistema |358| [Servidor MCP](https://code.claude.com/docs/es/mcp.md) estándar | Claude lo consulta durante una tarea; nada se envía a la sesión | Dar a Claude acceso bajo demanda para leer o consultar un sistema |

359| [Remote Control](https://code.claude.com/docs/es/remote-control.md) | Conduce su sesión local desde claude.ai o la aplicación móvil de Claude | Dirigir una sesión en progreso mientras está fuera de su escritorio |359| [Remote Control](https://code.claude.com/docs/es/remote-control.md) | Conduce su sesión local desde claude.ai o la aplicación móvil de Claude | Dirigir una sesión en progreso mientras está fuera de su escritorio |

360 360 

Details

350 350 

351### Entregar la política a las sesiones de Claude Desktop351### Entregar la política a las sesiones de Claude Desktop

352 352 

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

354 354 

355Las demás claves del bloque, como los hooks, `env` y las reglas de permisos con alcance como `Bash(npm *)`, llegan a los clientes que inician sesión a través de `/login`. En `code`, también llegan a la sesión de la pestaña Code cuando se cumplen las [condiciones para la pestaña Code](https://code.claude.com/docs/es/claude-apps-gateway-config.md#apply-code-settings-in-the-code-tab). No llegan a las sesiones de Cowork ni de Chat. Claude Desktop lee la URL del gateway de su propia configuración administrada e inicia sesión con su propio flujo, independiente de las claves `forceLoginMethod` y `forceLoginGatewayUrl` de [Establecer la URL del gateway](#set-the-gateway-url).355Las demás claves del bloque, como los hooks, `env` y las reglas de permisos con alcance como `Bash(npm *)`, llegan a los clientes que inician sesión a través de `/login`. En `code`, también llegan a la sesión de la pestaña Code cuando se cumplen las [condiciones para la pestaña Code](https://code.claude.com/docs/es/claude-apps-gateway-config.md#apply-code-settings-in-the-code-tab). No llegan a las sesiones de Cowork ni de Chat. Claude Desktop lee la URL del gateway de su propia configuración administrada e inicia sesión con su propio flujo, independiente de las claves `forceLoginMethod` y `forceLoginGatewayUrl` de [Establecer la URL del gateway](#set-the-gateway-url).

356 356 


476 476 

477### Conectar Claude Desktop477### Conectar Claude Desktop

478 478 

479[Claude Desktop](https://code.claude.com/docs/es/desktop.md) se conecta al mismo gateway mediante una clave de MDM diferente: establece `bootstrapUrl` en la [configuración administrada](https://claude.com/docs/third-party/claude-desktop/configuration) de Claude Desktop en `<listen.public_url>/user/bootstrap`, y activa la política del usuario con una clave `desktop`. [Superposición de Claude Desktop](https://code.claude.com/docs/es/claude-apps-gateway-config.md#claude-desktop-overlay) cubre ambas partes. Requiere Claude Code v2.1.203 o posterior en el servidor del gateway.479[Claude Desktop](https://code.claude.com/docs/es/desktop.md) se conecta al mismo gateway mediante una clave de MDM diferente: establece `bootstrapUrl` en la [configuración administrada](https://claude.com/docs/third-party/claude-desktop/configuration) de Claude Desktop en `<listen.public_url>/user/bootstrap`, y activa la política del usuario con una clave `desktop`. [Superposición de Claude Desktop](https://code.claude.com/docs/es/claude-apps-gateway-config.md#claude-desktop-overlay) cubre ambas partes. Requiere Claude Code v2.1.203 o posterior en el servidor del gateway. Una vez conectado, Claude Desktop envía las solicitudes al modelo de todas las pestañas activadas a través del gateway.

480 480 

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

482 482 

483Una vez conectado, Claude Desktop envía las solicitudes al modelo de todas las pestañas activadas a través del gateway. De forma predeterminada muestra las pestañas Cowork y Code. Para que también esté disponible Chat, establece `chatTabEnabled` en `true` en el [bloque `desktop`](https://code.claude.com/docs/es/claude-apps-gateway-config#claude-desktop-overlay) de la política en un gateway que ejecute Claude Code v2.1.227 o posterior. Con Cowork activado, Claude Desktop muestra entonces Chat y Cowork juntos en una sola pestaña.

484 

485### Pipelines de CI y máquinas remotas483### Pipelines de CI y máquinas remotas

486 484 

487No existe un flujo de token de servicio para pipelines desatendidos. El inicio de sesión en el gateway siempre ejecuta el flujo de dispositivo del navegador, por lo que un trabajo de CI sin un desarrollador que apruebe el inicio de sesión no puede autenticarse; configura esos trabajos directamente con tu proveedor. Implementa `forceLoginMethod` y `forceLoginGatewayUrl` en las máquinas de los desarrolladores y no los incluyas en los runners de CI. En una máquina cuya configuración administrada los establece, una sesión que se autentica con `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN` o `apiKeyHelper` [termina al arrancar](https://code.claude.com/docs/es/errors.md#administrator-policy-requires-a-cloud-gateway-sign-in).485No existe un flujo de token de servicio para pipelines desatendidos. El inicio de sesión en el gateway siempre ejecuta el flujo de dispositivo del navegador, por lo que un trabajo de CI sin un desarrollador que apruebe el inicio de sesión no puede autenticarse; configura esos trabajos directamente con tu proveedor. Implementa `forceLoginMethod` y `forceLoginGatewayUrl` en las máquinas de los desarrolladores y no los incluyas en los runners de CI. En una máquina cuya configuración administrada los establece, una sesión que se autentica con `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN` o `apiKeyHelper` [termina al arrancar](https://code.claude.com/docs/es/errors.md#administrator-policy-requires-a-cloud-gateway-sign-in).


523| Reenvío de inferencia (Amazon Bedrock, Claude Platform en AWS, Agent Platform de Google Cloud, Microsoft Foundry, Anthropic) | Disponible | Con traducción de modelos por ascendente y conmutación por error. El ascendente de Amazon Bedrock utiliza el endpoint `bedrock-runtime` y la cadena de credenciales predeterminada de AWS. El [ascendente Amazon Bedrock Mantle](https://code.claude.com/docs/es/claude-apps-gateway-config.md#amazon-bedrock-mantle-endpoint) requiere Claude Code v2.1.283 o posterior en el servidor del gateway, y el [ascendente Claude Platform en AWS](https://code.claude.com/docs/es/claude-apps-gateway-config.md#claude-platform-on-aws) requiere v2.1.198 o posterior. |521| Reenvío de inferencia (Amazon Bedrock, Claude Platform en AWS, Agent Platform de Google Cloud, Microsoft Foundry, Anthropic) | Disponible | Con traducción de modelos por ascendente y conmutación por error. El ascendente de Amazon Bedrock utiliza el endpoint `bedrock-runtime` y la cadena de credenciales predeterminada de AWS. El [ascendente Amazon Bedrock Mantle](https://code.claude.com/docs/es/claude-apps-gateway-config.md#amazon-bedrock-mantle-endpoint) requiere Claude Code v2.1.283 o posterior en el servidor del gateway, y el [ascendente Claude Platform en AWS](https://code.claude.com/docs/es/claude-apps-gateway-config.md#claude-platform-on-aws) requiere v2.1.198 o posterior. |

524| Ventana de contexto de 1M tokens | Disponible | Los modelos Fable, Sonnet 5 y posteriores, y Opus 4.7 y posteriores se ejecutan con la ventana de 1M de forma predeterminada; consulta [Contexto extendido](https://code.claude.com/docs/es/model-config.md#extended-context). El valor predeterminado de 1M para los modelos Fable y Opus requiere Claude Code v2.1.287 o posterior en la máquina del desarrollador |522| Ventana de contexto de 1M tokens | Disponible | Los modelos Fable, Sonnet 5 y posteriores, y Opus 4.7 y posteriores se ejecutan con la ventana de 1M de forma predeterminada; consulta [Contexto extendido](https://code.claude.com/docs/es/model-config.md#extended-context). El valor predeterminado de 1M para los modelos Fable y Opus requiere Claude Code v2.1.287 o posterior en la máquina del desarrollador |

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

526| Claude Desktop | Disponible con participación opcional | El gateway sirve la configuración de Claude Desktop en `/user/bootstrap` una vez que una política [participa con una clave `desktop`](https://code.claude.com/docs/es/claude-apps-gateway-config#claude-desktop-overlay), y Claude Desktop envía sus solicitudes de modelo a través del gateway. Para activar Chat, consulta [Conectar Claude Desktop](#connect-claude-desktop). Requiere Claude Code v2.1.203 o posterior en el servidor del gateway. |524| Claude Desktop | Disponible con participación opcional | Haz que una política participe con una [clave `desktop`](https://code.claude.com/docs/es/claude-apps-gateway-config#claude-desktop-overlay). Requiere Claude Code v2.1.203 o posterior en el servidor del gateway. |

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

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

529| Límites de gasto por usuario y por grupo | Disponible | Consulta [Límites de gasto](https://code.claude.com/docs/es/claude-apps-gateway-spend-limits.md) |527| Límites de gasto por usuario y por grupo | Disponible | Consulta [Límites de gasto](https://code.claude.com/docs/es/claude-apps-gateway-spend-limits.md) |


540| Multiinquilino (múltiples emisores OIDC) | No compatible | Un emisor por gateway. Ejecuta instancias separadas |538| Multiinquilino (múltiples emisores OIDC) | No compatible | Un emisor por gateway. Ejecuta instancias separadas |

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

542| Gráfico Helm | No disponible | El gateway se ejecuta como un Deployment estándar sin estado; consulta la [guía de despliegue](https://code.claude.com/docs/es/claude-apps-gateway-deploy.md#kubernetes) |540| Gráfico Helm | No disponible | El gateway se ejecuta como un Deployment estándar sin estado; consulta la [guía de despliegue](https://code.claude.com/docs/es/claude-apps-gateway-deploy.md#kubernetes) |

543| Interfaz de administración | No disponible | La configuración es el archivo YAML; vuelve a desplegar para cambiarla |541| Interfaz de administración | Solo límites de gasto | En Claude Desktop 4.23118.0 o posterior [conectado al gateway](#connect-claude-desktop), los miembros de [`admin.admin_groups`](https://code.claude.com/docs/es/claude-apps-gateway-config#admin) pueden administrar los límites de gasto. El resto de la configuración es el archivo YAML; vuelve a desplegar para cambiarla |

544 542 

545## Próximos pasos543## Próximos pasos

546 544 

Details

1651| `reply_tokens` | No | Predeterminado `750`. Aproximadamente cuántos tokens de texto contiene cada respuesta predefinida, un número entero de 1 a 100000. |1651| `reply_tokens` | No | Predeterminado `750`. Aproximadamente cuántos tokens de texto contiene cada respuesta predefinida, un número entero de 1 a 100000. |

1652| `reply_seconds` | No | Predeterminado `9.5`. Cuánto tarda una respuesta transmitida, de 0 a 600. `0` envía toda la respuesta de una vez. La respuesta a una solicitud sin streaming siempre llega de una vez. |1652| `reply_seconds` | No | Predeterminado `9.5`. Cuánto tarda una respuesta transmitida, de 0 a 600. `0` envía toda la respuesta de una vez. La respuesta a una solicitud sin streaming siempre llega de una vez. |

1653 1653 

1654Una prueba de carga en este modo cubre el gateway, tu Postgres y todo lo que está delante del gateway. No cubre los límites, la velocidad ni la ruta de red del proveedor.1654Una prueba de carga en este modo cubre el gateway, tu Postgres y todo lo que está delante del gateway. No cubre los límites, la velocidad y la ruta de red del proveedor, ni la espera en el [límite de solicitudes upstream simultáneas](https://code.claude.com/docs/es/claude-apps-gateway-deploy.md#concurrent-upstream-requests) de cada réplica. Una réplica sigue registrando la advertencia `client requests are open` cuando hay más solicitudes abiertas que ese límite, el punto en el que las solicitudes de producción empiezan a esperar.

1655 1655 

1656No se envía ninguna solicitud de modelo al proveedor, por lo que el uso de CPU por solicitud de una réplica es una estimación y resulta menor que en producción, donde además se cifra el tráfico hacia el proveedor. Confirma el número de réplicas con un piloto pequeño contra el proveedor real. Antes de v2.1.283, la estimación resulta mucho menor.1656No se envía ninguna solicitud de modelo al proveedor, por lo que el uso de CPU por solicitud de una réplica es una estimación y resulta menor que en producción, donde además se cifra el tráfico hacia el proveedor. Confirma el número de réplicas con un piloto pequeño contra el proveedor real. Antes de v2.1.283, la estimación resulta mucho menor.

1657 1657 

Details

202>202>

203> Cada solicitud abierta mantiene memoria en el proceso de puerta de enlace mientras transmite y mientras espera un espacio. Si mantiene el límite en 256, la memoria en una réplica sobrecargada aún crece, porque las solicitudes en espera mantienen sus cuerpos de solicitud. Dimensione la memoria del contenedor para el número de solicitudes abiertas en el pico, y observe la memoria cuando cambie el límite. Una réplica que se queda sin memoria es eliminada y suelta cada transmisión que mantiene.203> Cada solicitud abierta mantiene memoria en el proceso de puerta de enlace mientras transmite y mientras espera un espacio. Si mantiene el límite en 256, la memoria en una réplica sobrecargada aún crece, porque las solicitudes en espera mantienen sus cuerpos de solicitud. Dimensione la memoria del contenedor para el número de solicitudes abiertas en el pico, y observe la memoria cuando cambie el límite. Una réplica que se queda sin memoria es eliminada y suelta cada transmisión que mantiene.

204 204 

205En una prueba de carga con [`load_test_mode`](https://code.claude.com/docs/es/claude-apps-gateway-config#load_test_mode), las solicitudes no esperan en este límite, pero una réplica igualmente registra la advertencia `client requests are open`.

206 

205### Mantén `API_TIMEOUT_MS` por encima del tiempo hasta el primer byte del gateway207### Mantén `API_TIMEOUT_MS` por encima del tiempo hasta el primer byte del gateway

206 208 

207Si reduces [`API_TIMEOUT_MS`](https://code.claude.com/docs/es/network-config#streaming-idle-watchdogs) para reintentar antes una solicitud sin respuesta, mantenlo por encima del tiempo que tarda el gateway en enviar los primeros bytes de una respuesta en streaming. Una solicitud que espera más agota su tiempo de espera, y lo mismo ocurre con cada reintento que espera lo mismo, hasta que el turno termina con `Request timed out`, a menos que el [plazo del primer byte](#retry-an-unanswered-request-sooner-with-the-first-byte-deadline) lo termine antes.209Si reduces [`API_TIMEOUT_MS`](https://code.claude.com/docs/es/network-config#streaming-idle-watchdogs) para reintentar antes una solicitud sin respuesta, mantenlo por encima del tiempo que tarda el gateway en enviar los primeros bytes de una respuesta en streaming. Una solicitud que espera más agota su tiempo de espera, y lo mismo ocurre con cada reintento que espera lo mismo, hasta que el turno termina con `Request timed out`, a menos que el [plazo del primer byte](#retry-an-unanswered-request-sooner-with-the-first-byte-deadline) lo termine antes.

Details

628 628 

629* [Referencia de configuración](https://code.claude.com/docs/es/claude-apps-gateway-config.md): cada opción de `gateway.yaml`, incluyendo `managed.policies` y `telemetry`629* [Referencia de configuración](https://code.claude.com/docs/es/claude-apps-gateway-config.md): cada opción de `gateway.yaml`, incluyendo `managed.policies` y `telemetry`

630* [Implementación y operaciones](https://code.claude.com/docs/es/claude-apps-gateway-deploy.md): configuración de IdP, verificaciones de salud, rotación de secretos JWT, actualizaciones y el modelo de seguridad630* [Implementación y operaciones](https://code.claude.com/docs/es/claude-apps-gateway-deploy.md): configuración de IdP, verificaciones de salud, rotación de secretos JWT, actualizaciones y el modelo de seguridad

631* [Modo de prueba de carga](https://code.claude.com/docs/es/claude-apps-gateway-config.md#load_test_mode): pruebas de carga de un gateway sin llamar a un proveedor de modelos

631* [Descripción general de Claude apps gateway](https://code.claude.com/docs/es/claude-apps-gateway): inicio rápido y conexión de desarrolladores632* [Descripción general de Claude apps gateway](https://code.claude.com/docs/es/claude-apps-gateway): inicio rápido y conexión de desarrolladores

632* [Ejemplos de AWS para Claude apps gateway](https://github.com/aws-samples/anthropic-on-aws/tree/main/claude-apps-gateway): ejemplos de implementación mantenidos por AWS que cubren una variedad de entornos de clientes633* [Ejemplos de AWS para Claude apps gateway](https://github.com/aws-samples/anthropic-on-aws/tree/main/claude-apps-gateway): ejemplos de implementación mantenidos por AWS que cubren una variedad de entornos de clientes

Details

316 316 

317* [Referencia de configuración](https://code.claude.com/docs/es/claude-apps-gateway-config.md): cada opción de `gateway.yaml`, incluyendo `managed.policies` y `telemetry`317* [Referencia de configuración](https://code.claude.com/docs/es/claude-apps-gateway-config.md): cada opción de `gateway.yaml`, incluyendo `managed.policies` y `telemetry`

318* [Implementación y operaciones](https://code.claude.com/docs/es/claude-apps-gateway-deploy.md): configuración de IdP, verificaciones de salud, rotación de secretos JWT, actualizaciones y el modelo de seguridad318* [Implementación y operaciones](https://code.claude.com/docs/es/claude-apps-gateway-deploy.md): configuración de IdP, verificaciones de salud, rotación de secretos JWT, actualizaciones y el modelo de seguridad

319* [Modo de prueba de carga](https://code.claude.com/docs/es/claude-apps-gateway-config.md#load_test_mode): pruebas de carga de un gateway sin llamar a un proveedor de modelos

319* [Descripción general de Claude apps gateway](https://code.claude.com/docs/es/claude-apps-gateway): inicio rápido y conexión de desarrolladores320* [Descripción general de Claude apps gateway](https://code.claude.com/docs/es/claude-apps-gateway): inicio rápido y conexión de desarrolladores

Details

95Limita el proyecto a un flujo de trabajo al que seguirás agregando cosas, como todo lo necesario para mantener una API por debajo de su objetivo de latencia. [Cuándo usar un proyecto](#when-to-use-a-project) tiene más ejemplos. Luego completa los campos del diálogo:95Limita el proyecto a un flujo de trabajo al que seguirás agregando cosas, como todo lo necesario para mantener una API por debajo de su objetivo de latencia. [Cuándo usar un proyecto](#when-to-use-a-project) tiene más ejemplos. Luego completa los campos del diálogo:

96 96 

97* **Name**: cómo aparece el proyecto en la lista **Projects**.97* **Name**: cómo aparece el proyecto en la lista **Projects**.

98* **Goal** (opcional): una línea sobre lo que intentas lograr, como "Mantener la latencia p95 de la API por debajo de 200 ms". Claude en la conversación trabaja para alcanzarlo. Sin un objetivo, Claude trabaja a partir de las tareas que envías, y puedes agregar un objetivo más adelante en **Project settings > General**.98* **What do you want to work on?** (opcional): una línea que se convierte en el objetivo del proyecto, como "Mantener la latencia p95 de la API por debajo de 200 ms". Claude en la conversación trabaja para alcanzarlo. Sin un objetivo, Claude trabaja a partir de las tareas que envías, y puedes agregar un objetivo más adelante en **Project settings > General**.

99* **Context** (opcional): los repositorios de GitHub con los que trabaja este proyecto, además de cualquier archivo, carpeta o carpeta de Google Drive que los hilos deban leer. Haz clic en **Add** para cada uno. Agrega los repositorios que necesitan la mayoría de las tareas en lugar de todos los que el trabajo podría tocar; [Decidir qué repositorios agregar](#decide-which-repositories-to-add) trata esta elección, y puedes agregar más después en **Project settings > Environment**.99* **Context** (opcional): los repositorios de GitHub con los que trabaja este proyecto, además de cualquier archivo, carpeta o carpeta de Google Drive que los hilos deban leer. Haz clic en **Add** para cada uno. Agrega los repositorios que necesitan la mayoría de las tareas en lugar de todos los que el trabajo podría tocar; [Decidir qué repositorios agregar](#decide-which-repositories-to-add) trata esta elección, y puedes agregar más después en **Project settings > Environment**.

100 100 

101Las reglas permanentes sobre cómo deben trabajar los hilos van en las [instrucciones del proyecto](#give-a-project-standing-context), que configuras una vez que el proyecto existe.101Las reglas permanentes sobre cómo deben trabajar los hilos van en las [instrucciones del proyecto](#give-a-project-standing-context), que configuras una vez que el proyecto existe.


388| Plugins | Plugins | Los plugins que se cargan en cada hilo nuevo |388| Plugins | Plugins | Los plugins que se cargan en cada hilo nuevo |

389| Uso | Usage | [Uso de tokens](#usage-and-cost) por hilo y por modelo |389| Uso | Usage | [Uso de tokens](#usage-and-cost) por hilo y por modelo |

390| Memory | Memory | Los [archivos de memoria](#give-a-project-standing-context) del proyecto |390| Memory | Memory | Los [archivos de memoria](#give-a-project-standing-context) del proyecto |

391| Continuar automáticamente cuando se restablezcan los límites de uso | General | Si un hilo o la conversación del proyecto que [se detiene al alcanzar un límite de uso](#usage-limit-reached) continúa por sí solo cuando se restablece el límite. Activado de forma predeterminada. |

391| Reiniciar Claude | General | Reinicia la conversación del proyecto cuando [Claude deja de responder allí](#claude-hasnt-responded) |392| Reiniciar Claude | General | Reinicia la conversación del proyecto cuando [Claude deja de responder allí](#claude-hasnt-responded) |

392| Pausar, Archivar, Eliminar | General | Detiene, oculta, o elimina el proyecto; ver [Pausar, archivar, o eliminar un proyecto](#pause-archive-or-delete-a-project) |393| Pausar, Archivar, Eliminar | General | Detiene, oculta, o elimina el proyecto; ver [Pausar, archivar, o eliminar un proyecto](#pause-archive-or-delete-a-project) |

393 394 


403 404 

404El uso del proyecto cuenta contra los mismos [límites de plan](https://code.claude.com/docs/es/errors.md#youve-hit-your-session-limit) que tus otras sesiones de Claude Code, y un proyecto no puede gastar más allá de esos límites por su cuenta.405El uso del proyecto cuenta contra los mismos [límites de plan](https://code.claude.com/docs/es/errors.md#youve-hit-your-session-limit) que tus otras sesiones de Claude Code, y un proyecto no puede gastar más allá de esos límites por su cuenta.

405 406 

406Un hilo que alcanza el límite de tu plan espera y continúa por su cuenta cuando el límite se reinicia, así que el trabajo que dejaste en ejecución comienza a usar tu siguiente ventana de uso sin un mensaje de ti. [Un hilo alcanzó el límite de uso](#usage-limit-reached) cubre lo que ves, cómo detenerlo, y el único caso que no espera.407Un hilo que se detiene en el límite de tu plan espera y, de forma predeterminada, continúa por su cuenta cuando el límite se reinicia. Su trabajo entonces cuenta contra tu siguiente ventana de uso. Para evitar que los hilos continúen, consulta [Un hilo alcanzó el límite de uso](#usage-limit-reached).

407 408 

408El trabajo va más allá de los límites de tu plan solo si has activado [créditos de uso](https://code.claude.com/docs/es/costs.md#add-usage-credits-to-your-subscription) para tu cuenta. Un hilo no puede activarlos para ti.409El trabajo va más allá de los límites de tu plan solo si has activado [créditos de uso](https://code.claude.com/docs/es/costs.md#add-usage-credits-to-your-subscription) para tu cuenta. Un hilo no puede activarlos para ti.

409 410 


484 485 

485### Un hilo alcanzó el límite de uso486### Un hilo alcanzó el límite de uso

486 487 

487Cuando un hilo o la conversación del proyecto alcanza el límite de cinco horas o semanal de tu plan, sigue reintentando por su cuenta y continúa cuando el límite se reinicia. Un hilo que una tarea programada comenzó no espera: su turno se detiene con un error de límite, y le envías un mensaje después de que el límite se reinicia.488Cuando un hilo o la conversación del proyecto se detiene al alcanzar el límite de cinco horas o semanal de tu plan, espera y, de forma predeterminada, continúa por su cuenta cuando el límite se reinicia.

488 489 

489Mientras un hilo espera, muestra **Service is busy** con "Claude is still retrying and will continue automatically." No necesitas hacer nada para que el trabajo continúe. Si prefieres que no use tu siguiente ventana de uso, haz clic en **Stop** en el hilo, o [pausa el proyecto](#pause-archive-or-delete-a-project) para poner en espera todos los hilos. [Errores de límite de uso](https://code.claude.com/docs/es/errors.md#youve-hit-your-session-limit) explican los límites y cuándo se reinician.490Para evitar que un hilo o una conversación continúe a la hora de reinicio que muestra su mensaje, desactiva **Auto-continue when usage limits reset** en [**Project settings > General**](#project-settings-reference) antes de esa hora. El ajuste se aplica a todo el proyecto, no solo al hilo que estás viendo. Para continuar con el ajuste desactivado, envía un mensaje al hilo o a la conversación después del reinicio. [Errores de límite de uso](https://code.claude.com/docs/es/errors.md#youve-hit-your-session-limit) explican los límites y cuándo se reinician.

490 491 

491### Se requieren créditos de uso adicionales492### Se requieren créditos de uso adicionales

492 493 


509| "Unable to connect to repository" con "Claude couldn't access your repository or environment" | Tu cuenta de GitHub necesita acceso de inserción al repositorio, y el entorno aún debe existir. Verifica ambos en **Project settings > Environment**, luego reintentar |510| "Unable to connect to repository" con "Claude couldn't access your repository or environment" | Tu cuenta de GitHub necesita acceso de inserción al repositorio, y el entorno aún debe existir. Verifica ambos en **Project settings > Environment**, luego reintentar |

510| "Couldn't show the setup proposal" | La aplicación que tienes abierta es más antigua que las **Setup recommendations** que Claude envió. Actualiza la página o reinicia la aplicación de escritorio, o pídele a Claude que proponga la configuración de nuevo |511| "Couldn't show the setup proposal" | La aplicación que tienes abierta es más antigua que las **Setup recommendations** que Claude envió. Actualiza la página o reinicia la aplicación de escritorio, o pídele a Claude que proponga la configuración de nuevo |

511| "The project's environment was removed" | Elige un entorno diferente en **Project settings > Environment**; el cambio se aplica a hilos nuevos |512| "The project's environment was removed" | Elige un entorno diferente en **Project settings > Environment**; el cambio se aplica a hilos nuevos |

512| "Setup script failed" | Haz clic en **Edit setup script** en el error, arregla el script en el entorno, luego envía otro mensaje. [Setup script failed](https://code.claude.com/docs/es/web-quickstart.md#setup-script-failed) enumera las causas comunes |513| "Setup script failed" | [Setup script failed](https://code.claude.com/docs/es/web-quickstart.md#setup-script-failed) enumera las causas comunes. Arregla el script en el entorno, luego pídele a Claude en la conversación del proyecto que ejecute la tarea en un hilo nuevo, para que el script se ejecute de nuevo |

513| "Claude ran out of context on this turn" | El hilo llenó su ventana de contexto. Si el mensaje dice que el hilo continúa en una sesión fresca, continúa por sí solo; de lo contrario, pídele a Claude en la conversación del proyecto que comience un hilo nuevo para el trabajo restante |514| "Claude ran out of context on this turn" | El hilo llenó su ventana de contexto. Si el mensaje dice que el hilo continúa en una sesión fresca, continúa por sí solo; de lo contrario, pídele a Claude en la conversación del proyecto que comience un hilo nuevo para el trabajo restante |

514| "Couldn't start in" seguido del nombre de tu carpeta | Permitiste que un hilo se ejecutara en tu computadora, pero la sesión no pudo iniciarse allí. Cuando una línea bajo el mensaje da la razón, arregla eso, luego pídele a Claude que ejecute la tarea de nuevo |515| "Couldn't start in" seguido del nombre de tu carpeta | Permitiste que un hilo se ejecutara en tu computadora, pero la sesión no pudo iniciarse allí. Cuando una línea bajo el mensaje da la razón, arregla eso, luego pídele a Claude que ejecute la tarea de nuevo |

515| "Claude is out of date on your device" | La computadora que elegiste para ejecutar un hilo tiene una versión de Claude Code más antigua que v2.1.280. Actualiza Claude Code allí, o actualiza la aplicación de escritorio si eso es lo que conecta la carpeta, luego pídele a Claude que ejecute la tarea de nuevo |516| "Claude is out of date on your device" | La computadora que elegiste para ejecutar un hilo tiene una versión de Claude Code más antigua que v2.1.280. Actualiza Claude Code allí, o actualiza la aplicación de escritorio si eso es lo que conecta la carpeta, luego pídele a Claude que ejecute la tarea de nuevo |

Details

120 120 

121Selecciona **Agregar secreto**, con la etiqueta **Agregar** en la configuración de administración, y completa el formulario. Mantén el **Tipo de secreto** predeterminado, **Bearer**, para una clave de API que viaja en un encabezado de solicitud, y completa estos campos:121Selecciona **Agregar secreto**, con la etiqueta **Agregar** en la configuración de administración, y completa el formulario. Mantén el **Tipo de secreto** predeterminado, **Bearer**, para una clave de API que viaja en un encabezado de solicitud, y completa estos campos:

122 122 

123* **Nombre**: una etiqueta para el secreto, como `Internal billing API`

124* **Sitios web permitidos**: los hosts de la API, como `api.example.com`. Un `*.` inicial coincide con cada subdominio123* **Sitios web permitidos**: los hosts de la API, como `api.example.com`. Un `*.` inicial coincide con cada subdominio

125* **Encabezados personalizados**: una fila para el encabezado que lleva la clave. La fila comienza con `Authorization` como el **Nombre** del encabezado y `Bearer` como su **Prefijo**; pega la clave misma como el **Valor**. Para un encabezado como `X-Api-Key` que toma el valor sin prefijo, cambia el nombre y borra el prefijo124* **Encabezados personalizados**: una fila para el encabezado que lleva la clave. La fila ya tiene `Authorization` como el **Nombre del encabezado** y `Bearer` como el **Prefijo**; pega la clave misma como el **Valor**. Para un encabezado como `X-Api-Key` que toma el valor sin prefijo, cambia el nombre y borra el prefijo

126 125 

127Para una API que se autentica de otra manera, elige un **Tipo de secreto** diferente. La lista es la misma que [Claude Tag](https://claude.com/docs/claude-tag/overview), la integración de Slack para planes Team y Enterprise, ofrece para [conexiones](https://claude.com/docs/claude-tag/admins/add-connections).126Para una API que se autentica de otra manera, elige un **Tipo de secreto** diferente. La lista es la misma que [Claude Tag](https://claude.com/docs/claude-tag/overview), la integración de Slack para planes Team y Enterprise, ofrece para [conexiones](https://claude.com/docs/claude-tag/admins/add-connections).

128 127 


137Si estás en un plan Team o Enterprise y no tienes un [rol de administrador de la organización](#requirements), el formulario **Agregar secreto** acepta un secreto para un host. Selecciona la [fila **Secretos de red**](#add-a-credential) de tu entorno y luego **Agregar secreto**. Completa estos campos y selecciona el botón **Agregar secreto** del formulario:136Si estás en un plan Team o Enterprise y no tienes un [rol de administrador de la organización](#requirements), el formulario **Agregar secreto** acepta un secreto para un host. Selecciona la [fila **Secretos de red**](#add-a-credential) de tu entorno y luego **Agregar secreto**. Completa estos campos y selecciona el botón **Agregar secreto** del formulario:

138 137 

139* **Host**: el único host que obtiene el secreto, como `api.example.com`. El formulario no acepta un comodín `*.`138* **Host**: el único host que obtiene el secreto, como `api.example.com`. El formulario no acepta un comodín `*.`

140* **Nombre**: una etiqueta opcional para el secreto139* **Tipo de secreto**: **Token** para una clave que viaja en un encabezado de solicitud, o **Nombre de usuario y contraseña**. Para un token, pega la clave en el campo **Token**. Para un encabezado distinto de `Authorization`, como `X-Api-Key`, cambia **Encabezado** a su nombre

141* **Tipo de secreto**: **Token** para una clave que viaja en un encabezado de solicitud, o **Nombre de usuario y contraseña**. Para un token, pega la clave como el **Valor**

142 140 

143#### Qué solicitudes obtienen el secreto141#### Qué solicitudes obtienen el secreto

144 142 


445 443 

446Un script de configuración tiene cuatro restricciones que debes tener en cuenta al escribirlo:444Un script de configuración tiene cuatro restricciones que debes tener en cuenta al escribirlo:

447 445 

448* **Salir con cero**: si el script sale con un valor distinto de cero, la sesión no se inicia. Agregue `|| true` a comandos no críticos para que una falla de instalación intermitente no bloquee la sesión.446* **Salir con cero**: si el script sale con un valor distinto de cero, la sesión [no se inicia](https://code.claude.com/docs/es/web-quickstart.md#setup-script-failed) o se inicia sin lo que el script no logró instalar. Agrega `|| true` a comandos no críticos para que una falla de instalación intermitente no haga fallar el script.

449* **Terminar dentro de cinco minutos**: mantenga el tiempo de ejecución total del script por debajo de aproximadamente cinco minutos para que el [almacenamiento en caché del entorno](#environment-caching) pueda compilarse. Cuando la configuración tarda más que eso, el entorno no se almacena en caché. Ejecute instalaciones independientes en paralelo con `&` y `wait`, y mueva cualquier descarga única que no quepa a un hook [SessionStart](#setup-scripts-vs-sessionstart-hooks) que lo inicie en segundo plano. Si las nuevas sesiones se atascan o fallan durante la configuración, consulte [Las nuevas sesiones se cuelgan o agotan el tiempo de espera durante la configuración](https://code.claude.com/docs/es/web-quickstart.md#new-sessions-hang-or-time-out-during-setup).447* **Terminar dentro de cinco minutos**: mantenga el tiempo de ejecución total del script por debajo de aproximadamente cinco minutos para que el [almacenamiento en caché del entorno](#environment-caching) pueda compilarse. Cuando la configuración tarda más que eso, el entorno no se almacena en caché. Ejecute instalaciones independientes en paralelo con `&` y `wait`, y mueva cualquier descarga única que no quepa a un hook [SessionStart](#setup-scripts-vs-sessionstart-hooks) que lo inicie en segundo plano. Si las nuevas sesiones se atascan o fallan durante la configuración, consulte [Las nuevas sesiones se cuelgan o agotan el tiempo de espera durante la configuración](https://code.claude.com/docs/es/web-quickstart.md#new-sessions-hang-or-time-out-during-setup).

450* **Acceso a la red para instalaciones**: las instalaciones de paquetes necesitan alcanzar registros. El nivel **Trusted** predeterminado cubre [registros de paquetes comunes](#default-allowed-domains) incluyendo npm, PyPI, RubyGems y crates.io; con acceso a la red **None**, las instalaciones fallan.448* **Acceso a la red para instalaciones**: las instalaciones de paquetes necesitan alcanzar registros. El nivel **Trusted** predeterminado cubre [registros de paquetes comunes](#default-allowed-domains) incluyendo npm, PyPI, RubyGems y crates.io; con acceso a la red **None**, las instalaciones fallan.

451* **Las variables del entorno aún no están definidas**: el script se ejecuta antes de que la sesión defina las [variables de entorno](#set-environment-variables) del entorno. Define en el propio script cualquier valor que el script necesite.449* **Las variables del entorno aún no están definidas**: el script se ejecuta antes de que la sesión defina las [variables de entorno](#set-environment-variables) del entorno. Define en el propio script cualquier valor que el script necesite.

Details

25 25 

26## Usa REVIEW\.md para reglas exclusivas de revisión26## Usa REVIEW\.md para reglas exclusivas de revisión

27 27 

28`REVIEW.md` es un archivo en la raíz de tu repositorio que adapta Code Review a tu repositorio. También puedes agregar un `REVIEW.md` en un subdirectorio para añadir comprobaciones a los cambios bajo esa ruta, además del archivo raíz.28`REVIEW.md` es un archivo en la raíz de tu repositorio que adapta Code Review a tu repositorio. En una [rama protegida](#what-a-review-reads-for-each-branch-setup), también puedes agregar un `REVIEW.md` en [la mayoría de los subdirectorios](#when-a-subdirectory-review-md-doesnt-apply) para añadir comprobaciones a los cambios bajo ese subdirectorio, además del archivo raíz.

29 29 

30Los agentes que encuentran problemas y los agentes que los verifican reciben su contenido como las instrucciones de revisión de tu repositorio, junto con las pautas de revisión predeterminadas de Code Review. El paso que redacta la revisión final lo consulta antes de definir la severidad y escribir el resumen.30Los agentes que encuentran problemas y los agentes que los verifican reciben su contenido como las instrucciones de revisión de tu repositorio, junto con las pautas de revisión predeterminadas de Code Review. El paso que redacta la revisión final lo consulta antes de definir la severidad y escribir el resumen.

31 31 


46>46>

47> El servicio Code Review y el [comando local `/code-review`](https://code.claude.com/docs/es/code-review-local) son dos herramientas distintas y leen archivos diferentes. El servicio lee tanto `CLAUDE.md` como `REVIEW.md`. El comando `/code-review`, que ejecutas dentro de una sesión de Claude Code en tu propia máquina, lee tus archivos `CLAUDE.md` pero no `REVIEW.md`. Coloca en `CLAUDE.md` las pautas que quieras aplicar en ambos lugares y reserva `REVIEW.md` para reglas específicas de la revisión de pull requests.47> El servicio Code Review y el [comando local `/code-review`](https://code.claude.com/docs/es/code-review-local) son dos herramientas distintas y leen archivos diferentes. El servicio lee tanto `CLAUDE.md` como `REVIEW.md`. El comando `/code-review`, que ejecutas dentro de una sesión de Claude Code en tu propia máquina, lee tus archivos `CLAUDE.md` pero no `REVIEW.md`. Coloca en `CLAUDE.md` las pautas que quieras aplicar en ambos lugares y reserva `REVIEW.md` para reglas específicas de la revisión de pull requests.

48 48 

49### Cuándo no se aplica un REVIEW\.md de subdirectorio

50 

51Code Review no aplica un `REVIEW.md` que esté en un subdirectorio con uno de estos nombres, o por debajo de él, sin importar lo que contenga el subdirectorio. El nombre de un subdirectorio coincide solo si es completo, con cualquier combinación de mayúsculas y minúsculas y a cualquier profundidad, así que `Tests` coincide y `integration-tests` no:

52 

53* **Pruebas**: `test`, `tests`, `__tests__`, `testdata`, `fixtures`, `__fixtures__`, `golden`, `corpus`, `snapshots`, `__snapshots__`

54* **Ejemplos**: `example`, `examples`, `sample`, `samples`, `demo`, `demos`

55* **Código generado**: `generated`

56* **Código de terceros**: `vendor`, `third_party`, `third-party`, `thirdparty`, `node_modules`, `bower_components`, `external`, `extern`, `deps`, `godeps`, `pods`, `carthage`, `site-packages`, `contrib`

57 

58Coloca las comprobaciones para esos subdirectorios en el `REVIEW.md` raíz, o en el `REVIEW.md` de un subdirectorio padre cuando ni ese padre ni nada por encima de él esté en la lista.

59 

60Los archivos `REVIEW.md` de subdirectorio restantes en las rutas que cambia un pull request comparten un límite de 150,000 bytes, sin contar el archivo raíz. Si la [ejecución de comprobación](https://code.claude.com/docs/es/code-review-pull-requests.md#check-run-output) reporta que algunos de ellos no cupieron, acorta los archivos para que se ajusten a ese límite.

61 

49### Ejemplo de REVIEW\.md62### Ejemplo de REVIEW\.md

50 63 

51Este `REVIEW.md` recalibra la severidad para un servicio de backend, limita los nits, omite los archivos generados y agrega comprobaciones específicas del repositorio.64Este `REVIEW.md` recalibra la severidad para un servicio de backend, limita los nits, omite los archivos generados y agrega comprobaciones específicas del repositorio.


217 230 

218| Protección de rama | Copia leída | Archivos leídos |231| Protección de rama | Copia leída | Archivos leídos |

219| :- | :- | :- |232| :- | :- | :- |

220| La rama predeterminada está protegida y el pull request apunta a ella o a una rama que ningún ruleset protege | Rama predeterminada | Archivo raíz, los archivos que incluye y archivos de subdirectorios |233| La rama predeterminada está protegida y el pull request apunta a ella o a una rama que ningún ruleset protege | Rama predeterminada | Archivo raíz, los archivos que incluye y [la mayoría de los archivos de subdirectorios](#when-a-subdirectory-review-md-doesnt-apply) |

221| El pull request apunta a otra rama que un ruleset protege | Esa rama base | Archivo raíz, los archivos que incluye y archivos de subdirectorios |234| El pull request apunta a otra rama que un ruleset protege | Esa rama base | Archivo raíz, los archivos que incluye y [la mayoría de los archivos de subdirectorios](#when-a-subdirectory-review-md-doesnt-apply) |

222| La rama predeterminada no está protegida y la rama base no tiene ninguna regla de protección de ningún tipo | Rama predeterminada | Archivo raíz |235| La rama predeterminada no está protegida y la rama base no tiene ninguna regla de protección de ningún tipo | Rama predeterminada | Archivo raíz |

223| Code Review no puede confirmar la configuración de protección. Esto incluye una rama predeterminada sin protección con una rama base que solo tiene una regla clásica | Ninguna | Ninguno |236| Code Review no puede confirmar la configuración de protección. Esto incluye una rama predeterminada sin protección con una rama base que solo tiene una regla clásica | Ninguna | Ninguno |

224 237 

Details

4 4 

5# Prueba aplicaciones iOS en el simulador5# Prueba aplicaciones iOS en el simulador

6 6 

7> Claude Code Desktop abre tu aplicación en el panel del Simulador de iOS cuando Claude la compila, ejecuta o verifica, con un simulador separado para cada sesión.7> Claude Code Desktop abre tu aplicación en el panel del Simulador de iOS cuando Claude la compila, ejecuta o verifica.

8 8 

9> [!NOTE]9> [!NOTE]

10>10>


63 63 

64Cuando la aplicación se lanza en un simulador, el panel del Simulador de iOS se abre junto a la conversación. La primera vez que Claude usa un dispositivo, la aplicación de escritorio te pide que lo permitas; consulta [Otorga a Claude acceso a un dispositivo](#grant-claude-access-to-a-device). Claude instala la aplicación, navega por ella y lee la pantalla para verificar sus propios cambios mientras observas.64Cuando la aplicación se lanza en un simulador, el panel del Simulador de iOS se abre junto a la conversación. La primera vez que Claude usa un dispositivo, la aplicación de escritorio te pide que lo permitas; consulta [Otorga a Claude acceso a un dispositivo](#grant-claude-access-to-a-device). Claude instala la aplicación, navega por ella y lee la pantalla para verificar sus propios cambios mientras observas.

65 65 

66El panel del simulador se abre cada vez que Claude lanza la aplicación en un simulador, en cualquier punto de la sesión. Cuando tu solicitud es sobre ver la aplicación, por ejemplo "¿se ve bien la nueva pantalla?", Claude inicia un simulador antes de comenzar el trabajo. Después de que Claude corrija un error o cambie una pantalla, pídele que verifique el cambio: relanzar la aplicación reabre el panel si no está abierto.66Cuando tu solicitud es sobre ver la aplicación, por ejemplo "¿se ve bien la nueva pantalla?", Claude inicia un simulador antes de comenzar el trabajo. Después de que Claude corrija un error o cambie una pantalla, pídele que verifique el cambio.

67 67 

68El panel del simulador muestra el dispositivo en el que la aplicación realmente se lanzó. Para probar en un dispositivo específico, nómbralo en tu solicitud, por ejemplo "ejecútalo en el simulador de iPhone SE", y Claude apunta a ese dispositivo cuando compila y lanza.68El panel del simulador muestra el dispositivo en el que la aplicación realmente se lanzó. Para probar en un dispositivo específico, nómbralo en tu solicitud, por ejemplo "ejecútalo en el simulador de iPhone SE", y Claude apunta a ese dispositivo cuando compila y lanza.

69 69 


86 86 

87Tú 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.87Tú 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.

88 88 

89### Minimiza o cierra el panel del simulador

90 

91Puedes minimizar o cerrar el panel del simulador, y Claude puede seguir usando el dispositivo en cualquiera de los dos casos.

92 

93* Si minimizas el panel, el dispositivo permanece visible en un tamaño pequeño. Para minimizar el panel o expandirlo de nuevo, consulta [Minimizar un panel](https://code.claude.com/docs/es/desktop.md#minimize-a-pane).

94* Si cierras el panel de tamaño completo o minimizado, el dispositivo permanece conectado y en ejecución. Para volver a mostrar el dispositivo, haz clic en **iOS Simulator** en la barra de título de la sesión.

95 

89## Cómo las sesiones administran dispositivos96## Cómo las sesiones administran dispositivos

90 97 

91Cada dispositivo pertenece a la sesión que lo lanzó, por lo que las [sesiones paralelas](https://code.claude.com/docs/es/desktop.md#work-in-parallel-with-sessions) no comparten un dispositivo: lo que ves en el panel de una sesión refleja el trabajo de esa sesión, no el de otra. Cambiar sesiones en la barra lateral cambia la vista del simulador junto con la conversación, y cambiar de nuevo reanuda el mismo dispositivo donde se quedó. Si Claude trabaja con más de un dispositivo, cada uno abre su propio panel, hasta 4 por sesión.98Si tu prompt no nombra un simulador, Claude usa uno que ya esté en ejecución, aunque lo haya abierto otra [sesión paralela](https://code.claude.com/docs/es/desktop.md#work-in-parallel-with-sessions). Para darle a cada sesión su propio simulador, nombra uno diferente en el prompt de cada sesión.

92 99 

93Claude Code Desktop apaga los simuladores que inició una vez que ya no están en uso: cuando cierras la aplicación, cuando archivas la sesión, o 10 minutos después de que desconectes un dispositivo de su panel. Los dispositivos que inicias fuera de Claude Code Desktop, como en la aplicación Simulator de Apple o en Device Hub, nunca se apagan automáticamente. Para apagar el dispositivo adjunto de inmediato, usa el botón de apagado en el panel.100Claude Code Desktop apaga los simuladores que inició una vez que ya no están en uso: cuando cierras la aplicación, cuando archivas la sesión, o 10 minutos después de que desconectes un dispositivo de su panel. Los dispositivos que inicias fuera de Claude Code Desktop, como en la aplicación Simulator de Apple o en Device Hub, nunca se apagan automáticamente. Para apagar el dispositivo adjunto de inmediato, usa el botón de apagado en el panel.

94 101 

95## Otorga a Claude acceso a un dispositivo102## Otorga a Claude acceso a un dispositivo

96 103 

97Claude solicita tu consentimiento antes de controlar un dispositivo, mientras que compilar o iniciar la aplicación, o abrir una URL en ella, sigue el modo de permisos de tu sesión. Tú o tu organización también pueden desactivar completamente el acceso de Claude.104Claude solicita tu consentimiento antes de controlar un dispositivo, mientras que compilar o iniciar la aplicación, o abrir una URL en él, sigue el modo de permisos de tu sesión. Tú o tu organización también pueden desactivar completamente el acceso de Claude.

98 105 

99### Permite un dispositivo la primera vez106### Permite un dispositivo la primera vez

100 107 


102 109 

103Después de permitir un dispositivo, las acciones de Claude en él, como tocar, escribir y tomar capturas de pantalla, se ejecutan sin solicitudes de permiso, pero apruebas el inicio de la aplicación según lo requiera tu [modo de permisos](#actions-that-follow-your-permission-mode). Tienen la misma confianza que tú haciendo clic en el panel, y solo tocan el dispositivo simulado, por lo que el panel no necesita los permisos de Accesibilidad y Grabación de Pantalla de macOS que requiere el uso de computadora.110Después de permitir un dispositivo, las acciones de Claude en él, como tocar, escribir y tomar capturas de pantalla, se ejecutan sin solicitudes de permiso, pero apruebas el inicio de la aplicación según lo requiera tu [modo de permisos](#actions-that-follow-your-permission-mode). Tienen la misma confianza que tú haciendo clic en el panel, y solo tocan el dispositivo simulado, por lo que el panel no necesita los permisos de Accesibilidad y Grabación de Pantalla de macOS que requiere el uso de computadora.

104 111 

105Si rechazas, el dispositivo aún se inicia y el panel aún funciona para tus propios toques; solo el acceso de Claude se mantiene desactivado. Para cambiar de opinión más tarde, haz clic en **Let Claude use it** en el panel.112Si rechazas la solicitud de Claude, el dispositivo no se adjunta y Desktop no lo inicia. Para usar el dispositivo tú mismo:

113 

1141. Haz clic en **Attach simulator** en el panel.

1152. Haz clic en **Continue** en la pantalla de permisos.

1163. Haz clic en **Cancel** en el diálogo que aparece a continuación.

117 

118El dispositivo se adjunta y funciona para tus propios toques, y el acceso de Claude se mantiene desactivado. Después de eso, para darle acceso a Claude, haz clic en **Let Claude use it** en el panel.

106 119 

107### Acciones que siguen tu modo de permiso120### Acciones que siguen tu modo de permiso

108 121 

Details

53gpg --show-keys /usr/share/keyrings/claude-desktop-archive-keyring.asc53gpg --show-keys /usr/share/keyrings/claude-desktop-archive-keyring.asc

54```54```

55 55 

56La huella digital que gpg imprime debe ser `31DDDE24DDFAB679F42D7BD2BAA929FF1A7ECACE`. Si gpg reporta que el archivo no se puede abrir o no contiene datos OpenPGP válidos, la descarga falló o devolvió contenido incorrecto: confirma que tu red puede alcanzar `downloads.claude.ai`, luego vuelve a ejecutar el comando de descarga.56La única huella digital que gpg imprima debe ser `31DDDE24DDFAB679F42D7BD2BAA929FF1A7ECACE`. Si gpg reporta que el archivo no se puede abrir o no contiene datos OpenPGP válidos, la descarga falló o devolvió contenido incorrecto. Confirma que tu red puede alcanzar `downloads.claude.ai`, luego vuelve a ejecutar el comando de descarga.

57 57 

58Registra el repositorio:58Registra el repositorio:

59 59 

Details

160 160 

161## Permisos para tareas programadas161## Permisos para tareas programadas

162 162 

163Cada tarea tiene su propio modo de permisos, que estableces al crear o editar la tarea. Las reglas de tipo allow de `~/.claude/settings.json` también se aplican a las sesiones de tareas programadas. Si una tarea se ejecuta en [Manual mode](https://code.claude.com/docs/es/desktop.md#choose-a-permission-mode) y necesita ejecutar una herramienta para la que no tiene permiso, la ejecución se detiene hasta que la apruebes. Para aprobarla, [busca la sesión de la ejecución](#find-a-runs-session) y responde a la solicitud de permiso allí.163Cada tarea tiene su propio [modo de permisos](https://code.claude.com/docs/es/desktop.md#choose-a-permission-mode), que estableces al crear o editar la tarea. Las reglas de tipo allow de `~/.claude/settings.json` también se aplican a las sesiones de tareas programadas. Cuando una ejecución está detenida en una solicitud de permiso, [busca la sesión de la ejecución](#find-a-runs-session) y responde a la solicitud allí.

164 164 

165Para evitar detenciones, haga clic en **Run now** después de crear una tarea, observe las solicitudes de permiso y seleccione "always allow" para cada una. Las ejecuciones futuras de esa tarea aprueban automáticamente las mismas herramientas sin solicitar. Puede revisar y revocar estas aprobaciones desde la página de detalles de la tarea.165Para evitar detenciones, haz clic en **Run now** después de crear una tarea, observa las solicitudes de permiso y selecciona "always allow" para cada una. Las ejecuciones futuras omiten la mayoría de esas solicitudes. Puedes revisar y revocar estas aprobaciones desde la página de detalles de la tarea. Si seleccionas "always allow" en una edición de archivo en la carpeta de la tarea, solo esa sesión cambia a **Accept edits**, así que establece el modo de permisos de la tarea en **Accept edits**.

166 166 

167Las herramientas MCP marcadas como [`requiresUserInteraction`](https://code.claude.com/docs/es/mcp#require-approval-for-a-specific-tool) solicitan confirmación en cada llamada y no ofrecen una opción de permitir siempre. Las ejecuciones que llaman a estas herramientas se detienen cada vez.167Las herramientas MCP marcadas como [`requiresUserInteraction`](https://code.claude.com/docs/es/mcp#require-approval-for-a-specific-tool) solicitan confirmación en cada llamada y no ofrecen una opción de permitir siempre. Las ejecuciones que llaman a estas herramientas se detienen cada vez.

168 168 


179 179 

180También puede enumerar, crear, editar y pausar tareas pidiendo a Claude en cualquier sesión de Desktop. Por ejemplo, "pausa mi tarea dependency-audit" o "muéstrame mis tareas programadas." Para eliminar una tarea, use el botón **Delete** en su página de detalles.180También puede enumerar, crear, editar y pausar tareas pidiendo a Claude en cualquier sesión de Desktop. Por ejemplo, "pausa mi tarea dependency-audit" o "muéstrame mis tareas programadas." Para eliminar una tarea, use el botón **Delete** en su página de detalles.

181 181 

182Una tarea programada también puede modificar su propia programación o prompt desde dentro de una sesión en ejecución usando la herramienta MCP `update_scheduled_task`. Esto permite que una tarea se reprograme a sí misma según lo que encuentre, por ejemplo, reprogramar una revisión de código para ejecutarse antes cuando detecta que se ha creado una rama de lanzamiento.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.

183 183 

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

185 185 

env-vars.md +5 −3

Details

221| `CLAUDE_CODE_CLIENT_CERT` | Ruta al archivo de certificado de cliente para la autenticación mTLS |221| `CLAUDE_CODE_CLIENT_CERT` | Ruta al archivo de certificado de cliente para la autenticación mTLS |

222| `CLAUDE_CODE_CLIENT_KEY` | Ruta al archivo de clave privada de cliente para la autenticación mTLS |222| `CLAUDE_CODE_CLIENT_KEY` | Ruta al archivo de clave privada de cliente para la autenticación mTLS |

223| `CLAUDE_CODE_CLIENT_KEY_PASSPHRASE` | Frase de contraseña para el CLAUDE\_CODE\_CLIENT\_KEY cifrado (opcional) |223| `CLAUDE_CODE_CLIENT_KEY_PASSPHRASE` | Frase de contraseña para el CLAUDE\_CODE\_CLIENT\_KEY cifrado (opcional) |

224| `CLAUDE_CODE_CONFIG_LOCK_WAIT_MS` | Milisegundos durante los que un comando que agrega o elimina un servidor MCP con alcance `user` o `local`, como `claude mcp add`, sigue intentando obtener el bloqueo de `~/.claude.json` antes de [fallar](https://code.claude.com/docs/es/errors.md#mcp-server-was-not-saved-or-removed). Si no está configurada, el comando espera entre 10 y 20 segundos aproximadamente, y un valor menor no cambia nada. Requiere Claude Code v2.1.318 o posterior |

224| `CLAUDE_CODE_CONNECT_TIMEOUT_MS` | Se eliminó en la v2.1.186 y ahora no tiene efecto. Anteriormente establecía un tiempo de espera independiente para la fase de conexión, TLS y encabezados de respuesta de una solicitud a la API en streaming. Usa `API_TIMEOUT_MS` en su lugar. Para la fase de encabezados de respuesta de una solicitud en streaming, consulta `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS` |225| `CLAUDE_CODE_CONNECT_TIMEOUT_MS` | Se eliminó en la v2.1.186 y ahora no tiene efecto. Anteriormente establecía un tiempo de espera independiente para la fase de conexión, TLS y encabezados de respuesta de una solicitud a la API en streaming. Usa `API_TIMEOUT_MS` en su lugar. Para la fase de encabezados de respuesta de una solicitud en streaming, consulta `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS` |

225| `CLAUDE_CODE_DEBUG_LOGS_DIR` | Sobrescribe la ruta del archivo de registro de depuración. A pesar del nombre, es una ruta de archivo, no un directorio. Requiere que el modo de depuración se active por separado mediante `--debug`, `/debug` o la variable de entorno `DEBUG`: establecer solo esta variable no activa el registro. El flag [`--debug-file`](https://code.claude.com/docs/es/cli-reference#cli-flags) hace ambas cosas a la vez. El valor predeterminado es `~/.claude/debug/<session-id>.txt` |226| `CLAUDE_CODE_DEBUG_LOGS_DIR` | Sobrescribe la ruta del archivo de registro de depuración. A pesar del nombre, es una ruta de archivo, no un directorio. Requiere que el modo de depuración se active por separado mediante `--debug`, `/debug` o la variable de entorno `DEBUG`: establecer solo esta variable no activa el registro. El flag [`--debug-file`](https://code.claude.com/docs/es/cli-reference#cli-flags) hace ambas cosas a la vez. El valor predeterminado es `~/.claude/debug/<session-id>.txt` |

226| `CLAUDE_CODE_DEBUG_LOG_LEVEL` | Nivel mínimo de registro que se escribe en el archivo de registro de depuración. Valores: `verbose`, `debug` (predeterminado), `info`, `warn`, `error`. Establécela en `verbose` para incluir diagnósticos de gran volumen, como la salida completa del comando de la línea de estado, o súbela a `error` para reducir el ruido |227| `CLAUDE_CODE_DEBUG_LOG_LEVEL` | Nivel mínimo de registro que se escribe en el archivo de registro de depuración. Valores: `verbose`, `debug` (predeterminado), `info`, `warn`, `error`. Establécela en `verbose` para incluir diagnósticos de gran volumen, como la salida completa del comando de la línea de estado, o súbela a `error` para reducir el ruido |


277| `CLAUDE_CODE_DISABLE_WEB_FETCH` | Establécela en `1` para desactivar la herramienta [WebFetch](https://code.claude.com/docs/es/tools-reference.md#webfetch-tool-behavior). La herramienta [WebSearch](https://code.claude.com/docs/es/tools-reference.md#websearch-tool-behavior) sigue disponible. Requiere Claude Code v2.1.285 o posterior |278| `CLAUDE_CODE_DISABLE_WEB_FETCH` | Establécela en `1` para desactivar la herramienta [WebFetch](https://code.claude.com/docs/es/tools-reference.md#webfetch-tool-behavior). La herramienta [WebSearch](https://code.claude.com/docs/es/tools-reference.md#websearch-tool-behavior) sigue disponible. Requiere Claude Code v2.1.285 o posterior |

278| `CLAUDE_CODE_DISABLE_WINDOWS_SHELL_LAUNCHER` | Establécela en `1` para iniciar los comandos de la [herramienta PowerShell](https://code.claude.com/docs/es/tools-reference.md#powershell-tool) en Windows directamente en lugar de a través del lanzador `cmd.exe`. De forma predeterminada, el lanzador permite que un comando de PowerShell [que se ejecuta en segundo plano](https://code.claude.com/docs/es/tools-reference.md#background-commands) [se traslade al siguiente proceso de la sesión](https://code.claude.com/docs/es/agent-view.md#the-supervisor-process), por ejemplo cuando [pasas la sesión a segundo plano](https://code.claude.com/docs/es/agent-view.md#from-inside-a-session). Si estableces la variable, un comando de PowerShell en segundo plano se detiene cuando termina el proceso de la sesión. Los comandos de Bash no se ven afectados. Requiere Claude Code v2.1.269 o posterior |279| `CLAUDE_CODE_DISABLE_WINDOWS_SHELL_LAUNCHER` | Establécela en `1` para iniciar los comandos de la [herramienta PowerShell](https://code.claude.com/docs/es/tools-reference.md#powershell-tool) en Windows directamente en lugar de a través del lanzador `cmd.exe`. De forma predeterminada, el lanzador permite que un comando de PowerShell [que se ejecuta en segundo plano](https://code.claude.com/docs/es/tools-reference.md#background-commands) [se traslade al siguiente proceso de la sesión](https://code.claude.com/docs/es/agent-view.md#the-supervisor-process), por ejemplo cuando [pasas la sesión a segundo plano](https://code.claude.com/docs/es/agent-view.md#from-inside-a-session). Si estableces la variable, un comando de PowerShell en segundo plano se detiene cuando termina el proceso de la sesión. Los comandos de Bash no se ven afectados. Requiere Claude Code v2.1.269 o posterior |

279| `CLAUDE_CODE_DISABLE_WORKFLOWS` | Establécela en `1` para desactivar los [flujos de trabajo](https://code.claude.com/docs/es/workflows.md#turn-workflows-off). Equivale al ajuste [`disableWorkflows`](https://code.claude.com/docs/es/settings-reference#disableworkflows) |280| `CLAUDE_CODE_DISABLE_WORKFLOWS` | Establécela en `1` para desactivar los [flujos de trabajo](https://code.claude.com/docs/es/workflows.md#turn-workflows-off). Equivale al ajuste [`disableWorkflows`](https://code.claude.com/docs/es/settings-reference#disableworkflows) |

281| `CLAUDE_CODE_DROP_UNAVAILABLE_DEFERRED_TOOL` | Establécela en `1` para descartar una [llamada a herramienta diferida](https://code.claude.com/docs/es/hooks.md#resume-when-a-deferred-tool-is-unavailable) cuya herramienta no está disponible cuando reanudas con `-p`. Sin esta variable, la llamada queda pendiente y un prompt que envíes no llega a Claude. Requiere Claude Code v2.1.319 o posterior |

280| `CLAUDE_CODE_EFFORT_LEVEL` | Establece el nivel de esfuerzo para los modelos compatibles. Valores: `low`, `medium`, `high`, `xhigh` o `max`. Los niveles disponibles dependen del modelo. Tiene precedencia sobre `--effort`, `/effort` y los ajustes `modelSettings` y `effortLevel`. Un límite [`maxEffortLevel`](https://code.claude.com/docs/es/settings-reference#maxeffortlevel) sigue aplicándose. Establécela en `auto` o `unset` para que Claude Code [no envíe ningún nivel de esfuerzo](https://code.claude.com/docs/es/model-config.md#send-no-effort-level), de modo que la API aplique su propio valor predeterminado para el modelo. Consulta [Ajustar el nivel de esfuerzo](https://code.claude.com/docs/es/model-config.md#adjust-effort-level) |282| `CLAUDE_CODE_EFFORT_LEVEL` | Establece el nivel de esfuerzo para los modelos compatibles. Valores: `low`, `medium`, `high`, `xhigh` o `max`. Los niveles disponibles dependen del modelo. Tiene precedencia sobre `--effort`, `/effort` y los ajustes `modelSettings` y `effortLevel`. Un límite [`maxEffortLevel`](https://code.claude.com/docs/es/settings-reference#maxeffortlevel) sigue aplicándose. Establécela en `auto` o `unset` para que Claude Code [no envíe ningún nivel de esfuerzo](https://code.claude.com/docs/es/model-config.md#send-no-effort-level), de modo que la API aplique su propio valor predeterminado para el modelo. Consulta [Ajustar el nivel de esfuerzo](https://code.claude.com/docs/es/model-config.md#adjust-effort-level) |

281| `CLAUDE_CODE_EMIT_SESSION_STATE_EVENTS` | Establécela en `1` para agregar al flujo de mensajes los mensajes [`session_state_changed`](https://code.claude.com/docs/es/agent-sdk/typescript#sdksessionstatechangedmessage), que contienen el estado de la sesión. Requiere el [Agent SDK](https://code.claude.com/docs/es/agent-sdk/overview.md) o bien `--print`, `--output-format stream-json` y `--verbose` |283| `CLAUDE_CODE_EMIT_SESSION_STATE_EVENTS` | Establécela en `1` para agregar al flujo de mensajes los mensajes [`session_state_changed`](https://code.claude.com/docs/es/agent-sdk/typescript#sdksessionstatechangedmessage), que contienen el estado de la sesión. Requiere el [Agent SDK](https://code.claude.com/docs/es/agent-sdk/overview.md) o bien `--print`, `--output-format stream-json` y `--verbose` |

282| `CLAUDE_CODE_ENABLE_AUTO_MODE` | Se acepta por compatibilidad con versiones anteriores y no tiene efecto. El modo automático está disponible de forma predeterminada en todos los proveedores, incluidos Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry y las sesiones con sesión iniciada en [Claude apps gateway](https://code.claude.com/docs/es/claude-apps-gateway). De la v2.1.158 a la v2.1.206, era necesario establecerla en `1` para que el [modo automático](https://code.claude.com/docs/es/permission-modes.md#eliminate-prompts-with-auto-mode) estuviera disponible en esos proveedores |284| `CLAUDE_CODE_ENABLE_AUTO_MODE` | Se acepta por compatibilidad con versiones anteriores y no tiene efecto. El modo automático está disponible de forma predeterminada en todos los proveedores, incluidos Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry y las sesiones con sesión iniciada en [Claude apps gateway](https://code.claude.com/docs/es/claude-apps-gateway). De la v2.1.158 a la v2.1.206, era necesario establecerla en `1` para que el [modo automático](https://code.claude.com/docs/es/permission-modes.md#eliminate-prompts-with-auto-mode) estuviera disponible en esos proveedores |


295| `CLAUDE_CODE_EVEN_MORE_DANGEROUSLY_SKIP_PERMISSIONS` | Establécela en `1` para [ejecutar comandos `rm` peligrosos sin solicitud](https://code.claude.com/docs/es/permission-modes#turn-off-the-critical-path-removal-prompt-in-bypasspermissions-mode) en el modo `bypassPermissions`, lo que elimina una solicitud de seguridad para los borrados destructivos. La sección enlazada indica dónde no tiene efecto. [Establécela en el entorno que inicia Claude Code](#set-variables-in-your-shell), porque Claude Code [la ignora en un bloque `env` de la configuración](https://code.claude.com/docs/es/settings-reference#variables-claude-code-ignores-in-env). Requiere Claude Code v2.1.311 o posterior |297| `CLAUDE_CODE_EVEN_MORE_DANGEROUSLY_SKIP_PERMISSIONS` | Establécela en `1` para [ejecutar comandos `rm` peligrosos sin solicitud](https://code.claude.com/docs/es/permission-modes#turn-off-the-critical-path-removal-prompt-in-bypasspermissions-mode) en el modo `bypassPermissions`, lo que elimina una solicitud de seguridad para los borrados destructivos. La sección enlazada indica dónde no tiene efecto. [Establécela en el entorno que inicia Claude Code](#set-variables-in-your-shell), porque Claude Code [la ignora en un bloque `env` de la configuración](https://code.claude.com/docs/es/settings-reference#variables-claude-code-ignores-in-env). Requiere Claude Code v2.1.311 o posterior |

296| `CLAUDE_CODE_EXIT_AFTER_STOP_DELAY` | Tiempo en milisegundos que se espera después de que el bucle de consultas queda inactivo antes de salir automáticamente. Útil para flujos de trabajo automatizados y scripts que usan el modo SDK |298| `CLAUDE_CODE_EXIT_AFTER_STOP_DELAY` | Tiempo en milisegundos que se espera después de que el bucle de consultas queda inactivo antes de salir automáticamente. Útil para flujos de trabajo automatizados y scripts que usan el modo SDK |

297| `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` | Establécela en `1` para habilitar los [equipos de agentes](https://code.claude.com/docs/es/agent-teams.md). Los equipos de agentes son experimentales y están deshabilitados de forma predeterminada |299| `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` | Establécela en `1` para habilitar los [equipos de agentes](https://code.claude.com/docs/es/agent-teams.md). Los equipos de agentes son experimentales y están deshabilitados de forma predeterminada |

298| `CLAUDE_CODE_EXTRA_BODY` | Objeto JSON que se combina con el nivel superior del cuerpo de cada solicitud a la API. Útil para pasar parámetros específicos del proveedor que Claude Code no expone directamente. Un valor exportado en tu shell también se aplica a las [sesiones en segundo plano](https://code.claude.com/docs/es/agent-view.md) que lanzas con `claude agents` o `--bg`. Antes de la v2.1.206, las sesiones en segundo plano ignoraban un valor exportado en el shell y usaban la copia que hubiera heredado el proceso supervisor en segundo plano |300| `CLAUDE_CODE_EXTRA_BODY` | Objeto JSON que se combina en el nivel superior de los cuerpos de las solicitudes al modelo, excepto en algunas solicitudes fuera de la conversación, como las comprobaciones de `/model`. Útil para pasar parámetros específicos del proveedor que Claude Code no expone directamente. Un valor exportado en tu shell también se aplica a las [sesiones en segundo plano](https://code.claude.com/docs/es/agent-view.md) que inicias con `claude agents` o `--bg`. Antes de v2.1.206, las sesiones en segundo plano ignoraban un valor exportado en el shell y usaban la copia que hubiera heredado el proceso supervisor en segundo plano |

299| `CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS` | Sobrescribe el límite de tokens predeterminado para la [lectura de archivos](https://code.claude.com/docs/es/tools-reference.md#large-files), que es de 25,000 tokens. Útil cuando necesitas leer archivos más grandes completos. Una lectura que Claude hace con el parámetro `allow_large` puede superar este límite cuando la ventana de contexto tiene espacio |301| `CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS` | Sobrescribe el límite de tokens predeterminado para la [lectura de archivos](https://code.claude.com/docs/es/tools-reference.md#large-files), que es de 25,000 tokens. Útil cuando necesitas leer archivos más grandes completos. Una lectura que Claude hace con el parámetro `allow_large` puede superar este límite cuando la ventana de contexto tiene espacio |

300| `CLAUDE_CODE_FORCE_SESSION_PERSISTENCE` | Establécela en `1` para forzar la persistencia de la transcripción, el historial de prompts y el registro en `claude agents` incluso cuando este `claude` se haya iniciado desde dentro de otra sesión de Claude Code. Úsala cuando un valor heredado de `CLAUDE_CODE_CHILD_SESSION`, por ejemplo de una sesión de `screen` o de un lanzador en segundo plano iniciado por primera vez por la herramienta Bash de Claude Code, haga que una sesión genuina de nivel superior se clasifique erróneamente como anidada. A partir de la v2.1.178, Claude Code detecta automáticamente el caso de tmux e ignora el marcador heredado, por lo que tmux ya no necesita esta variable. También se respeta en la v2.1.169 y anteriores; no tiene efecto en la v2.1.170 ni en la v2.1.171, donde se eliminó la detección de sesiones anidadas que sobrescribe |302| `CLAUDE_CODE_FORCE_SESSION_PERSISTENCE` | Establécela en `1` para forzar la persistencia de la transcripción, el historial de prompts y el registro en `claude agents` incluso cuando este `claude` se haya iniciado desde dentro de otra sesión de Claude Code. Úsala cuando un valor heredado de `CLAUDE_CODE_CHILD_SESSION`, por ejemplo de una sesión de `screen` o de un lanzador en segundo plano iniciado por primera vez por la herramienta Bash de Claude Code, haga que una sesión genuina de nivel superior se clasifique erróneamente como anidada. A partir de la v2.1.178, Claude Code detecta automáticamente el caso de tmux e ignora el marcador heredado, por lo que tmux ya no necesita esta variable. También se respeta en la v2.1.169 y anteriores; no tiene efecto en la v2.1.170 ni en la v2.1.171, donde se eliminó la detección de sesiones anidadas que sobrescribe |

301| `CLAUDE_CODE_FORCE_STRIKETHROUGH` | Establécela en `1` para forzar la representación tachada de `~~text~~` en las respuestas de Claude cuando tu terminal lo admite pero no se detecta automáticamente, por ejemplo a través de SSH sin reenviar `TERM_PROGRAM`. Sin esto, las terminales no detectadas muestran los marcadores `~~` literales en lugar de representar el texto tachado. Requiere Claude Code v2.1.186 o posterior |303| `CLAUDE_CODE_FORCE_STRIKETHROUGH` | Establécela en `1` para forzar la representación tachada de `~~text~~` en las respuestas de Claude cuando tu terminal lo admite pero no se detecta automáticamente, por ejemplo a través de SSH sin reenviar `TERM_PROGRAM`. Sin esto, las terminales no detectadas muestran los marcadores `~~` literales en lugar de representar el texto tachado. Requiere Claude Code v2.1.186 o posterior |


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

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

315| `CLAUDE_CODE_IDE_HOST_OVERRIDE` | Sobrescribe la dirección del host que se usa para conectarse a la extensión del IDE. De forma predeterminada, Claude Code detecta automáticamente la dirección correcta, incluido el enrutamiento de WSL a Windows |317| `CLAUDE_CODE_IDE_HOST_OVERRIDE` | Sobrescribe la dirección del host que se usa para conectarse a la extensión del IDE. De forma predeterminada, Claude Code detecta automáticamente la dirección correcta, incluido el enrutamiento de WSL a Windows |

316| `CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL` | Establécela en `1` para impedir que `/ide` instale la extensión del IDE. Equivale a establecer [`autoInstallIdeExtension`](https://code.claude.com/docs/es/settings-reference#autoinstallideextension) en `false` |318| `CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL` | Establécela en `1` para impedir que `/ide` instale la extensión del IDE. Equivale a establecer [`autoInstallIdeExtension`](https://code.claude.com/docs/es/settings-reference#autoinstallideextension) en `false`. Las versiones de Claude Code anteriores a la v2.1.318 también instalan o actualizan la extensión cuando inicias `claude` en una terminal de VS Code, Cursor o Devin Desktop. Esta variable también lo impide |

317| `CLAUDE_CODE_IDE_SKIP_VALID_CHECK` | Establécela en `1` para omitir la validación de las entradas del archivo de bloqueo del IDE durante la conexión. Úsala cuando la conexión automática no encuentre tu IDE aunque esté en ejecución |319| `CLAUDE_CODE_IDE_SKIP_VALID_CHECK` | Establécela en `1` para omitir la validación de las entradas del archivo de bloqueo del IDE durante la conexión. Úsala cuando la conexión automática no encuentre tu IDE aunque esté en ejecución |

318| `CLAUDE_CODE_IDLE_COMPACT_MIN_TOKENS` | Tamaño del contexto, en tokens, a partir del cual la [compactación por inactividad](https://code.claude.com/docs/es/settings-reference.md#idlecompaction) se aplica a una conversación (valor predeterminado: `200000`). Acepta un número entero positivo, y cualquier otro valor se ignora. Los valores inferiores a `100000` se elevan a `100000`, el umbral más bajo. La compactación por inactividad está activada de forma predeterminada para las conversaciones que cumplen sus condiciones. Para desactivarla, establece `idleCompaction` en `false`. Requiere Claude Code v2.1.290 o posterior |320| `CLAUDE_CODE_IDLE_COMPACT_MIN_TOKENS` | Tamaño del contexto, en tokens, a partir del cual la [compactación por inactividad](https://code.claude.com/docs/es/settings-reference.md#idlecompaction) se aplica a una conversación (valor predeterminado: `200000`). Acepta un número entero positivo, y cualquier otro valor se ignora. Los valores inferiores a `100000` se elevan a `100000`, el umbral más bajo. La compactación por inactividad está activada de forma predeterminada para las conversaciones que cumplen sus condiciones. Para desactivarla, establece `idleCompaction` en `false`. Requiere Claude Code v2.1.290 o posterior |

319| `CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS` | Cuántos [subagentes](https://code.claude.com/docs/es/sub-agents.md#concurrent-subagent-limit) pueden estar en ejecución en una sesión antes de que la herramienta Agent se niegue a generar otro (predeterminado: 20). Acepta un número entero positivo con dígitos simples; cualquier otro valor se ignora, por lo que la variable puede ajustar el límite pero no desactivarlo. Requiere Claude Code v2.1.217 o posterior |321| `CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS` | Cuántos [subagentes](https://code.claude.com/docs/es/sub-agents.md#concurrent-subagent-limit) pueden estar en ejecución en una sesión antes de que la herramienta Agent se niegue a generar otro (predeterminado: 20). Acepta un número entero positivo con dígitos simples; cualquier otro valor se ignora, por lo que la variable puede ajustar el límite pero no desactivarlo. Requiere Claude Code v2.1.217 o posterior |


486| `MCP_DISCOVERY_CACHE_STRIKES` | En un inicio en el que una entrada de la [caché de descubrimiento](https://code.claude.com/docs/es/mcp.md#server-status-detail) es más antigua que `MCP_DISCOVERY_CACHE_TTL_S`, Claude Code la actualiza en segundo plano. Esta variable establece cuántas actualizaciones seguidas pueden fallar antes de que Claude Code descarte la entrada y conecte el servidor en el siguiente inicio en su lugar (predeterminado: 1). Auméntala si tu conexión de red se cae ocasionalmente, para que una sola actualización fallida no descarte la entrada. Requiere Claude Code v2.1.238 o posterior |488| `MCP_DISCOVERY_CACHE_STRIKES` | En un inicio en el que una entrada de la [caché de descubrimiento](https://code.claude.com/docs/es/mcp.md#server-status-detail) es más antigua que `MCP_DISCOVERY_CACHE_TTL_S`, Claude Code la actualiza en segundo plano. Esta variable establece cuántas actualizaciones seguidas pueden fallar antes de que Claude Code descarte la entrada y conecte el servidor en el siguiente inicio en su lugar (predeterminado: 1). Auméntala si tu conexión de red se cae ocasionalmente, para que una sola actualización fallida no descarte la entrada. Requiere Claude Code v2.1.238 o posterior |

487| `MCP_DISCOVERY_CACHE_TTL_S` | Segundos durante los cuales Claude Code usa una entrada de la [caché de descubrimiento](https://code.claude.com/docs/es/mcp.md#server-status-detail) sin actualizarla (predeterminado: 900). En un inicio en el que la entrada es más antigua que eso, Claude Code la sigue usando pero la actualiza en segundo plano. Una vez que la entrada es más antigua que `MCP_DISCOVERY_CACHE_MAX_STALE_S`, Claude Code la descarta en su lugar. Claude Code limita el valor a `MCP_DISCOVERY_CACHE_MAX_STALE_S`, que es de 4 horas de forma predeterminada. Antes de v2.1.238, Claude Code no limitaba el valor |489| `MCP_DISCOVERY_CACHE_TTL_S` | Segundos durante los cuales Claude Code usa una entrada de la [caché de descubrimiento](https://code.claude.com/docs/es/mcp.md#server-status-detail) sin actualizarla (predeterminado: 900). En un inicio en el que la entrada es más antigua que eso, Claude Code la sigue usando pero la actualiza en segundo plano. Una vez que la entrada es más antigua que `MCP_DISCOVERY_CACHE_MAX_STALE_S`, Claude Code la descarta en su lugar. Claude Code limita el valor a `MCP_DISCOVERY_CACHE_MAX_STALE_S`, que es de 4 horas de forma predeterminada. Antes de v2.1.238, Claude Code no limitaba el valor |

488| `MCP_OAUTH_CALLBACK_PORT` | Puerto fijo para la devolución de llamada de redirección de OAuth, como alternativa a `--callback-port` al agregar un servidor MCP con [credenciales preconfiguradas](https://code.claude.com/docs/es/mcp.md#use-pre-configured-oauth-credentials) |490| `MCP_OAUTH_CALLBACK_PORT` | Puerto fijo para la devolución de llamada de redirección de OAuth, como alternativa a `--callback-port` al agregar un servidor MCP con [credenciales preconfiguradas](https://code.claude.com/docs/es/mcp.md#use-pre-configured-oauth-credentials) |

489| `MCP_PROTOCOL_NEGOTIATION` | Solo en el [runtime de cliente MCP v2](https://code.claude.com/docs/es/mcp.md#mcp-client-runtimes), controla si Claude Code sondea los servidores en busca de la revisión 2026-07-28 del protocolo MCP. Define `legacy` para omitir el sondeo, de modo que todos los servidores se conecten con el handshake anterior a esa revisión. Define `auto` para sondear los tipos de servidor que admiten el sondeo: servidores HTTP y stdio, conectores de claude.ai y los conectores de las sesiones en la nube y de Remote Control. Con la variable sin definir, Claude Code sondea esos mismos tipos de forma predeterminada; consulta [Runtimes de cliente MCP](https://code.claude.com/docs/es/mcp.md#mcp-client-runtimes). Cualquier otro valor se ignora con una advertencia en el registro de depuración. Requiere Claude Code v2.1.221 o posterior |491| `MCP_PROTOCOL_NEGOTIATION` | Solo en el [runtime de cliente MCP v2](https://code.claude.com/docs/es/mcp.md#mcp-client-runtimes), controla si Claude Code sondea a los servidores para la revisión 2026-07-28 del protocolo MCP. Establece `legacy` para mantener todos los servidores en el protocolo de enlace anterior, o `auto` para sondear los tipos de servidor que lo admiten. Sin definir, Claude Code los sondea, pero puede [omitir algunos servidores](https://code.claude.com/docs/es/mcp.md#mcp-client-runtimes). Cualquier otro valor se ignora con una advertencia en el registro de depuración. Requiere Claude Code v2.1.221 o posterior |

490| `MCP_REMOTE_SERVER_CONNECTION_BATCH_SIZE` | Número máximo de servidores MCP remotos (HTTP/SSE) que se conectan en paralelo durante el inicio (predeterminado: 20) |492| `MCP_REMOTE_SERVER_CONNECTION_BATCH_SIZE` | Número máximo de servidores MCP remotos (HTTP/SSE) que se conectan en paralelo durante el inicio (predeterminado: 20) |

491| `MCP_SDK_GENERATION` | Fija con qué [entorno de ejecución de cliente MCP](https://code.claude.com/docs/es/mcp.md#mcp-client-runtimes) se conecta este proceso a los servidores MCP: `v1`, basado en MCP TypeScript SDK 1.x, o `v2`, basado en [MCP TypeScript SDK 2.0](https://ts.sdk.modelcontextprotocol.io/v2/). Sin la variable, Claude Code usa v2, a partir de las versiones indicadas en esa sección. En Claude Code v2.1.221 o posterior, el entorno de ejecución v2 comprueba el emisor que devuelve un servidor OAuth de MCP en su respuesta de autorización y hace fallar el inicio de sesión con un error que comienza con `Issuer mismatch in authorization response` cuando no coincide. El entorno de ejecución v1 no realiza esta comprobación. Si estableces un valor no reconocido, Claude Code lo ignora y escribe una advertencia en el registro de depuración. Claude Code lee el valor una vez por proceso. Requiere Claude Code v2.1.218 o posterior |493| `MCP_SDK_GENERATION` | Fija con qué [entorno de ejecución de cliente MCP](https://code.claude.com/docs/es/mcp.md#mcp-client-runtimes) se conecta este proceso a los servidores MCP: `v1`, basado en MCP TypeScript SDK 1.x, o `v2`, basado en [MCP TypeScript SDK 2.0](https://ts.sdk.modelcontextprotocol.io/v2/). Sin la variable, Claude Code usa v2, a partir de las versiones indicadas en esa sección. En Claude Code v2.1.221 o posterior, el entorno de ejecución v2 comprueba el emisor que devuelve un servidor OAuth de MCP en su respuesta de autorización y hace fallar el inicio de sesión con un error que comienza con `Issuer mismatch in authorization response` cuando no coincide. El entorno de ejecución v1 no realiza esta comprobación. Si estableces un valor no reconocido, Claude Code lo ignora y escribe una advertencia en el registro de depuración. Claude Code lee el valor una vez por proceso. Requiere Claude Code v2.1.218 o posterior |

492| `MCP_SERVER_CONNECTION_BATCH_SIZE` | Número máximo de servidores MCP locales (stdio) que se conectan en paralelo durante el inicio (predeterminado: 3) |494| `MCP_SERVER_CONNECTION_BATCH_SIZE` | Número máximo de servidores MCP locales (stdio) que se conectan en paralelo durante el inicio (predeterminado: 3) |

errors.md +25 −15

Details

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

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

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

64| `Claude Code didn't send your claude.ai login, because the API key helper your administrator set isn't in effect` | [Autenticación](#claude-code-didnt-send-your-claude-ai-login) |64| `Your organization's settings need an update` | [Autenticación](#claude-code-didnt-send-your-claude-ai-login) |

65| `Couldn't load your organization's settings. Check your connection` | [Autenticación](#claude-code-didnt-send-your-claude-ai-login) |

66| `Restart Claude Code to finish signing in` | [Autenticación](#claude-code-didnt-send-your-claude-ai-login) |

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

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

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


1117 1119 

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

1119 1121 

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

1121 1123 

1122```text theme={null}1124```text theme={null}

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

1126Couldn't load your organization's settings. Check your connection, then restart Claude Code.

1127Restart Claude Code to finish signing in.

1124```1128```

1125 1129 

1126**Qué hacer:**1130**Qué hacer:**

1127 1131 

1128* Para indicarle a tu administrador qué fuentes administradas tiene tu máquina, ejecuta `/status` en el prompt de Claude Code y copia la [línea `Setting sources`](https://code.claude.com/docs/es/managed-settings#read-the-source-in-/status). Si aparece una línea `Skipped sources`, cópiala también1132* `Your organization's settings need an update`: pide a tu administrador que corrija la configuración del helper de claves de API

1129* Si administras la configuración, consulta [por qué el key helper de la máquina no está en vigor](https://code.claude.com/docs/es/server-managed-settings.md#machine-apikeyhelper-not-in-effect)1133 * Para indicarle a tu administrador qué fuentes administradas tiene tu máquina, ejecuta `/status` en el prompt de Claude Code y copia la [línea `Setting sources`](https://code.claude.com/docs/es/managed-settings#read-the-source-in-/status). Si aparece una línea `Skipped sources`, cópiala también

1134 * Si administras la configuración y el helper está en el archivo de configuración administrada de una máquina o en una política de MDM, consulta [Cuando el `apiKeyHelper` de una máquina no está en vigor](https://code.claude.com/docs/es/server-managed-settings#machine-apikeyhelper-not-in-effect)

1135* `Couldn't load your organization's settings`: revisa tu conexión y luego reinicia Claude Code. Si el mensaje vuelve a aparecer después de reiniciar, avisa a tu administrador

1136* `Restart Claude Code to finish signing in`: reinicia Claude Code

1137 

1138Antes de la v2.1.315, un prompt o una carga de archivo rechazados imprimían un mensaje que empezaba con `Claude Code didn't send your claude.ai login`.

1130 1139 

1131### Valor de encabezado de solicitud no válido1140### Valor de encabezado de solicitud no válido

1132 1141 


3554 3563 

3555### El servidor MCP no se guardó ni se eliminó3564### El servidor MCP no se guardó ni se eliminó

3556 3565 

3557Ejecutaste `claude mcp add`, `claude mcp add-json` o `claude mcp remove` para un servidor en el [alcance](https://code.claude.com/docs/es/mcp.md#mcp-installation-scopes) `user` o `local`. Ambos alcances se almacenan en `~/.claude.json`, y el cambio no está en ese archivo cuando Claude Code lo vuelve a leer después de escribirlo. El comando termina con este error en lugar de su línea de éxito.3566Este error significa que un comando como `claude mcp add` o `claude mcp remove` no logró llevar tu cambio a `~/.claude.json`. Es posible que otros procesos de Claude Code hayan mantenido el archivo bloqueado, o que el archivo sea de solo lectura o esté protegido por un sandbox.

3558 3567 

3559```text theme={null}3568```text theme={null}

3560MCP server "example" was not saved to /home/user/.claude.json. If that file is read-only or protected by a sandbox, make it writable or run the command outside the sandbox, then add the server again.3569MCP server "example" was not saved to /home/user/.claude.json. If other Claude Code processes use that file, they may have kept it locked: add the server again, with CLAUDE_CODE_CONFIG_LOCK_WAIT_MS=60000 set to wait up to a minute. If that file is read-only or protected by a sandbox, make it writable or run the command outside the sandbox first.

3561```3570```

3562 3571 

3563Después de una eliminación, el mensaje dice `was not removed from` y termina con `then remove the server again`. Para un servidor de alcance `local`, la ruta va seguida del directorio del proyecto al que pertenece la entrada, como `(local scope for /path/to/project)`.3572Después de una eliminación, el mensaje dice `was not removed from` en lugar de `was not saved to`, y `remove the server again` en lugar de `add the server again`. Para un servidor de alcance `local`, la ruta va seguida del directorio de proyecto al que pertenece la entrada, como `(local scope for /path/to/project)`.

3564 

3565Antes de v2.1.283, `claude mcp add`, `claude mcp add-json` y `claude mcp remove` informaban éxito incluso cuando el cambio no llegaba al archivo.

3566 3573 

3567**Qué hacer:**3574**Qué hacer:**

3568 3575 

3569* Haz que el archivo que nombra el mensaje se pueda escribir, o ejecuta el comando fuera del sandbox, y luego vuelve a ejecutar el mismo comando de agregar o eliminar.3576* **Hay otros procesos de Claude Code en ejecución**: el comando espera entre 10 y 20 segundos aproximadamente por el bloqueo del archivo y luego se rinde sin escribir. Vuelve a ejecutar el mismo comando con [`CLAUDE_CODE_CONFIG_LOCK_WAIT_MS`](https://code.claude.com/docs/es/env-vars#variables) establecido en una espera más larga en milisegundos, como `60000`.

3577* **El archivo es de solo lectura o está protegido por un sandbox**: haz que el archivo que menciona el mensaje tenga permisos de escritura y vuelve a ejecutar el mismo comando de agregar o eliminar, o ejecuta ese comando fuera del sandbox.

3578 

3579Antes de v2.1.283, `claude mcp add`, `claude mcp add-json` y `claude mcp remove` informaban éxito incluso cuando el cambio no llegaba al archivo. Antes de v2.1.318, el mensaje no mencionaba el bloqueo, y Claude Code no leía [`CLAUDE_CODE_CONFIG_LOCK_WAIT_MS`](https://code.claude.com/docs/es/env-vars#variables).

3570 3580 

3571### Es posible que el servidor MCP no se haya guardado o eliminado3581### Es posible que el servidor MCP no se haya guardado o eliminado

3572 3582 

3573Ejecutaste `claude mcp add`, `claude mcp add-json` o `claude mcp remove` para un servidor en el [alcance](https://code.claude.com/docs/es/mcp.md#mcp-installation-scopes) `user` o `local`, y Claude Code no pudo volver a leer `~/.claude.json` para confirmar el cambio. Puede que el cambio esté en el disco o puede que no. El texto entre paréntesis es el error de esa lectura.3583Ejecutaste `claude mcp add`, `claude mcp add-json` o `claude mcp remove` para un servidor en el [alcance](https://code.claude.com/docs/es/mcp.md#mcp-installation-scopes) `user` o `local`, y Claude Code no pudo volver a leer `~/.claude.json` para confirmar el cambio. Es posible que el cambio esté o no en el disco. Los paréntesis después de `to confirm the change` indican el motivo.

3574 3584 

3575```text theme={null}3585```text theme={null}

3576MCP server "example" may not have been saved: /home/user/.claude.json could not be read to confirm the change (EACCES: permission denied, open '/home/user/.claude.json'). Run `claude mcp get example` to check, then add the server again if it is missing.3586MCP server "example" may not have been saved: /home/user/.claude.json could not be read to confirm the change (EACCES: permission denied, open '/home/user/.claude.json'). Run `claude mcp get example` to check, then add the server again if it is missing.

3577```3587```

3578 3588 

3579Después de una eliminación, el mensaje dice `may not have been removed` y termina con `then remove the server again if it is still listed`.3589Después de una eliminación, el mensaje dice `may not have been removed` y termina con `then remove the server again if it is still listed`. Si el motivo es `the file was not found`, es posible que el servidor siga configurado.

3580 3590 

3581Antes de v2.1.283, los comandos informaban éxito incluso cuando no se podía confirmar el cambio.3591Antes de v2.1.283, los comandos informaban éxito incluso cuando no se podía confirmar el cambio.

3582 3592 


3714 3724 

3715Hay cadenas similares que se activan antes de que el comando llegue a ejecutarse:3725Hay cadenas similares que se activan antes de que el comando llegue a ejecutarse:

3716 3726 

3717* `Shell command permission check failed for pattern "..."`: la verificación de permisos del comando no lo permitió. [Verificaciones de permisos en comandos inyectados](https://code.claude.com/docs/es/skills.md#permission-checks-on-injected-commands) explica qué resultados abortan en cada modo de permisos y cómo preaprobar un comando con `allowed-tools`3727* `Shell command permission check failed for pattern "..."`: la verificación de permisos del comando no lo permitió. [Permission checks on injected commands](https://code.claude.com/docs/es/skills.md#permission-checks-on-injected-commands) explica qué resultados cancelan la invocación en cada modo de permisos y cómo aprobar previamente un comando con `allowed-tools`

3718* ``Skill <name> requires bash (`shell: bash` in frontmatter) but Git Bash was not found``: el frontmatter del skill exige bash en una máquina que no lo tiene. Instala Git for Windows o cambia el frontmatter a `shell: powershell`. Consulta [Cómo se ejecutan los comandos inyectados](https://code.claude.com/docs/es/skills.md#how-injected-commands-run)3728* ``Skill <name> requires bash (`shell: bash` in frontmatter) but Git Bash was not found``: el frontmatter del skill exige bash en una máquina que no lo tiene. Instala Git for Windows o cambia el frontmatter a `shell: powershell`. Consulta [Cómo se ejecutan los comandos inyectados](https://code.claude.com/docs/es/skills.md#how-injected-commands-run)

3719 3729 

3720**Qué hacer:**3730**Qué hacer:**


3868 3878 

3869* **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 anterior3879* **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

3870* **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>`)``3880* **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>`)``

3871* **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`.3881* **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 la v2.1.221, la sugerencia proponía `git fetch --unshallow origin` para toda rama base obtenida, y en un clon completo ese comando falla con `fatal: --unshallow on a complete repository does not make sense`.

3872 3882 

3873**Qué hacer:**3883**Qué hacer:**

3874 3884 

fast-mode.md +5 −5

Details

35En la CLI, activa el modo rápido de cualquiera de estas formas:35En la CLI, activa el modo rápido de cualquiera de estas formas:

36 36 

37* Ejecuta `/fast`, presiona Space para activar o desactivar, luego presiona Enter para confirmar37* Ejecuta `/fast`, presiona Space para activar o desactivar, luego presiona Enter para confirmar

38* Establece `"fastMode": true` en tu [archivo de configuración de usuario](https://code.claude.com/docs/es/settings.md)38* En un modelo que admita el modo rápido, establece `"fastMode": true` en tu [archivo de configuración de usuario](https://code.claude.com/docs/es/settings.md). Si lo estableces en cualquier otro modelo, permaneces en ese modelo con el modo rápido desactivado.

39 39 

40De forma predeterminada, el modo rápido que activas en una sesión interactiva persiste entre sesiones. Puedes configurar el modo rápido para que se reinicie cada sesión. Consulta [opción de participación por sesión](#require-per-session-opt-in) para obtener más detalles.40De forma predeterminada, el modo rápido que activas en una sesión interactiva persiste entre sesiones en un modelo compatible. Puedes configurar el modo rápido para que se reinicie cada sesión. Consulta [opción de participación por sesión](#require-per-session-opt-in) para obtener más detalles.

41 41 

42Fuera de una [sesión en la nube](#use-fast-mode-in-cloud-sessions), en [modo no interactivo](https://code.claude.com/docs/es/headless.md) con la bandera `-p`, `/fast` funciona solo en una sesión iniciada con el modo rápido en su valor [`--settings`](https://code.claude.com/docs/es/cli-reference#cli-flags), por ejemplo `claude -p --settings '{"fastMode": true}'`; el cambio se aplica solo a esa sesión y no se guarda como tu valor predeterminado. El formulario `-p` requiere Claude Code v2.1.205 o posterior. En cualquier otro lugar en modo no interactivo, el comando reporta que el modo rápido no está disponible.42Fuera de una [sesión en la nube](#use-fast-mode-in-cloud-sessions), en [modo no interactivo](https://code.claude.com/docs/es/headless.md) con la bandera `-p`, `/fast` funciona solo en una sesión iniciada con el modo rápido en su valor [`--settings`](https://code.claude.com/docs/es/cli-reference#cli-flags), por ejemplo `claude -p --settings '{"fastMode": true}'`; el cambio se aplica solo a esa sesión y no se guarda como tu valor predeterminado. El formulario `-p` requiere Claude Code v2.1.205 o posterior. En cualquier otro lugar en modo no interactivo, el comando reporta que el modo rápido no está disponible.

43 43 


45 45 

46Para la mejor eficiencia de costos, habilita el modo rápido al inicio de una sesión en lugar de cambiar a mitad de la conversación. Consulta [comprender la compensación de costos](#understand-the-cost-tradeoff) para obtener más detalles.46Para la mejor eficiencia de costos, habilita el modo rápido al inicio de una sesión en lugar de cambiar a mitad de la conversación. Consulta [comprender la compensación de costos](#understand-the-cost-tradeoff) para obtener más detalles.

47 47 

48Cuando habilitas el modo rápido:48Cuando habilitas el modo rápido con `/fast`:

49 49 

50* Si tu modelo actual no admite el modo rápido, Claude Code cambia a Opus50* Si tu modelo actual no admite el modo rápido, Claude Code cambia a Opus

51* Verás un mensaje de confirmación: "Fast mode ON"51* Verás un mensaje de confirmación: "Fast mode ON"


196 196 

197### Requerir opción de participación por sesión197### Requerir opción de participación por sesión

198 198 

199De forma predeterminada, el modo rápido que un usuario activa en una sesión interactiva persiste entre sesiones. Para cambiar esto, establezca `fastModePerSessionOptIn` en `true` en cualquier [archivo de configuración](https://code.claude.com/docs/es/settings.md#where-settings-live), lo que hace que cada sesión comience con el modo rápido desactivado y requiere que los usuarios lo habiliten explícitamente con `/fast`. Los propietarios en planes [Team](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=fast_mode_teams#team-&-enterprise) o [Enterprise](https://anthropic.com/contact-sales?utm_source=claude_code\&utm_medium=docs\&utm_content=fast_mode_enterprise) pueden implementarlo en toda la organización a través de [configuración administrada por servidor](https://code.claude.com/docs/es/server-managed-settings.md).199De forma predeterminada, el modo rápido que un usuario activa en una sesión interactiva persiste entre sesiones en un modelo compatible. Para cambiar esto, establece `fastModePerSessionOptIn` en `true` en cualquier [archivo de configuración](https://code.claude.com/docs/es/settings.md#where-settings-live), lo que hace que cada sesión comience con el modo rápido desactivado y requiere que los usuarios lo habiliten explícitamente con `/fast`. Los propietarios en planes [Team](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=fast_mode_teams#team-&-enterprise) o [Enterprise](https://anthropic.com/contact-sales?utm_source=claude_code\&utm_medium=docs\&utm_content=fast_mode_enterprise) pueden implementarlo en toda la organización a través de [configuración administrada por servidor](https://code.claude.com/docs/es/server-managed-settings.md).

200 200 

201```json theme={null}201```json theme={null}

202{202{


221 221 

222Si se agotan tus créditos de uso a mitad de la sesión, Claude Code reintenta cada solicitud de modo rápido rechazada a velocidad y precios estándar, por lo que continúas trabajando y no hay enfriamiento. La forma en que ves el rechazo depende del tipo de sesión:222Si se agotan tus créditos de uso a mitad de la sesión, Claude Code reintenta cada solicitud de modo rápido rechazada a velocidad y precios estándar, por lo que continúas trabajando y no hay enfriamiento. La forma en que ves el rechazo depende del tipo de sesión:

223 223 

224* En una sesión interactiva, Claude Code muestra una notificación "Fast mode disabled · usage credits exhausted" (Modo rápido desactivado · créditos de uso agotados) y desactiva el modo rápido para el resto de la sesión. Tu preferencia de modo rápido guardada no cambia; ejecuta `/fast` para volver a activar el modo rápido.224* En una sesión interactiva, Claude Code muestra una notificación "Fast mode disabled · Out of usage credits" (Modo rápido desactivado · sin créditos de uso) y desactiva el modo rápido. Tu preferencia de modo rápido guardada no cambia; ejecuta `/fast` para volver a activar el modo rápido.

225* En [modo no interactivo](https://code.claude.com/docs/es/headless.md) con `--output-format stream-json`, y a través del Agent SDK, Claude Code emite el mismo texto en el flujo de mensajes como un mensaje `system` con subtipo `notification`, una vez por turno mientras se te acaban los créditos de uso. El modo rápido permanece activado. Requiere Claude Code v2.1.221 o posterior.225* En [modo no interactivo](https://code.claude.com/docs/es/headless.md) con `--output-format stream-json`, y a través del Agent SDK, Claude Code emite el mismo texto en el flujo de mensajes como un mensaje `system` con subtipo `notification`, una vez por turno mientras se te acaban los créditos de uso. El modo rápido permanece activado. Requiere Claude Code v2.1.221 o posterior.

226 226 

227## Vista previa de investigación227## Vista previa de investigación

hooks.md +64 −22

Details

70 70 

71> [tab] macOS/Linux71> [tab] macOS/Linux

72>72>

73> El `matcher` se reduce a llamadas a herramientas Bash y la condición `if` se reduce aún más a subcomandos Bash que coinciden con `rm *`, por lo que `block-rm.sh` solo se genera cuando ambos filtros coinciden:73> El `matcher` se reduce a llamadas a la herramienta Bash y a [comandos de Monitor](#match-monitor-commands), y la condición `if` se reduce aún más a subcomandos Bash que coinciden con `rm *`, por lo que `block-rm.sh` solo se genera cuando ambos filtros coinciden:

74>74>

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

76> {76> {


112> fi112> fi

113> ```113> ```

114>114>

115> Este script, como los otros ejemplos de Bash en esta página que analizan entrada JSON, utiliza `jq`, así que instale `jq` y asegúrese de que esté en su `PATH` antes de intentarlos.115> Este script, como los otros ejemplos de Bash en esta página que analizan entrada JSON, utiliza `jq`, así que instala `jq` y asegúrate de que esté en tu `PATH` antes de probarlos.

116 116 

117> [tab] Windows (PowerShell)117> [tab] Windows (PowerShell)

118>118>

119> El matcher `Bash|PowerShell` cubre la [herramienta PowerShell](#powershell) así como Bash. Una única regla `if` coincide solo con las llamadas de una herramienta, por lo que cada herramienta obtiene su propio controlador: el primero se reduce a subcomandos Bash que coinciden con `rm *`, el segundo a comandos PowerShell que coinciden con `Remove-Item *`. Ambos ejecutan el mismo script a través de `powershell.exe`:119> El matcher `Bash|PowerShell` cubre la [herramienta PowerShell](#powershell) así como Bash. Una única regla `if` nombra una sola herramienta, por lo que cada herramienta obtiene su propio controlador: el primero se reduce a subcomandos Bash que coinciden con `rm *`, el segundo a comandos PowerShell que coinciden con `Remove-Item *`. Ambos ejecutan el mismo script a través de `powershell.exe`:

120>120>

121> ```json theme={null}121> ```json theme={null}

122> {122> {


225Los hooks se definen en archivos de configuración JSON. La configuración tiene tres niveles de anidamiento:225Los hooks se definen en archivos de configuración JSON. La configuración tiene tres niveles de anidamiento:

226 226 

2271. Elige un [evento de hook](#hook-events) al que responder, como `PreToolUse` o `Stop`2271. Elige un [evento de hook](#hook-events) al que responder, como `PreToolUse` o `Stop`

2282. Añade un [grupo de matcher](#matcher-patterns) para filtrar cuándo se activa, como "solo para la herramienta Bash"2282. Agrega un [grupo de matcher](#matcher-patterns) para filtrar cuándo se activa, por ejemplo, "para la herramienta Bash"

2293. Define uno o más [manejadores de hook](#hook-handler-fields) para ejecutar cuando coincida2293. Define uno o más [manejadores de hook](#hook-handler-fields) para ejecutar cuando coincida

230 230 

231Consulta [Cómo se resuelve un hook](#how-a-hook-resolves) arriba para un recorrido completo con un ejemplo anotado.231Consulta [Cómo se resuelve un hook](#how-a-hook-resolves) arriba para un recorrido completo con un ejemplo anotado.


277| Valor de matcher | Evaluado como | Ejemplo |277| Valor de matcher | Evaluado como | Ejemplo |

278| :- | :- | :- |278| :- | :- | :- |

279| `"*"`, `""` u omitido | Coincidir con todo | se activa en cada ocurrencia del evento |279| `"*"`, `""` u omitido | Coincidir con todo | se activa en cada ocurrencia del evento |

280| Solo letras, dígitos, `_`, `-`, espacios, `,` y `\|` | Cadena exacta, o lista de cadenas exactas separadas por `\|` o `,` con espacios en blanco opcionales alrededor | `Bash` coincide solo con la herramienta Bash; `Edit\|Write` y `Edit, Write` cada una coincide con cualquiera de las herramientas exactamente; `code-reviewer` coincide solo con ese tipo de agente |280| Solo letras, dígitos, `_`, `-`, espacios, `,` y `\|` | Cadena exacta, o lista de cadenas exactas separadas por `\|` o `,` con espacios en blanco opcionales alrededor | `Bash` coincide con la herramienta Bash y, en `PreToolUse` y `PermissionRequest`, también con [comandos de Monitor](#match-monitor-commands); `Edit\|Write` y `Edit, Write` cada una coincide con cualquiera de las herramientas exactamente; `code-reviewer` coincide solo con ese tipo de agente |

281| Contiene cualquier otro carácter | Expresión regular de JavaScript, sin anclar | `^Notebook` coincide con cualquier herramienta cuyo nombre comience con `Notebook`; `mcp__memory__.*` coincide con cada herramienta del servidor `memory` |281| Contiene cualquier otro carácter | Expresión regular de JavaScript, sin anclar | `^Notebook` coincide con cualquier herramienta cuyo nombre comience con `Notebook`; `mcp__memory__.*` coincide con cada herramienta del servidor `memory` |

282 282 

283Un matcher en la ruta de expresión regular se prueba con `RegExp.prototype.test` de JavaScript, que tiene éxito en una coincidencia en cualquier lugar del valor. `Edit.*` coincide tanto con `Edit` como con `NotebookEdit`; envuelve el patrón en `^` y `$`, como en `^Edit$`, cuando necesites una coincidencia de cadena completa.283Un matcher en la ruta de expresión regular se prueba con `RegExp.prototype.test` de JavaScript, que tiene éxito en una coincidencia en cualquier lugar del valor. `Edit.*` coincide tanto con `Edit` como con `NotebookEdit`; envuelve el patrón en `^` y `$`, como en `^Edit$`, cuando necesites una coincidencia de cadena completa.


294| `SessionStart` | cómo comenzó la sesión | `startup`, `resume`, `clear`, `compact`, `fork` |294| `SessionStart` | cómo comenzó la sesión | `startup`, `resume`, `clear`, `compact`, `fork` |

295| `Setup` | qué bandera CLI activó la configuración | `init`, `maintenance` |295| `Setup` | qué bandera CLI activó la configuración | `init`, `maintenance` |

296| `SessionEnd` | por qué terminó la sesión | `clear`, `resume`, `logout`, `prompt_input_exit`, `other` |296| `SessionEnd` | por qué terminó la sesión | `clear`, `resume`, `logout`, `prompt_input_exit`, `other` |

297| `Notification` | tipo de notificación | `permission_prompt`, `idle_prompt`, `auth_success`, `elicitation_dialog`, `elicitation_url_dialog`, `elicitation_complete`, `elicitation_response`, `agent_needs_input`, `agent_completed`, `quota_auto_resume_fired`, `quota_auto_resume_stale`, `quota_auto_resume_disabled`, `plugin_notification` |297| `Notification` | tipo de notificación | `permission_prompt`, `idle_prompt`, `auth_success`, `auth_storage_failure`, `elicitation_dialog`, `elicitation_url_dialog`, `elicitation_complete`, `elicitation_response`, `agent_needs_input`, `agent_completed`, `quota_auto_resume_fired`, `quota_auto_resume_stale`, `quota_auto_resume_disabled`, `plugin_notification` |

298| `SubagentStart` | tipo de agente | `general-purpose`, `Explore`, `Plan`, nombres de agentes personalizados, o nombres con alcance de plugin como `^my-plugin:reviewer$` |298| `SubagentStart` | tipo de agente | `general-purpose`, `Explore`, `Plan`, nombres de agentes personalizados, o nombres con alcance de plugin como `^my-plugin:reviewer$` |

299| `PreCompact`, `PostCompact` | qué activó la compactación | `manual`, `auto` |299| `PreCompact`, `PostCompact` | qué activó la compactación | `manual`, `auto` |

300| `PreModelSwitch`, `PostModelSwitch` | nombre canónico del modelo al que cambia la sesión, como se describe en [PreModelSwitch](#premodelswitch) | `claude-opus-5`, `claude-opus-4-6\|claude-opus-5`, `.*opus.*` |300| `PreModelSwitch`, `PostModelSwitch` | nombre canónico del modelo al que cambia la sesión, como se describe en [PreModelSwitch](#premodelswitch) | `claude-opus-5`, `claude-opus-4-6\|claude-opus-5`, `.*opus.*` |


385}385}

386```386```

387 387 

388#### Coincidir comandos de Monitor

389 

390Un hook [`PreToolUse`](#pretooluse) o [`PermissionRequest`](#permissionrequest) con un matcher `Bash` también se ejecuta en los comandos de shell que Claude inicia con la [herramienta Monitor](https://code.claude.com/docs/es/tools-reference.md#monitor-tool), pero su `allow` y su [`updatedInput`](#pretooluse-decision-control) no tienen efecto sobre ellos. Requiere Claude Code v2.1.314 o posterior. Los matchers como `Bash|PowerShell`, `^Bash$` y `Bash.*` también son matchers `Bash`. Un hook con un matcher `Bash` no se ejecuta para una [vigilancia de WebSocket](https://code.claude.com/docs/es/tools-reference.md#websocket-source), y un hook `PostToolUse` con uno no se ejecuta para Monitor.

391 

392Un hook que se ejecuta para un comando de Monitor puede denegarlo o hacer que Claude Code te pregunte al respecto. Para permitir o reescribir el comando, cambia de un matcher `Bash` a uno que incluya Monitor:

393 

394* **Matcher que incluye Monitor**: con un matcher como `Bash|Monitor` o `.*`, o sin matcher, el hook recibe la propia entrada de la llamada a Monitor, y `allow` y `updatedInput` se aplican. En [`if`](#common-fields), nombra Monitor, como en `Monitor(tail *)`, que coincide según [las reglas que sigue `Bash(tail *)`](#bash-if-matching). Si su `if` nombra Bash, el hook sigue recibiendo la entrada de la llamada a Monitor, pero `allow` y `updatedInput` no tienen efecto

395* **Matcher `Bash`**: el hook recibe una llamada a Bash. En `if`, nombra Bash, como en `Bash(tail *)`. El hook no se ejecuta si su `if` nombra Monitor

396 

388### Campos de manejador de hook397### Campos de manejador de hook

389 398 

390Cada objeto en el array `hooks` interno es un manejador de hook: el comando shell, punto final HTTP, herramienta MCP, prompt LLM o agente que se ejecuta cuando el matcher coincide. Hay cinco tipos:399Cada objeto en el array `hooks` interno es un manejador de hook: el comando shell, punto final HTTP, herramienta MCP, prompt LLM o agente que se ejecuta cuando el matcher coincide. Hay cinco tipos:


811* **Dos o más líneas que se analizan como JSON cada una por su cuenta, la primera comenzando con `{` y la última terminando con `}`**: texto plano cuando ninguna línea es un objeto de salida JSON que establezca un campo. Cuando alguna lo es, la salida es un fallo de análisis, así que imprime ese objeto sin nada más en stdout.820* **Dos o más líneas que se analizan como JSON cada una por su cuenta, la primera comenzando con `{` y la última terminando con `}`**: texto plano cuando ninguna línea es un objeto de salida JSON que establezca un campo. Cuando alguna lo es, la salida es un fallo de análisis, así que imprime ese objeto sin nada más en stdout.

812* **Cualquier otra cosa que comience con `{` y termine con `}` pero no sea JSON válido**: un fallo de análisis.821* **Cualquier otra cosa que comience con `{` y termine con `}` pero no sea JSON válido**: un fallo de análisis.

813 822 

814Para la mayoría de los eventos, Claude Code escribe stdout en el registro de depuración y no lo muestra en la transcripción. Las excepciones son `UserPromptSubmit`, `UserPromptExpansion`, `SessionStart` y `PostModelSwitch`, donde Claude Code agrega el stdout de texto plano como contexto que Claude puede ver y sobre el que puede actuar. En esos eventos, Claude Code no agrega el stdout que no pudo analizar.823Para la mayoría de los eventos, Claude Code escribe stdout en el registro de depuración y no lo muestra en la transcripción. En estos eventos, tu stdout llega a Claude o al resumen de compactación:

824 

825* **`UserPromptSubmit`, `UserPromptExpansion`, `SessionStart` y `PostModelSwitch`**: Claude Code agrega el stdout de texto plano como contexto que Claude puede ver y sobre el que puede actuar. No agrega el stdout que no pudo analizar.

826* **`PreCompact`**: tu stdout se convierte en [instrucciones para el resumen de compactación](#precompact-output)

815 827 

816Claude nunca ve el stderr de un hook que sale con 0. Para leerlo tú mismo en eventos como `PreToolUse`, habilita el [registro de depuración](#debug-hooks). Para mostrarle una advertencia a Claude desde un hook `PostToolUse` o `PostToolUseFailure`, sal con 2 en su lugar para que [Claude vea el stderr](#exit-code-2-behavior-per-event) aunque la herramienta ya se haya ejecutado.828Claude nunca ve el stderr de un hook que sale con 0. Para leerlo tú mismo en eventos como `PreToolUse`, habilita el [registro de depuración](#debug-hooks). Para mostrarle una advertencia a Claude desde un hook `PostToolUse` o `PostToolUseFailure`, sal con 2 en su lugar para que [Claude vea el stderr](#exit-code-2-behavior-per-event) aunque la herramienta ya se haya ejecutado.

817 829 


1050Las cadenas `additionalContext`, `systemMessage` e `initialUserMessage` de un hook, y su stdout plano, están limitadas a 10.000 caracteres:1062Las cadenas `additionalContext`, `systemMessage` e `initialUserMessage` de un hook, y su stdout plano, están limitadas a 10.000 caracteres:

1051 1063 

1052* **Alcance**: Claude Code mide cada cadena por separado, incluso cuando varios hooks se ejecutan para el mismo evento. En la salida JSON, cada campo se mide por separado; el stdout plano se mide completo.1064* **Alcance**: Claude Code mide cada cadena por separado, incluso cuando varios hooks se ejecutan para el mismo evento. En la salida JSON, cada campo se mide por separado; el stdout plano se mide completo.

1053* **Por encima del límite**: Claude Code guarda la salida en un archivo en el directorio de la sesión y la reemplaza con la ruta del archivo y una vista previa de hasta los primeros 2.000 caracteres. Un resultado de Bash válido y grande se maneja de la misma manera, como se describe en [Límites de salida](https://code.claude.com/docs/es/tools-reference.md#output-limits). A diferencia de ese tope de Bash, este límite no tiene ningún ajuste ni variable de entorno para aumentarlo.1065* **Por encima del límite**: excepto para el [stdout de PreCompact](#precompact-output), Claude Code guarda la salida en un archivo en el directorio de la sesión. Reemplaza la salida con la ruta del archivo y una vista previa de hasta los primeros 2.000 caracteres. Un resultado de Bash válido y grande se maneja de la misma manera, como se describe en [Límites de salida](https://code.claude.com/docs/es/tools-reference.md#output-limits). A diferencia de ese tope de Bash, este límite no tiene ningún ajuste ni variable de entorno para aumentarlo.

1054* **Lectura del archivo**: Claude Code no le pide a Claude que lea el archivo, así que mantén dentro del límite todo lo que Claude deba ver siempre.1066* **Lectura del archivo**: Claude Code no le pide a Claude que lea el archivo, así que mantén dentro del límite todo lo que Claude deba ver siempre.

1055 1067 

1056El objeto JSON admite tres tipos de campos:1068El objeto JSON admite tres tipos de campos:


1954 1966 

1955#### Control de decisiones de PreToolUse1967#### Control de decisiones de PreToolUse

1956 1968 

1957Los hooks `PreToolUse` pueden controlar si una llamada a herramienta continúa. A diferencia de otros hooks que usan un campo `decision` de nivel superior, PreToolUse devuelve su decisión dentro de un objeto `hookSpecificOutput`. Esto le da un control más completo: cuatro resultados (permitir, denegar, preguntar o diferir) y la capacidad de modificar la entrada de la herramienta antes de la ejecución.1969Los hooks de `PreToolUse` pueden controlar si una llamada a herramienta continúa. A diferencia de otros hooks que usan un campo `decision` de nivel superior, PreToolUse devuelve su decisión dentro de un objeto `hookSpecificOutput`. Esto le da un control más rico: cuatro resultados (permitir, denegar, preguntar o diferir), además de la capacidad de modificar la entrada de la herramienta antes de la ejecución. Para permitir o reescribir un comando de Monitor, consulta [Hacer coincidir comandos de Monitor](#match-monitor-commands).

1958 1970 

1959| Campo | Descripción |1971| Campo | Descripción |

1960| :- | :- |1972| :- | :- |


2051 2063 

2052#### Diferir una llamada a herramienta para más tarde2064#### Diferir una llamada a herramienta para más tarde

2053 2065 

2054`"defer"` está pensado para integraciones que ejecutan `claude -p` como subproceso y leen su salida JSON, como una aplicación del Agent SDK o una interfaz personalizada construida sobre Claude Code. Permite que ese proceso llamador pause a Claude en una llamada a herramienta, recopile la entrada mediante su propia interfaz y reanude donde se quedó. Claude Code respeta este valor solo en el [modo no interactivo](https://code.claude.com/docs/es/headless.md) con el flag `-p`. En las sesiones interactivas, registra una advertencia e ignora el resultado del hook.2066`"defer"` es para integraciones que ejecutan `claude -p` como subproceso y leen su salida JSON, como una app de Agent SDK o una UI personalizada creada sobre Claude Code. Permite que ese proceso que hace la llamada pause a Claude en una llamada a herramienta, recopile la entrada a través de su propia interfaz y reanude donde lo dejó.

2067 

2068Claude Code respeta `"defer"` solo en [modo no interactivo](https://code.claude.com/docs/es/headless.md) con el flag `-p`, y solo cuando Claude hace una única llamada a herramienta en el turno:

2069 

2070* **En sesiones interactivas**: registra una advertencia e ignora el resultado del hook

2071* **Varias llamadas a herramientas a la vez**: `"defer"` se ignora con una advertencia y la herramienta continúa por el flujo de permisos normal

2055 2072 

2056La herramienta `AskUserQuestion` es el caso típico: Claude quiere preguntarle algo al usuario, pero no hay una terminal donde responder. Una ejecución `-p` ofrece `AskUserQuestion` solo cuando tiene un [host de permisos](https://code.claude.com/docs/es/headless.md#turn-off-permission-prompts-in-unattended-runs), como una herramienta MCP que pasas con `--permission-prompt-tool`, así que inicia la ejecución con uno. El recorrido completo funciona así:2073La herramienta `AskUserQuestion` es el caso típico: Claude quiere preguntarle algo al usuario, pero no hay una terminal donde responder. Una ejecución `-p` ofrece `AskUserQuestion` solo cuando tiene un [host de permisos](https://code.claude.com/docs/es/headless.md#turn-off-permission-prompts-in-unattended-runs), como una herramienta MCP que pasas con `--permission-prompt-tool`, así que inicia la ejecución con uno. El recorrido completo funciona así:

2057 2074 


20614. El proceso llamador ejecuta `claude -p --resume <session-id>` con el mismo host de permisos. La misma llamada a herramienta vuelve a disparar `PreToolUse`.20784. El proceso llamador ejecuta `claude -p --resume <session-id>` con el mismo host de permisos. La misma llamada a herramienta vuelve a disparar `PreToolUse`.

20625. El hook devuelve `permissionDecision: "allow"` con la respuesta en `updatedInput`. La herramienta se ejecuta y Claude continúa.20795. El hook devuelve `permissionDecision: "allow"` con la respuesta en `updatedInput`. La herramienta se ejecuta y Claude continúa.

2063 2080 

2064El campo `deferred_tool_use` contiene el `id`, el `name` y el `input` de la herramienta. El `input` son los parámetros que Claude generó para la llamada a herramienta, capturados antes de la ejecución:2081El campo `deferred_tool_use` lleva el `id`, el `name` y el `input` de la herramienta:

2065 2082 

2066```json theme={null}2083```json theme={null}

2067{2084{


2077}2094}

2078```2095```

2079 2096 

2080No hay tiempo de espera ni límite de reintentos. La sesión permanece en disco hasta que la reanudas, sujeta a la limpieza de retención de [`cleanupPeriodDays`](https://code.claude.com/docs/es/settings-reference#cleanupperioddays), que elimina los archivos de sesión después de 30 días de forma predeterminada, según las [reglas de limpieza de retención](https://code.claude.com/docs/es/claude-directory.md#cleaned-up-automatically).2097No hay tiempo de espera ni límite de reintentos. La sesión permanece en disco hasta que la [limpieza por retención](https://code.claude.com/docs/es/claude-directory.md#cleaned-up-automatically) de [`cleanupPeriodDays`](https://code.claude.com/docs/es/settings-reference#cleanupperioddays) la elimina, después de 30 días de forma predeterminada.

2081 

2082Si la herramienta diferida ya no está disponible cuando reanudas, el primer resultado de la reanudación tiene `stop_reason: "tool_deferred_unavailable"` e `is_error: true`, y el hook no se dispara. Esto ocurre cuando un servidor MCP que proporcionaba la herramienta no está conectado en la sesión reanudada. El payload `deferred_tool_use` se sigue incluyendo para que puedas identificar qué herramienta falta.

2083 

2084* **Si no enviaste ningún prompt, ni con la reanudación ni después**, la llamada sigue pendiente. Reanuda de nuevo con la herramienta disponible y se ejecutará primero.

2085* **Si enviaste un prompt, con la reanudación o después**, Claude Code lo responde sin el resultado de la herramienta y descarta la llamada diferida. Envía un nuevo prompt cuando la herramienta esté disponible si aún necesitas que se llame.

2086 2098 

2087Si la respuesta que esperas no está lista cuando reanudas sin un prompt, el hook puede volver a devolver `"defer"`. Si enviaste un prompt y el hook vuelve a diferir, Claude Code trata el prompt de la misma manera: lo responde sin el resultado de la herramienta y descarta la llamada. Reanuda sin un prompt hasta que el hook devuelva `"allow"` o `"deny"`, que es como el proceso que hace la llamada rompe el bucle.2099Si la respuesta no está lista cuando reanudas, el hook puede devolver `"defer"` otra vez. Si enviaste un prompt con esa reanudación, Claude lo responde sin el resultado de la herramienta y no ejecuta la llamada. Reanuda sin un prompt hasta que el hook devuelva `"allow"` o `"deny"`.

2088 

2089`"defer"` solo funciona cuando Claude hace una única llamada a herramienta en el turno. Si Claude hace varias llamadas a herramientas a la vez, `"defer"` se ignora con una advertencia y la herramienta continúa por el flujo de permisos normal. Esta restricción existe porque la reanudación solo puede volver a ejecutar una herramienta: no hay forma de diferir una llamada de un lote sin dejar las demás sin resolver.

2090 2100 

2091> [!NOTE]2101> [!NOTE]

2092>2102>

2093> Para reanudar una sesión diferida en modo plan, pasa [`--permission-prompt-tool`](https://code.claude.com/docs/es/cli-reference#cli-flags) junto con `--resume` para que Claude Code pueda presentar el plan para su aprobación. Para las demás condiciones, consulta [Reanudar en modo plan con `-p`](https://code.claude.com/docs/es/sessions#resume-in-plan-mode-with-p). Requiere Claude Code v2.1.246 o posterior.2103> Para reanudar una sesión diferida en modo plan, pasa [`--permission-prompt-tool`](https://code.claude.com/docs/es/cli-reference#cli-flags) junto con `--resume` para que Claude Code pueda presentar el plan para su aprobación. Para las demás condiciones, consulta [Reanudar en modo plan con `-p`](https://code.claude.com/docs/es/sessions#resume-in-plan-mode-with-p). Requiere Claude Code v2.1.246 o posterior.

2094>2104>

2095> Cuando reanudas con `-p`, Claude Code no restaura ningún otro modo de permisos almacenado. Inicia la ejecución en el modo de permisos en el que se iniciaría una ejecución nueva de `claude -p`, así que vuelve a pasar `--permission-mode` o `--dangerously-skip-permissions` si la sesión diferida usaba alguno. Cuando reanudas con `claude --resume <session-id>` sin `-p`, Claude Code restaura el modo de permisos almacenado, con las excepciones que se indican en [modo de permisos al reanudar](https://code.claude.com/docs/es/sessions.md#permission-mode-on-resume).2105> Cuando reanudas con `-p`, Claude Code no restaura ningún otro modo de permisos almacenado. Inicia la ejecución en el modo de permisos en el que se iniciaría una nueva ejecución de `claude -p`, así que vuelve a pasar `--permission-mode` o `--dangerously-skip-permissions` si la sesión diferida usaba uno.

2106 

2107##### Reanudar cuando una herramienta diferida no está disponible

2108 

2109Un resultado con `stop_reason: "tool_deferred_unavailable"` significa que la herramienta de una llamada diferida no está disponible en la sesión reanudada, por ejemplo porque su servidor MCP no está conectado. Tu hook `PreToolUse` no se dispara, y el campo `deferred_tool_use` del resultado indica el nombre de la herramienta.

2110 

2111Mientras la llamada está pendiente, cualquier prompt que envíes no llega a Claude y la ejecución termina con el código 1. El campo `result` comienza con `<tool> isn't available, so its deferred call didn't run.` Ejecuta la llamada o descártala para que no se ejecute:

2112 

2113* **Para ejecutar la llamada**: haz que la herramienta esté disponible y reanuda de nuevo.

2114* **Para descartar la llamada**: reanuda con un prompt y con [`CLAUDE_CODE_DROP_UNAVAILABLE_DEFERRED_TOOL`](https://code.claude.com/docs/es/env-vars#variables) establecida en `1`. Claude recibe un error como resultado de la llamada y responde tu prompt. Cuando reanudes más tarde, no habrá ninguna llamada pendiente.

2115 

2116Cuando descartas la llamada, la ejecución escribe el resultado `tool_deferred_unavailable` con un campo `result` vacío y, luego, la respuesta de Claude en un segundo resultado. Termina con el código 0 a menos que esa respuesta sea un error. Si estableces la variable y no envías ningún prompt, la ejecución igualmente descarta la llamada y termina con el código 1.

2117 

2118Antes de v2.1.319, Claude Code respondía un prompt sin el resultado de la herramienta y descartaba la llamada. En esas versiones, envía un nuevo prompt una vez que la herramienta esté disponible.

2096 2119 

2097### PermissionRequest2120### PermissionRequest

2098 2121 


2148| `message` | Solo para `"deny"`: le indica a Claude por qué se denegó el permiso |2171| `message` | Solo para `"deny"`: le indica a Claude por qué se denegó el permiso |

2149| `interrupt` | Solo para `"deny"`: si es `true`, detiene a Claude |2172| `interrupt` | Solo para `"deny"`: si es `true`, detiene a Claude |

2150 2173 

2174Para permitir o reescribir un comando de Monitor, consulta [Hacer coincidir comandos de Monitor](#match-monitor-commands).

2175 

2151Un hook que sale con 2 sin un objeto `decision` deja sin cambios el flujo de permisos, y su stderr se descarta. Para conceder o denegar la solicitud, devuelve el objeto `decision`.2176Un hook que sale con 2 sin un objeto `decision` deja sin cambios el flujo de permisos, y su stderr se descarta. Para conceder o denegar la solicitud, devuelve el objeto `decision`.

2152 2177 

2153```json theme={null}2178```json theme={null}


2205* Para ejecutar un hook después de que cualquier herramienta se complete correctamente, omite el `matcher` o establécelo en `"*"`. Así, tu hook puede descubrir por sí mismo qué cambió, por ejemplo ejecutando `git status --porcelain`, que también enumera los archivos sin seguimiento que `git diff` pasa por alto. Para las llamadas a herramientas que fallan, agrega el mismo hook en [PostToolUseFailure](#posttoolusefailure).2230* Para ejecutar un hook después de que cualquier herramienta se complete correctamente, omite el `matcher` o establécelo en `"*"`. Así, tu hook puede descubrir por sí mismo qué cambió, por ejemplo ejecutando `git status --porcelain`, que también enumera los archivos sin seguimiento que `git diff` pasa por alto. Para las llamadas a herramientas que fallan, agrega el mismo hook en [PostToolUseFailure](#posttoolusefailure).

2206* Para ejecutar un hook cuando un archivo específico cambia en el disco, sin importar qué lo escribió, usa [FileChanged](#filechanged). Claude Code no ejecuta un hook `PostToolUse` que coincida con `Edit|Write` cuando un comando `Bash` o un proceso externo a Claude Code reescribe el mismo archivo.2231* Para ejecutar un hook cuando un archivo específico cambia en el disco, sin importar qué lo escribió, usa [FileChanged](#filechanged). Claude Code no ejecuta un hook `PostToolUse` que coincida con `Edit|Write` cuando un comando `Bash` o un proceso externo a Claude Code reescribe el mismo archivo.

2207 2232 

2233#### PostToolUse después de una interrupción

2234 

2235Si un hook `PostToolUse` se detiene antes de tiempo después de que envías un mensaje o interrumpes durante una llamada a herramienta, verifica si presionaste `Ctrl+Enter`, `Enter` o `Esc`:

2236 

2237* **`Ctrl+Enter`**: si presionarla [termina el turno](https://code.claude.com/docs/es/interactive-mode.md#when-claude-code-sends-what-you-queued) mientras una herramienta se está ejecutando y la herramienta termina, tus hooks `PostToolUse` se ejecutan sobre su resultado y tienen 10 segundos para terminar. La tecla actúa como `Esc` si pusiste en cola un comando `!` antes de tus mensajes o si las tareas en segundo plano están desactivadas, por ejemplo con [`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS`](https://code.claude.com/docs/es/env-vars#variables).

2238* **`Enter`**: un mensaje que pones en cola con `Enter` no interrumpe el turno, así que los hooks conservan su `timeout` habitual.

2239* **`Esc`**: cancelas los hooks de inmediato, así que envía el mensaje con `Enter` o `Ctrl+Enter` cuando los hooks tengan que ejecutarse.

2240 

2241Cuando se cumplen los 10 segundos, Claude Code finaliza un hook de comando que aún se esté ejecutando, sea cual sea su [`timeout`](#common-fields). Para permitir que un hook de comando más largo termine, ejecútalo con [`async: true`](#run-hooks-in-the-background), lo que significa que el hook no puede bloquear ni reescribir el resultado.

2242 

2243Antes de v2.1.319, los hooks no se iniciaban después de que interrumpías el turno con un mensaje, y un hook en ejecución se detenía.

2244 

2208#### Entrada de PostToolUse2245#### Entrada de PostToolUse

2209 2246 

2210Los hooks `PostToolUse` se disparan después de que una herramienta ya se ejecutó correctamente. La entrada incluye tanto `tool_input`, los argumentos enviados a la herramienta, como `tool_response`, el resultado que devolvió. El esquema exacto de ambos depende de la herramienta. Las rutas de `tool_input` de las herramientas de archivos llegan en el mismo formato que para [PreToolUse](#pretooluse-input): siempre absolutas, con los separadores nativos de la plataforma, es decir, barras invertidas en Windows. Para una herramienta MCP, la entrada también incluye el objeto [`mcp_server`](#pretooluse-input).2247Los hooks `PostToolUse` se disparan después de que una herramienta ya se ejecutó correctamente. La entrada incluye tanto `tool_input`, los argumentos enviados a la herramienta, como `tool_response`, el resultado que devolvió. El esquema exacto de ambos depende de la herramienta. Las rutas de `tool_input` de las herramientas de archivos llegan en el mismo formato que para [PreToolUse](#pretooluse-input): siempre absolutas, con los separadores nativos de la plataforma, es decir, barras invertidas en Windows. Para una herramienta MCP, la entrada también incluye el objeto [`mcp_server`](#pretooluse-input).


2479| `permission_prompt` | Claude necesita que apruebes el uso de una herramienta o la [solicitud de red](https://code.claude.com/docs/es/sandboxing.md#network-isolation) de un comando en el sandbox, y la solicitud lleva esperando unos seis segundos |2516| `permission_prompt` | Claude necesita que apruebes el uso de una herramienta o la [solicitud de red](https://code.claude.com/docs/es/sandboxing.md#network-isolation) de un comando en el sandbox, y la solicitud lleva esperando unos seis segundos |

2480| `idle_prompt` | Claude terminó de responder hace unos 60 segundos y no has escrito nada desde entonces |2517| `idle_prompt` | Claude terminó de responder hace unos 60 segundos y no has escrito nada desde entonces |

2481| `auth_success` | Se completa la autenticación |2518| `auth_success` | Se completa la autenticación |

2519| `auth_storage_failure` | Tu inicio de sesión se completa, pero Claude Code no puede guardar las nuevas credenciales en su [almacenamiento de credenciales](https://code.claude.com/docs/es/authentication.md#credential-management). Se dispara en lugar de `auth_success` |

2482| `elicitation_dialog` | Un servidor MCP abre un formulario de elicitación y no has escrito nada durante unos seis segundos |2520| `elicitation_dialog` | Un servidor MCP abre un formulario de elicitación y no has escrito nada durante unos seis segundos |

2483| `elicitation_url_dialog` | Un servidor MCP te pide que abras una URL en el navegador y no has escrito nada durante unos seis segundos |2521| `elicitation_url_dialog` | Un servidor MCP te pide que abras una URL en el navegador y no has escrito nada durante unos seis segundos |

2484| `elicitation_complete` | Un servidor MCP informa que una [elicitación en modo URL](#elicitation-input) se completó |2522| `elicitation_complete` | Un servidor MCP informa que una [elicitación en modo URL](#elicitation-input) se completó |


2490| `quota_auto_resume_disabled` | Claude Code termina su espera por un límite de uso de claude.ai sin continuar tu tarea: [`autoContinueAtUsageLimit`](https://code.claude.com/docs/es/settings-reference#autocontinueatusagelimit) se desactivó o el restablecimiento se movió a más de 24 horas durante una espera que Claude Code inició por su cuenta, la tarea continuada siguió alcanzando el límite, o la continuación se bloqueó antes de llegar al modelo. No se dispara cuando presionas `Esc` o `Ctrl+C`, o eliges **Don't continue automatically** |2528| `quota_auto_resume_disabled` | Claude Code termina su espera por un límite de uso de claude.ai sin continuar tu tarea: [`autoContinueAtUsageLimit`](https://code.claude.com/docs/es/settings-reference#autocontinueatusagelimit) se desactivó o el restablecimiento se movió a más de 24 horas durante una espera que Claude Code inició por su cuenta, la tarea continuada siguió alcanzando el límite, o la continuación se bloqueó antes de llegar al modelo. No se dispara cuando presionas `Esc` o `Ctrl+C`, o eliges **Don't continue automatically** |

2491| `plugin_notification` | Un [mod](https://code.claude.com/docs/es/plugins/mods/api.md#show-something-without-starting-a-turn) genera una notificación con `$.ui.notify`. El `title` del hook es el nombre del mod, a menos que el mod haya establecido uno |2529| `plugin_notification` | Un [mod](https://code.claude.com/docs/es/plugins/mods/api.md#show-something-without-starting-a-turn) genera una notificación con `$.ui.notify`. El `title` del hook es el nombre del mod, a menos que el mod haya establecido uno |

2492 2530 

2493Los tipos `quota_auto_resume_fired`, `quota_auto_resume_stale` y `quota_auto_resume_disabled` requieren Claude Code v2.1.234 o posterior.2531Los tipos `quota_auto_resume_fired`, `quota_auto_resume_stale` y `quota_auto_resume_disabled` requieren Claude Code v2.1.234 o posterior. El tipo `auth_storage_failure` requiere v2.1.288 o posterior.

2494 2532 

2495En sesiones de terminal, `permission_prompt` para la solicitud de red de un comando en el sandbox requiere Claude Code v2.1.246 o posterior.2533En sesiones de terminal, `permission_prompt` para la solicitud de red de un comando en el sandbox requiere Claude Code v2.1.246 o posterior.

2496 2534 


3326}3364}

3327```3365```

3328 3366 

3367#### Salida de PreCompact

3368 

3369Cuando un hook PreCompact termina con 0 y no bloquea, Claude Code usa su stdout como instrucciones para el resumen de la compactación. Mantén ese stdout por debajo de 10.000 caracteres por hook. Claude Code corta la salida más larga en el límite y agrega un marcador.

3370 

3329### PostCompact3371### PostCompact

3330 3372 

3331Se ejecuta después de que Claude Code completa una operación de compactación. Usa este evento para reaccionar al nuevo estado compactado, por ejemplo para registrar el resumen generado o actualizar un estado externo. Claude Code descarta los campos `systemMessage` y `continue` de un hook PostCompact.3373Se ejecuta después de que Claude Code completa una operación de compactación. Usa este evento para reaccionar al nuevo estado compactado, por ejemplo para registrar el resumen generado o actualizar un estado externo. Claude Code descarta los campos `systemMessage` y `continue` de un hook PostCompact.

hooks-guide.md +4 −3

Details

177> >177> >

178> > Si ejecutas Claude Code dentro de WSL, `powershell.exe` debe estar disponible en tu `PATH` mediante la interoperabilidad de Windows.178> > Si ejecutas Claude Code dentro de WSL, `powershell.exe` debe estar disponible en tu `PATH` mediante la interoperabilidad de Windows.

179 179 

180El `matcher` vacío se dispara con todos los tipos de notificación. Para que se dispare solo con eventos específicos, establécelo en uno de estos valores:180El `matcher` vacío se dispara con todos los tipos de notificación. Para que se dispare solo con eventos específicos, establécelo en un tipo de notificación, como uno de estos:

181 181 

182| Matcher | Se dispara cuando |182| Matcher | Se dispara cuando |

183| :- | :- |183| :- | :- |

184| `permission_prompt` | Claude necesita que apruebes el uso de una herramienta o la [solicitud de red](https://code.claude.com/docs/es/sandboxing.md#network-isolation) de un comando en sandbox, y la solicitud de permiso lleva unos seis segundos esperando |184| `permission_prompt` | Claude necesita que apruebes el uso de una herramienta o la [solicitud de red](https://code.claude.com/docs/es/sandboxing.md#network-isolation) de un comando en sandbox, y la solicitud de permiso lleva unos seis segundos esperando |

185| `idle_prompt` | Claude terminó de responder hace unos 60 segundos y no has escrito nada desde entonces |185| `idle_prompt` | Claude terminó de responder hace unos 60 segundos y no has escrito nada desde entonces |

186| `auth_success` | Se completa la autenticación |186| `auth_success` | Se completa la autenticación |

187| `auth_storage_failure` | Tu inicio de sesión se completa, pero Claude Code no puede guardar las nuevas credenciales en su [almacenamiento de credenciales](https://code.claude.com/docs/es/authentication.md#credential-management). Se dispara en lugar de `auth_success` |

187| `elicitation_dialog` | Un servidor MCP abre un formulario de elicitación y no has escrito nada durante unos seis segundos |188| `elicitation_dialog` | Un servidor MCP abre un formulario de elicitación y no has escrito nada durante unos seis segundos |

188| `elicitation_url_dialog` | Un servidor MCP te pide que abras una URL en el navegador y no has escrito nada durante unos seis segundos |189| `elicitation_url_dialog` | Un servidor MCP te pide que abras una URL en el navegador y no has escrito nada durante unos seis segundos |

189| `elicitation_complete` | Un servidor MCP informa que una [elicitación en modo URL](https://code.claude.com/docs/es/hooks.md#elicitation-input) está completa |190| `elicitation_complete` | Un servidor MCP informa que una [elicitación en modo URL](https://code.claude.com/docs/es/hooks.md#elicitation-input) está completa |


197 198 

198Claude Code mide el tiempo de `permission_prompt` de forma diferente en una terminal y en Claude Desktop, la extensión de VS Code y otros hosts que responden a las solicitudes de permiso a través del Agent SDK. Consulta [cuándo se dispara cada tipo de notificación](https://code.claude.com/docs/es/hooks.md#notification) para conocer ambos tiempos.199Claude Code mide el tiempo de `permission_prompt` de forma diferente en una terminal y en Claude Desktop, la extensión de VS Code y otros hosts que responden a las solicitudes de permiso a través del Agent SDK. Consulta [cuándo se dispara cada tipo de notificación](https://code.claude.com/docs/es/hooks.md#notification) para conocer ambos tiempos.

199 200 

200Los matchers `quota_auto_resume_fired`, `quota_auto_resume_stale` y `quota_auto_resume_disabled` requieren Claude Code v2.1.234 o posterior.201Los matchers `quota_auto_resume_fired`, `quota_auto_resume_stale` y `quota_auto_resume_disabled` requieren Claude Code v2.1.234 o posterior. El matcher `auth_storage_failure` requiere v2.1.288 o posterior.

201 202 

202En sesiones de terminal, `permission_prompt` para la solicitud de red de un comando en sandbox requiere Claude Code v2.1.246 o posterior.203En sesiones de terminal, `permission_prompt` para la solicitud de red de un comando en sandbox requiere Claude Code v2.1.246 o posterior.

203 204 


688| `SessionStart` | cómo comenzó la sesión | `startup`, `resume`, `clear`, `compact`, `fork` |689| `SessionStart` | cómo comenzó la sesión | `startup`, `resume`, `clear`, `compact`, `fork` |

689| `Setup` | qué bandera CLI activó la configuración | `init`, `maintenance` |690| `Setup` | qué bandera CLI activó la configuración | `init`, `maintenance` |

690| `SessionEnd` | por qué terminó la sesión | `clear`, `resume`, `logout`, `prompt_input_exit`, `other` |691| `SessionEnd` | por qué terminó la sesión | `clear`, `resume`, `logout`, `prompt_input_exit`, `other` |

691| `Notification` | tipo de notificación | `permission_prompt`, `idle_prompt`, `auth_success`, `elicitation_dialog`, `elicitation_url_dialog`, `elicitation_complete`, `elicitation_response`, `agent_needs_input`, `agent_completed`, `quota_auto_resume_fired`, `quota_auto_resume_stale`, `quota_auto_resume_disabled`, `plugin_notification` |692| `Notification` | tipo de notificación | `permission_prompt`, `idle_prompt`, `auth_success`, `auth_storage_failure`, `elicitation_dialog`, `elicitation_url_dialog`, `elicitation_complete`, `elicitation_response`, `agent_needs_input`, `agent_completed`, `quota_auto_resume_fired`, `quota_auto_resume_stale`, `quota_auto_resume_disabled`, `plugin_notification` |

692| `SubagentStart` | tipo de agente | `general-purpose`, `Explore`, `Plan`, o nombres de agentes personalizados |693| `SubagentStart` | tipo de agente | `general-purpose`, `Explore`, `Plan`, o nombres de agentes personalizados |

693| `PreCompact`, `PostCompact` | qué activó la compactación | `manual`, `auto` |694| `PreCompact`, `PostCompact` | qué activó la compactación | `manual`, `auto` |

694| `PreModelSwitch`, `PostModelSwitch` | nombre canónico del modelo al que la sesión cambia, como se describe en [PreModelSwitch](https://code.claude.com/docs/es/hooks.md#premodelswitch) | `claude-opus-5`, `claude-opus-4-6\|claude-opus-5`, `.*opus.*` |695| `PreModelSwitch`, `PostModelSwitch` | nombre canónico del modelo al que la sesión cambia, como se describe en [PreModelSwitch](https://code.claude.com/docs/es/hooks.md#premodelswitch) | `claude-opus-5`, `claude-opus-4-6\|claude-opus-5`, `.*opus.*` |

mcp.md +12 −2

Details

306 306 

307El panel `/mcp` muestra el recuento de herramientas junto a cada servidor conectado y marca los servidores que anuncian la capacidad de herramientas pero no exponen herramientas.307El panel `/mcp` muestra el recuento de herramientas junto a cada servidor conectado y marca los servidores que anuncian la capacidad de herramientas pero no exponen herramientas.

308 308 

309##### Recuento de herramientas en una sesión en la nube

310 

311En una [sesión en la nube](https://code.claude.com/docs/es/claude-code-on-the-web.md), un recuento como `3 of 13 tools available` significa que Claude no puede usar las otras 10. Comprueba estas causas, entre otras:

312 

313* **Una regla de denegación en el `.claude/settings.json` de tu repositorio nombra la herramienta o su servidor completo**: elimina la [regla](https://code.claude.com/docs/es/permissions.md#mcp), si [tu sesión lee ese archivo](https://code.claude.com/docs/es/settings.md#settings-in-cloud-sessions)

314* **El nombre completo de la herramienta tiene más de 128 caracteres**: sigue [los pasos para un nombre demasiado largo](https://code.claude.com/docs/es/errors.md#mcp-tool-name-over-128-characters)

315* **El servidor lista la herramienta para su propia interfaz y no para Claude**: si mantienes el servidor, agrega `model` a `_meta.ui.visibility` de la herramienta para dársela a Claude. En caso contrario, no hay nada que corregir.

316 

317##### Herramientas de un servidor que aún se está conectando

318 

309Si tu solicitud necesita herramientas de un servidor que aún se está conectando en segundo plano, Claude espera a ese servidor antes de continuar. Cómo sucede la espera depende de tu configuración:319Si tu solicitud necesita herramientas de un servidor que aún se está conectando en segundo plano, Claude espera a ese servidor antes de continuar. Cómo sucede la espera depende de tu configuración:

310 320 

311* **Con [búsqueda de herramientas](#scale-with-mcp-tool-search), el valor predeterminado**: la espera sucede dentro de la llamada `ToolSearch`.321* **Con [búsqueda de herramientas](#scale-with-mcp-tool-search), el valor predeterminado**: la espera sucede dentro de la llamada `ToolSearch`.


349* Hace fallar un [inicio de sesión OAuth de MCP](#authenticate-with-remote-mcp-servers) cuya respuesta de autorización nombra un emisor inesperado.359* Hace fallar un [inicio de sesión OAuth de MCP](#authenticate-with-remote-mcp-servers) cuya respuesta de autorización nombra un emisor inesperado.

350* Envía credenciales de [OAuth de MCP](#authenticate-with-remote-mcp-servers) solo a un endpoint de token servido sobre HTTPS o en `localhost`, `127.0.0.1`, o `::1`. El inicio de sesión falla para un servidor cuyo endpoint de token es `http://` simple en cualquier otro lugar, como un dispositivo en tu red local. Consulta [Refusing to send credentials to non-https token endpoint](https://code.claude.com/docs/es/errors.md#refusing-to-send-credentials-to-non-https-token-endpoint).360* Envía credenciales de [OAuth de MCP](#authenticate-with-remote-mcp-servers) solo a un endpoint de token servido sobre HTTPS o en `localhost`, `127.0.0.1`, o `::1`. El inicio de sesión falla para un servidor cuyo endpoint de token es `http://` simple en cualquier otro lugar, como un dispositivo en tu red local. Consulta [Refusing to send credentials to non-https token endpoint](https://code.claude.com/docs/es/errors.md#refusing-to-send-credentials-to-non-https-token-endpoint).

351 361 

352Anthropic puede mantener un servidor específico en el protocolo anterior, o fuera de esa secuencia, con un feature flag que Claude Code obtiene.362Anthropic puede mantener un servidor específico en el protocolo anterior, o fuera de ese stream, con un feature flag que Claude Code obtiene. Para elegir el runtime tú mismo, establece [`MCP_SDK_GENERATION`](https://code.claude.com/docs/es/env-vars) en `v1` o `v2`.

353 363 

354Para elegir el tiempo de ejecución tú mismo, establece [`MCP_SDK_GENERATION`](https://code.claude.com/docs/es/env-vars) en `v1` o `v2`. Para decidir si Claude Code pregunta, establece [`MCP_PROTOCOL_NEGOTIATION`](https://code.claude.com/docs/es/env-vars) en `auto` o `legacy`.364Para decidir si Claude Code pregunta a los servidores por la revisión más reciente, establece [`MCP_PROTOCOL_NEGOTIATION`](https://code.claude.com/docs/es/env-vars) en `auto` o `legacy`. Con esa variable sin establecer, Claude Code puede dejar de preguntar a un servidor stdio durante 7 días, por ejemplo después de que el servidor termina al preguntarle. Para que se le pregunte antes a un servidor actualizado, establece `auto`.

355 365 

356### Actualizaciones dinámicas de herramientas366### Actualizaciones dinámicas de herramientas

357 367 

mobile.md +1 −1

Details

66 66 

67### Obtener notificaciones push67### Obtener notificaciones push

68 68 

69Cuando Remote Control está activo, Claude puede enviar notificaciones push a su teléfono, típicamente cuando una tarea de larga duración finaliza o cuando necesita una decisión de usted. También puede solicitar una en su indicación, como `notify me when the tests finish`. Consulte [notificaciones push móviles](https://code.claude.com/docs/es/remote-control.md#mobile-push-notifications) para los dos cambios `/config` y solución de problemas de entrega.69Cuando Remote Control está activo, Claude puede enviar notificaciones push a tu teléfono cuando una tarea de larga duración finaliza o cuando necesita que tomes una decisión. También puedes pedir una en tu prompt, por ejemplo `notify me when the tests finish`. Consulta [notificaciones push móviles](https://code.claude.com/docs/es/remote-control.md#mobile-push-notifications) para conocer los dos interruptores de `/config` y la solución de problemas de entrega.

70 70 

71Dispatch envía su propia notificación cuando una sesión de Code que generó finaliza o necesita su aprobación, descrito en [sesiones desde Dispatch](https://code.claude.com/docs/es/desktop.md#sessions-from-dispatch).71Dispatch envía su propia notificación cuando una sesión de Code que generó finaliza o necesita su aprobación, descrito en [sesiones desde Dispatch](https://code.claude.com/docs/es/desktop.md#sessions-from-dispatch).

72 72 

model-config.md +10 −1

Details

566* Si ambos modelos marcan la misma solicitud, puedes editar el prompt y reintentar, o iniciar una sesión nueva.566* Si ambos modelos marcan la misma solicitud, puedes editar el prompt y reintentar, o iniciar una sesión nueva.

567* En las [sesiones en la nube](https://code.claude.com/docs/es/claude-code-on-the-web.md) en la app móvil, no se admite editar y reintentar. Cambia de modelo o continúa la sesión desde un navegador de escritorio o la app de escritorio.567* En las [sesiones en la nube](https://code.claude.com/docs/es/claude-code-on-the-web.md) en la app móvil, no se admite editar y reintentar. Cambia de modelo o continúa la sesión desde un navegador de escritorio o la app de escritorio.

568* En el [modo no interactivo](https://code.claude.com/docs/es/cli-reference.md#cli-flags) y en las integraciones con el SDK que no pueden mostrar la consulta, una solicitud marcada termina el turno con un rechazo.568* En el [modo no interactivo](https://code.claude.com/docs/es/cli-reference.md#cli-flags) y en las integraciones con el SDK que no pueden mostrar la consulta, una solicitud marcada termina el turno con un rechazo.

569* En un [subagente](https://code.claude.com/docs/es/sub-agents.md), Claude Code no muestra la consulta, y una solicitud marcada que cambiaría de modelo se vuelve a ejecutar en el modelo de respaldo.569* En un subagente que Claude inicia con la [herramienta Agent](https://code.claude.com/docs/es/tools-reference.md#agent-tool-behavior), Claude Code no se pausa para preguntar, y el subagente falla en lugar de cambiar de modelo. Consulta [Los subagentes cambian o fallan sin preguntar](#subagents-switch-or-fail-without-asking).

570* Cuando el destino de respaldo está bloqueado por [`availableModels`](#restrict-model-selection), Claude Code no muestra la consulta. La solicitud marcada termina con el rechazo, igual que en el respaldo automático cuando el destino está bloqueado.570* Cuando el destino de respaldo está bloqueado por [`availableModels`](#restrict-model-selection), Claude Code no muestra la consulta. La solicitud marcada termina con el rechazo, igual que en el respaldo automático cuando el destino está bloqueado.

571 571 

572#### Los subagentes cambian o fallan sin preguntar

573 

574En un [subagente](https://code.claude.com/docs/es/sub-agents.md) integrado o personalizado que Claude inicia con la [herramienta Agent](https://code.claude.com/docs/es/tools-reference.md#agent-tool-behavior), Claude Code no [se pausa para preguntar](#ask-before-switching) ante una solicitud marcada. Si hay un modelo de respaldo disponible, la solicitud se vuelve a ejecutar en él o el subagente falla, según tu elección en **Switch models when a message is flagged** de `/config`:

575 

576* **Switch automatically**, o sin elección todavía: la solicitud se vuelve a ejecutar en el modelo de respaldo, y el modelo de tu sesión no cambia

577* **Ask each time**: el subagente falla con [`Agent terminated early due to an API error`](https://code.claude.com/docs/es/errors#agent-terminated-early-due-to-an-api-error) y el mensaje de rechazo. Claude recibe ese error y decide qué hacer con la tarea sin terminar. Para permitir que los subagentes cambien de modelo, elige **Switch automatically**. Entonces tu conversación principal también cambia sin preguntar.

578 

579Cuando no hay ningún modelo de respaldo disponible, el subagente falla de la misma forma con cualquiera de las dos elecciones. Antes de la v2.1.318, la solicitud marcada de un subagente se volvía a ejecutar en un modelo de respaldo disponible, fuera cual fuera tu elección.

580 

572#### Habilitar el respaldo en Bedrock, Agent Platform y Foundry581#### Habilitar el respaldo en Bedrock, Agent Platform y Foundry

573 582 

574En [Amazon Bedrock](https://code.claude.com/docs/es/amazon-bedrock.md), [Google Cloud's Agent Platform](https://code.claude.com/docs/es/google-vertex-ai.md) y [Microsoft Foundry](https://code.claude.com/docs/es/microsoft-foundry.md), los ID de modelo son específicos del proveedor, por lo que el respaldo automático solo funciona cuando Claude Code puede identificar cada modelo involucrado:583En [Amazon Bedrock](https://code.claude.com/docs/es/amazon-bedrock.md), [Google Cloud's Agent Platform](https://code.claude.com/docs/es/google-vertex-ai.md) y [Microsoft Foundry](https://code.claude.com/docs/es/microsoft-foundry.md), los ID de modelo son específicos del proveedor, por lo que el respaldo automático solo funciona cuando Claude Code puede identificar cada modelo involucrado:

Details

89export NODE_EXTRA_CA_CERTS=/path/to/ca-cert.pem89export NODE_EXTRA_CA_CERTS=/path/to/ca-cert.pem

90```90```

91 91 

92Si ves cualquiera de estas advertencias, Claude Code no pudo cargar el archivo `NODE_EXTRA_CA_CERTS` en su totalidad, y las conexiones que necesiten un certificado que se omitió pueden fallar:

93 

94* `Claude Code used only the certificates that it could read in full from the NODE_EXTRA_CA_CERTS file`

95* `Claude Code ignored all of the NODE_EXTRA_CA_CERTS file: it holds no certificate that Claude Code can read`

96 

97El texto completo de cada advertencia indica cómo corregir el archivo. Un certificado omitido que también esté en el [almacén de certificados CA](#ca-certificate-store) sigue funcionando.

98 

92## Autenticación mTLS99## Autenticación mTLS

93 100 

94Para entornos empresariales que requieren autenticación de certificado de cliente:101Para entornos empresariales que requieren autenticación de certificado de cliente:

Details

154 154 

155### Modos de permisos con la configuración HIPAA155### Modos de permisos con la configuración HIPAA

156 156 

157En una organización con la [configuración HIPAA](https://code.claude.com/docs/es/hipaa-setup.md) aplicada, el valor predeterminado integrado `auto` no se aplica. Una sesión de terminal o de VS Code comienza en modo Manual cuando nada más elige su modo de permisos inicial. Una sesión de terminal también muestra `Auto mode isn't the default for your organization · Shift+Tab to switch`, y la extensión de VS Code no muestra ningún aviso. [Comprueba cómo inician sesión y se conectan los desarrolladores](https://code.claude.com/docs/es/hipaa-setup.md#check-how-developers-sign-in-and-connect) enumera las sesiones a las que se aplica esto.157En una organización con la [configuración HIPAA](https://code.claude.com/docs/es/hipaa-setup.md) aplicada, el [valor predeterminado integrado `auto`](#which-mode-a-session-starts-in) no se aplica. Una sesión de terminal o de VS Code comienza en modo Manual cuando nada más elige su modo de permisos inicial. Una sesión de terminal también muestra `Auto mode isn't the default for your organization · Shift+Tab to switch`, y la extensión de VS Code no muestra ningún aviso. [Comprueba cómo inician sesión y se conectan los desarrolladores](https://code.claude.com/docs/es/hipaa-setup.md#check-how-developers-sign-in-and-connect) enumera las sesiones a las que se aplica esto.

158 158 

159El modo automático y `bypassPermissions` siguen disponibles:159El modo automático y `bypassPermissions` siguen disponibles:

160 160 


163* **Eliminar el modo automático**: establece [`permissions.disableAutoMode`](https://code.claude.com/docs/es/settings-reference#disableautomode) en `"disable"` en la configuración administrada163* **Eliminar el modo automático**: establece [`permissions.disableAutoMode`](https://code.claude.com/docs/es/settings-reference#disableautomode) en `"disable"` en la configuración administrada

164* **Bloquear `bypassPermissions`**: establece [`permissions.disableBypassPermissionsMode`](https://code.claude.com/docs/es/settings-reference#permissions-disablebypasspermissionsmode) en `"disable"` en la configuración administrada164* **Bloquear `bypassPermissions`**: establece [`permissions.disableBypassPermissionsMode`](https://code.claude.com/docs/es/settings-reference#permissions-disablebypasspermissionsmode) en `"disable"` en la configuración administrada

165 165 

166Requiere Claude Code v2.1.285 o posterior, la [versión mínima para la configuración HIPAA](https://code.claude.com/docs/es/hipaa-setup.md#update-claude-code-and-claude-desktop).

167 

168## Cambiar modos de permisos166## Cambiar modos de permisos

169 167 

170Cada interfaz tiene su propio control para cambiar modos de permisos durante una sesión y su propia forma de elegir el modo de permisos que inician las nuevas sesiones. Seleccione su interfaz para ver sus controles.168Cada interfaz tiene su propio control para cambiar modos de permisos durante una sesión y su propia forma de elegir el modo de permisos que inician las nuevas sesiones. Seleccione su interfaz para ver sus controles.


253>251>

254> En [claude.ai/code](https://claude.ai/code), usa el menú desplegable de modo en la fila debajo del cuadro de prompt. En la aplicación móvil, toca el botón **+** en el cuadro de prompt y luego **Permission**. Las sesiones en la nube y las sesiones de Remote Control ofrecen modos de permisos diferentes:252> En [claude.ai/code](https://claude.ai/code), usa el menú desplegable de modo en la fila debajo del cuadro de prompt. En la aplicación móvil, toca el botón **+** en el cuadro de prompt y luego **Permission**. Las sesiones en la nube y las sesiones de Remote Control ofrecen modos de permisos diferentes:

255>253>

256> * **[Sesiones en la nube](https://code.claude.com/docs/es/claude-code-on-the-web.md)**: Aceptar ediciones, Plan y Auto. Aceptar ediciones corresponde al modo `default`: las sesiones en la nube aprueban previamente las ediciones de archivos independientemente del modo, por lo que el menú desplegable muestra Aceptar ediciones en lugar de Manual. Las sesiones en la nube aún respetan `defaultMode: "acceptEdits"` de la configuración. El modo Auto aparece solo cuando tu organización lo permite y el modelo seleccionado lo admite. Omitir permisos no está disponible.254> * **[Sesiones en la nube](https://code.claude.com/docs/es/claude-code-on-the-web.md)**: Aceptar ediciones, Plan y Auto. Aceptar ediciones corresponde al modo `default`: las sesiones en la nube aprueban previamente las ediciones de archivos independientemente del modo, por lo que el menú desplegable muestra Aceptar ediciones en lugar de Manual. Las sesiones en la nube aún respetan `defaultMode: "acceptEdits"` de la configuración. El modo Auto aparece a menos que tu organización lo desactive, y en claude.ai/code aparece atenuado si el modelo seleccionado no [lo admite](#eliminate-prompts-with-auto-mode). Omitir permisos no está disponible.

257> * **Sesiones de [Remote Control](https://code.claude.com/docs/es/remote-control.md)** en tu máquina local: Manual, Aceptar ediciones, Plan y Auto para una sesión que iniciaste tú mismo, y no puedes seleccionar Omitir permisos desde la aplicación. Para usar Auto, la sesión tiene que cumplir los [requisitos de disponibilidad](#eliminate-prompts-with-auto-mode) del modo automático. Para un hilo de proyecto que se ejecuta en tu computadora, consulta [Ejecutar un hilo en tu propia computadora](https://code.claude.com/docs/es/claude-projects.md#run-a-thread-on-your-own-computer).255> * **Sesiones de [Remote Control](https://code.claude.com/docs/es/remote-control.md)** en tu máquina local: Manual, Aceptar ediciones, Plan y Auto para una sesión que iniciaste tú mismo, y no puedes seleccionar Omitir permisos desde la aplicación. Para usar Auto, la sesión tiene que cumplir los [requisitos de disponibilidad](#eliminate-prompts-with-auto-mode) del modo automático. Para un hilo de proyecto que se ejecuta en tu computadora, consulta [Ejecutar un hilo en tu propia computadora](https://code.claude.com/docs/es/claude-projects.md#run-a-thread-on-your-own-computer).

258> * Excepto por Omitir permisos, el menú desplegable muestra el modo de permisos en el que se encuentra la sesión local, incluido uno establecido desde la terminal. Se actualiza cuando el modo de permisos cambia en la aplicación o en la terminal.256> * Excepto por Omitir permisos, el menú desplegable muestra el modo de permisos en el que se encuentra la sesión local, incluido uno establecido desde la terminal. Se actualiza cuando el modo de permisos cambia en la aplicación o en la terminal.

259> * Las sesiones alojadas por la [aplicación de desktop](https://code.claude.com/docs/es/desktop.md) o la [extensión de VS Code](https://code.claude.com/docs/es/vs-code.md) informan los cambios de modo de permisos a claude.ai a medida que suceden, igual que las sesiones alojadas en una terminal.257> * Las sesiones alojadas por la [aplicación de desktop](https://code.claude.com/docs/es/desktop.md) o la [extensión de VS Code](https://code.claude.com/docs/es/vs-code.md) informan los cambios de modo de permisos a claude.ai a medida que suceden, igual que las sesiones alojadas en una terminal.


433claude --permission-mode auto --debug-file classifier-debug.log431claude --permission-mode auto --debug-file classifier-debug.log

434```432```

435 433 

436Haz que Claude ejecute un comando de shell que no sea de solo lectura y luego busca `classifier_request_started` en el registro:434Para darle al clasificador un comando que revisar, haz que Claude ejecute `curl https://example.com` y luego busca `classifier_request_started` en el registro:

437 435 

438* **Tu modelo después de `model=`**: la variable surtió efecto436* **Tu modelo después de `model=`**: la variable surtió efecto

439* **Un modelo distinto después de `model=`**: busca `ignoring CLAUDE_CODE_AUTO_MODE_MODEL` en el registro, que indica el motivo y cualquier paso que debas seguir437* **Un modelo distinto después de `model=`**: busca `ignoring CLAUDE_CODE_AUTO_MODE_MODEL` en el registro, que indica el motivo y cualquier paso que debas seguir

440* **No hay ninguna línea así**: lee `Auto mode server` en `/status` en el prompt de Claude Code:438* **No hay ninguna línea así**: lee `Auto mode server` en `/status` en el prompt de Claude Code:

441 * **`Enabled`**: el [servidor](#server-side-classifier-review) está configurado para revisar las llamadas de esta sesión.439 * **`Enabled`**: el [servidor](#server-side-classifier-review) está configurado para revisar las llamadas de esta sesión.

442 * **`Disabled`**: asegúrate de que el [modo de permisos](#switch-permission-modes) sea auto y luego haz que Claude ejecute otro comando que no sea de solo lectura.440 * **`Disabled`**: esta comprobación aún no ha probado tu modelo. Asegúrate de que el [modo de permisos](#switch-permission-modes) sea auto y de que ninguna [regla de permisos](https://code.claude.com/docs/es/permissions.md#manage-permissions) coincida con `curl`, y luego vuelve a ejecutar la comprobación con el [sandbox](https://code.claude.com/docs/es/sandboxing.md) desactivado.

443 441 

444### Qué bloquea el clasificador de forma predeterminada442### Qué bloquea el clasificador de forma predeterminada

445 443 

permissions.md +7 −4

Details

338 338 

339#### Qué cubren las reglas `Read` y `Edit`339#### Qué cubren las reglas `Read` y `Edit`

340 340 

341Las reglas `Edit` se aplican a todas las herramientas integradas que editan archivos. Claude hace un esfuerzo razonable por aplicar las reglas `Read` a todas las herramientas integradas que leen archivos, como Grep y Glob, a las menciones `@file` en tus prompts y a la selección y el contexto de archivos abiertos que un [IDE](https://code.claude.com/docs/es/vs-code.md#the-built-in-ide-mcp-server) conectado comparte con Claude.341Las reglas `Edit` se aplican a todas las herramientas integradas que editan archivos. Claude hace un esfuerzo razonable por aplicar las reglas de negación `Read(path)` a todas las herramientas integradas que leen archivos, como Grep y Glob. Hace el mismo esfuerzo por aplicar las reglas de negación `Read(path)` a las menciones `@file` en tus prompts y a la selección y el contexto de archivos abiertos que un [IDE](https://code.claude.com/docs/es/vs-code.md#the-built-in-ide-mcp-server) conectado comparte con Claude.

342 342 

343Una regla de negación `Read(path)` también se aplica a las rutas de imágenes que pegas en un prompt y a los directorios que mencionas con @:343Una regla de negación `Read(path)` también se aplica a las rutas de imágenes que pegas en un prompt y a los directorios que mencionas con @:

344 344 


353>353>

354> Las reglas de negación Read y Edit se aplican a las herramientas de archivos integradas de Claude, a los comandos de archivos que Claude Code reconoce en Bash, como `cat`, `head`, `tail`, `sed` y `tee`, y a los destinos de las [redirecciones](#redirections) de Bash como `> file` y `< file`. No se aplican a un comando que lee archivos sin nombrarlos, como `grep -r pattern .` ejecutado desde el directorio que contiene el archivo, ni a subprocesos arbitrarios que leen o escriben archivos indirectamente, como un script de Python o Node que abre archivos por sí mismo. Para una aplicación a nivel del sistema operativo que impida a todos los procesos acceder a una ruta, [habilita el sandbox](https://code.claude.com/docs/es/sandboxing.md).354> Las reglas de negación Read y Edit se aplican a las herramientas de archivos integradas de Claude, a los comandos de archivos que Claude Code reconoce en Bash, como `cat`, `head`, `tail`, `sed` y `tee`, y a los destinos de las [redirecciones](#redirections) de Bash como `> file` y `< file`. No se aplican a un comando que lee archivos sin nombrarlos, como `grep -r pattern .` ejecutado desde el directorio que contiene el archivo, ni a subprocesos arbitrarios que leen o escriben archivos indirectamente, como un script de Python o Node que abre archivos por sí mismo. Para una aplicación a nivel del sistema operativo que impida a todos los procesos acceder a una ruta, [habilita el sandbox](https://code.claude.com/docs/es/sandboxing.md).

355 355 

356#### Las reglas `Write(path)`, `NotebookEdit(path)` y `Glob(path)` nunca coinciden356#### Las reglas `Write(path)`, `Glob(path)` y `Grep(path)` no coinciden

357 357 

358Claude Code verifica los permisos de archivos solo contra las reglas `Edit(path)` y `Read(path)`. Si escribes una regla de ruta para `Write`, `NotebookEdit`, `Glob` o la herramienta heredada `MultiEdit`, Claude Code acepta la regla, pero nunca hace coincidir con ella una lectura o una edición.358Claude Code verifica los permisos de archivos contra las reglas `Edit(path)` y `Read(path)`. Acepta una regla con una ruta distinta de `*` para una de las herramientas siguientes, pero no hace coincidir con ella ninguna lectura, búsqueda ni edición. Una regla de negación `Grep(docs/**)` no impide que Grep busque en `docs`. Escribe en su lugar la regla `Edit` o `Read`:

359 359 

360Usa `Edit(docs/**)` en lugar de `Write(docs/**)`, `NotebookEdit(docs/**)` o `MultiEdit(docs/**)`, y `Read(docs/**)` en lugar de `Glob(docs/**)`. Para hacer coincidir cada uso de la herramienta Write, NotebookEdit o Glob independientemente de la ruta, escribe solo el nombre de la herramienta.360* **`Write`, `NotebookEdit` o la herramienta heredada `MultiEdit`**: usa `Edit(docs/**)` en lugar de `Write(docs/**)`.

361* **`Glob` o `Grep`**: usa `Read(docs/**)` en lugar de `Grep(docs/**)`. Como regla de solicitud, `Read(docs/**)` pide confirmación cuando Claude llama a Grep o Glob sobre una ruta que coincide, pero no cuando una búsqueda en un directorio de trabajo superior a ella devuelve archivos que coinciden.

362 

363Para hacer coincidir cada uso de una de estas herramientas independientemente de la ruta, [escribe solo el nombre de la herramienta](#match-all-uses-of-a-tool).

361 364 

362#### Cómo coinciden los patrones de ruta365#### Cómo coinciden los patrones de ruta

363 366 

Details

608 608 

609#### Validar un directorio609#### Validar un directorio

610 610 

611El `<path>` es un archivo de manifiesto o un directorio. Dado un directorio, Claude Code elige qué validar por lo que encuentra allí:611El `<path>` es un [archivo de manifiesto](#validate-a-manifest-file) o un directorio. Dado un directorio, Claude Code elige qué validar por lo que encuentra allí:

612 612 

613* `.claude-plugin/marketplace.json`, cuando existe613* `.claude-plugin/marketplace.json`, cuando existe

614* Si no `.claude-plugin/plugin.json`614* Si no `.claude-plugin/plugin.json`


631* **Un `CLAUDE.md` en la raíz del plugin**: en una ejecución de plugin, Claude Code también advierte sobre un `CLAUDE.md` en la raíz del plugin631* **Un `CLAUDE.md` en la raíz del plugin**: en una ejecución de plugin, Claude Code también advierte sobre un `CLAUDE.md` en la raíz del plugin

632* **Archivos de plugin en una ejecución de marketplace**: desde un directorio de marketplace, Claude Code no abre los archivos de skill, agent, comando o hook de los plugins que el marketplace lista en otros directorios, ni los archivos de servidor MCP que empaquetan. Para encontrar errores en esos archivos, valida cada directorio de plugin632* **Archivos de plugin en una ejecución de marketplace**: desde un directorio de marketplace, Claude Code no abre los archivos de skill, agent, comando o hook de los plugins que el marketplace lista en otros directorios, ni los archivos de servidor MCP que empaquetan. Para encontrar errores en esos archivos, valida cada directorio de plugin

633 633 

634#### Validar un archivo de manifiesto

635 

636Cuando el archivo no se llama `plugin.json` ni `marketplace.json` y no está en un directorio `.claude-plugin`, Claude Code decide qué es según sus campos. Lo valida como un marketplace en estos casos, y en cualquier otro caso como un manifiesto de plugin:

637 

638* `plugins` es un array

639* `plugins` y `owner` están ambos presentes

640* El archivo tiene un campo que solo define `marketplace.json`, como `owner`, y ninguno que solo defina `plugin.json`, como `author`

641 

642Para elegir las verificaciones tú mismo, nombra el archivo `plugin.json` o `marketplace.json`. Claude Code valida cualquier otro archivo en un directorio `.claude-plugin` como un manifiesto de plugin.

643 

634#### Salida y códigos de salida644#### Salida y códigos de salida

635 645 

636Claude Code imprime el archivo que validó, cualquier error y advertencia con sus rutas, y una línea de veredicto. El código de salida sigue el veredicto:646Claude Code imprime el archivo que validó, cualquier error y advertencia con sus rutas, y una línea de veredicto. El código de salida sigue el veredicto:

Details

455 455 

456## Mensajes de validación456## Mensajes de validación

457 457 

458`claude plugin validate <path>` toma la raíz del marketplace o el archivo marketplace en sí. Imprime errores y advertencias. Para códigos de salida y `--strict`, consulte [plugin validate](https://code.claude.com/docs/es/plugins/cli-reference.md#plugin-validate).458`claude plugin validate <path>` toma la raíz del marketplace o el archivo marketplace en sí. Para que ese archivo se [valide como un marketplace](https://code.claude.com/docs/es/plugins/cli-reference.md#validate-a-manifest-file) en lugar de como un manifiesto de plugin, nómbralo `marketplace.json`. Para códigos de salida y `--strict`, consulta [plugin validate](https://code.claude.com/docs/es/plugins/cli-reference.md#plugin-validate).

459 459 

460Un mensaje nombra una entrada de plugin por su índice, escrito como `plugins.1.source` o `plugins[1].source`.460Un mensaje nombra una entrada de plugin por su índice, escrito como `plugins.1.source` o `plugins[1].source`.

461 461 

Details

103El [modo rápido](https://code.claude.com/docs/es/fast-mode.md) y la velocidad estándar mantienen cachés separadas, por lo que después de activar o desactivar el modo rápido, la siguiente solicitud no puede usar lo que la otra velocidad almacenó en caché. La primera vez que activas el modo rápido en una conversación, la siguiente solicitud lee toda la conversación hasta ese momento sin caché a [tarifas de modo rápido](https://code.claude.com/docs/es/fast-mode.md#understand-the-cost-tradeoff). Para mantener ese costo bajo, actívalo al inicio de una sesión.103El [modo rápido](https://code.claude.com/docs/es/fast-mode.md) y la velocidad estándar mantienen cachés separadas, por lo que después de activar o desactivar el modo rápido, la siguiente solicitud no puede usar lo que la otra velocidad almacenó en caché. La primera vez que activas el modo rápido en una conversación, la siguiente solicitud lee toda la conversación hasta ese momento sin caché a [tarifas de modo rápido](https://code.claude.com/docs/es/fast-mode.md#understand-the-cost-tradeoff). Para mantener ese costo bajo, actívalo al inicio de una sesión.

104 104 

105* Si lo activas mientras Claude está trabajando, ese turno termina a velocidad estándar, y pagas cualquier lectura sin caché en la primera solicitud de tu siguiente turno.105* Si lo activas mientras Claude está trabajando, ese turno termina a velocidad estándar, y pagas cualquier lectura sin caché en la primera solicitud de tu siguiente turno.

106* Si tu modelo actual no admite el modo rápido, habilitar el modo rápido también [te cambia a Opus](https://code.claude.com/docs/es/fast-mode.md#toggle-fast-mode). Ese [cambio de modelo](#switching-models) inicia una caché nueva por sí solo desde la siguiente solicitud en el turno en ejecución.106* Si tu modelo actual no admite el modo rápido, ejecutar `/fast` también [te cambia a Opus](https://code.claude.com/docs/es/fast-mode.md#toggle-fast-mode). Ese [cambio de modelo](#switching-models) inicia una caché nueva por sí solo desde la siguiente solicitud en el turno en ejecución.

107 107 

108Cada activación o desactivación posterior lee sin caché todo lo que la velocidad a la que cambias no tenga almacenado en caché. Los cambios de velocidad que Claude Code hace por su cuenta, como el [cambio automático a velocidad estándar](https://code.claude.com/docs/es/fast-mode.md#handle-rate-limits) después de un rate limit y el regreso al modo rápido más tarde, también cuentan como activaciones o desactivaciones.108Cada activación o desactivación posterior lee sin caché todo lo que la velocidad a la que cambias no tenga almacenado en caché. Los cambios de velocidad que Claude Code hace por su cuenta, como el [cambio automático a velocidad estándar](https://code.claude.com/docs/es/fast-mode.md#handle-rate-limits) después de un rate limit y el regreso al modo rápido más tarde, también cuentan como activaciones o desactivaciones.

109 109 

Details

147* **Esta sesión fue terminada o archivada desde otro dispositivo o aplicación**: ejecute `/remote-control` solo si la desea de vuelta. Claude Code reabre una sesión archivada.147* **Esta sesión fue terminada o archivada desde otro dispositivo o aplicación**: ejecute `/remote-control` solo si la desea de vuelta. Claude Code reabre una sesión archivada.

148* **El servidor ya no reporta esta sesión**: puede haber sido eliminada desde otro dispositivo o aplicación.148* **El servidor ya no reporta esta sesión**: puede haber sido eliminada desde otro dispositivo o aplicación.

149 149 

150Si `/remote-control` abre un diálogo que dice `Remote Control isn't connected.`, sigue el paso que indica el diálogo, como ejecutar `/login` o seleccionar **Continue** e intentarlo de nuevo.

151 

150### Conectarse desde otro dispositivo152### Conectarse desde otro dispositivo

151 153 

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


318 320 

319Cuando Remote Control está activo, Claude puede enviar notificaciones push a su teléfono.321Cuando Remote Control está activo, Claude puede enviar notificaciones push a su teléfono.

320 322 

321Claude decide cuándo enviar. Típicamente envía una cuando una tarea de larga duración finaliza o cuando necesita una decisión suya para continuar. También puede solicitar una notificación en su prompt, por ejemplo `notifícame cuando terminen las pruebas`. Más allá de los dos controles de encendido/apagado a continuación, no hay configuración por evento.323Una notificación push puede llegar cuando una tarea de larga duración finaliza o cuando Claude necesita que tomes una decisión. También puedes solicitar una notificación push en tu prompt, por ejemplo `notifícame cuando terminen las pruebas`. Más allá de los dos controles de encendido/apagado a continuación, no hay configuración por evento.

322 324 

323Para configurar notificaciones push móviles:325Para configurar notificaciones push móviles:

324 326 

Details

25| [Dev container](#dev-containers) | Entorno de desarrollo completo | Sí | Medio |25| [Dev container](#dev-containers) | Entorno de desarrollo completo | Sí | Medio |

26| [Contenedor personalizado](#custom-container) | Entorno de desarrollo completo | Sí | Medio a alto |26| [Contenedor personalizado](#custom-container) | Entorno de desarrollo completo | Sí | Medio a alto |

27| [Máquina virtual](#virtual-machine) | Sistema operativo completo | No | Alto |27| [Máquina virtual](#virtual-machine) | Sistema operativo completo | No | Alto |

28| [Cloud sessions](#cloud-sessions) | Sistema operativo completo, alojado por Anthropic | No | Ninguno; requiere una suscripción a Claude y una cuenta de GitHub conectada a menos que inicie con `claude --cloud` |28| [Sesiones en la nube](#cloud-sessions) | Sistema operativo completo, alojado por Anthropic | No | Ninguno; requiere una suscripción a Claude y una cuenta de GitHub conectada para clonar un repositorio de GitHub |

29 29 

30La [herramienta Bash sandboxed](https://code.claude.com/docs/es/sandboxing.md) está integrada en Claude Code y restringe los comandos Bash. Las herramientas de archivo integradas, los servidores MCP y los hooks aún se ejecutan directamente en su host. Todos los demás enfoques en la tabla colocan todo el proceso de Claude Code dentro del límite de aislamiento, por lo que las herramientas de archivo, los servidores MCP y los hooks también se restringen.30La [herramienta Bash sandboxed](https://code.claude.com/docs/es/sandboxing.md) está integrada en Claude Code y restringe los comandos Bash. Las herramientas de archivo integradas, los servidores MCP y los hooks aún se ejecutan directamente en su host. Todos los demás enfoques en la tabla colocan todo el proceso de Claude Code dentro del límite de aislamiento, por lo que las herramientas de archivo, los servidores MCP y los hooks también se restringen.

31 31 


46| Aislar servidores MCP y hooks así como Bash, sin Docker | El tiempo de ejecución sandbox |46| Aislar servidores MCP y hooks así como Bash, sin Docker | El tiempo de ejecución sandbox |

47| Trabajar en un repositorio no confiable | Una máquina virtual dedicada, o una [sesión en la nube](https://code.claude.com/docs/es/claude-code-on-the-web.md) si tiene una suscripción a Claude; GitHub no es necesario cuando inicia con `claude --cloud` |47| Trabajar en un repositorio no confiable | Una máquina virtual dedicada, o una [sesión en la nube](https://code.claude.com/docs/es/claude-code-on-the-web.md) si tiene una suscripción a Claude; GitHub no es necesario cuando inicia con `claude --cloud` |

48| Estandarizar un entorno aislado en un equipo | El [contenedor de desarrollo](https://code.claude.com/docs/es/devcontainer.md) preconfigurado, copiado en su repositorio |48| Estandarizar un entorno aislado en un equipo | El [contenedor de desarrollo](https://code.claude.com/docs/es/devcontainer.md) preconfigurado, copiado en su repositorio |

49| Usar Claude Code desde un dispositivo sin configuración local | Una [sesión en la nube](https://code.claude.com/docs/es/claude-code-on-the-web.md), que requiere una suscripción a Claude y una cuenta de GitHub conectada |49| Usar Claude Code desde un dispositivo sin configuración local | Una [sesión en la nube](https://code.claude.com/docs/es/claude-code-on-the-web.md), que requiere una suscripción a Claude, y una cuenta de GitHub conectada para clonar un repositorio de GitHub |

50| Requerir aislamiento para cada desarrollador en su organización | [Aplicar aislamiento en toda la organización](#enforce-isolation-across-an-organization) |50| Requerir aislamiento para cada desarrollador en su organización | [Aplicar aislamiento en toda la organización](#enforce-isolation-across-an-organization) |

51| Trabajar en un host Windows nativo | Un contenedor o máquina virtual, o ejecutar el sandbox Bash dentro de WSL2 |51| Trabajar en un host Windows nativo | Un contenedor o máquina virtual, o ejecutar el sandbox Bash dentro de WSL2 |

52 52 


165 165 

166Una [sesión en la nube](https://code.claude.com/docs/es/claude-code-on-the-web.md) se ejecuta en una máquina virtual aislada administrada por Anthropic. Un proxy de red aplica una lista de permitidos predeterminada, y un proxy separado mantiene su token de GitHub fuera del sandbox mientras emite credenciales con alcance para acceso al repositorio dentro de él. Las sesiones que su organización enruta a un [entorno autohospedado](https://code.claude.com/docs/es/self-hosted-environments) se ejecutan en la infraestructura que usted aprovisiona en su lugar, donde el aislamiento, el control de salida y las credenciales de git son responsabilidad de su implementación.166Una [sesión en la nube](https://code.claude.com/docs/es/claude-code-on-the-web.md) se ejecuta en una máquina virtual aislada administrada por Anthropic. Un proxy de red aplica una lista de permitidos predeterminada, y un proxy separado mantiene su token de GitHub fuera del sandbox mientras emite credenciales con alcance para acceso al repositorio dentro de él. Las sesiones que su organización enruta a un [entorno autohospedado](https://code.claude.com/docs/es/self-hosted-environments) se ejecutan en la infraestructura que usted aprovisiona en su lugar, donde el aislamiento, el control de salida y las credenciales de git son responsabilidad de su implementación.

167 167 

168Utilice este enfoque cuando desee aislamiento completo de máquina virtual sin aprovisionar infraestructura usted mismo, o cuando esté delegando tareas desde un dispositivo que no tiene un entorno de desarrollo local. Requiere una suscripción a Claude. A menos que inicie desde la CLI, también necesita una cuenta de GitHub conectada para que el sandbox pueda clonar su repositorio. Cuando inicia desde la CLI con `--cloud`, Claude Code puede [agrupar y cargar su repositorio local](https://code.claude.com/docs/es/claude-code-on-the-web.md#send-local-repositories-without-github) en su lugar. Consulte [Usar Claude Code en la nube](https://code.claude.com/docs/es/claude-code-on-the-web.md) para disponibilidad de planes y opciones de autenticación de GitHub.168Usa este enfoque cuando quieras aislamiento completo de máquina virtual sin aprovisionar infraestructura tú mismo, o cuando estés delegando tareas desde un dispositivo que no tiene un entorno de desarrollo local. Requiere:

169 

170* **Suscripción**: una suscripción a Claude

171* **GitHub**: una cuenta de GitHub conectada para trabajar en un repositorio de GitHub. Cuando inicias desde la CLI con `--cloud`, no necesitas una si Claude Code [agrupa y carga tu repositorio local](https://code.claude.com/docs/es/claude-code-on-the-web.md#send-local-repositories-without-github)

172 

173Consulta [Usar Claude Code en la nube](https://code.claude.com/docs/es/claude-code-on-the-web.md) para ver la disponibilidad de planes y las opciones de autenticación de GitHub.

169 174 

170## Aplicar aislamiento en toda la organización175## Aplicar aislamiento en toda la organización

171 176 

Details

46| `CLAUDE_CODE_REMOTE_SLACK_CHANNEL_ID` | Para una sesión de Claude Tag, el ID del canal de Slack o del mensaje directo al que sirve la sesión o en el que está su hilo, como `C0123ABCDE`. Una marca de tiempo de Slack identifica un mensaje dentro de un canal, así que registra este ID junto con `CLAUDE_CODE_REMOTE_SLACK_THREAD_TS`. No está establecida para otras sesiones, y también puede no estar establecida para una sesión de Claude Tag. |46| `CLAUDE_CODE_REMOTE_SLACK_CHANNEL_ID` | Para una sesión de Claude Tag, el ID del canal de Slack o del mensaje directo al que sirve la sesión o en el que está su hilo, como `C0123ABCDE`. Una marca de tiempo de Slack identifica un mensaje dentro de un canal, así que registra este ID junto con `CLAUDE_CODE_REMOTE_SLACK_THREAD_TS`. No está establecida para otras sesiones, y también puede no estar establecida para una sesión de Claude Tag. |

47| `CLAUDE_SESSION_INGRESS_TOKEN_FILE` | Ruta absoluta a un archivo por sesión que contiene el JWT de sesión actual, mantenido actualizado en los refrescos de token. Los subprocesos de shell lo leen para su encabezado `Authorization` al descargar archivos adjuntos que el usuario agregó a la sesión. `exec` preserva la variable automáticamente; un contenedor que reconstruye el entorno del hijo debe conservar la variable, o las descargas de archivos adjuntos dejan de funcionar silenciosamente. |47| `CLAUDE_SESSION_INGRESS_TOKEN_FILE` | Ruta absoluta a un archivo por sesión que contiene el JWT de sesión actual, mantenido actualizado en los refrescos de token. Los subprocesos de shell lo leen para su encabezado `Authorization` al descargar archivos adjuntos que el usuario agregó a la sesión. `exec` preserva la variable automáticamente; un contenedor que reconstruye el entorno del hijo debe conservar la variable, o las descargas de archivos adjuntos dejan de funcionar silenciosamente. |

48| `CLAUDE_CONFIG_DIR` | Directorio de configuración de Claude por sesión, escrito al inicio de la sesión desde la instantánea de la configuración del host del ejecutor que el ejecutor captura al inicio; consulta [Permisos y aprobación de herramientas](#permissions-and-tool-approval). Las escrituras aquí se aíslan a esta sesión. El directorio permanece bajo `<base-dir>/_sessions/` después de que la sesión finaliza a menos que inicies el ejecutor con [`--remove-session-state`](https://code.claude.com/docs/es/self-hosted-environments-reference#runner-cli-flags); consulta [Reutilizar un checkout precalentado](https://code.claude.com/docs/es/self-hosted-environments-deploy.md#reuse-a-pre-warmed-checkout). |48| `CLAUDE_CONFIG_DIR` | Directorio de configuración de Claude por sesión, escrito al inicio de la sesión desde la instantánea de la configuración del host del ejecutor que el ejecutor captura al inicio; consulta [Permisos y aprobación de herramientas](#permissions-and-tool-approval). Las escrituras aquí se aíslan a esta sesión. El directorio permanece bajo `<base-dir>/_sessions/` después de que la sesión finaliza a menos que inicies el ejecutor con [`--remove-session-state`](https://code.claude.com/docs/es/self-hosted-environments-reference#runner-cli-flags); consulta [Reutilizar un checkout precalentado](https://code.claude.com/docs/es/self-hosted-environments-deploy.md#reuse-a-pre-warmed-checkout). |

49| `CLAUDE_CODE_REMOTE_MCP_CONFIG` | Ruta a un archivo en `CLAUDE_CONFIG_DIR` que contiene las definiciones de servidores MCP que el plano de control de Anthropic entregó para esta sesión. Si tu contenedor reconstruye el entorno del hijo, conserva esta variable. Sin ella, cuando el plano de control actualiza los servidores entregados, el hijo cierra cualquier servidor stdio, HTTP o SSE que tu contenedor agregue con [`--mcp-config`](https://code.claude.com/docs/es/cli-reference#cli-flags) y que no esté en la actualización. Requiere Claude Code v2.1.299 o posterior. |49| `CLAUDE_CODE_REMOTE_MCP_CONFIG` | Ruta a un archivo en `CLAUDE_CONFIG_DIR` que contiene los servidores MCP entregados por el plano de control. Si tu contenedor reconstruye el entorno del hijo, conserva sin cambios esta variable, [`CLAUDE_CODE_REMOTE`](https://code.claude.com/docs/es/env-vars#variables) y `CLAUDE_CODE_ENVIRONMENT_KIND`; el ejecutor establece las tres. Si `CLAUDE_CODE_REMOTE` llega pero esta variable o `CLAUDE_CODE_ENVIRONMENT_KIND` no llegan, el hijo detiene los servidores stdio, HTTP y SSE que tu contenedor agrega con [`--mcp-config`](https://code.claude.com/docs/es/cli-reference#cli-flags) y que una actualización de los servidores entregados omite. Requiere Claude Code v2.1.299 o posterior. |

50| `ANTHROPIC_BASE_URL` | La URL base de API que el hijo usará, entregada por el plano de control por sesión y normalmente `https://api.anthropic.com`. No la sobrescribas: la credencial de inferencia de la sesión es un token OAuth emitido por Anthropic que otros proveedores no aceptan. |50| `ANTHROPIC_BASE_URL` | La URL base de API que el hijo usará, entregada por el plano de control por sesión y normalmente `https://api.anthropic.com`. No la sobrescribas: la credencial de inferencia de la sesión es un token OAuth emitido por Anthropic que otros proveedores no aceptan. |

51| `CLAUDE_CODE_OAUTH_TOKEN` | El token de acceso OAuth de corta duración que el hijo usa para inferencia de modelo, con una vida útil de aproximadamente 30 minutos. El ejecutor lo vuelve a emitir antes del vencimiento y entrega la rotación a través del stdin del hijo, por lo que un contenedor que no [mantiene stdin adjunto](#keep-stdin-and-file-descriptor-3-attached) solo ve el valor inicial. No confíes en la lista de IP permitidas de tu organización para limitar el uso de este token: trátalo como una credencial de portador que permanece utilizable durante aproximadamente 30 minutos si se filtra, y no lo registres, no lo escribas en disco ni lo reenvíes fuera del contenedor de sesión. |51| `CLAUDE_CODE_OAUTH_TOKEN` | El token de acceso OAuth de corta duración que el hijo usa para inferencia de modelo, con una vida útil de aproximadamente 30 minutos. El ejecutor lo vuelve a emitir antes del vencimiento y entrega la rotación a través del stdin del hijo, por lo que un contenedor que no [mantiene stdin adjunto](#keep-stdin-and-file-descriptor-3-attached) solo ve el valor inicial. No confíes en la lista de IP permitidas de tu organización para limitar el uso de este token: trátalo como una credencial de portador que permanece utilizable durante aproximadamente 30 minutos si se filtra, y no lo registres, no lo escribas en disco ni lo reenvíes fuera del contenedor de sesión. |

52| `CLAUDE_RUNNER_ALIVE_EVERY_MS` | El ejecutor establece con qué frecuencia, en milisegundos, el hijo informa que está activo cuando un [turno comienza antes de que el hijo se inicialice](https://code.claude.com/docs/es/self-hosted-environments-reference.md#session-startup-timeout). Si tu contenedor reconstruye el entorno del hijo, conserva esta variable, o el ejecutor puede liberar la sesión durante ese turno y registrar `no child output for <n> — releasing`. Requiere v2.1.309 o posterior en el ejecutor y en el hijo. |52| `CLAUDE_RUNNER_ALIVE_EVERY_MS` | El ejecutor establece con qué frecuencia, en milisegundos, el hijo informa que está activo cuando un [turno comienza antes de que el hijo se inicialice](https://code.claude.com/docs/es/self-hosted-environments-reference.md#session-startup-timeout). Si tu contenedor reconstruye el entorno del hijo, conserva esta variable, o el ejecutor puede liberar la sesión durante ese turno y registrar `no child output for <n> — releasing`. Requiere v2.1.309 o posterior en el ejecutor y en el hijo. |


329| `CLAUDE_RUNNER_REPO_SOURCES` | Matriz JSON de `{url, revision}` para todas las fuentes git de la sesión, para hooks que enrutan en un repositorio secundario. Vacío cuando no hay fuentes. |329| `CLAUDE_RUNNER_REPO_SOURCES` | Matriz JSON de `{url, revision}` para todas las fuentes git de la sesión, para hooks que enrutan en un repositorio secundario. Vacío cuando no hay fuentes. |

330| `CLAUDE_RUNNER_CORRELATION_ID` | El ID de correlación proporcionado en la creación de sesión, devuelto para que el hook pueda asignar esta orden de trabajo a la solicitud que creó la sesión. Vacío cuando la sesión no tiene ninguno. |330| `CLAUDE_RUNNER_CORRELATION_ID` | El ID de correlación proporcionado en la creación de sesión, devuelto para que el hook pueda asignar esta orden de trabajo a la solicitud que creó la sesión. Vacío cuando la sesión no tiene ninguno. |

331| `CLAUDE_RUNNER_CLIENT_PLATFORM` | La superficie del cliente que creó la sesión, como `web_claude_ai`, `desktop_app`, `ios` o `scheduled_trigger`, para análisis de adopción. No establecido cuando la sesión no tiene una superficie registrada o reconocida, y para solicitudes de precalentamiento; verifíquelo con `[ -n "${CLAUDE_RUNNER_CLIENT_PLATFORM:-}" ]`, que permanece seguro bajo `set -u`. |331| `CLAUDE_RUNNER_CLIENT_PLATFORM` | La superficie del cliente que creó la sesión, como `web_claude_ai`, `desktop_app`, `ios` o `scheduled_trigger`, para análisis de adopción. No establecido cuando la sesión no tiene una superficie registrada o reconocida, y para solicitudes de precalentamiento; verifíquelo con `[ -n "${CLAUDE_RUNNER_CLIENT_PLATFORM:-}" ]`, que permanece seguro bajo `set -u`. |

332| `CLAUDE_RUNNER_SPAWN_REASON` | [Por qué Anthropic envió esta solicitud de generación](#find-out-why-a-spawn-request-was-sent), como `runner_lost` o `resumed`. No establecido cuando la solicitud no lleva un motivo bien formado, así que léelo como `"${CLAUDE_RUNNER_SPAWN_REASON:-}"`. Requiere Claude Code v2.1.318 o posterior en el orquestador |

332 333 

333El ejecutor generado se registra con la orden de trabajo en lugar del secreto del entorno:334El ejecutor generado se registra con la orden de trabajo en lugar del secreto del entorno:

334 335 


828 829 

829Una sesión autohospedada no tiene terminal adjunta, por lo que un mensaje de permiso sin respuesta detiene el turno hasta que el usuario responde en la UI. El plano de control de Anthropic envía la lista de herramientas de cada sesión y las reglas de permiso con la carga útil de trabajo; la configuración predeterminada aprueba previamente llamadas de herramientas rutinarias, incluido `Bash`, y las sesiones en la nube [aprueban previamente ediciones de archivos independientemente del modo](https://code.claude.com/docs/es/permission-modes.md#switch-permission-modes). Una llamada que nada aprueba previamente solicita a través de la UI de sesión.830Una sesión autohospedada no tiene terminal adjunta, por lo que un mensaje de permiso sin respuesta detiene el turno hasta que el usuario responde en la UI. El plano de control de Anthropic envía la lista de herramientas de cada sesión y las reglas de permiso con la carga útil de trabajo; la configuración predeterminada aprueba previamente llamadas de herramientas rutinarias, incluido `Bash`, y las sesiones en la nube [aprueban previamente ediciones de archivos independientemente del modo](https://code.claude.com/docs/es/permission-modes.md#switch-permission-modes). Una llamada que nada aprueba previamente solicita a través de la UI de sesión.

830 831 

832### Fijar un modo de permisos desde tu script contenedor

833 

831> [!NOTE]834> [!NOTE]

832>835>

833> Solo fije el modo automático en un entorno cuyo contenedor de sesión se ejecute con [egreso de red de negación predeterminada](https://code.claude.com/docs/es/self-hosted-environments-deploy.md#default-deny-egress) y el resto de la [sección de endurecimiento](https://code.claude.com/docs/es/self-hosted-environments-deploy.md#harden-your-deployment) en su lugar. Las llamadas de herramientas rutinarias, incluidas solicitudes de red `Bash`, se ejecutan sin un humano en el bucle tanto en el conjunto de herramientas aprobadas previamente predeterminado como en modo automático, por lo que el límite de red es lo que limita dónde esas llamadas pueden llegar.836> Solo fije el modo automático en un entorno cuyo contenedor de sesión se ejecute con [egreso de red de negación predeterminada](https://code.claude.com/docs/es/self-hosted-environments-deploy.md#default-deny-egress) y el resto de la [sección de endurecimiento](https://code.claude.com/docs/es/self-hosted-environments-deploy.md#harden-your-deployment) en su lugar. Las llamadas de herramientas rutinarias, incluidas solicitudes de red `Bash`, se ejecutan sin un humano en el bucle tanto en el conjunto de herramientas aprobadas previamente predeterminado como en modo automático, por lo que el límite de red es lo que limita dónde esas llamadas pueden llegar.

834 837 

835Para mantener solicitudes al mínimo independientemente de lo que el plano de control envíe, fije el [modo automático](https://code.claude.com/docs/es/permission-modes.md#eliminate-prompts-with-auto-mode) desde su script contenedor o hook [`command`](#command). El modo automático permite que las sesiones se ejecuten sin solicitudes de permiso rutinarias: un modelo clasificador separado revisa acciones antes de que se ejecuten y bloquea las que rechaza, y las reglas de solicitud explícita aún fuerzan una solicitud; la página de modos de permiso cubre lo que el clasificador verifica. El ejecutor agrega banderas calculadas por servidor antes de invocar el contenedor, y para banderas de valor único como `--permission-mode` el analizador honra la última ocurrencia, por lo que una bandera que agrega después de `"$@"` anula el valor enviado por servidor:838Para iniciar las sesiones en [modo automático](https://code.claude.com/docs/es/permission-modes.md#eliminate-prompts-with-auto-mode) hasta que claude.ai/code u otro cliente establezca un modo de permisos para ellas, fíjalo desde tu script contenedor o [hook `command`](#command). El ejecutor invoca el script contenedor con sus propios flags como argumentos, y Claude Code aplica el último `--permission-mode` de la línea de comandos, así que agrega el tuyo después de `"$@"`:

836 839 

837```bash theme={null}840```bash theme={null}

838#!/bin/bash841#!/bin/bash

839exec "$CLAUDE_RUNNER_CLAUDE_BIN" "$@" --permission-mode auto842exec "$CLAUDE_RUNNER_CLAUDE_BIN" "$@" --permission-mode auto

840```843```

841 844 

842Para aprobar previamente herramientas específicas en su lugar, agregue `--allowed-tools` con sus reglas, por ejemplo `--allowed-tools "Bash(bazel *) Bash(yarn *) mcp__internal__*"`. Las banderas de lista como `--allowed-tools` y `--disallowed-tools` se acumulan en ocurrencias en lugar de anular, por lo que sus reglas se aplican además de cualquier regla que el plano de control envíe. Para estrechar, agregue `--disallowed-tools`, que niega herramientas incluso si otra regla las permite.845Una vez que un cliente establece un modo, el modo que agregaste deja de aplicarse, incluso después de que la sesión se reinicie en el ejecutor. claude.ai/code, por ejemplo, establece uno con el primer mensaje de la sesión cuando su menú desplegable de modo muestra Auto, o cuando alguien eligió un modo allí.

846 

847En modo automático, un modelo clasificador independiente revisa las acciones antes de que se ejecuten y bloquea las que rechaza. Una regla explícita de solicitud sigue forzando una solicitud de permiso. Una llamada que bloquea una [regla de denegación](https://code.claude.com/docs/es/permissions.md#manage-permissions) permanece bloqueada en todos los modos.

848 

849### Aprobar previamente herramientas específicas

850 

851Para aprobar previamente herramientas específicas, agrega `--allowed-tools` con tus reglas después de `"$@"` en tu script contenedor, por ejemplo `--allowed-tools "Bash(bazel *) Bash(yarn *) mcp__internal__*"`. Los flags de lista como `--allowed-tools` y `--disallowed-tools` se acumulan entre apariciones en lugar de anularse, por lo que tus reglas se aplican además de cualquier regla que envíe el plano de control. Para restringir, agrega `--disallowed-tools`, que deniega herramientas incluso si otra regla las permite.

843 852 

844### Cómo se ensambla la configuración de cada sesión853### Cómo se ensambla la configuración de cada sesión

845 854 

Details

195* Un valor en caché de [`prependPlugins`](https://code.claude.com/docs/es/settings-reference#prependplugins), [`appendPlugins`](https://code.claude.com/docs/es/settings-reference#appendplugins) o [`enabledPlugins`](https://code.claude.com/docs/es/settings-reference#enabledplugins) no puede eliminar la protección integrada, cambiar su posición ni desactivarla hasta que la búsqueda de la sesión confirme la carga útil195* Un valor en caché de [`prependPlugins`](https://code.claude.com/docs/es/settings-reference#prependplugins), [`appendPlugins`](https://code.claude.com/docs/es/settings-reference#appendplugins) o [`enabledPlugins`](https://code.claude.com/docs/es/settings-reference#enabledplugins) no puede eliminar la protección integrada, cambiar su posición ni desactivarla hasta que la búsqueda de la sesión confirme la carga útil

196* En una máquina donde una [fuente administrada por endpoint](https://code.claude.com/docs/es/managed-settings.md#choose-a-delivery-mechanism) enumera o habilita plugins propios, un plugin que solo habilita una lista en caché cuenta como [del usuario](https://code.claude.com/docs/es/plugins/mods/admin.md#install-your-organizations-mods), no de tu organización, hasta que la búsqueda confirme la carga útil196* En una máquina donde una [fuente administrada por endpoint](https://code.claude.com/docs/es/managed-settings.md#choose-a-delivery-mechanism) enumera o habilita plugins propios, un plugin que solo habilita una lista en caché cuenta como [del usuario](https://code.claude.com/docs/es/plugins/mods/admin.md#install-your-organizations-mods), no de tu organización, hasta que la búsqueda confirme la carga útil

197* Claude Code obtiene configuración fresca en segundo plano197* Claude Code obtiene configuración fresca en segundo plano

198* Si el proveedor de una sesión no está en la lista [`allowedProviders`](https://code.claude.com/docs/es/settings-reference#allowedproviders) en caché, Claude Code puede esperar esa búsqueda y volver a comprobar antes de rechazarla. Si la búsqueda falla, la sesión se rechaza

198* La configuración en caché persiste ante fallos de red. Si la búsqueda de inicio falla, Claude Code advierte en las sesiones interactivas y en la pestaña Code que la política en caché está en vigor199* La configuración en caché persiste ante fallos de red. Si la búsqueda de inicio falla, Claude Code advierte en las sesiones interactivas y en la pestaña Code que la política en caché está en vigor

199* Hasta que una búsqueda tenga éxito, los valores retenidos al inicio permanecen retenidos200* Hasta que una búsqueda tenga éxito, los valores retenidos al inicio permanecen retenidos

200 201 

Details

111| [`footerLinksRegexes`](#footerlinksregexes) | Convierte los ID de issues o revisiones de la salida en [enlaces en los que se puede hacer clic](https://code.claude.com/docs/es/statusline.md#clickable-links) debajo del cuadro de entrada | Interfaz y terminal | User or managed |111| [`footerLinksRegexes`](#footerlinksregexes) | Convierte los ID de issues o revisiones de la salida en [enlaces en los que se puede hacer clic](https://code.claude.com/docs/es/statusline.md#clickable-links) debajo del cuadro de entrada | Interfaz y terminal | User or managed |

112| [`forceLoginGatewayUrl`](#forcelogingatewayurl) | Establece la [URL del gateway](https://code.claude.com/docs/es/claude-apps-gateway#set-the-gateway-url) a la que se conecta la pantalla de inicio de sesión | Autenticación y proveedores | User or managed |112| [`forceLoginGatewayUrl`](#forcelogingatewayurl) | Establece la [URL del gateway](https://code.claude.com/docs/es/claude-apps-gateway#set-the-gateway-url) a la que se conecta la pantalla de inicio de sesión | Autenticación y proveedores | User or managed |

113| [`forceLoginMethod`](#forceloginmethod) | [Restringe el inicio de sesión](https://code.claude.com/docs/es/authentication.md#restrict-login-to-your-organization) a claude.ai, Claude Console o un [gateway en la nube](https://code.claude.com/docs/es/claude-apps-gateway) | Autenticación y proveedores | Any file |113| [`forceLoginMethod`](#forceloginmethod) | [Restringe el inicio de sesión](https://code.claude.com/docs/es/authentication.md#restrict-login-to-your-organization) a claude.ai, Claude Console o un [gateway en la nube](https://code.claude.com/docs/es/claude-apps-gateway) | Autenticación y proveedores | Any file |

114| [`forceLoginOrgUUID`](#forceloginorguuid) | [Fija los inicios de sesión de claude.ai a tu organización](https://code.claude.com/docs/es/authentication.md#restrict-login-to-your-organization); solo una fuente administrada lo aplica | Autenticación y proveedores | Any file |114| [`forceLoginOrgUUID`](#forceloginorguuid) | [Fija los inicios de sesión de claude.ai a tu organización](https://code.claude.com/docs/es/authentication.md#restrict-login-to-your-organization); solo la configuración administrada lo aplica | Autenticación y proveedores | Any file |

115| [`forceRemoteSettingsRefresh`](#forceremotesettingsrefresh) | Bloquea el inicio hasta que la [configuración administrada por el servidor](https://code.claude.com/docs/es/server-managed-settings.md) se haya obtenido de nuevo | Configuración empresarial y administrada | Managed |115| [`forceRemoteSettingsRefresh`](#forceremotesettingsrefresh) | Bloquea el inicio hasta que la [configuración administrada por el servidor](https://code.claude.com/docs/es/server-managed-settings.md) se haya obtenido de nuevo | Configuración empresarial y administrada | Managed |

116| [`gatewayInternalNetworks`](#gatewayinternalnetworks) | Permite que `/login` alcance un [gateway en la nube](https://code.claude.com/docs/es/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own) en espacio IPv4 público que tu organización usa internamente | Autenticación y proveedores | Managed |116| [`gatewayInternalNetworks`](#gatewayinternalnetworks) | Permite que `/login` alcance un [gateway en la nube](https://code.claude.com/docs/es/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own) en espacio IPv4 público que tu organización usa internamente | Autenticación y proveedores | Managed |

117| [`gcpAuthRefresh`](#gcpauthrefresh) | Actualiza las [credenciales de Google Cloud](https://code.claude.com/docs/es/google-vertex-ai.md#advanced-credential-configuration) con tu propio comando | Autenticación y proveedores | Any file |117| [`gcpAuthRefresh`](#gcpauthrefresh) | Actualiza las [credenciales de Google Cloud](https://code.claude.com/docs/es/google-vertex-ai.md#advanced-credential-configuration) con tu propio comando | Autenticación y proveedores | Any file |


446 446 

447### `fastMode`447### `fastMode`

448 448 

449Activa el [modo rápido](https://code.claude.com/docs/es/fast-mode.md) en las sesiones donde esté disponible, para trabajo interactivo como iteración rápida o depuración en vivo, donde quieres velocidad a un costo mayor por token. Normalmente no editas esta clave a mano: ejecutar `/fast` escribe `fastMode: true` en `~/.claude/settings.json`, y volver a ejecutarlo para desactivar el modo rápido elimina la clave. El modo rápido solo funciona en Opus 5.5, Opus 5 y Opus 4.8: activarlo desde otro modelo te cambia a Opus, y cambiar a un modelo no compatible lo desactiva. Consulta [Cambiar de modelo mientras el modo rápido está activado](https://code.claude.com/docs/es/fast-mode.md#switch-models-while-fast-mode-is-on).449Activa el [modo rápido](https://code.claude.com/docs/es/fast-mode.md) en las sesiones donde esté disponible, para trabajo interactivo como iteración rápida o depuración en vivo, donde quieres velocidad a un costo mayor por token. Normalmente no editas esta clave tú mismo. Ejecutar `/fast` escribe `fastMode: true` en `~/.claude/settings.json`, y volver a ejecutarlo para desactivar el modo rápido elimina la clave.

450 

451Solo Opus 5.5, Opus 5 y Opus 4.8 admiten el modo rápido. Ejecutar `/fast` desde otro modelo te cambia a Opus, y cambiar a un modelo no compatible desactiva el modo rápido. Consulta [Cambiar de modelo mientras el modo rápido está activado](https://code.claude.com/docs/es/fast-mode.md#switch-models-while-fast-mode-is-on).

450 452 

451* **Alcance**: [`Any file`](#scopes)453* **Alcance**: [`Any file`](#scopes)

452* **Tipo**: Boolean454* **Tipo**: Boolean


463 465 

464### `fastModePerSessionOptIn`466### `fastModePerSessionOptIn`

465 467 

466Normalmente, ejecutar `/fast` guarda [`fastMode`](#fastmode) en la configuración de usuario de una persona, así que el modo rápido queda activado al inicio de cada sesión posterior. Establece esta clave en `true` para evitarlo: un `fastMode: true` guardado ya no activa el modo rápido al iniciar la sesión, y cada persona tiene que ejecutar `/fast` en cada sesión en la que lo quiera. Claude Code deja la clave `fastMode` en su archivo, así que desactivar esta clave restaura el comportamiento anterior.468Normalmente, ejecutar `/fast` guarda [`fastMode`](#fastmode) en la configuración de usuario de una persona, así que las nuevas sesiones en un modelo compatible se inician con el modo rápido activado. Establece esta clave en `true` para evitarlo: un `fastMode: true` guardado ya no activa el modo rápido al iniciar la sesión, y cada persona tiene que ejecutar `/fast` en cada sesión en la que lo quiera. Claude Code deja la clave `fastMode` en su archivo, así que desactivar esta clave restaura el comportamiento anterior.

467 469 

468Los propietarios de los planes Team o Enterprise pueden desplegarla en toda la organización mediante la [configuración administrada por el servidor](https://code.claude.com/docs/es/server-managed-settings.md). Cuando la configuración administrada establece la clave, `/fast on` se rechaza fuera de las sesiones interactivas de terminal e informa que tu organización ha desactivado el modo rápido. Eso abarca el [modo no interactivo](https://code.claude.com/docs/es/headless.md), la [extensión de VS Code](https://code.claude.com/docs/es/vs-code.md) y las [sesiones en la nube](https://code.claude.com/docs/es/claude-code-on-the-web.md).470Los propietarios de los planes Team o Enterprise pueden desplegarla en toda la organización mediante la [configuración administrada por el servidor](https://code.claude.com/docs/es/server-managed-settings.md). Cuando la configuración administrada establece la clave, `/fast on` se rechaza fuera de las sesiones interactivas de terminal e informa que tu organización ha desactivado el modo rápido. Eso abarca el [modo no interactivo](https://code.claude.com/docs/es/headless.md), la [extensión de VS Code](https://code.claude.com/docs/es/vs-code.md) y las [sesiones en la nube](https://code.claude.com/docs/es/claude-code-on-the-web.md).

469 471 

470* **Alcance**: [`Any file`](#scopes)472* **Alcance**: [`Any file`](#scopes)

471* **Tipo**: Boolean473* **Tipo**: Boolean

472 * `true`: un `fastMode: true` guardado ya no activa el modo rápido al iniciar la sesión, así que cada persona ejecuta `/fast` en cada sesión en la que lo quiera; un `fastMode: true` pasado con `--settings` sigue contando para esa sesión, a menos que la configuración administrada establezca esta clave474 * `true`: un `fastMode: true` guardado ya no activa el modo rápido al iniciar la sesión, así que cada persona ejecuta `/fast` en cada sesión en la que lo quiera; un `fastMode: true` pasado con `--settings` sigue contando para esa sesión, a menos que la configuración administrada establezca esta clave

473 * `false`: un `fastMode: true` guardado activa el modo rápido al inicio de cada sesión posterior475 * `false`: un `fastMode: true` guardado activa el modo rápido al inicio de cada nueva sesión en un modelo compatible

474* **Predeterminado**: `false`476* **Predeterminado**: `false`

475 477 

476```json settings.json theme={null}478```json settings.json theme={null}


4827 4829 

4828### `agentPushNotifEnabled`4830### `agentPushNotifEnabled`

4829 4831 

4830Permite que Claude envíe una notificación push a tu teléfono cuando decida que vale la pena enviarla, por ejemplo cuando finaliza una tarea larga. Claude puede enviarla mientras [Remote Control](https://code.claude.com/docs/es/remote-control.md) está conectado. Aparece en `/config` como **Push when Claude decides**. Cuando lo cambias allí, Claude Code también guarda el valor en tu cuenta.4832Permite que Claude envíe una notificación push a tu teléfono cuando decida que vale la pena enviarla, por ejemplo cuando finaliza una tarea larga. En una sesión local, Claude puede enviarla mientras [Remote Control](https://code.claude.com/docs/es/remote-control.md) está conectado. Aparece en `/config` como **Push when Claude decides**. Cuando lo cambias allí, Claude Code también guarda el valor en tu cuenta.

4831 4833 

4832* **Scope**: [`Any file`](#scopes). Claude Code también lee un valor dejado en `~/.claude.json` por versiones anteriores.4834* **Scope**: [`Any file`](#scopes). Claude Code también lee un valor dejado en `~/.claude.json` por versiones anteriores.

4833* **Type**: Boolean4835* **Type**: Boolean


4964 4966 

4965### `inputNeededNotifEnabled`4967### `inputNeededNotifEnabled`

4966 4968 

4967Obtenga una notificación push en su teléfono cuando un prompt de permiso o una pregunta esté esperando su entrada. Claude Code envía estas solo mientras [Control remoto](https://code.claude.com/docs/es/remote-control.md) está conectado. Aparece en `/config` como **Enviar notificación cuando se requieran acciones**.4969Recibe una notificación push en tu teléfono cuando una solicitud de permiso o una pregunta esté esperando tu respuesta. En una sesión local, Claude Code las envía solo mientras [Remote Control](https://code.claude.com/docs/es/remote-control.md) está conectado. Aparece en `/config` como **Push when actions required**.

4968 4970 

4969* **Scope**: [`Any file`](#scopes). Claude Code también lee un valor dejado en `~/.claude.json` por versiones anteriores.4971* **Scope**: [`Any file`](#scopes). Claude Code también lee un valor dejado en `~/.claude.json` por versiones anteriores.

4970* **Type**: Boolean4972* **Type**: Boolean

4971 * `true`: obtiene una notificación push en su teléfono cuando un prompt de permiso o una pregunta está esperando, mientras Control remoto está conectado

4972 * `false`: Claude Code no envía tales notificaciones

4973* **Default**: `false`4973* **Default**: `false`

4974 4974 

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


4986 4986 

4987* **Scope**: [`Any file`](#scopes). Claude Code también lee un valor dejado en `~/.claude.json` por versiones anteriores.4987* **Scope**: [`Any file`](#scopes). Claude Code también lee un valor dejado en `~/.claude.json` por versiones anteriores.

4988* **Type**: cadena, una de:4988* **Type**: cadena, una de:

4989 * `"auto"`: Claude Code envía una notificación de escritorio en iTerm2, Ghostty y Kitty, suena la campana en Terminal.app solo cuando su campana audible está desactivada, y no hace nada en otros lugares4989 * `"auto"`: Claude Code envía una notificación de escritorio cuando detecta iTerm2, Ghostty o Kitty, hace sonar la campana en Terminal.app solo cuando su campana audible está desactivada, y no hace nada en otros casos

4990 * `"terminal_bell"`: Claude Code suena el carácter de campana en cualquier terminal4990 * `"terminal_bell"`: Claude Code hace sonar el carácter de campana en cualquier terminal

4991 * `"iterm2"`: Claude Code envía una notificación de escritorio de iTerm24991 * `"iterm2"`: Claude Code envía una notificación de escritorio de iTerm2

4992 * `"iterm2_with_bell"`: Claude Code envía una notificación de escritorio de iTerm2 y suena la campana4992 * `"iterm2_with_bell"`: Claude Code envía una notificación de escritorio de iTerm2 y hace sonar la campana

4993 * `"kitty"`: Claude Code envía una notificación de escritorio de Kitty4993 * `"kitty"`: Claude Code envía una notificación de escritorio de Kitty

4994 * `"ghostty"`: Claude Code envía una notificación de escritorio de Ghostty4994 * `"ghostty"`: Claude Code envía una notificación de escritorio de Ghostty

4995 * `"notifications_disabled"`: Claude Code no envía notificación4995 * `"notifications_disabled"`: Claude Code no envía ninguna notificación

4996* **Default**: `"auto"`4996* **Default**: `"auto"`

4997 4997 

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


5001}5001}

5002```5002```

5003 5003 

5004Con `"auto"`, Claude Code envía una notificación de escritorio en iTerm2, Ghostty y Kitty. En Terminal.app suena el carácter de campana solo cuando ha desactivado la campana audible de Terminal, y en otros terminales no hace nada. Establezca `"terminal_bell"` para sonar el carácter de campana en cualquier terminal. Consulte [Obtener una campana de terminal o notificación](https://code.claude.com/docs/es/terminal-config.md#get-a-terminal-bell-or-notification).5004Con `"auto"`, Claude Code envía una notificación de escritorio cuando detecta iTerm2, Ghostty o Kitty. En Terminal.app hace sonar el carácter de campana solo cuando has desactivado la campana audible de Terminal, y en otras terminales no hace nada. Establece `"terminal_bell"` para hacer sonar el carácter de campana en cualquier terminal. Consulta [Obtener una campana de terminal o notificación](https://code.claude.com/docs/es/terminal-config.md#get-a-terminal-bell-or-notification).

5005 5005 

5006### `remote.defaultEnvironmentId`5006### `remote.defaultEnvironmentId`

5007 5007 


5176 5176 

5177* Tras la vida útil de la caché, cinco minutos de forma predeterminada o el intervalo que establezcas con [`CLAUDE_CODE_API_KEY_HELPER_TTL_MS`](https://code.claude.com/docs/es/env-vars).5177* Tras la vida útil de la caché, cinco minutos de forma predeterminada o el intervalo que establezcas con [`CLAUDE_CODE_API_KEY_HELPER_TTL_MS`](https://code.claude.com/docs/es/env-vars).

5178* Cuando una solicitud a la API de Anthropic, directamente o a través de un [gateway de LLM](https://code.claude.com/docs/es/llm-gateway), falla con `401` o `403`.5178* Cuando una solicitud a la API de Anthropic, directamente o a través de un [gateway de LLM](https://code.claude.com/docs/es/llm-gateway), falla con `401` o `403`.

5179* Cuando una solicitud a través de un gateway de LLM falla con `401`, pero no con `403`, y estableces [`CLAUDE_CODE_SKIP_VERTEX_AUTH`](https://code.claude.com/docs/es/env-vars) para Agent Platform de Google Cloud, `CLAUDE_CODE_SKIP_ANTHROPIC_AWS_AUTH` para Claude Platform on AWS o `CLAUDE_CODE_SKIP_MANTLE_AUTH` para Amazon Bedrock Mantle. Requiere Claude Code v2.1.318 o posterior.

5179* Antes de enviar una solicitud a la API de Anthropic, directamente o a través de un gateway de LLM, cuando la salida en caché es un JWT que expiró después de que el auxiliar lo produjera. Requiere Claude Code v2.1.246 o posterior.5180* Antes de enviar una solicitud a la API de Anthropic, directamente o a través de un gateway de LLM, cuando la salida en caché es un JWT que expiró después de que el auxiliar lo produjera. Requiere Claude Code v2.1.246 o posterior.

5180 5181 

5181Los dos últimos casos se aplican solo cuando la salida del auxiliar es la credencial que Claude Code envía y `ANTHROPIC_AUTH_TOKEN` no está definida.5182Los tres últimos casos se aplican solo cuando la salida del auxiliar es la credencial que Claude Code envía y `ANTHROPIC_AUTH_TOKEN` no está definida.

5182 5183 

5183En sesiones interactivas, cuando el comando proviene de la configuración del proyecto o local, Claude Code no lo ejecuta hasta que aceptes la solicitud de confianza del espacio de trabajo. Consulta [Gestión de credenciales](https://code.claude.com/docs/es/authentication.md#credential-management).5184En sesiones interactivas, cuando el comando proviene de la configuración del proyecto o local, Claude Code no lo ejecuta hasta que aceptes la solicitud de confianza del espacio de trabajo. Consulta [Gestión de credenciales](https://code.claude.com/docs/es/authentication.md#credential-management).

5184 5185 


5261 5262 

5262Desde una fuente administrada, exige que los inicios de sesión con cuentas de claude.ai pertenezcan a una organización de Anthropic, indicada como un único UUID, o a cualquiera de varias organizaciones, indicadas como un array. Desde cualquier archivo de configuración, Claude Code también usa un único UUID para preseleccionar esa organización durante un inicio de sesión en claude.ai o Claude Console, y no preselecciona nada con un array. Si estableces la clave en cualquier archivo de configuración, Claude Code también deja de ofrecer el [inicio de sesión en Console sin clave](https://code.claude.com/docs/es/authentication.md#sign-in-without-an-api-key) en las sesiones a las que se aplica ese archivo y, en su lugar, crea una clave de API.5263Desde una fuente administrada, exige que los inicios de sesión con cuentas de claude.ai pertenezcan a una organización de Anthropic, indicada como un único UUID, o a cualquiera de varias organizaciones, indicadas como un array. Desde cualquier archivo de configuración, Claude Code también usa un único UUID para preseleccionar esa organización durante un inicio de sesión en claude.ai o Claude Console, y no preselecciona nada con un array. Si estableces la clave en cualquier archivo de configuración, Claude Code también deja de ofrecer el [inicio de sesión en Console sin clave](https://code.claude.com/docs/es/authentication.md#sign-in-without-an-api-key) en las sesiones a las que se aplica ese archivo y, en su lugar, crea una clave de API.

5263 5264 

5264* **Alcance**: [`Any file`](#scopes). Solo una fuente administrada impone la restricción; un único UUID en cualquier otro archivo de configuración preselecciona la organización durante el inicio de sesión sin restringirla.5265* **Alcance**: [`Any file`](#scopes). En un archivo de configuración que no es una fuente administrada, Claude Code no comprueba a qué organización pertenece un inicio de sesión, y un único UUID preselecciona la organización durante el inicio de sesión.

5265* **Tipo**: cadena, un UUID, o array de cadenas, varios UUID5266* **Tipo**: cadena, un UUID, o array de cadenas, varios UUID

5266* **Valor predeterminado**: sin definir, por lo que cualquier organización puede iniciar sesión5267* **Valor predeterminado**: sin definir, por lo que cualquier organización puede iniciar sesión

5267 5268 


5827 5828 

5828### `autoInstallIdeExtension`5829### `autoInstallIdeExtension`

5829 5830 

5830Permite que [`/ide`](https://code.claude.com/docs/es/commands) instale la extensión de IDE de Claude Code en un VS Code, Cursor o Devin Desktop en ejecución cuando ejecutas el comando desde una terminal externa. Claude Code no instala la extensión al iniciarse. Aparece en `/config` como **Auto-install IDE extension** cuando ejecutas Claude Code dentro de una terminal de VS Code o JetBrains.5831Permite que [`/ide`](https://code.claude.com/docs/es/commands) instale la extensión de IDE de Claude Code en un VS Code, Cursor o Devin Desktop en ejecución cuando ejecutas el comando desde una terminal externa. Claude Code no instala ni actualiza la extensión cuando inicias `claude`. Antes de v2.1.318, Claude Code instala o actualiza la extensión cuando inicias `claude` en la terminal de uno de esos editores, a menos que esta clave sea `false`.

5832 

5833Aparece en `/config` como **Auto-install IDE extension** cuando ejecutas Claude Code dentro de una terminal de VS Code o JetBrains.

5831 5834 

5832* **Alcance**: [`Configuración global`](#scopes)5835* **Alcance**: [`Configuración global`](#scopes)

5833* **Tipo**: Booleano5836* **Tipo**: Booleano

setup.md +9 −9

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


389> gpg --show-keys /etc/apt/keyrings/claude-code.asc389> gpg --show-keys /etc/apt/keyrings/claude-code.asc

390> ```390> ```

391>391>

392> La huella digital que gpg imprime debe ser `31DDDE24DDFAB679F42D7BD2BAA929FF1A7ECACE`. Si gpg reporta que el archivo no se puede abrir o no contiene datos OpenPGP válidos, la descarga falló o devolvió contenido incorrecto: confirme que su red puede alcanzar `downloads.claude.ai`, luego vuelva a ejecutar el comando de descarga.392> La única huella digital que gpg imprime debe ser `31DDDE24DDFAB679F42D7BD2BAA929FF1A7ECACE`. Si gpg reporta que el archivo no se puede abrir o no contiene datos OpenPGP válidos, la descarga falló o devolvió contenido incorrecto. Confirma que tu red puede alcanzar `downloads.claude.ai` y luego vuelve a ejecutar el comando de descarga.

393>393>

394> Registre el repositorio en el canal `stable` e instale:394> Registre el repositorio en el canal `stable` e instale:

395>395>


536Verifique la firma separada contra el manifiesto.536Verifique la firma separada contra el manifiesto.

537 537 

538```bash theme={null}538```bash theme={null}

539gpg --verify manifest.json.sig manifest.json539gpg --with-fingerprint --verify manifest.json.sig manifest.json

540```540```

541 541 

542Un resultado válido reporta `Good signature from "Anthropic Claude Code Release Signing <security@anthropic.com>"`.542Un resultado válido reporta `Good signature from "Anthropic Claude Code Release Signing <security@anthropic.com>"`. Con la configuración predeterminada, `gpg` también imprime `WARNING: This key is not certified with a trusted signature!` para una clave recién importada. Esto es esperado. La línea `Good signature` confirma que la verificación criptográfica pasó.

543 543 

544`gpg` también imprime `WARNING: This key is not certified with a trusted signature!` para cualquier clave recién importada. Esto es esperado. La línea `Good signature` confirma que la verificación criptográfica pasó. La comparación de huella digital en el Paso 1 confirma que la clave en sí es auténtica.544Para comprobar que la clave de Anthropic firmó el manifiesto, compara la línea `Primary key fingerprint` al final de la salida con la huella digital que esta página indica en el Paso 1. Si coinciden y la salida no muestra `BAD signature`, continúa con el Paso 4. De lo contrario, no uses este manifiesto.

545 545 

546**4. Verificar el binario contra el manifiesto**546**4. Verificar el binario contra el manifiesto**

547 547 

slack.md +7 −10

Details

20 20 

21## Casos de uso21## Casos de uso

22 22 

23* **Investigación y corrección de errores**: Pídele a Claude que investigue y corrija errores tan pronto como se reporten en los canales de Slack.23* **Investigación y corrección de errores**: Describe un error y pídele a Claude que lo investigue y lo corrija.

24* **Revisiones de código rápidas y modificaciones**: Haz que Claude implemente pequeñas características o refactorice código basado en comentarios del equipo.24* **Revisiones de código rápidas y modificaciones**: Haz que Claude implemente pequeñas características o refactorice código.

25* **Depuración colaborativa**: Cuando las discusiones del equipo proporcionan contexto crucial (por ejemplo, reproducciones de errores o reportes de usuarios), Claude puede usar esa información para informar su enfoque de depuración.

26* **Ejecución de tareas en paralelo**: Inicia tareas de codificación en Slack mientras continúas con otro trabajo, recibiendo notificaciones cuando se completen.25* **Ejecución de tareas en paralelo**: Inicia tareas de codificación en Slack mientras continúas con otro trabajo, recibiendo notificaciones cuando se completen.

27 26 

28## Requisitos previos27## Requisitos previos


91 90 

92### Recopilación de contexto91### Recopilación de contexto

93 92 

94**De hilos**: Cuando @mencionas a Claude en un hilo, recopila contexto de todos los mensajes en ese hilo para entender la conversación completa.93* **De hilos**: cuando @mencionas a Claude por primera vez en un hilo, recopila contexto de tus mensajes y de los suyos en ese hilo.

94* **De canales**: cuando @mencionas a Claude directamente en un canal, observa tus mensajes recientes y los suyos en ese canal, así como el nombre, el tema y la descripción del canal.

95 95 

96**De canales**: Cuando se menciona directamente en un canal, Claude observa los mensajes recientes del canal para obtener contexto relevante.96Este contexto ayuda a Claude a entender el problema, seleccionar el repositorio apropiado e informar su enfoque para la tarea. Para darle a Claude algo que escribió un compañero de equipo, como un informe de error, pega su texto en el mensaje donde @mencionas a Claude.

97 

98Este contexto ayuda a Claude a entender el problema, seleccionar el repositorio apropiado e informar su enfoque para la tarea.

99 97 

100> [!WARNING]98> [!WARNING]

101>99>


162### Escribir solicitudes efectivas160### Escribir solicitudes efectivas

163 161 

164* **Sé específico**: Incluye nombres de archivos, nombres de funciones o mensajes de error cuando sea relevante.162* **Sé específico**: Incluye nombres de archivos, nombres de funciones o mensajes de error cuando sea relevante.

165* **Proporciona contexto**: Menciona el repositorio o proyecto si no está claro en la conversación.163* **Proporciona contexto**: Menciona el repositorio o proyecto.

166* **Define el éxito**: Explica qué significa "hecho"—¿debería Claude escribir pruebas? ¿Actualizar documentación? ¿Crear un PR?164* **Define el éxito**: Explica qué significa "hecho"—¿debería Claude escribir pruebas? ¿Actualizar documentación? ¿Crear un PR?

167* **Usa hilos**: Responde en hilos cuando discutas errores o características para que Claude pueda recopilar el contexto completo.

168 165 

169### Cuándo usar Slack vs. web166### Cuándo usar Slack vs. web

170 167 

171**Usa Slack cuando**: El contexto ya existe en una discusión de Slack, quieres iniciar una tarea de forma asincrónica, o estás colaborando con compañeros de equipo que necesitan visibilidad.168**Usa Slack cuando**: Quieres iniciar una tarea de forma asincrónica, o estás colaborando con compañeros de equipo que necesitan visibilidad.

172 169 

173**Usa la web directamente cuando**: Necesitas cargar archivos, quieres interacción en tiempo real durante el desarrollo, o estás trabajando en tareas más largas y complejas.170**Usa la web directamente cuando**: Necesitas cargar archivos, quieres interacción en tiempo real durante el desarrollo, o estás trabajando en tareas más largas y complejas.

174 171 

Details

74 74 

75De forma predeterminada, Claude Code envía una notificación de escritorio en algunas terminales, y un carácter de campana o nada en otras:75De forma predeterminada, Claude Code envía una notificación de escritorio en algunas terminales, y un carácter de campana o nada en otras:

76 76 

77* **Ghostty, Kitty e iTerm2**: una notificación de escritorio, que iTerm2 muestra solo después de que activas su configuración de alertas.77* **Ghostty, Kitty e iTerm2, cuando Claude Code las detecta**: una notificación de escritorio, que iTerm2 muestra solo después de que activas su configuración de alertas.

78* **Apple Terminal**: sin sonido; un carácter de campana silencioso cuando Claude Code detecta que "Audible bell" está desactivado en el perfil de la ventana de Terminal en primer plano; de lo contrario, nada. Ese carácter de campana se muestra como un destello de la ventana, o como un rebote en el Dock mientras Terminal está en segundo plano, si la opción "Visual bell" o la de rebote en el Dock de ese perfil está activada.78* **Apple Terminal**: sin sonido; un carácter de campana silencioso cuando Claude Code detecta que "Audible bell" está desactivado en el perfil de la ventana de Terminal en primer plano; de lo contrario, nada. Ese carácter de campana se muestra como un destello de la ventana, o como un rebote en el Dock mientras Terminal está en segundo plano, si la opción "Visual bell" o la de rebote en el Dock de ese perfil está activada.

79* **Otras terminales**: nada.79* **Otras terminales**: nada.

80 80 


86}86}

87```87```

88 88 

89La notificación de escritorio llega a su máquina local a través de SSH, por lo que una sesión remota aún puede alertarle. Ghostty y Kitty la reenvían a su centro de notificaciones del SO sin configuración adicional. iTerm2 requiere que habilite el reenvío:89A través de SSH desde una terminal que se ejecuta fuera de tmux, establece [`preferredNotifChannel`](https://code.claude.com/docs/es/settings-reference#preferrednotifchannel) en el valor de tu terminal local, `"iterm2"`, `"kitty"` o `"ghostty"`, en la máquina que ejecuta Claude Code. Así, la notificación de escritorio llega a tu máquina local. Ghostty y Kitty la reenvían al centro de notificaciones de tu SO sin configuración adicional. iTerm2 requiere que habilites el reenvío:

90 90 

91**1. Abrir la configuración de notificaciones de iTerm2**91**1. Abrir la configuración de notificaciones de iTerm2**

92 92 


131 131 

132## Configurar tmux132## Configurar tmux

133 133 

134Cuando Claude Code se ejecuta dentro de tmux, por defecto Shift+Enter envía en lugar de insertar una nueva línea, y las notificaciones de escritorio y la [barra de progreso](https://code.claude.com/docs/es/settings-reference.md#terminalprogressbarenabled) nunca llegan a la terminal externa. Agregue estas líneas a `~/.tmux.conf`, luego ejecute `tmux source-file ~/.tmux.conf` para aplicarlas al servidor en ejecución:134Cuando Claude Code se ejecuta dentro de tmux, por defecto Shift+Enter envía en lugar de insertar una nueva línea, y las notificaciones de escritorio no llegan a la terminal externa. Agrega estas líneas a `~/.tmux.conf`, luego ejecuta `tmux source-file ~/.tmux.conf` para aplicarlas al servidor en ejecución:

135 135 

136```bash ~/.tmux.conf theme={null}136```bash ~/.tmux.conf theme={null}

137set -g allow-passthrough on137set -g allow-passthrough on


140set -as terminal-features 'xterm*:extkeys'140set -as terminal-features 'xterm*:extkeys'

141```141```

142 142 

143La línea `allow-passthrough` permite que las notificaciones y actualizaciones de progreso lleguen a la terminal externa en lugar de ser absorbidas por tmux. Las líneas `extended-keys` permiten que tmux distinga Shift+Enter de Enter simple para que el atajo de nueva línea funcione.143Para enviar notificaciones desde un panel visible a la terminal externa, conserva la línea `allow-passthrough` y establece [`preferredNotifChannel`](https://code.claude.com/docs/es/settings-reference#preferrednotifchannel) en `"iterm2"`, `"kitty"` o `"ghostty"`. Con este ejemplo, un panel en una ventana que no estás viendo no envía ninguna. Las líneas `extended-keys` permiten que tmux distinga Shift+Enter de Enter simple para que el atajo de nueva línea funcione.

144 144 

145Un [`Image` de un mod](https://code.claude.com/docs/es/plugins/mods/reference#elements) necesita las líneas `allow-passthrough` y `focus-events`, junto con los demás [requisitos para dibujar dentro de tmux](https://code.claude.com/docs/es/plugins/mods/gallery.md#draw-an-image-inside-tmux). Después de agregar las líneas, también desconéctate de tmux, vuelve a conectarte y reinicia Claude Code.145Un [`Image` de un mod](https://code.claude.com/docs/es/plugins/mods/reference#elements) necesita las líneas `allow-passthrough` y `focus-events`, junto con los demás [requisitos para dibujar dentro de tmux](https://code.claude.com/docs/es/plugins/mods/gallery.md#draw-an-image-inside-tmux). Después de agregar las líneas, también desconéctate de tmux, vuelve a conectarte y reinicia Claude Code.

146 146 

Details

39| `Monitor` | Ejecuta un comando en segundo plano y devuelve cada línea de salida a Claude, para que pueda reaccionar a entradas de registro, cambios de archivos o estado sondeado a mitad de la conversación. También puede abrir un WebSocket y tratar cada mensaje entrante como un evento. Consulta [Herramienta Monitor](#monitor-tool) | Sí |39| `Monitor` | Ejecuta un comando en segundo plano y devuelve cada línea de salida a Claude, para que pueda reaccionar a entradas de registro, cambios de archivos o estado sondeado a mitad de la conversación. También puede abrir un WebSocket y tratar cada mensaje entrante como un evento. Consulta [Herramienta Monitor](#monitor-tool) | Sí |

40| `NotebookEdit` | Modifica celdas de cuadernos Jupyter. Consulta [Comportamiento de la herramienta NotebookEdit](#notebookedit-tool-behavior) | Sí |40| `NotebookEdit` | Modifica celdas de cuadernos Jupyter. Consulta [Comportamiento de la herramienta NotebookEdit](#notebookedit-tool-behavior) | Sí |

41| `PowerShell` | Ejecuta comandos de PowerShell de forma nativa. Consulta [Herramienta PowerShell](#powershell-tool) para disponibilidad | Sí |41| `PowerShell` | Ejecuta comandos de PowerShell de forma nativa. Consulta [Herramienta PowerShell](#powershell-tool) para disponibilidad | Sí |

42| `PushNotification` | Envía una notificación de escritorio, y un push telefónico cuando [Remote Control](https://code.claude.com/docs/es/remote-control.md) está conectado, para que una tarea de larga duración o [tarea programada con alcance de sesión](https://code.claude.com/docs/es/scheduled-tasks.md) pueda alcanzarte cuando te alejes. La entrega de push se ejecuta a través de infraestructura alojada por Anthropic, que no es accesible desde Amazon Bedrock, Claude Platform en AWS, Agent Platform de Google Cloud, o Microsoft Foundry | No |42| `PushNotification` | Envía una notificación de escritorio desde una sesión local, y un push telefónico con [Remote Control](https://code.claude.com/docs/es/remote-control.md) o en una [sesión en la nube](https://code.claude.com/docs/es/claude-code-on-the-web.md). La entrega de push se ejecuta a través de infraestructura alojada por Anthropic, que no es accesible desde Amazon Bedrock, Claude Platform en AWS, Agent Platform de Google Cloud, o Microsoft Foundry | No |

43| `Read` | Lee el contenido de archivos. Consulta [Comportamiento de la herramienta Read](#read-tool-behavior) | No |43| `Read` | Lee el contenido de archivos. Consulta [Comportamiento de la herramienta Read](#read-tool-behavior) | No |

44| `ReadMcpResourceTool` | Lee un recurso MCP específico por URI | No |44| `ReadMcpResourceTool` | Lee un recurso MCP específico por URI | No |

45| `RemoteTrigger` | Crea, actualiza, ejecuta y lista [tareas programadas en la nube](https://code.claude.com/docs/es/routines.md), antes llamadas rutinas, en claude.ai. Respalda el comando `/schedule`. La [referencia de entrada de `RemoteTrigger`](https://code.claude.com/docs/es/agent-sdk/typescript#remotetrigger) documenta cada acción y las políticas de organización que eliminan la herramienta. Las tareas programadas en la nube viven en claude.ai y requieren un plan Pro, Max, Ultra, Team o Enterprise. Por lo tanto, esta herramienta no es accesible desde Amazon Bedrock, Claude Platform en AWS, Agent Platform de Google Cloud, o Microsoft Foundry | No |45| `RemoteTrigger` | Crea, actualiza, ejecuta y lista [tareas programadas en la nube](https://code.claude.com/docs/es/routines.md), antes llamadas rutinas, en claude.ai. Respalda el comando `/schedule`. La [referencia de entrada de `RemoteTrigger`](https://code.claude.com/docs/es/agent-sdk/typescript#remotetrigger) documenta cada acción y las políticas de organización que eliminan la herramienta. Las tareas programadas en la nube viven en claude.ai y requieren un plan Pro, Max, Ultra, Team o Enterprise. Por lo tanto, esta herramienta no es accesible desde Amazon Bedrock, Claude Platform en AWS, Agent Platform de Google Cloud, o Microsoft Foundry | No |

vs-code.md +12 −3

Details

818 818 

819### Ejecutar la CLI en VS Code819### Ejecutar la CLI en VS Code

820 820 

821Para usar la CLI sin salir de VS Code, presiona `` Ctrl+` `` en Windows/Linux o `` Cmd+` `` en Mac para abrir la terminal integrada y luego ejecuta `claude`. Iniciar `claude` no instala la extensión. Sin ella, `/ide` en la terminal integrada informa "No available IDEs detected" y `/status` muestra el IDE como "Not connected".821Para usar la CLI sin salir de VS Code, presiona `` Ctrl+` `` en Windows/Linux o `` Cmd+` `` en Mac para abrir la terminal integrada y luego ejecuta `claude`.

822 822 

823Para obtener funciones como la visualización de diffs y el uso compartido de diagnósticos, conecta la CLI a la extensión desde la terminal integrada o desde una terminal externa:823Para obtener funciones como la visualización de diffs y el uso compartido de diagnósticos, conecta la CLI a la extensión desde la terminal integrada o desde una terminal externa:

824 824 

825* **Terminal integrada**: [instala la extensión](#install-the-extension) y luego inicia `claude`. La CLI se conecta automáticamente.825* **Terminal integrada**: [instala la extensión](#install-the-extension) y luego inicia `claude`. La CLI se conecta automáticamente. Claude Code v2.1.318 o posterior no instala la extensión por ti, así que hasta que la instales, `/ide` informa "No available IDEs detected" y `/status` muestra el IDE como "Not connected".

826* **Terminal externa**: ejecuta `/ide` dentro de Claude Code para conectarte a VS Code. Si VS Code se está ejecutando sin la extensión, `/ide` la instala, a menos que hayas desactivado [`autoInstallIdeExtension`](https://code.claude.com/docs/es/settings-reference#autoinstallideextension).826* **Terminal externa**: ejecuta `/ide` dentro de Claude Code para conectarte a VS Code. Si VS Code se está ejecutando sin la extensión, `/ide` la instala, a menos que hayas desactivado [`autoInstallIdeExtension`](https://code.claude.com/docs/es/settings-reference#autoinstallideextension).

827 827 

828Instalar la extensión no agrega `claude` al PATH de tu shell. La extensión incluye una copia privada de la CLI para su panel de chat, pero escribir `claude` en una terminal requiere la [instalación independiente de la CLI](https://code.claude.com/docs/es/setup.md). Ejecuta la instalación una vez y los comandos de esta página, incluidos `claude mcp add` y `claude --resume`, funcionarán en cualquier terminal. Si `claude` sigue sin encontrarse después de la instalación, [verifica tu PATH](https://code.claude.com/docs/es/troubleshoot-install.md#verify-your-path).828Instalar la extensión no agrega `claude` al PATH de tu shell. La extensión incluye una copia privada de la CLI para su panel de chat, pero escribir `claude` en una terminal requiere la [instalación independiente de la CLI](https://code.claude.com/docs/es/setup.md). Ejecuta la instalación una vez y los comandos de esta página, incluidos `claude mcp add` y `claude --resume`, funcionarán en cualquier terminal. Si `claude` sigue sin encontrarse después de la instalación, [verifica tu PATH](https://code.claude.com/docs/es/troubleshoot-install.md#verify-your-path).


10912. Busca "Claude Code"10912. Busca "Claude Code"

10923. Haz clic en **Uninstall**10923. Haz clic en **Uninstall**

1093 1093 

1094La extensión permanece desinstalada cuando inicias `claude`. Si ejecutas `/ide` desde una terminal externa mientras VS Code está en ejecución, Claude Code la reinstala. Para evitarlo, establece [`autoInstallIdeExtension`](https://code.claude.com/docs/es/settings-reference#autoinstallideextension) en `false` en `~/.claude.json`, o desactiva **Auto-install IDE extension** en `/config` desde la terminal integrada. También puedes establecer la variable de entorno [`CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL`](https://code.claude.com/docs/es/env-vars) en `1`.1094Si haces cualquiera de estas acciones después de desinstalarla, la extensión vuelve a instalarse:

1095 

1096* Ejecutar `/ide` desde una terminal externa mientras VS Code está en ejecución

1097* Iniciar `claude` en la terminal integrada con una versión de Claude Code anterior a v2.1.318

1098 

1099Para evitar que la extensión vuelva a instalarse, haz una de estas acciones y, si ya se reinstaló, desinstálala de nuevo:

1100 

1101* Establece [`autoInstallIdeExtension`](https://code.claude.com/docs/es/settings-reference#autoinstallideextension) en `false` en `~/.claude.json`

1102* Establece [`CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL`](https://code.claude.com/docs/es/env-vars#variables) en `1` dentro de `env` en un [archivo de configuración](https://code.claude.com/docs/es/env-vars.md#in-settings-files)

1103* En la terminal integrada, desactiva **Auto-install IDE extension** en `/config`

1095 1104 

1096Para eliminar también los datos de la extensión y restablecer toda la configuración, elimina el directorio de almacenamiento de la extensión correspondiente a tu plataforma.1105Para eliminar también los datos de la extensión y restablecer toda la configuración, elimina el directorio de almacenamiento de la extensión correspondiente a tu plataforma.

1097 1106 

Details

12 12 

13Una sesión en la nube ejecuta Claude Code en la infraestructura en la nube en lugar de en tu máquina, administrada por Anthropic de forma predeterminada. Este inicio rápido inicia una desde [claude.ai/code](https://claude.ai/code) en tu navegador. También puedes iniciar una desde la aplicación móvil de Claude, la aplicación de Desktop, o tu terminal con `claude --cloud`.13Una sesión en la nube ejecuta Claude Code en la infraestructura en la nube en lugar de en tu máquina, administrada por Anthropic de forma predeterminada. Este inicio rápido inicia una desde [claude.ai/code](https://claude.ai/code) en tu navegador. También puedes iniciar una desde la aplicación móvil de Claude, la aplicación de Desktop, o tu terminal con `claude --cloud`.

14 14 

15Necesitarás un repositorio de GitHub para [comenzar](#connect-github). Claude lo clona en una máquina virtual aislada, realiza cambios e impulsa una rama para que la revises. Las sesiones persisten entre dispositivos, por lo que una tarea que comiences en tu portátil está lista para revisar desde tu teléfono más tarde. Cada sesión cuenta para los límites de uso de tu plan junto con el resto de tu uso de Claude y Claude Code, y no hay un cargo aparte por la VM en la nube.15Claude clona el [repositorio de GitHub](#connect-github) que selecciones en una máquina virtual aislada, realiza cambios e impulsa una rama para que la revises. Las sesiones persisten entre dispositivos, por lo que una tarea que comiences en tu portátil está lista para revisar desde tu teléfono más tarde. Cada sesión cuenta para los límites de uso de tu plan junto con el resto de tu uso de Claude y Claude Code, y no hay un cargo aparte por la VM en la nube.

16 16 

17Las sesiones en la nube funcionan bien para:17Las sesiones en la nube funcionan bien para:

18 18 


44| **La inicias desde** | claude.ai/code, la aplicación móvil de Claude, la aplicación Desktop con **Cloud** seleccionado, o `claude --cloud` | Tu terminal, tu IDE, o la aplicación Desktop con **Local** seleccionado | Tu terminal, la extensión de VS Code, o la aplicación Desktop |44| **La inicias desde** | claude.ai/code, la aplicación móvil de Claude, la aplicación Desktop con **Cloud** seleccionado, o `claude --cloud` | Tu terminal, tu IDE, o la aplicación Desktop con **Local** seleccionado | Tu terminal, la extensión de VS Code, o la aplicación Desktop |

45| **Chateas desde** | claude.ai, la aplicación móvil, o la aplicación Desktop | Donde la iniciaste | claude.ai o la aplicación móvil, así como donde la iniciaste |45| **Chateas desde** | claude.ai, la aplicación móvil, o la aplicación Desktop | Donde la iniciaste | claude.ai o la aplicación móvil, así como donde la iniciaste |

46| **Usa tu configuración local** | No, solo repositorio | Sí | Sí |46| **Usa tu configuración local** | No, solo repositorio | Sí | Sí |

47| **Requiere GitHub** | Sí, o [agrupa un repositorio local](https://code.claude.com/docs/es/claude-code-on-the-web.md#send-local-repositories-without-github) mediante `--cloud` | No | No |47| **Requiere GitHub** | Sí, para un repositorio de GitHub, a menos que `--cloud` [agrupe tu repositorio local](https://code.claude.com/docs/es/claude-code-on-the-web.md#send-local-repositories-without-github) | No | No |

48| **Sigue ejecutándose si te desconectas** | Sí | No | Mientras la sesión permanezca abierta en tu máquina |48| **Sigue ejecutándose si te desconectas** | Sí | No | Mientras la sesión permanezca abierta en tu máquina |

49| **[Modos de permisos](https://code.claude.com/docs/es/permission-modes.md)** | Aceptar ediciones, Plan, Auto | Todos los modos en la terminal; consulta [Cambiar modos de permisos](https://code.claude.com/docs/es/permission-modes.md#switch-permission-modes) para la IDE y la aplicación Desktop | Manual, Aceptar ediciones, Plan o Auto desde claude.ai y la aplicación móvil |49| **[Modos de permisos](https://code.claude.com/docs/es/permission-modes.md)** | Aceptar ediciones, Plan, Auto | Todos los modos en la terminal; consulta [Cambiar modos de permisos](https://code.claude.com/docs/es/permission-modes.md#switch-permission-modes) para la IDE y la aplicación Desktop | Manual, Aceptar ediciones, Plan o Auto desde claude.ai y la aplicación móvil |

50| **Acceso a la red** | Configurable por entorno | Red de tu máquina | Red de tu máquina |50| **Acceso a la red** | Configurable por entorno | Red de tu máquina | Red de tu máquina |


138 138 

139El [control de modo de permisos](https://code.claude.com/docs/es/permission-modes.md#switch-permission-modes) muestra el modo de permisos en el que se ejecutará la sesión:139El [control de modo de permisos](https://code.claude.com/docs/es/permission-modes.md#switch-permission-modes) muestra el modo de permisos en el que se ejecutará la sesión:

140 140 

141* **Auto**: un clasificador revisa las acciones de Claude en lugar de pedirte. Aparece cuando tu organización permite el modo auto y el modelo seleccionado lo admite141* **Auto**: un clasificador revisa las acciones de Claude en lugar de preguntarte. Aparece a menos que tu organización desactive el [modo automático](https://code.claude.com/docs/es/permission-modes.md#eliminate-prompts-with-auto-mode). En claude.ai/code, si aparece atenuado, selecciona un modelo que admita el modo automático

142* **Aceptar ediciones**: Claude realiza cambios e impulsa una rama sin detenerse para aprobación142* **Aceptar ediciones**: Claude realiza cambios e impulsa una rama sin detenerse para aprobación

143* **Plan**: Claude propone un enfoque y espera tu aprobación antes de editar archivos143* **Plan**: Claude propone un enfoque y espera tu aprobación antes de editar archivos

144 144 


209 209 

210### La página solo muestra un botón de inicio de sesión de GitHub210### La página solo muestra un botón de inicio de sesión de GitHub

211 211 

212Las sesiones en la nube requieren una cuenta de GitHub conectada. Conecte a través del flujo del navegador anterior, o ejecute `/web-setup` desde su terminal si usa la CLI de GitHub. Si prefiere no conectar GitHub en absoluto, consulte [Remote Control](https://code.claude.com/docs/es/remote-control.md) para ejecutar Claude Code en su propia máquina y monitorearlo desde su navegador o teléfono.212Para trabajar en un repositorio de GitHub en una sesión en la nube, [conecta tu cuenta de GitHub](#connect-github), o ejecuta `/web-setup` desde tu terminal si usas la CLI de GitHub. Si prefieres no conectar GitHub en absoluto, consulta [Remote Control](https://code.claude.com/docs/es/remote-control.md) para ejecutar Claude Code en tu propia máquina y monitorearlo desde tu navegador o teléfono.

213 213 

214### "Claude Code no está disponible en su cuenta"214### "Claude Code no está disponible en su cuenta"

215 215 


242 242 

243### El script de configuración falló243### El script de configuración falló

244 244 

245El script de configuración salió con un estado distinto de cero, lo que bloquea el inicio de la sesión. Las causas comunes son:245El [script de configuración](https://code.claude.com/docs/es/cloud-environments.md#setup-scripts) salió con un estado distinto de cero, por lo que la sesión no pudo iniciarse o se inició sin lo que el script no logró instalar. Si la sesión se inició, puedes seguir trabajando en ella.

246 

247Causas comunes:

246 248 

247* Una instalación de paquete falló porque el registro no está en su [nivel de acceso a la red](https://code.claude.com/docs/es/cloud-environments.md#access-levels). `Trusted` cubre la mayoría de los administradores de paquetes; `None` los bloquea todos.249* Una instalación de paquete falló porque el registro no está en su [nivel de acceso a la red](https://code.claude.com/docs/es/cloud-environments.md#access-levels). `Trusted` cubre la mayoría de los administradores de paquetes; `None` los bloquea todos.

248* El script hace referencia a un archivo o ruta que no existe en un clon nuevo.250* El script hace referencia a un archivo o ruta que no existe en un clon nuevo.

249* Un comando que funciona localmente necesita una invocación diferente en Ubuntu.251* Un comando que funciona localmente necesita una invocación diferente en Ubuntu.

250 252 

251Para depurar, agregue `set -x` en la parte superior del script para ver qué comando falló. Para comandos no críticos, agregue `|| true` para que no bloqueen el inicio de la sesión.253Para depurar, agrega `set -x` en la parte superior del script para ver qué comando falló. Para comandos no críticos, agrega `|| true` al final para que no hagan fallar el script. Después de corregir la causa, inicia una nueva sesión para que el script se ejecute de nuevo. Si lo que no pudo iniciarse fue una ejecución de una [tarea programada en la nube](https://code.claude.com/docs/es/routines.md), haz clic en **Run now** en la página de detalles de la tarea en lugar de iniciar una nueva sesión.

252 254 

253### Las nuevas sesiones se cuelgan o agotan el tiempo de espera durante la configuración255### Las nuevas sesiones se cuelgan o agotan el tiempo de espera durante la configuración

254 256