SpyBara
Go Premium

Documentation 2026-09-30 23:00 UTC to 2026-10-01 20:02 UTC

58 files changed +1,037 −477. View all changes and history on the product overview
2026
Thu 1 20:02

admin-setup.md +1 −0

Details

106| [Disable claude.ai sync](/docs/es/settings-reference#syncclaudeaiskills) | Evitar que Claude Code cargue los [skills](/docs/es/skills#how-synced-skills-behave) y [plugins](/docs/es/plugins/loading#synced-plugins) que los desarrolladores habilitan en claude.ai. Si desactiva Skills para su organización en claude.ai, Claude Code deja de sincronizar ambos, y en v2.1.273 o posterior también elimina los que ya sincronizó. Para detener uno u otro sin desactivar Skills, establezca su clave en `false` en la configuración administrada | `syncClaudeAiSkills`, `syncClaudeAiPlugins` |106| [Disable claude.ai sync](/docs/es/settings-reference#syncclaudeaiskills) | Evitar que Claude Code cargue los [skills](/docs/es/skills#how-synced-skills-behave) y [plugins](/docs/es/plugins/loading#synced-plugins) que los desarrolladores habilitan en claude.ai. Si desactiva Skills para su organización en claude.ai, Claude Code deja de sincronizar ambos, y en v2.1.273 o posterior también elimina los que ya sincronizó. Para detener uno u otro sin desactivar Skills, establezca su clave en `false` en la configuración administrada | `syncClaudeAiSkills`, `syncClaudeAiPlugins` |

107| [Hook restrictions](/docs/es/settings-reference#allowmanagedhooksonly) | Restringir qué hooks se ejecutan y restringir URLs de hooks HTTP; consulte [lo que se ejecuta bajo `allowManagedHooksOnly`](/docs/es/settings-reference#what-runs-under-allowmanagedhooksonly) para la lista completa de efectos | `allowManagedHooksOnly`, `allowedHttpHookUrls` |107| [Hook restrictions](/docs/es/settings-reference#allowmanagedhooksonly) | Restringir qué hooks se ejecutan y restringir URLs de hooks HTTP; consulte [lo que se ejecuta bajo `allowManagedHooksOnly`](/docs/es/settings-reference#what-runs-under-allowmanagedhooksonly) para la lista completa de efectos | `allowManagedHooksOnly`, `allowedHttpHookUrls` |

108| [Login enforcement](/docs/es/settings-reference#forceloginmethod) | Restringir el inicio de sesión a un método específico u organización de Anthropic. La restricción de método se aplica en la extensión de VS Code, Agent SDK, `claude setup-token` e `/install-github-app`, y la pantalla de inicio de sesión interactivo del terminal, a la que se accede mediante `/login` u onboarding de primera ejecución, preselecciona el método sin aplicarlo; Claude Code verifica la organización para inicios de sesión de cuenta claude.ai en el terminal, extensión de VS Code y Agent SDK, y no la verifica para inicios de sesión de Claude Console o para inicio de sesión de [gateway](/docs/es/claude-apps-gateway). Antes de v2.1.212, solo los inicios de sesión del terminal aplicaban cualquiera de las claves. Cuando se establece, las sesiones autenticadas por `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN` o `apiKeyHelper` se bloquean al inicio; las sesiones del proveedor de nube no se ven afectadas a menos que una de esas credenciales, o una clave API guardada por un inicio de sesión anterior de Claude Console, también esté presente | `forceLoginMethod`, `forceLoginOrgUUID` |108| [Login enforcement](/docs/es/settings-reference#forceloginmethod) | Restringir el inicio de sesión a un método específico u organización de Anthropic. La restricción de método se aplica en la extensión de VS Code, Agent SDK, `claude setup-token` e `/install-github-app`, y la pantalla de inicio de sesión interactivo del terminal, a la que se accede mediante `/login` u onboarding de primera ejecución, preselecciona el método sin aplicarlo; Claude Code verifica la organización para inicios de sesión de cuenta claude.ai en el terminal, extensión de VS Code y Agent SDK, y no la verifica para inicios de sesión de Claude Console o para inicio de sesión de [gateway](/docs/es/claude-apps-gateway). Antes de v2.1.212, solo los inicios de sesión del terminal aplicaban cualquiera de las claves. Cuando se establece, las sesiones autenticadas por `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN` o `apiKeyHelper` se bloquean al inicio; las sesiones del proveedor de nube no se ven afectadas a menos que una de esas credenciales, o una clave API guardada por un inicio de sesión anterior de Claude Console, también esté presente | `forceLoginMethod`, `forceLoginOrgUUID` |

109| [Provider restrictions](/docs/es/settings-reference#allowedproviders) | Limitar qué proveedores de API puede usar una máquina. Una sesión en un proveedor que no está en la lista se rechaza al inicio, al iniciar sesión y cuando contacta a continuación con la API. Requiere Claude Code v2.1.285 o posterior | `allowedProviders` |

109| [Disable agent view](/docs/es/agent-view#how-background-sessions-are-hosted) | Desactivar `claude agents`, `--bg`, `/background` y el supervisor bajo demanda | `disableAgentView` |110| [Disable agent view](/docs/es/agent-view#how-background-sessions-are-hosted) | Desactivar `claude agents`, `--bg`, `/background` y el supervisor bajo demanda | `disableAgentView` |

110| [Configure the corporate launcher](/docs/es/corporate-launcher) | Prefijo del [supervisor de agente de fondo](/docs/es/agent-view#how-background-sessions-are-hosted), sus workers y los [otros procesos de fondo cubiertos](/docs/es/corporate-launcher#what-the-launcher-covers) con un lanzador corporativo requerido en lugar de desactivar la vista de agente | `processWrapper` |111| [Configure the corporate launcher](/docs/es/corporate-launcher) | Prefijo del [supervisor de agente de fondo](/docs/es/agent-view#how-background-sessions-are-hosted), sus workers y los [otros procesos de fondo cubiertos](/docs/es/corporate-launcher#what-the-launcher-covers) con un lanzador corporativo requerido en lugar de desactivar la vista de agente | `processWrapper` |

111| [Model restrictions](/docs/es/model-config#restrict-model-selection) | `availableModels` filtra qué modelos aparecen en el selector. Agregar `enforceAvailableModels` también restringe el modelo predeterminado seleccionado automáticamente. Consulte [surface coverage](/docs/es/model-config#surface-coverage) para ver cómo esta configuración llega a la CLI, web e IDE | `availableModels`, `enforceAvailableModels` |112| [Model restrictions](/docs/es/model-config#restrict-model-selection) | `availableModels` filtra qué modelos aparecen en el selector. Agregar `enforceAvailableModels` también restringe el modelo predeterminado seleccionado automáticamente. Consulte [surface coverage](/docs/es/model-config#surface-coverage) para ver cómo esta configuración llega a la CLI, web e IDE | `availableModels`, `enforceAvailableModels` |

Details

418 ```418 ```

419</CodeGroup>419</CodeGroup>

420 420 

421Para confirmar el bloqueo, registre la devolución de llamada bajo `PreToolUse` con un matcher `Write|Edit` y pida al agente que cree un archivo bajo `/etc`: el resultado de la herramienta Write en el flujo de mensajes contiene `Writing to /etc is not allowed`, y no se crea ningún archivo.

422 

421<h3 id="auto-approve-specific-tools">423<h3 id="auto-approve-specific-tools">

422 Aprobar automáticamente herramientas específicas424 Aprobar automáticamente herramientas específicas

423</h3>425</h3>


468 470 

469Cuando se dispara un evento, todos los hooks coincidentes se ejecutan en paralelo. Para decisiones de permiso, el resultado más restrictivo se aplica: un único `deny` bloquea la llamada de herramienta independientemente de lo que devuelvan los otros hooks. Debido a que el orden de finalización es no determinista, escriba cada hook para actuar de forma independiente en lugar de depender de que otro hook se haya ejecutado primero.471Cuando se dispara un evento, todos los hooks coincidentes se ejecutan en paralelo. Para decisiones de permiso, el resultado más restrictivo se aplica: un único `deny` bloquea la llamada de herramienta independientemente de lo que devuelvan los otros hooks. Debido a que el orden de finalización es no determinista, escriba cada hook para actuar de forma independiente en lugar de depender de que otro hook se haya ejecutado primero.

470 472 

471El ejemplo a continuación registra tres verificaciones independientes para cada llamada de herramienta:473El ejemplo a continuación registra tres verificaciones independientes para cada llamada de herramienta. Los nombres de hook en él, como `audit_logger` en Python o `auditLogger` en TypeScript, representan devoluciones de llamada que usted define:

472 474 

473<CodeGroup>475<CodeGroup>

474 ```python Python theme={null}476 ```python Python theme={null}


500 Filtrar con matchers de múltiples herramientas502 Filtrar con matchers de múltiples herramientas

501</h3>503</h3>

502 504 

503Use matchers de múltiples herramientas para compartir una devolución de llamada entre herramientas relacionadas. Este ejemplo registra tres matchers con diferentes alcances:505Use matchers de múltiples herramientas para compartir una devolución de llamada entre herramientas relacionadas. Este ejemplo registra tres matchers con diferentes alcances, y cada hook que nombra representa una devolución de llamada que usted define:

504 506 

505* Una lista exacta separada por tuberías (`Write|Edit|NotebookEdit`) dispara `file_security_hook` solo para herramientas de modificación de archivos.507* Una lista exacta separada por tuberías (`Write|Edit|NotebookEdit`) dispara `file_security_hook` solo para herramientas de modificación de archivos.

506* Una expresión regular (`^mcp__`) dispara `mcp_audit_hook` para cualquier herramienta MCP cuyo nombre comience con `mcp__`.508* Una expresión regular (`^mcp__`) dispara `mcp_audit_hook` para cualquier herramienta MCP cuyo nombre comience con `mcp__`.


585 ```587 ```

586</CodeGroup>588</CodeGroup>

587 589 

590Para confirmar que el hook se dispara, registre la devolución de llamada y pida al agente que delegue una pequeña tarea a un subagente, como listar los archivos en el directorio actual: cuando el subagente termina, la devolución de llamada imprime las líneas `[SUBAGENT] Completed:` con el ID del subagente y la ruta de la transcripción.

591 

588<h3 id="make-http-requests-from-hooks">592<h3 id="make-http-requests-from-hooks">

589 Realizar solicitudes HTTP desde hooks593 Realizar solicitudes HTTP desde hooks

590</h3>594</h3>

Details

121 121 

122Los modos de permisos proporcionan control global sobre cómo Claude utiliza las herramientas. Puede establecer el modo de permisos al llamar a `query()` o cambiarlo dinámicamente durante sesiones de transmisión.122Los modos de permisos proporcionan control global sobre cómo Claude utiliza las herramientas. Puede establecer el modo de permisos al llamar a `query()` o cambiarlo dinámicamente durante sesiones de transmisión.

123 123 

124Si no establece uno, Claude Code elige el modo de permisos inicial según las reglas en [Qué modo inicia una sesión](/docs/es/permission-modes#which-mode-a-session-starts-in):

125 

126* Un `permissions.defaultMode` de los [archivos de configuración](/docs/es/settings#where-settings-live) de la sesión cuando uno se aplica

127* De lo contrario, el valor predeterminado integrado, que puede ser [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode)

128 

129Una sesión que comienza en modo automático descarta reglas de permiso amplias como una entrada `Bash` simple, como [Cómo el modo automático evalúa acciones](/docs/es/permission-modes#how-auto-mode-evaluates-actions) describe. Si su aplicación depende del modo `default` o de tal regla, pase `default` explícitamente.

130 

131Antes de TypeScript Agent SDK v0.3.286, omitir `permissionMode` era lo mismo que pasar `default`.

132 

124<h3 id="available-modes">133<h3 id="available-modes">

125 Modos disponibles134 Modos disponibles

126</h3>135</h3>

agent-sdk/python.md +242 −68

Details

517 async def set_model(self, model: str | None = None) -> None517 async def set_model(self, model: str | None = None) -> None

518 async def rewind_files(self, user_message_id: str) -> None518 async def rewind_files(self, user_message_id: str) -> None

519 async def get_mcp_status(self) -> McpStatusResponse519 async def get_mcp_status(self) -> McpStatusResponse

520 async def get_context_usage(self) -> ContextUsageResponse

520 async def reconnect_mcp_server(self, server_name: str) -> None521 async def reconnect_mcp_server(self, server_name: str) -> None

521 async def toggle_mcp_server(self, server_name: str, enabled: bool) -> None522 async def toggle_mcp_server(self, server_name: str, enabled: bool) -> None

522 async def stop_task(self, task_id: str) -> None523 async def stop_task(self, task_id: str) -> None


540| `set_model(model)` | Cambiar el modelo para la sesión actual. Pase `None` para restablecer al [modelo predeterminado de Claude Code](/docs/es/model-config) |541| `set_model(model)` | Cambiar el modelo para la sesión actual. Pase `None` para restablecer al [modelo predeterminado de Claude Code](/docs/es/model-config) |

541| `rewind_files(user_message_id)` | Restaurar archivos a su estado en el mensaje de usuario especificado. Requiere `enable_file_checkpointing=True`. Ver [File checkpointing](/docs/es/agent-sdk/file-checkpointing) |542| `rewind_files(user_message_id)` | Restaurar archivos a su estado en el mensaje de usuario especificado. Requiere `enable_file_checkpointing=True`. Ver [File checkpointing](/docs/es/agent-sdk/file-checkpointing) |

542| `get_mcp_status()` | Obtener el estado de todos los servidores MCP configurados. Devuelve [`McpStatusResponse`](#mcpstatusresponse) |543| `get_mcp_status()` | Obtener el estado de todos los servidores MCP configurados. Devuelve [`McpStatusResponse`](#mcpstatusresponse) |

544| `get_context_usage()` | Obtener un desglose del uso de la ventana de contexto por categoría, skill y herramienta. Los mismos datos que `/context` muestra en una sesión interactiva. Devuelve [`ContextUsageResponse`](#contextusageresponse). Para calcular el desglose, Claude Code realiza varias solicitudes de API de conteo de tokens que no aparecen en el flujo de mensajes; ver [cómo se manejan estas solicitudes](#contextusageresponse) |

543| `reconnect_mcp_server(server_name)` | Reintentar conectar a un servidor MCP que falló o fue desconectado |545| `reconnect_mcp_server(server_name)` | Reintentar conectar a un servidor MCP que falló o fue desconectado |

544| `toggle_mcp_server(server_name, enabled)` | Habilitar o deshabilitar un servidor MCP a mitad de sesión. Deshabilitar elimina sus herramientas |546| `toggle_mcp_server(server_name, enabled)` | Habilitar o deshabilitar un servidor MCP a mitad de sesión. Deshabilitar elimina sus herramientas |

545| `stop_task(task_id)` | Detener una tarea de fondo en ejecución. Un [`TaskNotificationMessage`](#tasknotificationmessage) con estado `"stopped"` sigue en el flujo de mensajes |547| `stop_task(task_id)` | Detener una tarea de fondo en ejecución. Un [`TaskNotificationMessage`](#tasknotificationmessage) con estado `"stopped"` sigue en el flujo de mensajes |


616 Ejemplo - Entrada de streaming con ClaudeSDKClient618 Ejemplo - Entrada de streaming con ClaudeSDKClient

617</h4>619</h4>

618 620 

621`query()` también acepta un iterable asincrónico de dicts de mensaje de usuario, por lo que puede ensamblar el prompt en el momento del envío o incluir bloques de contenido como imágenes. Claude Code comienza a responder al primer mensaje generado tan pronto como llega, sin esperar a que el iterable termine, y `receive_response()` se detiene en el `ResultMessage` que termina esa respuesta. Coloque todo lo que Claude debe leer antes de responder en un mensaje, como hace este generador, y empareje cada llamada a `query()` con su propio bucle `receive_response()`.

622 

619```python theme={null}623```python theme={null}

620import asyncio624import asyncio

621from claude_agent_sdk import ClaudeSDKClient625from claude_agent_sdk import ClaudeSDKClient

622 626 

623 627 

624async def message_stream():628async def message_stream():

625 """Generate messages dynamically."""629 """Assemble the prompt at send time and yield it as one user message."""

626 yield {630 readings = {"Temperature": "25°C", "Humidity": "60%"}

627 "type": "user",631 data = ", ".join(f"{name}: {value}" for name, value in readings.items())

628 "message": {"role": "user", "content": "Analyze the following data:"},

629 }

630 await asyncio.sleep(0.5)

631 yield {

632 "type": "user",

633 "message": {"role": "user", "content": "Temperature: 25°C, Humidity: 60%"},

634 }

635 await asyncio.sleep(0.5)

636 yield {632 yield {

637 "type": "user",633 "type": "user",

638 "message": {"role": "user", "content": "What patterns do you see?"},634 "message": {

635 "role": "user",

636 "content": f"Analyze the following sensor data and describe any patterns you see: {data}",

637 },

639 }638 }

640 639 

641 640 


1607| `scope` | `str` (opcional) | Alcance de configuración |1606| `scope` | `str` (opcional) | Alcance de configuración |

1608| `tools` | `list` (opcional) | Herramientas proporcionadas por este servidor, cada una con campos `name`, `description`, y `annotations` |1607| `tools` | `list` (opcional) | Herramientas proporcionadas por este servidor, cada una con campos `name`, `description`, y `annotations` |

1609 1608 

1609<h3 id="contextusageresponse">

1610 `ContextUsageResponse`

1611</h3>

1612 

1613Respuesta de [`ClaudeSDKClient.get_context_usage()`](#methods). Este es el mismo payload que Claude Code renderiza para el comando `/context` en una sesión interactiva, por lo que junto con los conteos de tokens lleva campos de visualización como `color` y `gridRows` que Claude Code utiliza para dibujar la cuadrícula de uso de `/context`.

1614 

1615Claude Code construye este payload enviando varias solicitudes a la API de [conteo de tokens](https://platform.claude.com/docs/en/build-with-claude/token-counting). Estas solicitudes no aparecen en el flujo de mensajes, por lo que el seguimiento de costos que lee el flujo no las verá. En la API de Anthropic, el conteo de tokens no se factura.

1616 

1617```python theme={null}

1618class ContextUsageResponse(TypedDict):

1619 categories: list[ContextUsageCategory]

1620 totalTokens: int

1621 maxTokens: int

1622 rawMaxTokens: int

1623 percentage: float

1624 model: str

1625 isAutoCompactEnabled: bool

1626 memoryFiles: list[dict[str, Any]]

1627 mcpTools: list[dict[str, Any]]

1628 agents: list[dict[str, Any]]

1629 gridRows: list[list[dict[str, Any]]]

1630 autoCompactThreshold: NotRequired[int]

1631 deferredBuiltinTools: NotRequired[list[dict[str, Any]]]

1632 systemTools: NotRequired[list[dict[str, Any]]]

1633 systemPromptSections: NotRequired[list[dict[str, Any]]]

1634 slashCommands: NotRequired[dict[str, Any]]

1635 skills: NotRequired[dict[str, Any]] # uso de skills con desglose de frontmatter

1636 messageBreakdown: NotRequired[dict[str, Any]] # tokens de mensaje por tipo

1637 apiUsage: NotRequired[dict[str, Any] | None]

1638```

1639 

1640Cada entrada `ContextUsageCategory` lleva `name`, `tokens`, `color`, y una bandera `isDeferred` opcional. `totalTokens` es el uso de contexto actual de la sesión, y `maxTokens` es la ventana contra la que se mide el uso. Esa ventana es la ventana de contexto del modelo, o la ventana de compactación automática más baja cuando se aplica una, y `rawMaxTokens` lleva el mismo valor que `maxTokens`. `apiUsage` contiene el uso de la respuesta de API más reciente, no un total acumulado para la sesión. Claude Code deja sin establecer las claves opcionales `deferredBuiltinTools`, `systemTools` y `systemPromptSections`, por lo que espere que estén ausentes incluso aunque el tipo las declare.

1641 

1610<h3 id="sdkpluginconfig">1642<h3 id="sdkpluginconfig">

1611 `SdkPluginConfig`1643 `SdkPluginConfig`

1612</h3>1644</h3>


2712 2744 

2713Documentación de esquemas de entrada/salida para todas las herramientas integradas de Claude Code. Aunque el SDK de Python no exporta estos como tipos, representan la estructura de entradas y salidas de herramientas en mensajes.2745Documentación de esquemas de entrada/salida para todas las herramientas integradas de Claude Code. Aunque el SDK de Python no exporta estos como tipos, representan la estructura de entradas y salidas de herramientas en mensajes.

2714 2746 

2747Cada salida mostrada es el valor que usted lee desde [`UserMessage.tool_use_result`](#usermessage) para esa herramienta. Los nombres de clave aparecen exactamente como Claude Code los emite. Una clave anotada `| None` con un comentario "presente cuando" u "opcional" se omite cuando no aplica.

2748 

2715<h3 id="agent">2749<h3 id="agent">

2716 Agent2750 Agent

2717</h3>2751</h3>


2885 2919 

2886**Nombre de herramienta:** `Bash`2920**Nombre de herramienta:** `Bash`

2887 2921 

2888Para lo que establece el límite de primer plano, ver [Límites de tiempo de espera y salida](/docs/es/tools-reference#timeout-and-output-limits). Para el límite de tiempo en segundo plano, ver [Comandos en segundo plano](/docs/es/tools-reference#background-commands).2922Para lo que establece el límite de primer plano, ver [Límites de tiempo de espera y salida](/docs/es/tools-reference#timeout-and-output-limits). Para el límite de tiempo en segundo plano, ver [Límite de tiempo para comandos en segundo plano](/docs/es/tools-reference#time-limit-for-background-commands).

2889 2923 

2890**Entrada:**2924**Entrada:**

2891 2925 


2962 2996 

2963```python theme={null}2997```python theme={null}

2964{2998{

2965 "message": str, # Confirmation message2999 "filePath": str, # The file that was edited

2966 "replacements": int, # Number of replacements made3000 "oldString": str, # The text that was replaced

2967 "file_path": str, # File path that was edited3001 "newString": str, # The text that replaced it

3002 "originalFile": str | None, # File contents before the edit

3003 "structuredPatch": [ # Diff hunks for the change

3004 {

3005 "oldStart": int,

3006 "oldLines": int,

3007 "newStart": int,

3008 "newLines": int,

3009 "lines": list[str],

3010 }

3011 ],

3012 "userModified": bool, # Whether the user changed the proposed edit before accepting it

3013 "replaceAll": bool, # Whether all occurrences were replaced

3014 "gitDiff": { # Optional git diff summary for the file

3015 "filename": str,

3016 "status": "modified" | "added",

3017 "additions": int,

3018 "deletions": int,

3019 "changes": int,

3020 "patch": str,

3021 "repository": str | None, # GitHub owner/repo when available

3022 } | None,

2968}3023}

2969```3024```

2970 3025 


2984}3039}

2985```3040```

2986 3041 

2987**Salida (archivos de texto):**3042La salida toma una de las siguientes formas dependiendo de lo que Claude leyó. Verifique la clave `type` para distinguirlas.

3043 

3044**Salida (tipo: `"text"`):**

3045 

3046```python theme={null}

3047{

3048 "type": "text",

3049 "file": {

3050 "filePath": str, # The file that was read

3051 "content": str, # The returned content

3052 "numLines": int, # Number of lines in the returned content

3053 "startLine": int, # Line number the content starts at

3054 "totalLines": int, # Total number of lines in the file

3055 "truncatedByTokenCap": bool | None, # Present and True when a whole-file read exceeded the token cap and content is the first page

3056 },

3057}

3058```

3059 

3060**Salida (tipo: `"image"`):**

3061 

3062```python theme={null}

3063{

3064 "type": "image",

3065 "file": {

3066 "base64": str, # Base64-encoded image data

3067 "type": "image/jpeg" | "image/png" | "image/gif" | "image/webp", # Image MIME type

3068 "originalSize": int, # Original file size in bytes

3069 "dimensions": { # Optional sizing info for coordinate mapping

3070 "originalWidth": int | None, # Optional; original width in pixels

3071 "originalHeight": int | None, # Optional; original height in pixels

3072 "displayWidth": int | None, # Optional; width after resizing

3073 "displayHeight": int | None, # Optional; height after resizing

3074 } | None,

3075 },

3076}

3077```

3078 

3079**Salida (tipo: `"notebook"`):**

3080 

3081```python theme={null}

3082{

3083 "type": "notebook",

3084 "file": {

3085 "filePath": str, # The notebook that was read

3086 "cells": list, # Notebook cells

3087 },

3088}

3089```

3090 

3091**Salida (tipo: `"pdf"`):**

3092 

3093```python theme={null}

3094{

3095 "type": "pdf",

3096 "file": {

3097 "filePath": str, # The PDF that was read

3098 "base64": str, # Base64-encoded PDF data

3099 "originalSize": int, # File size in bytes

3100 },

3101}

3102```

3103 

3104**Salida (tipo: `"parts"`):**

2988 3105 

2989```python theme={null}3106```python theme={null}

2990{3107{

2991 "content": str, # File contents with line numbers3108 "type": "parts",

2992 "total_lines": int, # Total number of lines in file3109 "file": {

2993 "lines_returned": int, # Lines actually returned3110 "filePath": str, # The PDF that was read

3111 "originalSize": int, # File size in bytes

3112 "count": int, # Number of pages extracted as images

3113 "outputDir": str, # Directory containing the extracted page images

3114 },

3115 "firstPage": int | None, # Optional document page number of the first extracted page

2994}3116}

2995```3117```

2996 3118 

2997**Salida (imágenes):**3119**Salida (tipo: `"file_unchanged"`):**

2998 3120 

2999```python theme={null}3121```python theme={null}

3000{3122{

3001 "image": str, # Base64 encoded image data3123 "type": "file_unchanged", # The file is unchanged since Claude last read it in this session, so the content isn't repeated

3002 "mime_type": str, # Image MIME type3124 "file": {

3003 "file_size": int, # File size in bytes3125 "filePath": str,

3126 },

3127 "source": "seeded" | None, # Present when the earlier copy came from a CLAUDE.md or memory file loaded at startup rather than a Read call

3004}3128}

3005```3129```

3006 3130 


3023 3147 

3024```python theme={null}3148```python theme={null}

3025{3149{

3026 "message": str, # Success message3150 "type": "create" | "update", # Whether the write created a new file or overwrote an existing one

3027 "bytes_written": int, # Number of bytes written3151 "filePath": str, # The file that was written

3028 "file_path": str, # File path that was written3152 "content": str, # The content that was written

3153 "structuredPatch": [ # Diff hunks; empty for a new file, when nothing changed, or when Claude Code skipped the diff

3154 {

3155 "oldStart": int,

3156 "oldLines": int,

3157 "newStart": int,

3158 "newLines": int,

3159 "lines": list[str],

3160 }

3161 ],

3162 "originalFile": str | None, # Previous content; None for a new file or when the previous content was too large to include

3163 "gitDiff": { # Optional git diff summary for the file

3164 "filename": str,

3165 "status": "modified" | "added",

3166 "additions": int,

3167 "deletions": int,

3168 "changes": int,

3169 "patch": str,

3170 "repository": str | None, # GitHub owner/repo when available

3171 } | None,

3172 "userModified": bool | None, # Optional; whether the user edited the proposed content before accepting it

3029}3173}

3030```3174```

3031 3175 


3048 3192 

3049```python theme={null}3193```python theme={null}

3050{3194{

3051 "matches": list[str], # Array of matching file paths3195 "durationMs": int, # Time taken to run the search, in milliseconds

3052 "count": int, # Number of matches found3196 "numFiles": int, # Number of paths returned, after any truncation

3053 "search_path": str, # Search directory used3197 "filenames": list[str], # Matching file paths

3198 "truncated": bool, # Whether the results were truncated at the 100-file limit

3199 "totalMatches": int | None, # Optional total number of matching files before truncation; a lower bound when countIsComplete is False

3200 "countIsComplete": bool | None, # Optional; whether totalMatches is exact

3054}3201}

3055```3202```

3056 3203 

3204`totalMatches` y `countIsComplete` requieren Claude Code v2.1.191 o posterior.

3205 

3057<h3 id="grep">3206<h3 id="grep">

3058 Grep3207 Grep

3059</h3>3208</h3>


3074 "-B": int | None, # Lines to show before each match3223 "-B": int | None, # Lines to show before each match

3075 "-A": int | None, # Lines to show after each match3224 "-A": int | None, # Lines to show after each match

3076 "-C": int | None, # Lines to show before and after3225 "-C": int | None, # Lines to show before and after

3226 "context": int | None, # Lines to show before and after; -C is an alias

3227 "-o": bool | None, # Print only the matched parts of each line

3077 "head_limit": int | None, # Limit output to first N lines/entries3228 "head_limit": int | None, # Limit output to first N lines/entries

3229 "offset": int | None, # Skip first N lines/entries before applying head_limit

3078 "multiline": bool | None, # Enable multiline mode3230 "multiline": bool | None, # Enable multiline mode

3079}3231}

3080```3232```

3081 3233 

3082**Salida (modo content):**3234**Salida:**

3083 3235 

3084```python theme={null}3236```python theme={null}

3085{3237{

3086 "matches": [3238 "mode": "content" | "files_with_matches" | "count" | None, # The output mode that was used

3087 {3239 "numFiles": int, # Number of files in the result; always 0 in content mode

3088 "file": str,3240 "filenames": list[str], # Matching files in files_with_matches mode; empty in the other modes

3089 "line_number": int | None,3241 "content": str | None, # Matching lines in content mode, or per-file counts in count mode

3090 "line": str,3242 "numLines": int | None, # Number of lines in content, present in content mode

3091 "before_context": list[str] | None,3243 "numMatches": int | None, # Total match count, present in count mode

3092 "after_context": list[str] | None,3244 "totalFiles": int | None, # Optional total before head_limit and offset, in files_with_matches mode

3093 }3245 "totalLines": int | None, # Optional total before head_limit and offset, in content mode

3094 ],3246 "appliedLimit": int | None, # Present when head_limit truncated the result

3095 "total_matches": int,3247 "appliedOffset": int | None, # Present when an offset was applied

3096}3248}

3097```3249```

3098 3250 

3099**Salida (modo files\_with\_matches):**3251Grep devuelve esta forma de diccionario en cada modo de salida. Qué claves opcionales están presentes depende de `output_mode`.

3100 3252 

3101```python theme={null}3253`totalFiles` requiere Claude Code v2.1.208 o posterior. `totalLines` requiere Claude Code v2.1.210 o posterior.

3102{

3103 "files": list[str], # Files containing matches

3104 "count": int, # Number of files with matches

3105}

3106```

3107 3254 

3108<h3 id="notebookedit">3255<h3 id="notebookedit">

3109 NotebookEdit3256 NotebookEdit


3127 3274 

3128```python theme={null}3275```python theme={null}

3129{3276{

3130 "message": str, # Success message3277 "new_source": str, # The source written to the cell

3131 "edit_type": "replaced" | "inserted" | "deleted", # Type of edit performed3278 "old_source": str | None, # Previous cell source, present for replace and delete

3132 "cell_id": str | None, # Cell ID that was affected3279 "cell_id": str | None, # ID of the edited cell, when available

3133 "total_cells": int, # Total cells in notebook after edit3280 "cell_type": "code" | "markdown", # The cell type

3281 "language": str, # The notebook's programming language

3282 "edit_mode": str, # The edit mode that was used

3283 "error": str | None, # Error message when the operation failed

3284 "notebook_path": str, # The notebook file

3285 "original_file": str, # Notebook content before the edit

3286 "updated_file": str, # Notebook content after the edit

3134}3287}

3135```3288```

3136 3289 


3228 3381 

3229```python theme={null}3382```python theme={null}

3230{3383{

3231 "message": str, # Success message3384 "oldTodos": [ # The todo list before the update

3232 "stats": {"total": int, "pending": int, "in_progress": int, "completed": int},3385 {

3386 "content": str,

3387 "status": "pending" | "in_progress" | "completed",

3388 "activeForm": str,

3389 }

3390 ],

3391 "newTodos": [ # The todo list after the update

3392 {

3393 "content": str,

3394 "status": "pending" | "in_progress" | "completed",

3395 "activeForm": str,

3396 }

3397 ],

3233}3398}

3234```3399```

3235 3400 


3401 3566 

3402```python theme={null}3567```python theme={null}

3403{3568{

3404 "message": str, # Confirmation message3569 "plan": str | None, # The plan that was presented to the user

3405 "approved": bool | None, # Whether user approved the plan3570 "isAgent": bool, # True when a subagent called the tool

3571 "filePath": str | None, # Present when the plan was saved to a file

3572 "hasTaskTool": bool | None, # Optional; whether the Agent tool is available in the current context

3573 "planWasEdited": bool | None, # Present and True when the user edited the plan before approving

3574 "awaitingLeaderApproval": bool | None, # Present and True when a teammate sent the plan to the team lead for approval

3575 "requestId": str | None, # Optional ID of that approval request

3406}3576}

3407```3577```

3408 3578 


3420}3590}

3421```3591```

3422 3592 

3593El resultado es una lista en lugar de un diccionario, por lo que `tool_use_result` contiene una `list` para esta herramienta.

3594 

3423**Salida:**3595**Salida:**

3424 3596 

3425```python theme={null}3597```python theme={null}

3426{3598[ # One entry per resource

3427 "resources": [

3428 {3599 {

3429 "uri": str,3600 "uri": str, # Resource URI

3430 "name": str,3601 "name": str, # Resource name

3431 "description": str | None,3602 "mimeType": str | None, # Optional MIME type

3432 "mimeType": str | None,3603 "description": str | None, # Optional description

3433 "server": str,3604 "server": str, # Server that provides this resource

3434 }3605 }

3435 ],3606]

3436 "total": int,

3437}

3438```3607```

3439 3608 

3440<h3 id="readmcpresource">3609<h3 id="readmcpresource">


3457```python theme={null}3626```python theme={null}

3458{3627{

3459 "contents": [3628 "contents": [

3460 {"uri": str, "mimeType": str | None, "text": str | None, "blob": str | None}3629 {

3630 "uri": str, # Resource URI

3631 "mimeType": str | None, # Optional MIME type

3632 "text": str | None, # Text content, or a note about the binary content

3633 "blobSavedTo": str | None, # Present when Claude Code saved binary content to disk; path of the saved file

3634 }

3461 ],3635 ],

3462 "server": str,3636 "error": str | None, # Present when the server couldn't read the resource

3463}3637}

3464```3638```

3465 3639 

Details

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

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

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

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

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

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

581| `persistSession` | `boolean` | `true` | Cuando es `false`, deshabilita la persistencia de sesión en disco. Las sesiones no se pueden reanudar más tarde |581| `persistSession` | `boolean` | `true` | Cuando es `false`, deshabilita la persistencia de sesión en disco. Las sesiones no se pueden reanudar más tarde |


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

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

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

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

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

714| `reloadPlugins(options?)` | Recarga plugins desde el disco, por lo que los plugins que instala o edita a mitad de sesión llegan a la sesión en ejecución. Se resuelve con un [`SDKControlReloadPluginsResponse`](#sdkcontrolreloadpluginsresponse) que enumera los comandos, subagentes, plugins y estado del servidor MCP de la sesión. Requiere Agent SDK v0.2.85 o posterior. La [opción `holdOnCacheImpact`](#sdkcontrolreloadpluginsresponse) requiere Agent SDK v0.3.268 o posterior |714| `reloadPlugins(options?)` | Recarga plugins desde el disco, por lo que los plugins que instala o edita a mitad de sesión llegan a la sesión en ejecución. Se resuelve con un [`SDKControlReloadPluginsResponse`](#sdkcontrolreloadpluginsresponse) que enumera los comandos, subagentes, plugins y estado del servidor MCP de la sesión. Requiere Agent SDK v0.2.85 o posterior. La [opción `holdOnCacheImpact`](#sdkcontrolreloadpluginsresponse) requiere Agent SDK v0.3.268 o posterior |

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

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

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

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

719| `toggleMcpServer(serverName, enabled)` | Habilite o deshabilite un servidor MCP por nombre, con la misma resolución de nombre que `reconnectMcpServer()`. Deshabilitar desconecta el servidor |719| `toggleMcpServer(serverName, enabled)` | Habilite o deshabilite un servidor MCP por nombre, con la misma resolución de nombre que `reconnectMcpServer()`. Deshabilitar un servidor stdio, SSE o HTTP lo desconecta y elimina sus herramientas; para un servidor que agregó a mitad de sesión con `setMcpServers()`, la eliminación de herramientas requiere Claude Code v2.1.285 o posterior |

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

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

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


909 909 

910Tipo de retorno de [`getContextUsage()`](#query-object). Con el `detail` predeterminado, esta es la misma carga que Claude Code renderiza para el comando `/context` en una sesión interactiva, por lo que junto con los conteos de tokens lleva campos de visualización como `color` y `gridRows` que Claude Code usa para dibujar la cuadrícula de uso de `/context`.910Tipo de retorno de [`getContextUsage()`](#query-object). Con el `detail` predeterminado, esta es la misma carga que Claude Code renderiza para el comando `/context` en una sesión interactiva, por lo que junto con los conteos de tokens lleva campos de visualización como `color` y `gridRows` que Claude Code usa para dibujar la cuadrícula de uso de `/context`.

911 911 

912El argumento `detail` opcional del método elige cómo Claude Code cuenta cada categoría. Con el predeterminado, `'full'`, Claude Code cuenta cada categoría con solicitudes de API de conteo de tokens. Pase `{ detail: 'summary' }` para obtener una respuesta del uso de la última respuesta y estimaciones locales en su lugar. No se realizan solicitudes de conteo de tokens, y los números por categoría son aproximados. El argumento `detail` requiere Agent SDK v0.3.257 o posterior.912El argumento `detail` opcional del método elige cómo Claude Code cuenta cada categoría. El argumento `detail` requiere Agent SDK v0.3.257 o posterior.

913 

914* **`'full'`**: el predeterminado. Claude Code cuenta cada categoría con solicitudes de API de [conteo de tokens](https://platform.claude.com/docs/en/build-with-claude/token-counting). Estas solicitudes no aparecen en la transmisión de mensajes, por lo que el seguimiento de costos que lee la transmisión no las verá. En la API de Anthropic, el conteo de tokens no se factura.

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

913 916 

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

915 918 


1015* `memoryFiles` enumera cada archivo de memoria cargado con su costo.1018* `memoryFiles` enumera cada archivo de memoria cargado con su costo.

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

1017 1020 

1018`totalTokens` es el uso de contexto actual de la sesión, y `maxTokens` es la ventana contra la que se mide el uso. Esa ventana es la ventana de contexto del modelo, o la ventana de auto-compactación más baja cuando se aplica una. `rawMaxTokens` lleva el mismo valor que `maxTokens`, y `percentage` es `totalTokens` como un porcentaje redondeado de esa ventana.1021`totalTokens` es el uso de contexto actual de la sesión, y `maxTokens` es la ventana contra la que se mide el uso. Esa ventana es la ventana de contexto del modelo, o la ventana de auto-compactación más baja cuando se aplica una. `rawMaxTokens` lleva el mismo valor que `maxTokens`, y `percentage` es `totalTokens` como un porcentaje redondeado de esa ventana. `apiUsage` contiene el uso de la respuesta de API más reciente, no un total acumulado para la sesión.

1019 1022 

1020Claude Code deja los diagnósticos opcionales `deferredBuiltinTools`, `systemTools`, y `systemPromptSections` sin establecer, así que espere que estén ausentes incluso aunque el tipo los declare.1023Claude Code deja los diagnósticos opcionales `deferredBuiltinTools`, `systemTools`, y `systemPromptSections` sin establecer, así que espere que estén ausentes incluso aunque el tipo los declare.

1021 1024 


1849```typescript theme={null}1852```typescript theme={null}

1850type SDKStartupFailureReason =1853type SDKStartupFailureReason =

1851 | "org_pin_api_key_conflict"1854 | "org_pin_api_key_conflict"

1855 | "provider_not_allowed"

1852 | "org_verify_failed"1856 | "org_verify_failed"

1853 | "org_pin_mismatch"1857 | "org_pin_mismatch"

1854 | "managed_settings_invalid"1858 | "managed_settings_invalid"


1871| Valor | Qué detuvo la sesión |1875| Valor | Qué detuvo la sesión |

1872| :- | :- |1876| :- | :- |

1873| `org_pin_api_key_conflict` | La configuración administrada [requiere un inicio de sesión de puerta de enlace de primera parte o en la nube](/docs/es/authentication#restrict-login-to-your-organization), y se configura una clave de API de Anthropic, token de autenticación o `apiKeyHelper` en su lugar |1877| `org_pin_api_key_conflict` | La configuración administrada [requiere un inicio de sesión de puerta de enlace de primera parte o en la nube](/docs/es/authentication#restrict-login-to-your-organization), y se configura una clave de API de Anthropic, token de autenticación o `apiKeyHelper` en su lugar |

1878| `provider_not_allowed` | La configuración administrada [enumera los proveedores de API que esta máquina puede usar](/docs/es/settings-reference#allowedproviders), y la sesión está configurada para un proveedor que no está en la lista, o para un punto final que la configuración no fija. Requiere Claude Code v2.1.285 o posterior |

1874| `org_verify_failed` | La organización del inicio de sesión no pudo verificarse contra el pin, por ejemplo debido a un fallo de red o un token revocado |1879| `org_verify_failed` | La organización del inicio de sesión no pudo verificarse contra el pin, por ejemplo debido a un fallo de red o un token revocado |

1875| `org_pin_mismatch` | El inicio de sesión pertenece a una organización que el pin no permite |1880| `org_pin_mismatch` | El inicio de sesión pertenece a una organización que el pin no permite |

1876| `managed_settings_invalid` | La configuración de política administrada no pudo leerse, el pin no nombra ninguna organización, o [restricciones de modelo administradas](/docs/es/errors#managed-settings-block-the-default-model) no dejan ningún modelo permitido para la opción Predeterminado |1881| `managed_settings_invalid` | La configuración de política administrada no pudo leerse, el pin no nombra ninguna organización, o [restricciones de modelo administradas](/docs/es/errors#managed-settings-block-the-default-model) no dejan ningún modelo permitido para la opción Predeterminado |


2120 `SDKContextUsage`2125 `SDKContextUsage`

2121</h3>2126</h3>

2122 2127 

2123Forma estructurada del informe `/context`, llevada como `context_usage` en el [`SDKAssistantMessage`](#sdkassistantmessage) que entrega un resultado `/context`. Agent SDK v0.3.232 y posterior exportan el tipo. A diferencia de [`SDKControlGetContextUsageResponse`](#sdkcontrolgetcontextusageresponse), lleva solo los datos necesarios para renderizar el desglose de uso, sin campos de visualización como `color` y `gridRows`.2128Forma estructurada del informe `/context`, llevada como `context_usage` en el [`SDKAssistantMessage`](#sdkassistantmessage) que entrega un resultado `/context`. Agent SDK v0.3.232 y posterior exportan el tipo. A diferencia de [`SDKControlGetContextUsageResponse`](#sdkcontrolgetcontextusageresponse), lleva solo los datos necesarios para renderizar el desglose de uso, sin campos de visualización como `color` y `gridRows`. Claude Code calcula el informe con solicitudes de API de conteo de tokens que no aparecen en la transmisión de mensajes; consulte [cómo se manejan estas solicitudes](#sdkcontrolgetcontextusageresponse).

2124 2129 

2125```typescript theme={null}2130```typescript theme={null}

2126type SDKContextUsage = {2131type SDKContextUsage = {


3236};3241};

3237```3242```

3238 3243 

3239Ejecuta comandos Bash con tiempo de espera opcional y ejecución en segundo plano. El directorio de trabajo persiste entre comandos, incluyendo comandos ejecutados en turnos posteriores de una sesión de múltiples turnos; el estado del shell como variables de entorno exportadas no. Para los límites sobre qué cambios de directorio se mantienen, vea [Lo que persiste entre comandos](/docs/es/tools-reference#what-persists-between-commands). Para lo que establece el límite de primer plano, vea [Límites de tiempo de espera y salida](/docs/es/tools-reference#timeout-and-output-limits). Para el límite de tiempo en segundo plano, vea [Comandos en segundo plano](/docs/es/tools-reference#background-commands).3244Ejecuta comandos Bash con tiempo de espera opcional y ejecución en segundo plano. El directorio de trabajo persiste entre comandos, incluyendo comandos ejecutados en turnos posteriores de una sesión de múltiples turnos; el estado del shell como variables de entorno exportadas no. Para los límites sobre qué cambios de directorio se mantienen, vea [Lo que persiste entre comandos](/docs/es/tools-reference#what-persists-between-commands). Para lo que establece el límite de primer plano, vea [Límites de tiempo de espera y salida](/docs/es/tools-reference#timeout-and-output-limits). Para el límite de tiempo en segundo plano, vea [Límite de tiempo para comandos en segundo plano](/docs/es/tools-reference#time-limit-for-background-commands).

3240 3245 

3241<h3 id="monitor">3246<h3 id="monitor">

3242 Monitor3247 Monitor


4140 4145 

4141`timedOutAfterMs` es el tiempo de espera en milisegundos, establecido cuando el comando alcanzó su tiempo de espera y se movió al fondo en lugar de comenzar allí explícitamente. `backgroundCwdHint` se establece cuando el comando en segundo plano contenía un builtin de cambio de directorio como `cd`, `pushd`, `popd`, o `chdir`, y nota que el directorio de trabajo de la sesión no cambió. Ambos campos requieren Claude Code v2.1.210 o posterior.4146`timedOutAfterMs` es el tiempo de espera en milisegundos, establecido cuando el comando alcanzó su tiempo de espera y se movió al fondo en lugar de comenzar allí explícitamente. `backgroundCwdHint` se establece cuando el comando en segundo plano contenía un builtin de cambio de directorio como `cd`, `pushd`, `popd`, o `chdir`, y nota que el directorio de trabajo de la sesión no cambió. Ambos campos requieren Claude Code v2.1.210 o posterior.

4142 4147 

4143Cuando un subagente ejecutándose en primer plano posee un comando en segundo plano, el comando [termina cuando ese subagente da su respuesta final](/docs/es/tools-reference#background-commands). Claude Code establece `backgroundEndsWithFinalResponse` a `true` en tales comandos, y omite el campo cuando el comando sobrevive al turno, como los comandos iniciados por la conversación principal o por subagentes de fondo. El campo requiere Claude Code v2.1.227 o posterior.4148Cuando un subagente ejecutándose en primer plano posee un comando en segundo plano, el comando [termina cuando ese subagente da su respuesta final](/docs/es/tools-reference#when-a-background-command-stops). Claude Code establece `backgroundEndsWithFinalResponse` a `true` en tales comandos, y omite el campo cuando el comando sobrevive al turno, como los comandos iniciados por la conversación principal o por subagentes de fondo. El campo requiere Claude Code v2.1.227 o posterior.

4144 4149 

4145Claude Code establece `gitOperation.commit.branch` a la rama nombrada en la línea de resumen del commit de git, y la omite para un commit realizado en un HEAD desacoplado. El campo requiere Agent SDK v0.3.227 o posterior. Claude Code reporta un comando `gh pr reopen` como la acción PR `reopened`, que requiere Agent SDK v0.3.234 o posterior.4150Claude Code establece `gitOperation.commit.branch` a la rama nombrada en la línea de resumen del commit de git, y la omite para un commit realizado en un HEAD desacoplado. El campo requiere Agent SDK v0.3.227 o posterior. Claude Code reporta un comando `gh pr reopen` como la acción PR `reopened`, que requiere Agent SDK v0.3.234 o posterior.

4146 4151 

agent-view.md +2 −20

Details

8 8 

9La vista de agentes, abierta con `claude agents`, es una pantalla para todas sus sesiones en segundo plano: qué se está ejecutando, qué necesita su entrada y qué está hecho. Distribuya nuevas sesiones, observe su estado de un vistazo en lugar de desplazarse por transcripciones, e intervenga solo cuando una lo necesite. Cada sesión en segundo plano es una conversación completa de Claude Code que sigue ejecutándose sin una terminal conectada, por lo que puede abrirla, responder y marcharse cuando quiera.9La vista de agentes, abierta con `claude agents`, es una pantalla para todas sus sesiones en segundo plano: qué se está ejecutando, qué necesita su entrada y qué está hecho. Distribuya nuevas sesiones, observe su estado de un vistazo en lugar de desplazarse por transcripciones, e intervenga solo cuando una lo necesite. Cada sesión en segundo plano es una conversación completa de Claude Code que sigue ejecutándose sin una terminal conectada, por lo que puede abrirla, responder y marcharse cuando quiera.

10 10 

11<img src="https://mintcdn.com/claude-code/1B48Qz2Z9hac4SLG/images/agent-view-light.png?fit=max&auto=format&n=1B48Qz2Z9hac4SLG&q=85&s=7a186c96ed47d6700d084d77e786be65" className="dark:hidden" alt="Vista de agentes en una terminal: el encabezado muestra Claude Code v2.1.140, el modelo, el directorio de trabajo y un recuento de resumen. Las sesiones se agrupan bajo Necesita entrada, Trabajando y Completado, con una entrada de distribución en la parte inferior y un pie de página de sugerencias de teclado." width="1772" height="780" data-path="images/agent-view-light.png" />11<img src="https://mintcdn.com/claude-code/HDAmBwgbrZVk0pOt/images/agent-view-light.png?fit=max&auto=format&n=HDAmBwgbrZVk0pOt&q=85&s=d6905012bee31f3e6b3920b09c05dd02" className="dark:hidden" alt="Vista de agentes en una terminal. Una línea en la parte superior cuenta las sesiones que esperan entrada, las que están trabajando y las completadas. Cuatro sesiones se agrupan bajo Necesita entrada, Trabajando y Completado. Cada fila muestra el nombre de la sesión, su estado más reciente o pregunta, y una hora. En la parte inferior hay una entrada para describir una nueva tarea y una fila de sugerencias de teclado." width="1872" height="680" data-path="images/agent-view-light.png" />

12 12 

13<img src="https://mintcdn.com/claude-code/1B48Qz2Z9hac4SLG/images/agent-view-dark.png?fit=max&auto=format&n=1B48Qz2Z9hac4SLG&q=85&s=a5bed7434bae368faea3a8f023b52aa2" className="hidden dark:block" alt="Vista de agentes en una terminal: el encabezado muestra Claude Code v2.1.140, el modelo, el directorio de trabajo y un recuento de resumen. Las sesiones se agrupan bajo Necesita entrada, Trabajando y Completado, con una entrada de distribución en la parte inferior y un pie de página de sugerencias de teclado." width="1772" height="780" data-path="images/agent-view-dark.png" />13<img src="https://mintcdn.com/claude-code/HDAmBwgbrZVk0pOt/images/agent-view-dark.png?fit=max&auto=format&n=HDAmBwgbrZVk0pOt&q=85&s=fc3c195bfc57e313ced1f1beb36cee93" className="hidden dark:block" alt="Vista de agentes en una terminal. Una línea en la parte superior cuenta las sesiones que esperan entrada, las que están trabajando y las completadas. Cuatro sesiones se agrupan bajo Necesita entrada, Trabajando y Completado. Cada fila muestra el nombre de la sesión, su estado más reciente o pregunta, y una hora. En la parte inferior hay una entrada para describir una nueva tarea y una fila de sugerencias de teclado." width="1872" height="680" data-path="images/agent-view-dark.png" />

14 14 

15Utilice la vista de agentes cuando tenga varias tareas independientes en las que Claude pueda trabajar sin que usted observe cada paso. Distribuya una corrección de errores, una revisión de solicitud de extracción y una investigación de prueba inestable como tres filas, continúe trabajando en otra ventana y verifique cuando una fila muestre que la necesita o tenga un resultado.15Utilice la vista de agentes cuando tenga varias tareas independientes en las que Claude pueda trabajar sin que usted observe cada paso. Distribuya una corrección de errores, una revisión de solicitud de extracción y una investigación de prueba inestable como tres filas, continúe trabajando en otra ventana y verifique cuando una fila muestre que la necesita o tenga un resultado.

16 16 


966 966 

967Claude Code nunca reinicia una fila que ejecuta un [comando shell](#run-a-shell-command), desde `Enter` o desde `claude attach`, porque eso ejecutaría el comando nuevamente; el mensaje de la fila y `claude attach` ambos dicen que el comando no se ejecuta nuevamente.967Claude Code nunca reinicia una fila que ejecuta un [comando shell](#run-a-shell-command), desde `Enter` o desde `claude attach`, porque eso ejecutaría el comando nuevamente; el mensaje de la fila y `claude attach` ambos dicen que el comando no se ejecuta nuevamente.

968 968 

969<h4 id="terminal-host-died">

970 Terminal host murió

971</h4>

972 

973En Linux y WSL, el supervisor verifica cada proceso host cada pocos segundos, independientemente de si abre la sesión o no, y marca la sesión como fallida cuando el proceso ha salido pero su conexión al supervisor nunca se cerró.

974 

975* En la vista de agentes, la fila muestra `terminal host process died — press Enter to restart`. Presione `Enter` en ella y Claude Code reinicia la sesión en un proceso host nuevo.

976* Desde el shell, `claude attach <id>` reinicia una sesión ya marcada como fallida. De lo contrario, reporta la causa y sale, diciéndole que ejecute `claude attach <id>` nuevamente.

977 

978<h4 id="session-isn’t-responding">

979 La sesión no está respondiendo

980</h4>

981 

982Cuando el supervisor acepta una apertura pero no llega salida durante aproximadamente diez segundos, Claude Code termina el intento y ofrece un reinicio. Una sesión que simplemente se estancó, por ejemplo durante el sueño de la máquina, no llega a esta oferta: el supervisor la [reinicia al abrir](#read-session-state) por sí solo.

983 

984* En la vista de agentes, el pie de página muestra `Press enter again to restart this session — it isn't responding (its conversation is saved and resumes).` Presione `Enter` en la misma fila nuevamente y Claude Code detiene el proceso que no responde y reinicia la sesión; no detiene nada sin ese segundo press.

985* Desde el shell, `claude attach <id>` reporta la causa y sale, diciéndole que ejecute `claude stop <id>`, luego `claude attach <id>`.

986 

987<h3 id="a-session-fails-before-starting-with-a-possibly-low-memory-note">969<h3 id="a-session-fails-before-starting-with-a-possibly-low-memory-note">

988 Una sesión falla antes de iniciarse con una nota `possibly low memory`970 Una sesión falla antes de iniciarse con una nota `possibly low memory`

989</h3>971</h3>

Details

384 384 

385Los alias de modelo como `opus` no actúan como fijaciones, ni tampoco un ID de modelo que Claude Code no reconozca, como un ARN de perfil de inferencia de aplicación.385Los alias de modelo como `opus` no actúan como fijaciones, ni tampoco un ID de modelo que Claude Code no reconozca, como un ARN de perfil de inferencia de aplicación.

386 386 

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

388 

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

390 Cuando un modelo se deshabilita durante la sesión

391</h3>

392 

393Si su cuenta pierde acceso al modelo en el que se ejecuta su sesión, por ejemplo porque un administrador lo deshabilita en su cuenta de Amazon Bedrock, Claude Code cambia la sesión a otro modelo en lugar de fallar en cada solicitud, y muestra `Switched to <fallback> because <model> is not available`. Intenta los mismos modelos que la alternativa de inicio: versiones anteriores del mismo nivel primero y, para una sesión de Opus sin ninguna versión de Opus disponible, el modelo Sonnet predeterminado.

394 

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

396 

397Una [cadena de modelo alternativo](/docs/es/model-config#fallback-model-chains) que configure reemplaza el cambio de nivel: en estos rechazos Claude Code cambia a su alternativa configurada en su lugar. Para que las solicitudes rechazadas fallen en lugar de cambiar, establezca [`CLAUDE_CODE_DISABLE_MODEL_ACCESS_FALLBACK=1`](/docs/es/env-vars). Una cadena alternativa que configuró aún cambia en estos rechazos; elimine la cadena también si desea que cada solicitud rechazada falle.

398 

387<h2 id="cross-region-inference-profile-prefixes">399<h2 id="cross-region-inference-profile-prefixes">

388 Prefijos de perfil de inferencia entre regiones400 Prefijos de perfil de inferencia entre regiones

389</h2>401</h2>

artifacts.md +1 −1

Details

398| [Variable de entorno](/docs/es/env-vars) | Establezca `CLAUDE_CODE_DISABLE_ARTIFACT=1` |398| [Variable de entorno](/docs/es/env-vars) | Establezca `CLAUDE_CODE_DISABLE_ARTIFACT=1` |

399| [Regla de permiso](/docs/es/permissions) | Agregue `Artifact` a `permissions.deny` |399| [Regla de permiso](/docs/es/permissions) | Agregue `Artifact` a `permissions.deny` |

400 400 

401Una vez que desactive los artefactos en un archivo [`--settings`](/docs/es/cli-reference#cli-flags) o con `CLAUDE_CODE_DISABLE_ARTIFACT`, o su administrador los desactiva en [configuración administrada](/docs/es/server-managed-settings), ningún archivo de configuración los vuelve a activar. Antes de v2.1.242, un archivo más alto en la [pila de precedencia](/docs/es/settings#settings-precedence) podría volver a activar los artefactos incluso cuando un archivo de precedencia más baja establecía `"enableArtifact": false`.401Una vez que desactive los artefactos en un archivo [`--settings`](/docs/es/cli-reference#cli-flags) o con `CLAUDE_CODE_DISABLE_ARTIFACT`, o su administrador los desactiva en [configuración administrada](/docs/es/server-managed-settings), ningún archivo de configuración los vuelve a activar.

402 402 

403También puede establecer `"enableArtifact": false` en `.claude/settings.json` o `.claude/settings.local.json` de un proyecto para desactivar los artefactos en sesiones en ese proyecto. Un `"enableArtifact": true` en cualquiera de los archivos no los vuelve a activar. Honrar la clave en la configuración del proyecto y local requiere Claude Code v2.1.242 o posterior.403También puede establecer `"enableArtifact": false` en `.claude/settings.json` o `.claude/settings.local.json` de un proyecto para desactivar los artefactos en sesiones en ese proyecto. Un `"enableArtifact": true` en cualquiera de los archivos no los vuelve a activar. Honrar la clave en la configuración del proyecto y local requiere Claude Code v2.1.242 o posterior.

404 404 

Details

194* **Sesiones de proveedor de nube como Amazon Bedrock**: bloqueadas solo mientras una credencial `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN` o `apiKeyHelper`, o una clave API guardada por un inicio de sesión anterior de Claude Console, aún esté presente en la máquina. Elimínela y la sesión se inicia. Estas sesiones se autentican contra su proveedor de nube, cuyas políticas de acceso las rigen194* **Sesiones de proveedor de nube como Amazon Bedrock**: bloqueadas solo mientras una credencial `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN` o `apiKeyHelper`, o una clave API guardada por un inicio de sesión anterior de Claude Console, aún esté presente en la máquina. Elimínela y la sesión se inicia. Estas sesiones se autentican contra su proveedor de nube, cuyas políticas de acceso las rigen

195* **[Perfil de Anthropic o credenciales de federación](#anthropic-profiles-and-federation-credentials)**: no bloqueadas a menos que una credencial `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN` o `apiKeyHelper`, o una clave API guardada por un inicio de sesión anterior de Claude Console, también esté presente en la máquina. Las claves no verifican a qué organización pertenece el perfil195* **[Perfil de Anthropic o credenciales de federación](#anthropic-profiles-and-federation-credentials)**: no bloqueadas a menos que una credencial `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN` o `apiKeyHelper`, o una clave API guardada por un inicio de sesión anterior de Claude Console, también esté presente en la máquina. Las claves no verifican a qué organización pertenece el perfil

196 196 

197<h3 id="restrict-which-api-providers-a-machine-may-use">

198 Restringir qué proveedores de API puede usar una máquina

199</h3>

200 

201[`allowedProviders`](/docs/es/settings-reference#allowedproviders) en [configuración administrada](/docs/es/managed-settings) enumera qué servicios puede usar una máquina administrada para acceder a Claude, como la API de Anthropic, Amazon Bedrock o una puerta de enlace LLM. Complementa `forceLoginMethod` y `forceLoginOrgUUID`, que rigen qué cuenta usa una sesión cuando se comunica con Anthropic. Requiere Claude Code v2.1.285 o posterior.

202 

203```json managed-settings.json theme={null}

204{

205 "forceLoginMethod": "claudeai",

206 "forceLoginOrgUUID": ["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"],

207 "allowedProviders": ["anthropic", "bedrock"]

208}

209```

210 

211Con este archivo, un desarrollador que inició sesión en su organización de claude.ai o configurado para Amazon Bedrock se inicia normalmente. Una sesión configurada para cualquier otro proveedor se rechaza al inicio, y una sesión en ejecución que cambia a uno se rechaza en su próxima solicitud. [La configuración administrada no permite este proveedor de API](/docs/es/errors#managed-settings-dont-allow-this-api-provider) muestra cada mensaje.

212 

213* **Permitir una puerta de enlace LLM o proxy**: enumere `"customEndpoint"` y establezca la URL de la puerta de enlace en el bloque `env` administrado de la misma fuente. La [referencia de configuración](/docs/es/settings-reference#allowedproviders) enumera cada valor y dice qué variables de punto final necesitan un pin `env` administrado.

214* **Implementar en máquinas administradas**: coloque la lista en la fuente administrada que lleva el resto de su política. La nota [Scope](/docs/es/settings-reference#allowedproviders) de la entrada dice cómo se combina una lista administrada por servidor con ella.

215* **Solo configuración administrada por servidor**: una lista que establece solo en [configuración administrada por servidor](/docs/es/server-managed-settings) llega solo a sesiones que obtienen la configuración de su organización, así que trátela como una conveniencia para máquinas que no puede alcanzar con administración de dispositivos, no como aplicación. [Disponibilidad de plataforma](/docs/es/server-managed-settings#platform-availability) enumera qué sesiones las obtienen.

216 

197<h2 id="credential-management">217<h2 id="credential-management">

198 Gestión de credenciales218 Gestión de credenciales

199</h2>219</h2>

Details

283 Editar reglas desde `/permissions`283 Editar reglas desde `/permissions`

284</h2>284</h2>

285 285 

286Para ver y editar reglas de clasificador sin abrir un archivo de configuración, ejecute [`/permissions`](/docs/es/permissions#manage-permissions) y seleccione la pestaña **Auto mode**. La pestaña requiere Claude Code v2.1.246 o posterior, y aparece solo cuando [el modo automático está disponible](/docs/es/permission-modes#eliminate-prompts-with-auto-mode) para su sesión.286Para ver y editar reglas de clasificador y entradas de `environment` sin abrir un archivo de configuración, ejecute [`/permissions`](/docs/es/permissions#manage-permissions) y seleccione la pestaña **Auto mode**. La pestaña requiere Claude Code v2.1.246 o posterior, y aparece solo cuando [el modo automático está disponible](/docs/es/permission-modes#eliminate-prompts-with-auto-mode) para su sesión.

287 287 

288La pestaña enumera las entradas `allow`, `soft_deny`, `hard_deny` y `environment` de cada uno de los [ámbitos que lee el clasificador](#where-the-classifier-reads-configuration), y muestra si las reglas integradas están en vigor para cada sección. Claude Code muestra entradas de [configuración administrada](/docs/es/server-managed-settings) o la bandera `--settings` como solo lectura, y guarda cada cambio que realiza en la pestaña en `~/.claude/settings.json`. Desde la pestaña puede:288Claude Code muestra entradas de [configuración administrada](/docs/es/server-managed-settings) o la bandera `--settings` como solo lectura, y guarda cada cambio que realiza en la pestaña en `~/.claude/settings.json`.

289 

290* Agregar, editar o eliminar reglas en las secciones `allow`, `soft_deny` y `hard_deny`. Cuando agrega la primera regla a una sección, Claude Code también inserta `"$defaults"` para que las [reglas integradas](#override-the-block-and-allow-rules) sigan en vigor.

291* Desactivar o reactivar las reglas integradas para `allow`, `soft_deny` o `hard_deny`. Claude Code registra la opción agregando o eliminando `"$defaults"` en su lista para esa sección, por lo que una sección necesita al menos una regla propia antes de poder desactivar sus reglas integradas.

292* Editar las entradas `environment` como un documento en su editor. Si aún no ha configurado ninguna entrada `environment`, Claude Code primero le pregunta si desea reemplazar el entorno integrado, luego abre el editor en el texto integrado completo. Cuando guarda, Claude Code reemplaza su matriz `autoMode.environment` con el documento. Incluya la línea `"$defaults"` para [mantener las entradas integradas](#define-trusted-infrastructure).

293 289 

294<h2 id="route-all-shell-commands-through-the-classifier">290<h2 id="route-all-shell-commands-through-the-classifier">

295 Enrutar todos los comandos de shell a través del clasificador291 Enrutar todos los comandos de shell a través del clasificador

Details

1387 1387 

1388`parentSettingsBehavior: "merge"` mantiene el funcionamiento de la entrega de Claude Desktop de la lista de permitidos de salida a sus sesiones de Claude Code integradas; [Entregar política a sesiones de Claude Desktop](/docs/es/claude-apps-gateway#deliver-policy-to-claude-desktop-sessions) explica el mecanismo y dónde debe estar la aceptación.1388`parentSettingsBehavior: "merge"` mantiene el funcionamiento de la entrega de Claude Desktop de la lista de permitidos de salida a sus sesiones de Claude Code integradas; [Entregar política a sesiones de Claude Desktop](/docs/es/claude-apps-gateway#deliver-policy-to-claude-desktop-sessions) explica el mecanismo y dónde debe estar la aceptación.

1389 1389 

1390Para evitar que los desarrolladores eludan la puerta de enlace con una variable de proveedor de nube o un `ANTHROPIC_BASE_URL` propio, agregue `"allowedProviders": ["gateway"]` al mismo archivo. Claude Code entonces rechaza cada sesión en la máquina que no esté configurada para una puerta de enlace en la nube, y admite una puerta de enlace solo cuando es la que `forceLoginGatewayUrl` nombra o una cuya URL el bloque `env` del archivo establece como `ANTHROPIC_BASE_URL`. `claude gateway` se niega a ejecutarse en una máquina que establece la lista, así que mantenga la clave fuera del host de la puerta de enlace. Consulte la entrada [`allowedProviders`](/docs/es/settings-reference#allowedproviders) en la referencia de configuración. Requiere Claude Code v2.1.285 o posterior.

1391 

1390Implemente el archivo `managed-settings.json` en cada dispositivo, típicamente a través de su plataforma MDM. La ruta del archivo difiere por plataforma. Consulte [dónde almacena cada mecanismo la política](/docs/es/managed-settings#where-each-mechanism-stores-the-policy).1392Implemente el archivo `managed-settings.json` en cada dispositivo, típicamente a través de su plataforma MDM. La ruta del archivo difiere por plataforma. Consulte [dónde almacena cada mecanismo la política](/docs/es/managed-settings#where-each-mechanism-stores-the-policy).

1391 1393 

1392De forma predeterminada, una política de registro en Windows o una plist de preferencias administradas en macOS reemplaza el archivo `managed-settings.json` en lugar de fusionarse con él, aparte de las [claves de excepción y verificaciones entre fuentes anteriores](#precedence-with-other-managed-sources). Las tres claves en este fragmento siguen la regla de fuente de prioridad más alta, por lo que las flotas que entregan política a través de Política de grupo o perfiles de configuración deben poner las tres en ese mecanismo en su lugar.1394De forma predeterminada, una política de registro en Windows o una plist de preferencias administradas en macOS reemplaza el archivo `managed-settings.json` en lugar de fusionarse con él, aparte de las [claves de excepción y verificaciones entre fuentes anteriores](#precedence-with-other-managed-sources). Las tres claves en este fragmento siguen la regla de fuente de prioridad más alta, por lo que las flotas que entregan política a través de Política de grupo o perfiles de configuración deben poner las tres en ese mecanismo en su lugar.

Details

1561| `paste-cache/` | Contenidos de pastes grandes |1561| `paste-cache/` | Contenidos de pastes grandes |

1562| `image-cache/<session>/` | Imágenes adjuntas guardadas por Claude Code v2.1.274 y anteriores. Las versiones posteriores guardan imágenes pegadas y adjuntas fuera de `~/.claude`, en un directorio `images/` para cada sesión bajo el directorio temporal que [`CLAUDE_CODE_TMPDIR`](/docs/es/env-vars) controla. El barrido elimina los directorios sobrantes de otras sesiones aquí, sin importar su edad. |1562| `image-cache/<session>/` | Imágenes adjuntas guardadas por Claude Code v2.1.274 y anteriores. Las versiones posteriores guardan imágenes pegadas y adjuntas fuera de `~/.claude`, en un directorio `images/` para cada sesión bajo el directorio temporal que [`CLAUDE_CODE_TMPDIR`](/docs/es/env-vars) controla. El barrido elimina los directorios sobrantes de otras sesiones aquí, sin importar su edad. |

1563| `uploads/<session>/` | Archivos que adjunta desde la web o aplicación móvil, y fotos que adjunta desde la aplicación móvil, al enviar mensajes a una sesión de [Remote Control](/docs/es/remote-control). Un adjunto a una [sesión en la nube](/docs/es/claude-code-on-the-web) se guarda en el propio entorno en la nube de esa sesión, no en su máquina. |1563| `uploads/<session>/` | Archivos que adjunta desde la web o aplicación móvil, y fotos que adjunta desde la aplicación móvil, al enviar mensajes a una sesión de [Remote Control](/docs/es/remote-control). Un adjunto a una [sesión en la nube](/docs/es/claude-code-on-the-web) se guarda en el propio entorno en la nube de esa sesión, no en su máquina. |

1564| `dev-mods/<session>/` | [Mods que Claude escribió](/docs/es/plugins/mods/create#ask-claude-for-a-mod) durante la sesión |

1564| `session-env/` | Metadatos de entorno por sesión |1565| `session-env/` | Metadatos de entorno por sesión |

1565| `tasks/` | Listas de tareas escritas por las herramientas de tareas, un directorio por lista |1566| `tasks/` | Listas de tareas escritas por las herramientas de tareas, un directorio por lista |

1566| `shell-snapshots/` | Alias, funciones y opciones de shell capturadas al inicio y aplicadas por la [herramienta Bash](/docs/es/tools-reference#bash-tool-behavior) a cada comando. Se elimina al salir correctamente. El barrido borra cualquiera dejado después de un bloqueo. |1567| `shell-snapshots/` | Alias, funciones y opciones de shell capturadas al inicio y aplicadas por la [herramienta Bash](/docs/es/tools-reference#bash-tool-behavior) a cada comando. Se elimina al salir correctamente. El barrido borra cualquiera dejado después de un bloqueo. |

Details

84| `--dangerously-skip-permissions` | Omite solicitudes de permiso. Equivalente a `--permission-mode bypassPermissions`. Consulta [modos de permisos](/docs/es/permission-modes#skip-all-checks-with-bypasspermissions-mode) para ver qué esto hace y no omite. Para sesiones iniciadas con `--bg`, el modo [persiste cuando el supervisor reinicia la sesión](/docs/es/agent-view#permission-mode-model-and-effort) | `claude --dangerously-skip-permissions` |84| `--dangerously-skip-permissions` | Omite solicitudes de permiso. Equivalente a `--permission-mode bypassPermissions`. Consulta [modos de permisos](/docs/es/permission-modes#skip-all-checks-with-bypasspermissions-mode) para ver qué esto hace y no omite. Para sesiones iniciadas con `--bg`, el modo [persiste cuando el supervisor reinicia la sesión](/docs/es/agent-view#permission-mode-model-and-effort) | `claude --dangerously-skip-permissions` |

85| `--debug` | Habilita el modo de depuración con filtrado de categoría opcional, como `--debug='mcp,startup'` o `--debug='!1p'`. El filtro se vincula solo en la forma `=`; un filtro separado por espacios habilita el modo de depuración sin filtrado | `claude --debug='mcp,startup'` |85| `--debug` | Habilita el modo de depuración con filtrado de categoría opcional, como `--debug='mcp,startup'` o `--debug='!1p'`. El filtro se vincula solo en la forma `=`; un filtro separado por espacios habilita el modo de depuración sin filtrado | `claude --debug='mcp,startup'` |

86| `--debug-file <path>` | Escribe registros de depuración en una ruta de archivo específica. Habilita implícitamente el modo de depuración. Tiene prioridad sobre `CLAUDE_CODE_DEBUG_LOGS_DIR` | `claude --debug-file /tmp/claude-debug.log` |86| `--debug-file <path>` | Escribe registros de depuración en una ruta de archivo específica. Habilita implícitamente el modo de depuración. Tiene prioridad sobre `CLAUDE_CODE_DEBUG_LOGS_DIR` | `claude --debug-file /tmp/claude-debug.log` |

87| `--desktop` | Abre la [aplicación Claude Desktop](/docs/es/desktop) en el directorio actual y sale sin iniciar una sesión en la terminal. Añade `--continue`, o `--resume` con un ID de sesión, para [abrir esa sesión en Desktop](/docs/es/desktop#coming-from-the-cli) en su lugar. `--resume` aquí toma solo un ID de sesión, no un nombre o ruta de transcripción. No toma indicador ni otras banderas excepto `--verbose` y las banderas `--debug`, ya que la aplicación inicia la sesión por sí misma. Disponible en macOS y Windows x64 cuando estés conectado con una suscripción de Claude. Requiere Claude Code v2.1.285 o posterior | `claude --desktop` |

87| `--disable-slash-commands` | Deshabilita todos los skills y comandos para esta sesión | `claude --disable-slash-commands` |88| `--disable-slash-commands` | Deshabilita todos los skills y comandos para esta sesión | `claude --disable-slash-commands` |

88| `--disallowedTools`, `--disallowed-tools` | Reglas de negación. Un nombre de herramienta desnudo elimina las herramientas coincidentes del contexto de Claude: `"Edit"` elimina Edit, `"*"` elimina todas las herramientas, y `"mcp__*"` elimina todas las herramientas MCP. Una regla con alcance como `Bash(rm *)` deja la herramienta disponible y niega solo llamadas que coincidan [como se escriben](/docs/es/permissions#bash-rule-limits). Una regla que nombra [`EndConversation`](/docs/es/tools-reference#endconversation-tool-behavior) no puede eliminarla mientras cualquier otra herramienta permanezca | `"Bash(git log *)" "Bash(git diff *)" "Edit"` |89| `--disallowedTools`, `--disallowed-tools` | Reglas de negación. Un nombre de herramienta desnudo elimina las herramientas coincidentes del contexto de Claude: `"Edit"` elimina Edit, `"*"` elimina todas las herramientas, y `"mcp__*"` elimina todas las herramientas MCP. Una regla con alcance como `Bash(rm *)` deja la herramienta disponible y niega solo llamadas que coincidan [como se escriben](/docs/es/permissions#bash-rule-limits). Una regla que nombra [`EndConversation`](/docs/es/tools-reference#endconversation-tool-behavior) no puede eliminarla mientras cualquier otra herramienta permanezca | `"Bash(git log *)" "Bash(git diff *)" "Edit"` |

89| `--effort` | Establece el [nivel de esfuerzo](/docs/es/model-config#adjust-effort-level) para la sesión actual. Opciones: `low`, `medium`, `high`, `xhigh`, `max`, o `ultracode`. Los niveles disponibles dependen del modelo. `ultracode` solicita esfuerzo `xhigh` con [ultracode](/docs/es/workflows#let-claude-decide-with-ultracode) activado, y requiere Claude Code v2.1.203 o posterior. Anula la configuración [`modelSettings`](/docs/es/settings-reference#modelsettings) y [`effortLevel`](/docs/es/settings-reference#effortlevel) para esta sesión y no persiste | `claude --effort high` |90| `--effort` | Establece el [nivel de esfuerzo](/docs/es/model-config#adjust-effort-level) para la sesión actual. Opciones: `low`, `medium`, `high`, `xhigh`, `max`, o `ultracode`. Los niveles disponibles dependen del modelo. `ultracode` solicita esfuerzo `xhigh` con [ultracode](/docs/es/workflows#let-claude-decide-with-ultracode) activado, y requiere Claude Code v2.1.203 o posterior. Anula la configuración [`modelSettings`](/docs/es/settings-reference#modelsettings) y [`effortLevel`](/docs/es/settings-reference#effortlevel) para esta sesión y no persiste | `claude --effort high` |


111| `--no-chrome` | Deshabilita la [integración del navegador Chrome](/docs/es/chrome) para esta sesión | `claude --no-chrome` |112| `--no-chrome` | Deshabilita la [integración del navegador Chrome](/docs/es/chrome) para esta sesión | `claude --no-chrome` |

112| `--no-session-persistence` | Deshabilita la persistencia de sesión para que las sesiones no se guarden en disco y no se puedan reanudar. Solo modo print. La variable de entorno [`CLAUDE_CODE_SKIP_PROMPT_HISTORY`](/docs/es/env-vars) hace lo mismo en cualquier modo | `claude -p --no-session-persistence "query"` |113| `--no-session-persistence` | Deshabilita la persistencia de sesión para que las sesiones no se guarden en disco y no se puedan reanudar. Solo modo print. La variable de entorno [`CLAUDE_CODE_SKIP_PROMPT_HISTORY`](/docs/es/env-vars) hace lo mismo en cualquier modo | `claude -p --no-session-persistence "query"` |

113| `--output-format` | Especifica el formato de salida para el modo print (opciones: `text`, `json`, `stream-json`) | `claude -p "query" --output-format json` |114| `--output-format` | Especifica el formato de salida para el modo print (opciones: `text`, `json`, `stream-json`) | `claude -p "query" --output-format json` |

114| `--permission-mode` | Comienza en un [modo de permisos](/docs/es/permission-modes) especificado. Acepta `default`, `acceptEdits`, `plan`, `auto`, `dontAsk`, `bypassPermissions`, o `manual` como alias para `default`. El alias `manual` selecciona el modo de permisos que la UI etiqueta como Manual y requiere Claude Code v2.1.200 o posterior; `claude --help` lo enumera en lugar de `default`, y ambos valores funcionan. Anula `defaultMode` de archivos de configuración. Sin esta bandera o `--dangerously-skip-permissions`, una nueva sesión comienza en el modo de permisos descrito en [qué modo de permisos comienza una sesión](/docs/es/permission-modes#which-mode-a-session-starts-in). Para `-p`, eso es `default` cuando nada está configurado | `claude --permission-mode plan` |115| `--permission-mode` | Comienza en un [modo de permisos](/docs/es/permission-modes) especificado. Acepta `default`, `acceptEdits`, `plan`, `auto`, `dontAsk`, `bypassPermissions`, o `manual` como alias para `default`. El alias `manual` selecciona el modo de permisos que la UI etiqueta como Manual y requiere Claude Code v2.1.200 o posterior; `claude --help` lo enumera en lugar de `default`, y ambos valores funcionan. Anula `defaultMode` de archivos de configuración. Sin esta bandera o `--dangerously-skip-permissions`, una nueva sesión comienza en el modo de permisos descrito en [qué modo de permisos comienza una sesión](/docs/es/permission-modes#which-mode-a-session-starts-in), que también cubre lo que comienza una ejecución `-p` | `claude --permission-mode plan` |

115| `--permission-prompt-tool` | Especifica una herramienta MCP para manejar solicitudes de permiso en modo no interactivo. Claude Code espera a que el servidor MCP de esa herramienta se conecte antes de ejecutar el primer turno, hasta el tiempo de espera de inicio [`MCP_TIMEOUT`](/docs/es/env-vars), 30 segundos por defecto. <br /><br />La herramienta de indicador no puede aprobar una herramienta MCP marcada como [requiriendo interacción del usuario](/docs/es/mcp#require-approval-for-a-specific-tool): Claude Code convierte un resultado `allow` para una en una negación. Esta restricción requiere Claude Code v2.1.199 o posterior | `claude -p --permission-prompt-tool mcp_auth_tool "query"` |116| `--permission-prompt-tool` | Especifica una herramienta MCP para manejar solicitudes de permiso en modo no interactivo. Claude Code espera a que el servidor MCP de esa herramienta se conecte antes de ejecutar el primer turno, hasta el tiempo de espera de inicio [`MCP_TIMEOUT`](/docs/es/env-vars), 30 segundos por defecto. <br /><br />La herramienta de indicador no puede aprobar una herramienta MCP marcada como [requiriendo interacción del usuario](/docs/es/mcp#require-approval-for-a-specific-tool): Claude Code convierte un resultado `allow` para una en una negación. Esta restricción requiere Claude Code v2.1.199 o posterior | `claude -p --permission-prompt-tool mcp_auth_tool "query"` |

116| `--permission-prompts` | Establece quién responde solicitudes de permiso en modo print. Con el `host` predeterminado, Claude Code las envía al host del Agent SDK o a la herramienta `--permission-prompt-tool`. Pasa `none` cuando nadie puede responder, y Claude Code las niega en su lugar. Consulta [Desactivar solicitudes de permiso en ejecuciones desatendidas](/docs/es/headless#turn-off-permission-prompts-in-unattended-runs). Requiere Claude Code v2.1.259 o posterior | `claude -p --permission-prompts none "query"` |117| `--permission-prompts` | Establece quién responde solicitudes de permiso en modo print. Con el `host` predeterminado, Claude Code las envía al host del Agent SDK o a la herramienta `--permission-prompt-tool`. Pasa `none` cuando nadie puede responder, y Claude Code las niega en su lugar. Consulta [Desactivar solicitudes de permiso en ejecuciones desatendidas](/docs/es/headless#turn-off-permission-prompts-in-unattended-runs). Requiere Claude Code v2.1.259 o posterior | `claude -p --permission-prompts none "query"` |

117| `--plugin-dir` | Carga un plugin desde un directorio o archivo `.zip`, o varios desde una [carpeta de plugins](/docs/es/plugins/create#load-a-directory-or-archive-for-one-session), solo para esta sesión. Cada bandera toma una ruta. Repite la bandera para más rutas: `--plugin-dir A --plugin-dir B.zip`. Pasar una carpeta de plugins requiere Claude Code v2.1.265 o posterior | `claude --plugin-dir ./my-plugin` |118| `--plugin-dir` | Carga un plugin desde un directorio o archivo `.zip`, o varios desde una [carpeta de plugins](/docs/es/plugins/create#load-a-directory-or-archive-for-one-session), solo para esta sesión. Cada bandera toma una ruta. Repite la bandera para más rutas: `--plugin-dir A --plugin-dir B.zip`. Pasar una carpeta de plugins requiere Claude Code v2.1.265 o posterior | `claude --plugin-dir ./my-plugin` |

118| `--plugin-url` | Obtén un archivo `.zip` de plugin desde una URL solo para esta sesión. Repite la bandera para múltiples plugins, o pasa URLs separadas por espacios en un valor entrecomillado único | `claude --plugin-url https://example.com/plugin.zip` |119| `--plugin-url` | Obtén un archivo `.zip` de plugin desde una URL solo para esta sesión. Repite la bandera para múltiples plugins, o pasa URLs separadas por espacios en un valor entrecomillado único | `claude --plugin-url https://example.com/plugin.zip` |

119| `--print`, `-p` | Imprime la respuesta sin modo interactivo (consulta la [documentación del Agent SDK](/docs/es/agent-sdk/overview) para detalles de uso programático) | `claude -p "query"` |120| `--print`, `-p` | Imprime la respuesta sin modo interactivo (consulta la [documentación del Agent SDK](/docs/es/agent-sdk/overview) para detalles de uso programático). Para `--resume` en una sesión en segundo plano que aún se está ejecutando, consulta [Reanudar una sesión](/docs/es/sessions#resume-a-running-background-session) | `claude -p "query"` |

120| `--prompt-suggestions` | Emite un mensaje `prompt_suggestion` con un indicador de usuario siguiente predicho después de cada turno que genera uno; conversaciones muy cortas pueden no producir ninguno. Requiere `--print`, `--output-format stream-json`, y `--verbose`. Consulta [Sugerencias de indicador](/docs/es/interactive-mode#prompt-suggestions) | `claude -p --prompt-suggestions --output-format stream-json --verbose "query"` |121| `--prompt-suggestions` | Emite un mensaje `prompt_suggestion` con un indicador de usuario siguiente predicho después de cada turno que genera uno; conversaciones muy cortas pueden no producir ninguno. Requiere `--print`, `--output-format stream-json`, y `--verbose`. Consulta [Sugerencias de indicador](/docs/es/interactive-mode#prompt-suggestions) | `claude -p --prompt-suggestions --output-format stream-json --verbose "query"` |

121| `--ref <branch>` | Con `--environment`, basa el checkout de la nueva sesión en una ref nombrada en lugar de `HEAD` local | `claude -p "Run the smoke test" --environment ccpool_abc123 --ref main` |122| `--ref <branch>` | Con `--environment`, basa el checkout de la nueva sesión en una ref nombrada en lugar de `HEAD` local | `claude -p "Run the smoke test" --environment ccpool_abc123 --ref main` |

122| `--remote` | Alias deprecado para `--cloud`, incluyendo la forma de sesión existente | `claude --remote "Fix the login bug"` |123| `--remote` | Alias deprecado para `--cloud`, incluyendo la forma de sesión existente | `claude --remote "Fix the login bug"` |


124| `--remote-control-session-name-prefix <prefix>` | Prefijo para nombres de sesión de [Remote Control](/docs/es/remote-control) generados automáticamente cuando no se establece un nombre explícito. Por defecto es el nombre de host de tu máquina, produciendo nombres como `myhost-graceful-unicorn`. Establece `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` para el mismo efecto | `claude remote-control --remote-control-session-name-prefix dev-box` |125| `--remote-control-session-name-prefix <prefix>` | Prefijo para nombres de sesión de [Remote Control](/docs/es/remote-control) generados automáticamente cuando no se establece un nombre explícito. Por defecto es el nombre de host de tu máquina, produciendo nombres como `myhost-graceful-unicorn`. Establece `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` para el mismo efecto | `claude remote-control --remote-control-session-name-prefix dev-box` |

125| `--replay-user-messages` | Re-emite mensajes del usuario desde stdin de vuelta en stdout para reconocimiento. Requiere `--input-format stream-json` y `--output-format stream-json` | `claude -p --input-format stream-json --output-format stream-json --verbose --replay-user-messages` |126| `--replay-user-messages` | Re-emite mensajes del usuario desde stdin de vuelta en stdout para reconocimiento. Requiere `--input-format stream-json` y `--output-format stream-json` | `claude -p --input-format stream-json --output-format stream-json --verbose --replay-user-messages` |

126| `--restricted` | Comienza en modo restringido. Úsalo cuando un arnés de evaluación ejecute `claude` en una máquina compartida y Claude Code no debe ejecutar comandos ni leer la configuración de usuario y proyecto de esa máquina. Claude Code elimina las herramientas integradas que ejecutan comandos o código, y WebFetch, a menos que las nombres individualmente en `--tools`, no a través del preset `default`. También confina las herramientas de archivo integradas a los [directorios de trabajo](/docs/es/permissions#working-directories), carga solo [configuración gestionada](/docs/es/managed-settings) y `--settings`, rechaza [`bypassPermissions`](/docs/es/permission-modes#skip-all-checks-with-bypasspermissions-mode), y [rechaza crear sesiones en la nube](/docs/es/errors#cloud-sessions-cannot-be-created-from-a-restricted-session). Requiere Claude Code v2.1.248 o posterior | `claude --restricted -p "query"` |127| `--restricted` | Comienza en modo restringido. Úsalo cuando un arnés de evaluación ejecute `claude` en una máquina compartida y Claude Code no debe ejecutar comandos ni leer la configuración de usuario y proyecto de esa máquina. Claude Code elimina las herramientas integradas que ejecutan comandos o código, y WebFetch, a menos que las nombres individualmente en `--tools`, no a través del preset `default`. También confina las herramientas de archivo integradas a los [directorios de trabajo](/docs/es/permissions#working-directories), carga solo [configuración gestionada](/docs/es/managed-settings) y `--settings`, rechaza [`bypassPermissions`](/docs/es/permission-modes#skip-all-checks-with-bypasspermissions-mode), y [rechaza crear sesiones en la nube](/docs/es/errors#cloud-sessions-cannot-be-created-from-a-restricted-session). Requiere Claude Code v2.1.248 o posterior | `claude --restricted -p "query"` |

127| `--resume`, `-r` | Reanuda una sesión específica por ID o nombre, o muestra un selector interactivo para elegir una sesión. En lugar de un ID, puedes pasar la ruta absoluta al archivo de [transcripción](/docs/es/sessions#where-transcripts-are-stored) `.jsonl` de una sesión. El selector y búsqueda de nombre incluyen sesiones que añadieron este directorio con `/add-dir`. Cuando pasas un ID de sesión, Claude Code busca en el directorio del proyecto actual y sus git worktrees, luego en todos los demás proyectos en esta máquina. Antes de v2.1.223, la búsqueda de ID cubría solo el directorio del proyecto actual y sus git worktrees. [Las sesiones en segundo plano](/docs/es/agent-view) aparecen en el selector marcadas con `bg` | `claude --resume auth-refactor` |128| `--resume`, `-r` | Reanuda una sesión específica por ID o nombre, o muestra un selector interactivo para elegir una sesión. En lugar de un ID, puedes pasar la ruta absoluta al archivo de [transcripción](/docs/es/sessions#where-transcripts-are-stored) `.jsonl` de una sesión. El selector y búsqueda de nombre incluyen sesiones que añadieron este directorio con `/add-dir`. Cuando pasas un ID de sesión, Claude Code busca en el directorio del proyecto actual y sus git worktrees, luego en todos los demás proyectos en esta máquina. Antes de v2.1.223, la búsqueda de ID cubría solo el directorio del proyecto actual y sus git worktrees. [Las sesiones en segundo plano](/docs/es/agent-view) aparecen en el selector marcadas con `bg`. Reanudar una que aún se está ejecutando [abre esa sesión](/docs/es/sessions#resume-a-running-background-session) en esta terminal a través de `claude attach`, y un indicador que pasas en la línea de comandos va a ella como su siguiente turno. Antes de v2.1.285, Claude Code rechazaba e imprimía el comando `claude attach` para ejecutar en su lugar | `claude --resume auth-refactor` |

128| `--safe-mode` | Comienza con todas las personalizaciones deshabilitadas para solucionar problemas de una configuración rota: CLAUDE.md, skills, plugins, hooks, servidores MCP, comandos y agentes personalizados, estilos de salida, flujos de trabajo, temas personalizados, atajos de teclado personalizados, comandos de línea de estado y sugerencia de archivos, servidores LSP, y memoria automática no se cargan. La autenticación, selección de modelo, herramientas integradas y permisos funcionan normalmente, lo que difiere de [`--bare`](/docs/es/headless#start-faster-with-bare-mode). La política de configuración gestionada aún se aplica, incluyendo hooks configurados por política, línea de estado y comandos de sugerencia de archivos; plugins gestionados, skills gestionados, CLAUDE.md gestionado, y servidores MCP configurados por política no. Útil para verificar si una personalización es lo que desencadena [alternancia automática de modelo](/docs/es/model-config#automatic-model-fallback). Establece [`CLAUDE_CODE_SAFE_MODE`](/docs/es/env-vars) | `claude --safe-mode` |129| `--safe-mode` | Comienza con todas las personalizaciones deshabilitadas para solucionar problemas de una configuración rota: CLAUDE.md, skills, plugins, hooks, servidores MCP, comandos y agentes personalizados, estilos de salida, flujos de trabajo, temas personalizados, atajos de teclado personalizados, comandos de línea de estado y sugerencia de archivos, servidores LSP, y memoria automática no se cargan. La autenticación, selección de modelo, herramientas integradas y permisos funcionan normalmente, lo que difiere de [`--bare`](/docs/es/headless#start-faster-with-bare-mode). La política de configuración gestionada aún se aplica, incluyendo hooks configurados por política, línea de estado y comandos de sugerencia de archivos; plugins gestionados, skills gestionados, CLAUDE.md gestionado, y servidores MCP configurados por política no. Útil para verificar si una personalización es lo que desencadena [alternancia automática de modelo](/docs/es/model-config#automatic-model-fallback). Establece [`CLAUDE_CODE_SAFE_MODE`](/docs/es/env-vars) | `claude --safe-mode` |

129| `--session-id` | Usa un ID de sesión específico para la conversación (debe ser un UUID válido) | `claude --session-id "550e8400-e29b-41d4-a716-446655440000"` |130| `--session-id` | Usa un ID de sesión específico para la conversación (debe ser un UUID válido) | `claude --session-id "550e8400-e29b-41d4-a716-446655440000"` |

130| `--setting-sources` | Lista separada por comas de fuentes de configuración a cargar (`user`, `project`, `local`). Consulta [vista de agente](/docs/es/agent-view#what-carries-over-when-you-background) y [equipos de agentes](/docs/es/agent-teams#context-and-communication) para las sesiones que comienzas desde esta que heredan la lista | `claude --setting-sources user,project` |131| `--setting-sources` | Lista separada por comas de fuentes de configuración a cargar (`user`, `project`, `local`). Consulta [vista de agente](/docs/es/agent-view#what-carries-over-when-you-background) y [equipos de agentes](/docs/es/agent-teams#context-and-communication) para las sesiones que comienzas desde esta que heredan la lista | `claude --setting-sources user,project` |

Details

439 439 

440* **Comandos que ejecuta Claude**: un entorno en la nube no establece su propio tiempo de espera de comando, por lo que se aplican los valores predeterminados de la herramienta Bash. Claude espera 2 minutos para un comando de primer plano de forma predeterminada y puede solicitar hasta 10 minutos.440* **Comandos que ejecuta Claude**: un entorno en la nube no establece su propio tiempo de espera de comando, por lo que se aplican los valores predeterminados de la herramienta Bash. Claude espera 2 minutos para un comando de primer plano de forma predeterminada y puede solicitar hasta 10 minutos.

441 441 

442 Cuando un comando alcanza su [tiempo de espera](/docs/es/tools-reference#timeout-and-output-limits), Claude Code [lo mueve al fondo](/docs/es/tools-reference#background-commands) en lugar de detenerlo, a menos que el comando comience con `sleep`. Un comando movido de esta manera puede seguir ejecutándose hasta 30 minutos más antes de que Claude Code lo detenga en su [límite de tiempo de fondo](/docs/es/tools-reference#background-commands). Establecer `BASH_DEFAULT_TIMEOUT_MS` por encima de `1800000` milisegundos alarga ese límite así como el valor predeterminado de primer plano.442 Cuando un comando alcanza su [tiempo de espera](/docs/es/tools-reference#timeout-and-output-limits), Claude Code [lo mueve al fondo](/docs/es/tools-reference#foreground-commands-that-move-to-the-background) en lugar de detenerlo, a menos que el comando comience con `sleep`. Un comando movido de esta manera puede seguir ejecutándose hasta 30 minutos más antes de que Claude Code lo detenga en su [límite de tiempo de fondo](/docs/es/tools-reference#time-limit-for-background-commands). Establecer `BASH_DEFAULT_TIMEOUT_MS` por encima de `1800000` milisegundos alarga ese límite así como el valor predeterminado de primer plano.

443* **Hooks SessionStart**: Claude Code cancela un hook `command` después de 600 segundos a menos que establezca [`timeout`](/docs/es/hooks#common-fields), en segundos, en la entrada del hook. Claude Code no aplica el tiempo de espera en un hook que ejecuta con [`async: true`](/docs/es/hooks#run-hooks-in-the-background).443* **Hooks SessionStart**: Claude Code cancela un hook `command` después de 600 segundos a menos que establezca [`timeout`](/docs/es/hooks#common-fields), en segundos, en la entrada del hook. Claude Code no aplica el tiempo de espera en un hook que ejecuta con [`async: true`](/docs/es/hooks#run-hooks-in-the-background).

444* **Script de configuración**: un script que tarda más de aproximadamente cinco minutos no se almacena en caché. [Requisitos de script](#script-requirements) cubre cómo mantenerse por debajo de eso.444* **Script de configuración**: un script que tarda más de aproximadamente cinco minutos no se almacena en caché. [Requisitos de script](#script-requirements) cubre cómo mantenerse por debajo de eso.

445* **Sesiones inactivas**: después de unos minutos sin actividad, la VM de una sesión se pausa con sus archivos guardados, y una VM pausada puede reclamarse más tarde. [Establecer variables de entorno](#set-environment-variables) describe qué recoge una sesión en cada caso, y [Entorno expirado](/docs/es/claude-code-on-the-web#environment-expired) cubre cómo reabrir una sesión cuya VM fue reclamada.445* **Sesiones inactivas**: después de unos minutos sin actividad, la VM de una sesión se pausa con sus archivos guardados, y una VM pausada puede reclamarse más tarde. [Establecer variables de entorno](#set-environment-variables) describe qué recoge una sesión en cada caso, y [Entorno expirado](/docs/es/claude-code-on-the-web#environment-expired) cubre cómo reabrir una sesión cuya VM fue reclamada.

commands.md +1 −1

Details

132| `/remote-control` | Hace que esta sesión esté disponible para [Remote Control](/docs/es/remote-control) desde claude.ai. Ejecutarlo mientras no has iniciado sesión imprime que Remote Control requiere una suscripción de claude.ai y te dice cómo iniciar sesión; antes de v2.1.206 reportaba `Unknown command: /remote-control`. Alias: `/rc` |132| `/remote-control` | Hace que esta sesión esté disponible para [Remote Control](/docs/es/remote-control) desde claude.ai. Ejecutarlo mientras no has iniciado sesión imprime que Remote Control requiere una suscripción de claude.ai y te dice cómo iniciar sesión; antes de v2.1.206 reportaba `Unknown command: /remote-control`. Alias: `/rc` |

133| `/remote-env` | Elige el entorno predeterminado para [sesiones en la nube](/docs/es/cloud-environments#select-an-environment-from-the-cli) que inicias desde la CLI |133| `/remote-env` | Elige el entorno predeterminado para [sesiones en la nube](/docs/es/cloud-environments#select-an-environment-from-the-cli) que inicias desde la CLI |

134| `/rename [name]` | Renombra la sesión actual y muestra el nombre en la barra de prompts. Sin un nombre, genera automáticamente uno desde el historial de conversación. También disponible en modo no interactivo (`-p`); requiere Claude Code v2.1.205 o posterior. Desde cada superficie de renombramiento, incluidos claude.ai y la aplicación de escritorio, Claude Code reemplaza caracteres de control e invisibles en el nuevo nombre con espacios y limita el nombre a 200 caracteres. Si el nombre está vacío una vez que se eliminan los caracteres invisibles, Claude Code lo rechaza y muestra `That name is empty once invisible characters are removed. Usage: /rename <name>`. El reemplazo de caracteres y el límite de longitud requieren Claude Code v2.1.221 o posterior. Si otra sesión activa en esta máquina ya usa un nombre que pasas, Claude Code aplica [una variante del mismo](/docs/es/sessions#name-your-sessions) en su lugar |134| `/rename [name]` | Renombra la sesión actual y muestra el nombre en la barra de prompts. Sin un nombre, genera automáticamente uno desde el historial de conversación. También disponible en modo no interactivo (`-p`); requiere Claude Code v2.1.205 o posterior. Desde cada superficie de renombramiento, incluidos claude.ai y la aplicación de escritorio, Claude Code reemplaza caracteres de control e invisibles en el nuevo nombre con espacios y limita el nombre a 200 caracteres. Si el nombre está vacío una vez que se eliminan los caracteres invisibles, Claude Code lo rechaza y muestra `That name is empty once invisible characters are removed. Usage: /rename <name>`. El reemplazo de caracteres y el límite de longitud requieren Claude Code v2.1.221 o posterior. Si otra sesión activa en esta máquina ya usa un nombre que pasas, Claude Code aplica [una variante del mismo](/docs/es/sessions#name-your-sessions) en su lugar |

135| `/resume [session]` | Reanuda una conversación por ID o nombre, o abre el selector de sesión. [Las sesiones de fondo](/docs/es/agent-view) aparecen en el selector marcadas con `bg`; una que aún se está ejecutando no se puede reanudar aquí, así que adjúntate a ella desde `claude agents` o detenla allí primero. Alias: `/continue` |135| `/resume [session]` | Reanuda una conversación por ID o nombre, o abre el selector de sesión. [Las sesiones de fondo](/docs/es/agent-view) aparecen en el selector marcadas con `bg`. Reanudar una que aún se está ejecutando, desde el selector o por ID o nombre, [abre esa sesión](/docs/es/sessions#resume-a-running-background-session): tu conversación actual se mueve al fondo y esta terminal se adjunta a la que se está ejecutando. Presiona `←` en un prompt vacío para volver a la vista de agente, que también enumera la conversación que dejaste. Antes de v2.1.285, Claude Code se negaba y te decía que abrieras la sesión con `claude attach` o la detuvieras primero. Alias: `/continue` |

136| `/review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [pr#\|branch\|path]` | Alias de [`/code-review`](/docs/es/code-review#review-a-diff-locally): revisa el diff actual, o un número de PR, rama o ruta que pases, como `/review 1234`, y toma los mismos niveles de esfuerzo e indicadores. Sin un nivel dado, la revisión reutiliza el último nivel `low` a `max` que escribiste; consulta [Revisar un diff localmente](/docs/es/code-review#review-a-diff-locally) para las reglas exactas. Para una revisión en la nube profunda, usa [`/code-review ultra`](/docs/es/ultrareview). Antes de v2.1.223, `/review` era un comando separado que ejecutaba una revisión de una sola pasada, de solo lectura de una solicitud de extracción de GitHub por número, enumerando PRs abiertos para elegir cuando se ejecuta sin argumento; de v2.1.186 a v2.1.201, ejecutaba el mismo motor multiagente que `/code-review medium` |136| `/review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [pr#\|branch\|path]` | Alias de [`/code-review`](/docs/es/code-review#review-a-diff-locally): revisa el diff actual, o un número de PR, rama o ruta que pases, como `/review 1234`, y toma los mismos niveles de esfuerzo e indicadores. Sin un nivel dado, la revisión reutiliza el último nivel `low` a `max` que escribiste; consulta [Revisar un diff localmente](/docs/es/code-review#review-a-diff-locally) para las reglas exactas. Para una revisión en la nube profunda, usa [`/code-review ultra`](/docs/es/ultrareview). Antes de v2.1.223, `/review` era un comando separado que ejecutaba una revisión de una sola pasada, de solo lectura de una solicitud de extracción de GitHub por número, enumerando PRs abiertos para elegir cuando se ejecuta sin argumento; de v2.1.186 a v2.1.201, ejecutaba el mismo motor multiagente que `/code-review medium` |

137| `/rewind` | Rebobina la conversación y/o código a un punto anterior, o resume desde un mensaje seleccionado. Consulta [checkpointing](/docs/es/checkpointing). Alias: `/checkpoint`, `/undo` |137| `/rewind` | Rebobina la conversación y/o código a un punto anterior, o resume desde un mensaje seleccionado. Consulta [checkpointing](/docs/es/checkpointing). Alias: `/checkpoint`, `/undo` |

138| `/run` | **[Skill](/docs/es/skills#bundled-skills).** Lanza y conduce la aplicación de tu proyecto para ver un cambio funcionando, no solo pasando pruebas. Consulta [Ejecutar y verificar tu aplicación](/docs/es/skills#run-and-verify-your-app) |138| `/run` | **[Skill](/docs/es/skills#bundled-skills).** Lanza y conduce la aplicación de tu proyecto para ver un cambio funcionando, no solo pasando pruebas. Consulta [Ejecutar y verificar tu aplicación](/docs/es/skills#run-and-verify-your-app) |

Details

1634 1634 

1635Si necesita una ventana más grande en lugar de una conversación más pequeña, los modelos Fable, Sonnet 5 y posteriores, Opus 4.6 y posteriores, y Sonnet 4.6 admiten una ventana de contexto de 1 millón de tokens. Vea [Extended context](/docs/es/model-config#extended-context) para disponibilidad por plan y cómo seleccionar una variante de modelo `[1m]`. La compactación funciona de la misma manera en el límite más grande.1635Si necesita una ventana más grande en lugar de una conversación más pequeña, los modelos Fable, Sonnet 5 y posteriores, Opus 4.6 y posteriores, y Sonnet 4.6 admiten una ventana de contexto de 1 millón de tokens. Vea [Extended context](/docs/es/model-config#extended-context) para disponibilidad por plan y cómo seleccionar una variante de modelo `[1m]`. La compactación funciona de la misma manera en el límite más grande.

1636 1636 

1637Sonnet 5.5 y Sonnet 5 se ejecutan con la ventana de contexto de 1M y no tienen variante `[1m]` para seleccionar. Vea [Sonnet 5.5 and Sonnet 5 context window](/docs/es/model-config#sonnet-5-5-and-sonnet-5-context-window) para sus umbrales de compactación automática y la excepción de la puerta de enlace LLM.1637Sonnet 5.5 y Sonnet 5 se ejecutan con la ventana de contexto de 1M y no tienen variante `[1m]` para seleccionar. Vea [Sonnet 5.5 and Sonnet 5 context window](/docs/es/model-config#sonnet-5-5-and-sonnet-5-context-window) para sus umbrales de compactación automática, y [the context window behind a gateway](/docs/es/model-config#context-window-behind-a-gateway) para cómo Claude Code dimensiona la ventana cuando establece `ANTHROPIC_BASE_URL` en una [LLM gateway](/docs/es/llm-gateway).

1638 1638 

1639El punto donde se ejecuta la compactación automática depende de su modelo y configuración. Vea [Default auto-compact thresholds](/docs/es/model-config#default-auto-compact-thresholds) para los límites por modelo, y [Correct the window for a gateway or custom model ID](/docs/es/model-config#correct-the-window-for-a-gateway-or-custom-model-id) si Claude Code asume la ventana incorrecta para su ID de modelo, como un alias de [LLM gateway](/docs/es/llm-gateway).1639El punto donde se ejecuta la compactación automática depende de su modelo y configuración. Vea [Default auto-compact thresholds](/docs/es/model-config#default-auto-compact-thresholds) para los límites por modelo, y [Correct the window for a gateway or custom model ID](/docs/es/model-config#correct-the-window-for-a-gateway-or-custom-model-id) si Claude Code asume la ventana incorrecta para su ID de modelo, como un alias de [LLM gateway](/docs/es/llm-gateway).

1640 1640 

costs.md +1 −1

Details

51 51 

52Los fallos, reconstrucciones esperadas, y partes cálidas o frías de la línea significan lo siguiente:52Los fallos, reconstrucciones esperadas, y partes cálidas o frías de la línea significan lo siguiente:

53 53 

54* **Misses (Fallos)**: solicitudes que reprocesaron contenido que el caché ya contenía, con la hora del último fallo y cuántos tokens esas solicitudes escribieron de nuevo en el caché. Claude Code cuenta una solicitud como un fallo cuando la solicitud reprocesó más del 5% y al menos 2,000 tokens de lo que podría haber leído desde caché. [Las acciones que invalidan el caché](/docs/es/prompt-caching#actions-that-invalidate-the-cache) enumeran las causas habituales. Cuando Claude Code puede identificar una causa probable para el último fallo, la línea también la nombra, por ejemplo `likely cause: tool definitions changed`. El texto de causa probable requiere Claude Code v2.1.260 o posterior.54* **Misses (Fallos)**: solicitudes que reprocesaron contenido que el caché ya contenía, con la hora del último fallo y cuántos tokens esas solicitudes escribieron de nuevo en el caché. [Las acciones que invalidan el caché](/docs/es/prompt-caching#actions-that-invalidate-the-cache) enumeran las causas habituales. Cuando Claude Code puede identificar una causa probable para el último fallo, la línea también la nombra, por ejemplo `likely cause: tool definitions changed`. El texto de causa probable requiere Claude Code v2.1.260 o posterior.

55* **Expected rebuilds (Reconstrucciones esperadas)**: cuando Claude Code ha reescrito la conversación, por [compactación](/docs/es/prompt-caching#compacting-the-conversation) o por borrar resultados de herramientas antiguos del contexto, cuenta el mismo tipo de fallo como una reconstrucción esperada en su lugar. Esta parte aparece solo después de que ha ocurrido al menos una reconstrucción esperada.55* **Expected rebuilds (Reconstrucciones esperadas)**: cuando Claude Code ha reescrito la conversación, por [compactación](/docs/es/prompt-caching#compacting-the-conversation) o por borrar resultados de herramientas antiguos del contexto, cuenta el mismo tipo de fallo como una reconstrucción esperada en su lugar. Esta parte aparece solo después de que ha ocurrido al menos una reconstrucción esperada.

56* **Warm or cold (Cálido o frío)**: si el prefijo en caché aún está dentro de su [vida útil de caché](/docs/es/prompt-caching#cache-lifetime), con el TTL en vigor. Cuando el caché está frío, la línea muestra cuánto tiempo la sesión ha estado inactiva. Cuando ninguna respuesta ha reportado tokens de caché, la línea termina con `no prompt caching reported by the API` en su lugar.56* **Warm or cold (Cálido o frío)**: si el prefijo en caché aún está dentro de su [vida útil de caché](/docs/es/prompt-caching#cache-lifetime), con el TTL en vigor. Cuando el caché está frío, la línea muestra cuánto tiempo la sesión ha estado inactiva. Cuando ninguna respuesta ha reportado tokens de caché, la línea termina con `no prompt caching reported by the API` en su lugar.

57 57 

desktop.md +8 −0

Details

967 967 

968Para mover una sesión de CLI a Desktop, ejecute `/desktop` en la terminal. Claude guarda su sesión y la abre en la aplicación de escritorio, luego sale de la CLI. Este comando está disponible en macOS y Windows x64 cuando inicia sesión con una suscripción de Claude. No está disponible con autenticación de clave API ni en Amazon Bedrock, Google Cloud's Agent Platform o Microsoft Foundry.968Para mover una sesión de CLI a Desktop, ejecute `/desktop` en la terminal. Claude guarda su sesión y la abre en la aplicación de escritorio, luego sale de la CLI. Este comando está disponible en macOS y Windows x64 cuando inicia sesión con una suscripción de Claude. No está disponible con autenticación de clave API ni en Amazon Bedrock, Google Cloud's Agent Platform o Microsoft Foundry.

969 969 

970Desde su shell, [`claude --desktop`](/docs/es/cli-reference#cli-flags) abre Desktop directamente sin iniciar una sesión de terminal. Requiere Claude Code v2.1.285 o posterior y tiene los mismos requisitos de plataforma e inicio de sesión que `/desktop`. Sin otros argumentos, abre Desktop en el directorio actual. Para abrir una sesión de CLI existente en Desktop, agregue `--continue` para la conversación más reciente en este directorio, o `--resume` con el ID de sesión que `/status` muestra:

971 

972```bash theme={null}

973claude --desktop --resume <session-id>

974```

975 

976Claude Code imprime `Opening session <session-id> in Claude Desktop`, la sesión se abre en la aplicación y el comando sale. Un nombre de sesión no funciona en lugar del ID. Claude Code no mueve una sesión que está abierta en otra terminal o aún se ejecuta en segundo plano. Si Claude Desktop no está instalado, el comando imprime un enlace de descarga y sale.

977 

970También puede retomar una sesión de CLI desde dentro de Desktop con `/resume`. El comando está disponible en sesiones locales, no en sesiones SSH, WSL o en la nube.978También puede retomar una sesión de CLI desde dentro de Desktop con `/resume`. El comando está disponible en sesiones locales, no en sesiones SSH, WSL o en la nube.

971 979 

972Para continuar una sesión de terminal en Desktop:980Para continuar una sesión de terminal en Desktop:

desktop-linux.md +12 −0

Details

163 163 

164Si `claude-desktop` sale con este mensaje, lo inició como root. Inicie sesión como usuario normal e inícielo desde allí.164Si `claude-desktop` sale con este mensaje, lo inició como root. Inicie sesión como usuario normal e inícielo desde allí.

165 165 

166<h3 id="your-sign-in-won’t-be-saved-on-this-device">

167 Su inicio de sesión no se guardará en este dispositivo

168</h3>

169 

170Claude Desktop guarda su inicio de sesión en el llavero de su escritorio, como GNOME Keyring o KDE Wallet. Si no puede acceder a un llavero desbloqueado, su inicio de sesión no se guarda y debe iniciar sesión nuevamente cada vez que inicia la aplicación. Elija el caso que coincida con su sistema:

171 

172* **Sin llavero instalado, en un escritorio que no sea KDE Plasma**: si instaló con `--no-install-recommends`, o en una imagen mínima que omite paquetes recomendados, apt no instaló un llavero. Instale GNOME Keyring con `sudo apt install gnome-keyring`.

173* **KDE Plasma con GNOME Keyring también instalado**: KDE Wallet viene con el escritorio Plasma. Los dos llaveros entran en conflicto, y Claude Desktop puede mostrar este aviso aunque KDE Wallet funcione. Elimine el extra con `sudo apt remove gnome-keyring`, luego reinicie su computadora.

174* **Llavero instalado pero bloqueado**: desbloquéelo.

175 

176Después de la corrección, reinicie la aplicación e inicie sesión. Luego cierre y lance nuevamente para confirmar que la aplicación se abre con usted aún conectado.

177 

166<h3 id="cowork-isn’t-available">178<h3 id="cowork-isn’t-available">

167 Cowork no está disponible179 Cowork no está disponible

168</h3>180</h3>

env-vars.md +10 −8

Details

56 </Tab>56 </Tab>

57</Tabs>57</Tabs>

58 58 

59La línea de asignación no imprime nada en caso de éxito, así que confirme que la variable está establecida imprimiéndola en el mismo shell antes de ejecutar `claude`:59La línea de asignación no imprime nada en caso de éxito. Para confirmar que la variable está establecida, imprímala en el mismo shell:

60 60 

61<Tabs>61<Tabs>

62 <Tab title="macOS, Linux, WSL">62 <Tab title="macOS, Linux, WSL">


127Las variables numéricas como tiempos de espera, presupuestos de tokens y conteos de reintentos aceptan notación científica y deletreos con separadores de dígitos además de dígitos simples, excepto donde la fila de una variable indica que solo acepta dígitos simples. Por ejemplo, Claude Code lee `2e3` como 2000 y `64_000` como 64000. Antes de v2.1.211, estos deletreos podían establecer silenciosamente un valor mucho más pequeño, como `1e6` estableciendo un tiempo de espera a 1.127Las variables numéricas como tiempos de espera, presupuestos de tokens y conteos de reintentos aceptan notación científica y deletreos con separadores de dígitos además de dígitos simples, excepto donde la fila de una variable indica que solo acepta dígitos simples. Por ejemplo, Claude Code lee `2e3` como 2000 y `64_000` como 64000. Antes de v2.1.211, estos deletreos podían establecer silenciosamente un valor mucho más pequeño, como `1e6` estableciendo un tiempo de espera a 1.

128 128 

129<Note>129<Note>

130 Para variables que activan o desactivan un comportamiento, establezca `1` o `true` para activarlo y `0` o `false` para desactivarlo, en cualquier mayúscula.130 Para variables que activan o desactivan un comportamiento, establezca `1`, `true`, `yes` u `on` para activarlo y `0`, `false`, `no` u `off` para desactivarlo, en cualquier mayúscula.

131 131 

132 Algunas variables solo leen si las establece en absoluto, por lo que cualquier valor no vacío, incluido `0`, activa el comportamiento, y desactiva el comportamiento desestableciendo la variable o estableciéndola en un valor vacío. Estas variables funcionan de esa manera:132 Algunas variables solo leen si las establece en absoluto, por lo que cualquier valor no vacío, incluido `0`, activa el comportamiento, y desactiva el comportamiento desestableciendo la variable o estableciéndola en un valor vacío. Estas variables funcionan de esa manera:

133 133 


192| `API_FORCE_IDLE_TIMEOUT` | Anule el tiempo de espera de inactividad del cuerpo de 5 minutos que aborta una respuesta del modelo de transmisión cuando no llegan bytes. Establezca en `0` para desactivar el tiempo de espera, por ejemplo cuando una [puerta de enlace](/docs/es/llm-gateway) lenta o un modelo local hace una pausa más larga que 5 minutos entre fragmentos, o `1` para mantenerlo activado para cada proveedor. Cuando no está establecido, el tiempo de espera está activo en proveedores que no sean la API directa de Anthropic, [Claude Platform on AWS](/docs/es/claude-platform-on-aws) y Amazon Bedrock con `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1` establecido. Los [perros guardianes de transmisión](/docs/es/network-config#streaming-idle-watchdogs) se ejecutan independientemente de él y abortan una pausa larga silenciosa incluso cuando establece `0` aquí |192| `API_FORCE_IDLE_TIMEOUT` | Anule el tiempo de espera de inactividad del cuerpo de 5 minutos que aborta una respuesta del modelo de transmisión cuando no llegan bytes. Establezca en `0` para desactivar el tiempo de espera, por ejemplo cuando una [puerta de enlace](/docs/es/llm-gateway) lenta o un modelo local hace una pausa más larga que 5 minutos entre fragmentos, o `1` para mantenerlo activado para cada proveedor. Cuando no está establecido, el tiempo de espera está activo en proveedores que no sean la API directa de Anthropic, [Claude Platform on AWS](/docs/es/claude-platform-on-aws) y Amazon Bedrock con `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1` establecido. Los [perros guardianes de transmisión](/docs/es/network-config#streaming-idle-watchdogs) se ejecutan independientemente de él y abortan una pausa larga silenciosa incluso cuando establece `0` aquí |

193| `API_TIMEOUT_MS` | Tiempo de espera para solicitudes de API en milisegundos (predeterminado: 600000, o 10 minutos; máximo: 2147483647). Aumente esto cuando las solicitudes agoten el tiempo de espera en redes lentas o cuando enrute a través de un proxy. Los valores por encima del máximo desbordan el temporizador subyacente y causan que las solicitudes fallen inmediatamente |193| `API_TIMEOUT_MS` | Tiempo de espera para solicitudes de API en milisegundos (predeterminado: 600000, o 10 minutos; máximo: 2147483647). Aumente esto cuando las solicitudes agoten el tiempo de espera en redes lentas o cuando enrute a través de un proxy. Los valores por encima del máximo desbordan el temporizador subyacente y causan que las solicitudes fallen inmediatamente |

194| `AWS_BEARER_TOKEN_BEDROCK` | Clave de API de Amazon Bedrock para autenticación (consulte [Claves de API de Amazon Bedrock](https://aws.amazon.com/blogs/machine-learning/accelerate-ai-development-with-amazon-bedrock-api-keys/)) |194| `AWS_BEARER_TOKEN_BEDROCK` | Clave de API de Amazon Bedrock para autenticación (consulte [Claves de API de Amazon Bedrock](https://aws.amazon.com/blogs/machine-learning/accelerate-ai-development-with-amazon-bedrock-api-keys/)) |

195| `BASH_DEFAULT_TIMEOUT_MS` | Tiempo de espera predeterminado para un comando de herramienta Bash o PowerShell en primer plano, en milisegundos (predeterminado: 120000, o 2 minutos). Un tiempo de espera predeterminado más largo que 30 minutos también se convierte en el [límite de tiempo predeterminado para comandos de fondo](/docs/es/tools-reference#background-commands). El límite de tiempo de fondo requiere Claude Code v2.1.285 o posterior |195| `BASH_DEFAULT_TIMEOUT_MS` | Tiempo de espera predeterminado para un comando de herramienta Bash o PowerShell en primer plano, en milisegundos (predeterminado: 120000, o 2 minutos). Un tiempo de espera predeterminado más largo que 30 minutos también se convierte en el [límite de tiempo predeterminado para comandos de fondo](/docs/es/tools-reference#time-limit-for-background-commands). El límite de tiempo de fondo requiere Claude Code v2.1.285 o posterior |

196| `BASH_MAX_OUTPUT_LENGTH` | Número máximo de caracteres de salida de bash que Claude Code lee en el resultado de un comando (predeterminado: 30000; máximo: 150000). Si establece la configuración [`bashOutputMaxChars`](/docs/es/settings-reference#bashoutputmaxchars), Claude Code ignora esta variable. Consulte [Límites de salida](/docs/es/tools-reference#output-limits) |196| `BASH_MAX_OUTPUT_LENGTH` | Número máximo de caracteres de salida de bash que Claude Code lee en el resultado de un comando (predeterminado: 30000; máximo: 150000). Si establece la configuración [`bashOutputMaxChars`](/docs/es/settings-reference#bashoutputmaxchars), Claude Code ignora esta variable. Consulte [Límites de salida](/docs/es/tools-reference#output-limits) |

197| `BASH_MAX_TIMEOUT_MS` | Tiempo de espera máximo que el modelo puede establecer para un comando de herramienta Bash o PowerShell en primer plano, en milisegundos (predeterminado: 600000, o 10 minutos). El techo efectivo es el mayor de este y `BASH_DEFAULT_TIMEOUT_MS`. Un techo efectivo más largo que 2 horas también se convierte en el [límite de tiempo máximo para comandos de fondo](/docs/es/tools-reference#background-commands). El límite de tiempo de fondo requiere Claude Code v2.1.285 o posterior |197| `BASH_MAX_TIMEOUT_MS` | Tiempo de espera máximo que el modelo puede establecer para un comando de herramienta Bash o PowerShell en primer plano, en milisegundos (predeterminado: 600000, o 10 minutos). El techo efectivo es el mayor de este y `BASH_DEFAULT_TIMEOUT_MS`. Un techo efectivo más largo que 2 horas también se convierte en el [límite de tiempo máximo para comandos de fondo](/docs/es/tools-reference#time-limit-for-background-commands). El límite de tiempo de fondo requiere Claude Code v2.1.285 o posterior |

198| `BETA_TRACING_ENDPOINT` | Punto de conexión OTLP para [rastreo beta detallado](/docs/es/monitoring-usage#traces-beta): con `ENABLE_BETA_TRACING_DETAILED=1`, los registros y rastreos van allí en lugar de a los exportadores configurados. Establézcalo en su shell, configuración de usuario o configuración administrada. Se ignora en [configuración de proyecto y local](/docs/es/settings-reference#variables-claude-code-ignores-in-env) |198| `BETA_TRACING_ENDPOINT` | Punto de conexión OTLP para [rastreo beta detallado](/docs/es/monitoring-usage#traces-beta): con `ENABLE_BETA_TRACING_DETAILED=1`, los registros y rastreos van allí en lugar de a los exportadores configurados. Establézcalo en su shell, configuración de usuario o configuración administrada. Se ignora en [configuración de proyecto y local](/docs/es/settings-reference#variables-claude-code-ignores-in-env) |

199| `CCR_FORCE_BUNDLE` | Establezca en `1` para forzar [`claude --cloud`](/docs/es/claude-code-on-the-web#send-local-repositories-without-github) a agrupar y cargar su repositorio local en lugar de clonar desde su remoto |199| `CCR_FORCE_BUNDLE` | Establezca en `1` para forzar [`claude --cloud`](/docs/es/claude-code-on-the-web#send-local-repositories-without-github) a agrupar y cargar su repositorio local en lugar de clonar desde su remoto |

200| `CLAUDECODE` | Establezca en `1` en subprocesos que Claude Code genera (herramientas Bash y PowerShell, sesiones tmux, comandos [hook](/docs/es/hooks), comandos [línea de estado](/docs/es/statusline), subprocesos de [servidor MCP](/docs/es/mcp) stdio). Las extensiones IDE también establecen esto en sus terminales integrados. Use para detectar cuándo un script se ejecuta dentro de un subproceso generado por Claude Code. Para verificar si el proceso actual fue generado directamente por una llamada de herramienta o hook, en lugar de dentro de un servidor MCP stdio que Claude Code inició, use `CLAUDE_CODE_CHILD_SESSION` en su lugar |200| `CLAUDECODE` | Establezca en `1` en subprocesos que Claude Code genera (herramientas Bash y PowerShell, sesiones tmux, comandos [hook](/docs/es/hooks), comandos [línea de estado](/docs/es/statusline), subprocesos de [servidor MCP](/docs/es/mcp) stdio). Las extensiones IDE también establecen esto en sus terminales integrados. Use para detectar cuándo un script se ejecuta dentro de un subproceso generado por Claude Code. Para verificar si el proceso actual fue generado directamente por una llamada de herramienta o hook, en lugar de dentro de un servidor MCP stdio que Claude Code inició, use `CLAUDE_CODE_CHILD_SESSION` en su lugar |


263| `CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING` | Establezca en `1` para desabilitar [checkpointing](/docs/es/checkpointing) de archivos. El comando `/rewind` no podrá restaurar cambios de código. Anula la configuración [`fileCheckpointingEnabled`](/docs/es/settings-reference#filecheckpointingenabled) |263| `CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING` | Establezca en `1` para desabilitar [checkpointing](/docs/es/checkpointing) de archivos. El comando `/rewind` no podrá restaurar cambios de código. Anula la configuración [`fileCheckpointingEnabled`](/docs/es/settings-reference#filecheckpointingenabled) |

264| `CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS` | Establezca en `1` para eliminar instrucciones de flujo de trabajo de commit y PR integradas y la instantánea de estado de git del contexto de Claude. Útil cuando se usan sus propias skills de flujo de trabajo de git. Tiene prioridad sobre la configuración [`includeGitInstructions`](/docs/es/settings-reference#includegitinstructions) cuando se establece |264| `CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS` | Establezca en `1` para eliminar instrucciones de flujo de trabajo de commit y PR integradas y la instantánea de estado de git del contexto de Claude. Útil cuando se usan sus propias skills de flujo de trabajo de git. Tiene prioridad sobre la configuración [`includeGitInstructions`](/docs/es/settings-reference#includegitinstructions) cuando se establece |

265| `CLAUDE_CODE_DISABLE_LEGACY_MODEL_REMAP` | Establezca en `1` para evitar la remapeo automático de Opus 4.0 y 4.1 a la versión actual de Opus en la API de Anthropic. Use cuando desee fijar intencionalmente un modelo más antiguo. El remapeo no se ejecuta en Amazon Bedrock, Google Cloud's Agent Platform o Microsoft Foundry |265| `CLAUDE_CODE_DISABLE_LEGACY_MODEL_REMAP` | Establezca en `1` para evitar la remapeo automático de Opus 4.0 y 4.1 a la versión actual de Opus en la API de Anthropic. Use cuando desee fijar intencionalmente un modelo más antiguo. El remapeo no se ejecuta en Amazon Bedrock, Google Cloud's Agent Platform o Microsoft Foundry |

266| `CLAUDE_CODE_DISABLE_MODEL_ACCESS_FALLBACK` | Establezca en `1` para evitar que Claude Code en [Amazon Bedrock](/docs/es/amazon-bedrock#when-a-model-is-disabled-mid-session) y [Google Cloud's Agent Platform](/docs/es/google-vertex-ai#when-a-model-is-disabled-mid-session) cambie a un modelo más antiguo cuando su cuenta pierde acceso al modelo de una sesión a mitad de sesión; la solicitud rechazada falla de inmediato en su lugar. Una [cadena de modelo de alternativa](/docs/es/model-config#fallback-model-chains) que configure aún cambia en ese rechazo, y las [comprobaciones de modelo de inicio](/docs/es/amazon-bedrock#startup-model-checks) aún se retroceden al lanzamiento. Requiere Claude Code v2.1.285 o posterior |

266| `CLAUDE_CODE_DISABLE_MOUSE` | Establezca en `1` para desabilitar el seguimiento del ratón en [renderizado de pantalla completa](/docs/es/fullscreen). El desplazamiento por teclado con `PgUp` y `PgDn` aún funciona. Use esto para mantener el comportamiento de copia al seleccionar nativo de su terminal |267| `CLAUDE_CODE_DISABLE_MOUSE` | Establezca en `1` para desabilitar el seguimiento del ratón en [renderizado de pantalla completa](/docs/es/fullscreen). El desplazamiento por teclado con `PgUp` y `PgDn` aún funciona. Use esto para mantener el comportamiento de copia al seleccionar nativo de su terminal |

267| `CLAUDE_CODE_DISABLE_MOUSE_CLICKS` | Establezca en `1` para desabilitar el manejo de clics, arrastres y desplazamientos en [renderizado de pantalla completa](/docs/es/fullscreen) mientras mantiene el desplazamiento de rueda del ratón. Use esto cuando desee que el desplazamiento de rueda funcione dentro de Claude Code pero no desee que los clics posicionen el cursor, expandan la salida de herramientas o abran enlaces. `CLAUDE_CODE_DISABLE_MOUSE` tiene prioridad cuando ambos están establecidos. Requiere Claude Code v2.1.195 o posterior |268| `CLAUDE_CODE_DISABLE_MOUSE_CLICKS` | Establezca en `1` para desabilitar el manejo de clics, arrastres y desplazamientos en [renderizado de pantalla completa](/docs/es/fullscreen) mientras mantiene el desplazamiento de rueda del ratón. Use esto cuando desee que el desplazamiento de rueda funcione dentro de Claude Code pero no desee que los clics posicionen el cursor, expandan la salida de herramientas o abran enlaces. `CLAUDE_CODE_DISABLE_MOUSE` tiene prioridad cuando ambos están establecidos. Requiere Claude Code v2.1.195 o posterior |

268| `CLAUDE_CODE_DISABLE_MTLS_RELOAD_ON_STALE_CONNECTION` | Establezca en `1` para evitar que Claude Code vuelva a leer el [certificado de cliente mTLS y la clave](/docs/es/network-config#mtls-authentication) cuando una solicitud de API falla con un error a nivel de conexión, como un reinicio de conexión o un error de protocolo de enlace TLS. Con la recarga deshabilitada, Claude Code carga archivos rotados solo cuando aplica configuración a continuación o en el siguiente inicio. Requiere Claude Code v2.1.232 o posterior |269| `CLAUDE_CODE_DISABLE_MTLS_RELOAD_ON_STALE_CONNECTION` | Establezca en `1` para evitar que Claude Code vuelva a leer el [certificado de cliente mTLS y la clave](/docs/es/network-config#mtls-authentication) cuando una solicitud de API falla con un error a nivel de conexión, como un reinicio de conexión o un error de protocolo de enlace TLS. Con la recarga deshabilitada, Claude Code carga archivos rotados solo cuando aplica configuración a continuación o en el siguiente inicio. Requiere Claude Code v2.1.232 o posterior |


285| `CLAUDE_CODE_ENABLE_AWAY_SUMMARY` | Anule la disponibilidad de [resumen de sesión](/docs/es/interactive-mode#session-recap). Establezca en `0` para forzar los resúmenes desactivados independientemente del toggle `/config`. Establezca en `1` para forzar los resúmenes activados cuando [`awaySummaryEnabled`](/docs/es/settings-reference#awaysummaryenabled) es `false`. Tiene prioridad sobre la configuración y el toggle `/config` |286| `CLAUDE_CODE_ENABLE_AWAY_SUMMARY` | Anule la disponibilidad de [resumen de sesión](/docs/es/interactive-mode#session-recap). Establezca en `0` para forzar los resúmenes desactivados independientemente del toggle `/config`. Establezca en `1` para forzar los resúmenes activados cuando [`awaySummaryEnabled`](/docs/es/settings-reference#awaysummaryenabled) es `false`. Tiene prioridad sobre la configuración y el toggle `/config` |

286| `CLAUDE_CODE_ENABLE_BACKGROUND_PLUGIN_REFRESH` | Establezca en `1` para actualizar el estado del plugin en límites de turno en [modo no interactivo](/docs/es/headless) después de que se complete una instalación de fondo. Desactivado de forma predeterminada porque la actualización cambia el prompt del sistema a mitad de sesión, lo que invalida [almacenamiento en caché de prompt](/docs/es/prompt-caching) para ese turno |287| `CLAUDE_CODE_ENABLE_BACKGROUND_PLUGIN_REFRESH` | Establezca en `1` para actualizar el estado del plugin en límites de turno en [modo no interactivo](/docs/es/headless) después de que se complete una instalación de fondo. Desactivado de forma predeterminada porque la actualización cambia el prompt del sistema a mitad de sesión, lo que invalida [almacenamiento en caché de prompt](/docs/es/prompt-caching) para ese turno |

287| `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL` | Establezca en `1` para enrutar la encuesta de calidad de sesión "¿Cómo está Claude?" a su propio [recopilador de OpenTelemetry](/docs/es/monitoring-usage) cuando el tráfico no esencial vinculado a Anthropic está bloqueado. Las calificaciones de encuesta se emiten solo como eventos OTEL a su recopilador configurado. Ningún dato de encuesta se envía a Anthropic en este modo. Se aplica cuando `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`, `DISABLE_TELEMETRY` o `DO_NOT_TRACK` está establecido, y no tiene efecto de otra manera. `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY` y la política de comentarios del producto de la organización tienen prioridad |288| `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL` | Establezca en `1` para enrutar la encuesta de calidad de sesión "¿Cómo está Claude?" a su propio [recopilador de OpenTelemetry](/docs/es/monitoring-usage) cuando el tráfico no esencial vinculado a Anthropic está bloqueado. Las calificaciones de encuesta se emiten solo como eventos OTEL a su recopilador configurado. Ningún dato de encuesta se envía a Anthropic en este modo. Se aplica cuando `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`, `DISABLE_TELEMETRY` o `DO_NOT_TRACK` está establecido, y no tiene efecto de otra manera. `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY` y la política de comentarios del producto de la organización tienen prioridad |

288| `CLAUDE_CODE_ENABLE_FINE_GRAINED_TOOL_STREAMING` | Controla si las entradas de llamadas de herramientas se transmiten desde la API mientras Claude las genera. Con esto desactivado, una entrada de herramienta grande como una escritura de archivo larga llega solo después de que Claude termina de generarla, lo que puede parecer que se cuelga. Habilitado de forma predeterminada en la API de Anthropic. En Amazon Bedrock y Google Cloud's Agent Platform, habilitado por modelo donde el contenedor implementado lo admite. Establezca en `0` para optar por no participar. Establezca en `1` para forzar cuando enrute a través de un proxy a través de `ANTHROPIC_BASE_URL`, `ANTHROPIC_VERTEX_BASE_URL` o `ANTHROPIC_BEDROCK_BASE_URL`. Desactivado de forma predeterminada en Microsoft Foundry y conexiones de [puerta de enlace](/docs/es/llm-gateway) |289| `CLAUDE_CODE_ENABLE_FINE_GRAINED_TOOL_STREAMING` | Controla si las entradas de llamadas de herramientas se transmiten desde la API mientras Claude las genera. Con esto desactivado, una entrada de herramienta grande como una escritura de archivo larga llega solo después de que Claude termina de generarla, lo que puede parecer que se cuelga. Habilitado de forma predeterminado en la API de Anthropic. En Amazon Bedrock y Google Cloud's Agent Platform, habilitado por modelo donde el contenedor implementado lo admite. Establezca en `0` para optar por no participar. Establezca en `1` para forzar cuando enrute a través de un proxy a través de `ANTHROPIC_BASE_URL`, `ANTHROPIC_VERTEX_BASE_URL` o `ANTHROPIC_BEDROCK_BASE_URL`. Desactivado de forma predeterminada en Microsoft Foundry y conexiones de [puerta de enlace](/docs/es/llm-gateway) |

289| `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY` | Establezca en `1` para rellenar el selector `/model` desde el punto de conexión `/v1/models` de su puerta de enlace cuando `ANTHROPIC_BASE_URL` apunta a una puerta de enlace compatible con Anthropic como LiteLLM, Kong o un proxy interno. Desactivado de forma predeterminada porque las puertas de enlace respaldadas por una clave de API compartida mostrarían de otra manera a cada usuario cada modelo al que la clave puede acceder. Los modelos descubiertos aún se filtran por una lista de permitidos [`availableModels`](/docs/es/settings-reference#availablemodels) que la sesión recibe; entregue la lista a través de [MDM o un archivo de configuración administrada](/docs/es/managed-settings#delivery-mechanisms), ya que [la entrega administrada por servidor no está disponible en configuraciones de puerta de enlace](/docs/es/server-managed-settings#platform-availability) |290| `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY` | Establezca en `1` para rellenar el selector `/model` desde el punto de conexión `/v1/models` de su puerta de enlace cuando `ANTHROPIC_BASE_URL` apunta a una puerta de enlace compatible con Anthropic como LiteLLM, Kong o un proxy interno. Desactivado de forma predeterminada porque las puertas de enlace respaldadas por una clave de API compartida mostrarían de otra manera a cada usuario cada modelo al que la clave puede acceder. Los modelos descubiertos aún se filtran por una lista de permitidos [`availableModels`](/docs/es/settings-reference#availablemodels) que la sesión recibe; entregue la lista a través de [MDM o un archivo de configuración administrada](/docs/es/managed-settings#delivery-mechanisms), ya que [la entrega administrada por servidor no está disponible en configuraciones de puerta de enlace](/docs/es/server-managed-settings#platform-availability) |

290| `CLAUDE_CODE_ENABLE_OPUS_4_7_FAST_MODE` | Eliminado en v2.1.142, cuando el predeterminado de [modo rápido](/docs/es/fast-mode) se movió de Opus 4.6 a Opus 4.7 |291| `CLAUDE_CODE_ENABLE_OPUS_4_7_FAST_MODE` | Eliminado en v2.1.142, cuando el predeterminado de [modo rápido](/docs/es/fast-mode) se movió de Opus 4.6 a Opus 4.7 |

291| `CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION` | Establezca en `false` para desactivar sugerencias de prompt, las predicciones atenuadas que aparecen en su entrada de prompt. Tiene prioridad sobre la configuración [`promptSuggestionEnabled`](/docs/es/settings-reference#promptsuggestionenabled), que es lo que el toggle **Sugerencias de prompt** en `/config` escribe. Claude Code también [pausa sugerencias mientras su cuenta está cerca o en su límite de uso](/docs/es/interactive-mode#when-claude-code-skips-suggestions). Establezca en `true` para mantenerlas activadas hasta que alcance el límite. Requiere Claude Code v2.1.238 o posterior. Consulte [Sugerencias de prompt](/docs/es/interactive-mode#prompt-suggestions) |292| `CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION` | Establezca en `false` para desactivar sugerencias de prompt, las predicciones atenuadas que aparecen en su entrada de prompt. Tiene prioridad sobre la configuración [`promptSuggestionEnabled`](/docs/es/settings-reference#promptsuggestionenabled), que es lo que el toggle **Sugerencias de prompt** en `/config` escribe. Claude Code también [pausa sugerencias mientras su cuenta está cerca o en su límite de uso](/docs/es/interactive-mode#when-claude-code-skips-suggestions). Establezca en `true` para mantenerlas activadas hasta que alcance el límite. Requiere Claude Code v2.1.238 o posterior. Consulte [Sugerencias de prompt](/docs/es/interactive-mode#prompt-suggestions) |


381| `CLAUDE_CODE_SKIP_FAST_MODE_ORG_CHECK` | Establezca en `1` para omitir la verificación de disponibilidad de [modo rápido](/docs/es/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) del lado del cliente, para proxies que interceptan la solicitud de la verificación en lugar de rechazarla. La API aún rechaza solicitudes de modo rápido cuando su organización tiene modo rápido deshabilitado |382| `CLAUDE_CODE_SKIP_FAST_MODE_ORG_CHECK` | Establezca en `1` para omitir la verificación de disponibilidad de [modo rápido](/docs/es/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) del lado del cliente, para proxies que interceptan la solicitud de la verificación en lugar de rechazarla. La API aún rechaza solicitudes de modo rápido cuando su organización tiene modo rápido deshabilitado |

382| `CLAUDE_CODE_SKIP_FOUNDRY_AUTH` | Omita la autenticación de Azure para Microsoft Foundry, para un proxy o puerta de enlace que inyecta su propio encabezado `Authorization`. Claude Code envía solicitudes sin una credencial de Azure y preserva el encabezado `Authorization` que suministra, por ejemplo a través de `ANTHROPIC_CUSTOM_HEADERS`. Se ignora cuando `ANTHROPIC_FOUNDRY_API_KEY` o `ANTHROPIC_FOUNDRY_AUTH_TOKEN` está establecido. Antes de v2.1.203, esta variable dejó al cliente de Microsoft Foundry incapaz de enviar solicitudes a menos que también se estableciera una clave de API |383| `CLAUDE_CODE_SKIP_FOUNDRY_AUTH` | Omita la autenticación de Azure para Microsoft Foundry, para un proxy o puerta de enlace que inyecta su propio encabezado `Authorization`. Claude Code envía solicitudes sin una credencial de Azure y preserva el encabezado `Authorization` que suministra, por ejemplo a través de `ANTHROPIC_CUSTOM_HEADERS`. Se ignora cuando `ANTHROPIC_FOUNDRY_API_KEY` o `ANTHROPIC_FOUNDRY_AUTH_TOKEN` está establecido. Antes de v2.1.203, esta variable dejó al cliente de Microsoft Foundry incapaz de enviar solicitudes a menos que también se estableciera una clave de API |

383| `CLAUDE_CODE_SKIP_MANTLE_AUTH` | Omita la autenticación de AWS para Amazon Bedrock Mantle (por ejemplo, cuando se usa una puerta de enlace LLM) |384| `CLAUDE_CODE_SKIP_MANTLE_AUTH` | Omita la autenticación de AWS para Amazon Bedrock Mantle (por ejemplo, cuando se usa una puerta de enlace LLM) |

385| `CLAUDE_CODE_SKIP_MODEL_ACCESS_MEMORY` | Las [comprobaciones de modelo de inicio](/docs/es/amazon-bedrock#startup-model-checks) en [Amazon Bedrock](/docs/es/amazon-bedrock) y [Google Cloud's Agent Platform](/docs/es/google-vertex-ai) recuerdan en esta máquina qué modelos encontraron que su cuenta no puede invocar, durante hasta un día. Establezca en `1` para desactivar esa memoria. Requiere Claude Code v2.1.285 o posterior |

384| `CLAUDE_CODE_SKIP_PROMPT_HISTORY` | Establezca en `1` para omitir escribir historial de prompts y transcripciones de sesión en disco. Las sesiones iniciadas con esta variable establecida no aparecen en `--resume`, `--continue` o historial de flecha hacia arriba. Útil para sesiones de scripts efímeros |386| `CLAUDE_CODE_SKIP_PROMPT_HISTORY` | Establezca en `1` para omitir escribir historial de prompts y transcripciones de sesión en disco. Las sesiones iniciadas con esta variable establecida no aparecen en `--resume`, `--continue` o historial de flecha hacia arriba. Útil para sesiones de scripts efímeros |

385| `CLAUDE_CODE_SKIP_VERTEX_AUTH` | Omita la autenticación de Google para Google Cloud's Agent Platform (por ejemplo, cuando se usa una puerta de enlace LLM) |387| `CLAUDE_CODE_SKIP_VERTEX_AUTH` | Omita la autenticación de Google para Google Cloud's Agent Platform (por ejemplo, cuando se usa una puerta de enlace LLM) |

386| `CLAUDE_CODE_STARTUP_FAILURE_RESULTS` | Establezca en `1` para que una sesión iniciada con `--output-format stream-json` escriba un [mensaje de resultado que nombre por qué Claude Code se negó a iniciar](/docs/es/agent-sdk/typescript#startup_failure_reason) para fallos de inicio que de otra manera terminan solo con stderr. Requiere Claude Code v2.1.274 o posterior |388| `CLAUDE_CODE_STARTUP_FAILURE_RESULTS` | Establezca en `1` para que una sesión iniciada con `--output-format stream-json` escriba un [mensaje de resultado que nombre por qué Claude Code se negó a iniciar](/docs/es/agent-sdk/typescript#startup_failure_reason) para fallos de inicio que de otra manera terminan solo con stderr. Requiere Claude Code v2.1.274 o posterior |


454| `ENABLE_CLAUDEAI_MCP_SERVERS` | Establezca en `false` para evitar que Claude Code obtenga [servidores MCP de claude.ai](/docs/es/mcp#use-mcp-servers-from-claude-ai). Habilitado de forma predeterminada para usuarios con sesión iniciada. Para desabilitar por proyecto u organización, establezca [`disableClaudeAiConnectors`](/docs/es/settings-reference#disableclaudeaiconnectors) en configuración en su lugar |456| `ENABLE_CLAUDEAI_MCP_SERVERS` | Establezca en `false` para evitar que Claude Code obtenga [servidores MCP de claude.ai](/docs/es/mcp#use-mcp-servers-from-claude-ai). Habilitado de forma predeterminada para usuarios con sesión iniciada. Para desabilitar por proyecto u organización, establezca [`disableClaudeAiConnectors`](/docs/es/settings-reference#disableclaudeaiconnectors) en configuración en su lugar |

455| `ENABLE_PROMPT_CACHING_1H` | Establezca en `1` para solicitar un [TTL de caché de prompt](/docs/es/prompt-caching#cache-lifetime) de 1 hora en lugar del predeterminado de 5 minutos. Destinado a usuarios de clave de API, [Amazon Bedrock](/docs/es/amazon-bedrock), [Google Cloud's Agent Platform](/docs/es/google-vertex-ai), [Microsoft Foundry](/docs/es/microsoft-foundry) y [Claude Platform on AWS](/docs/es/claude-platform-on-aws). Los usuarios de suscripción dentro del uso incluido reciben el TTL de 1 hora automáticamente en la [conversación principal](/docs/es/prompt-caching#which-ttl-each-request-gets). Los usuarios de suscripción que extraen [créditos de uso](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) pueden establecerlo para mantener el TTL de 1 hora. Las escrituras de caché de 1 hora se facturan a una tasa más alta. Para elegir el TTL por depósito de solicitud en su lugar, use `CLAUDE_CODE_PROMPT_CACHE_TTL` y `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL`, que tienen prioridad sobre esta variable |457| `ENABLE_PROMPT_CACHING_1H` | Establezca en `1` para solicitar un [TTL de caché de prompt](/docs/es/prompt-caching#cache-lifetime) de 1 hora en lugar del predeterminado de 5 minutos. Destinado a usuarios de clave de API, [Amazon Bedrock](/docs/es/amazon-bedrock), [Google Cloud's Agent Platform](/docs/es/google-vertex-ai), [Microsoft Foundry](/docs/es/microsoft-foundry) y [Claude Platform on AWS](/docs/es/claude-platform-on-aws). Los usuarios de suscripción dentro del uso incluido reciben el TTL de 1 hora automáticamente en la [conversación principal](/docs/es/prompt-caching#which-ttl-each-request-gets). Los usuarios de suscripción que extraen [créditos de uso](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) pueden establecerlo para mantener el TTL de 1 hora. Las escrituras de caché de 1 hora se facturan a una tasa más alta. Para elegir el TTL por depósito de solicitud en su lugar, use `CLAUDE_CODE_PROMPT_CACHE_TTL` y `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL`, que tienen prioridad sobre esta variable |

456| `ENABLE_PROMPT_CACHING_1H_BEDROCK` | Deprecated. Use `ENABLE_PROMPT_CACHING_1H` en su lugar |458| `ENABLE_PROMPT_CACHING_1H_BEDROCK` | Deprecated. Use `ENABLE_PROMPT_CACHING_1H` en su lugar |

457| `ENABLE_TOOL_SEARCH` | Controla [búsqueda de herramientas MCP](/docs/es/mcp#scale-with-mcp-tool-search). Sin establecer, Claude Code difiere todas las herramientas MCP de forma predeterminada. Aún las carga por adelantado en modelos de Google Cloud's Agent Platform anteriores a la generación Claude 4.5, en una implementación de Microsoft Foundry alojada en Azure, y cuando `ANTHROPIC_BASE_URL` apunta a un host que no es de primera parte. `true` siempre difiere y envía el encabezado beta, excepto en esos mismos modelos de Agent Platform y implementaciones de Microsoft Foundry; las solicitudes fallan en proxies que no admiten `tool_reference`. `auto` carga por adelantado cuando las definiciones de herramientas caben dentro del 10% del contexto. `auto:N` establece un umbral personalizado, como `auto:5` para 5%. `false` carga todas las herramientas por adelantado. Un valor que establece usted mismo se ignora cuando `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` está establecido. Antes de v2.1.221, Claude Code deshabilitaba la búsqueda de herramientas para todos los modelos en Google Cloud's Agent Platform a menos que estableciera esta variable en `true` |459| `ENABLE_TOOL_SEARCH` | Controla [búsqueda de herramientas MCP](/docs/es/mcp#scale-with-mcp-tool-search). Sin establecer, Claude Code difiere todas las herramientas MCP de forma predeterminada. Aún las carga por adelantado en modelos de Google Cloud's Agent Platform anteriores a la generación Claude 4.5, en una implementación de Microsoft Foundry alojada en Azure, y cuando `ANTHROPIC_BASE_URL` apunta a un host que no es de primera parte. `true` siempre difiere y envía el encabezado beta, excepto en esos mismos modelos de Agent Platform e implementaciones de Microsoft Foundry; las solicitudes fallan en proxies que no admiten `tool_reference`. `auto` carga por adelantado cuando las definiciones de herramientas caben dentro del 10% del contexto. `auto:N` establece un umbral personalizado, como `auto:5` para 5%. `false` carga todas las herramientas por adelantado. Un valor que establece usted mismo se ignora cuando `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` está establecido. Antes de v2.1.221, Claude Code deshabilitaba la búsqueda de herramientas para todos los modelos en Google Cloud's Agent Platform a menos que estableciera esta variable en `true` |

458| `FALLBACK_FOR_ALL_PRIMARY_MODELS` | Establezca en cualquier valor no vacío, como `1`, para hacer que Claude Code deje de reintentar en errores de sobrecarga repetida para cada modelo cuando no hay ningún modelo de alternativa configurado. **Establecerlo en `0` o `false` aún habilita esto**, a diferencia de la mayoría de variables de activación/desactivación; desestablezca la variable para restaurar el comportamiento de reintento predeterminado. Sin él, Claude Code deja de reintentar de esta manera en modelos que reconoce como modelos Opus, Fable o Mythos cuando se autentica con una clave de API o un [proveedor de terceros](/docs/es/third-party-integrations) en lugar de una suscripción a Claude. En Claude Code v2.1.160 o posterior, Claude Code cambia a su [cadena de modelo de alternativa](/docs/es/model-config#fallback-model-chains) configurada en errores de sobrecarga repetida para cualquier modelo principal, por lo que esta variable no afecta el cambio a un modelo de alternativa |460| `FALLBACK_FOR_ALL_PRIMARY_MODELS` | Establezca en cualquier valor no vacío, como `1`, para hacer que Claude Code deje de reintentar en errores de sobrecarga repetida para cada modelo cuando no hay ningún modelo de alternativa configurado. **Establecerlo en `0` o `false` aún habilita esto**, a diferencia de la mayoría de variables de activación/desactivación; desestablezca la variable para restaurar el comportamiento de reintento predeterminado. Sin él, Claude Code deja de reintentar de esta manera en modelos que reconoce como modelos Opus, Fable o Mythos cuando se autentica con una clave de API o un [proveedor de terceros](/docs/es/third-party-integrations) en lugar de una suscripción a Claude. En Claude Code v2.1.160 o posterior, Claude Code cambia a su [cadena de modelo de alternativa](/docs/es/model-config#fallback-model-chains) configurada en errores de sobrecarga repetida para cualquier modelo principal, por lo que esta variable no afecta el cambio a un modelo de alternativa |

459| `FORCE_AUTOUPDATE_PLUGINS` | Establezca en `1` para forzar actualizaciones automáticas de plugins incluso cuando el auto-actualizador principal está deshabilitado a través de `DISABLE_AUTOUPDATER` |461| `FORCE_AUTOUPDATE_PLUGINS` | Establezca en `1` para forzar actualizaciones automáticas de plugins incluso cuando el auto-actualizador principal está deshabilitado a través de `DISABLE_AUTOUPDATER` |

460| `FORCE_HYPERLINK` | Establezca en `1` para habilitar hipervínculos OSC 8 clicables cuando su terminal los admite pero no se detectan automáticamente, o `0` para deshabilitarlos. Sin establecer, Claude Code habilita hipervínculos solo cuando detecta soporte de terminal. Claude Code analiza este valor como un número, no un booleano, por lo que un valor como `false`, `no` u `off` habilita hipervínculos en lugar de deshabilitarlos. El [distintivo de PR o solicitud de fusión](/docs/es/interactive-mode#pr-review-status) de pie de página se renderiza como un hipervínculo incluso cuando Claude Code no puede detectar soporte de terminal, como sobre SSH. Establezca `0` para renderizar el distintivo como texto simple |462| `FORCE_HYPERLINK` | Establezca en `1` para habilitar hipervínculos OSC 8 clicables cuando su terminal los admite pero no se detectan automáticamente, o `0` para deshabilitarlos. Sin establecer, Claude Code habilita hipervínculos solo cuando detecta soporte de terminal. Claude Code analiza este valor como un número, no un booleano, por lo que un valor como `false`, `no` u `off` habilita hipervínculos en lugar de deshabilitarlos. El [distintivo de PR o solicitud de fusión](/docs/es/interactive-mode#pr-review-status) de pie de página se renderiza como un hipervínculo incluso cuando Claude Code no puede detectar soporte de terminal, como sobre SSH. Establezca `0` para renderizar el distintivo como texto simple |


464| `IS_DEMO` | Establezca en cualquier valor no vacío, como `1`, para habilitar el modo de demostración: oculta su correo electrónico y nombre de organización del encabezado y la salida `/status`, y omite la incorporación. **Establecerlo en `0` o `false` aún habilita el modo de demostración**, a diferencia de la mayoría de variables de activación/desactivación; desestablezca la variable para desactivarlo. Útil cuando transmite o graba una sesión |466| `IS_DEMO` | Establezca en cualquier valor no vacío, como `1`, para habilitar el modo de demostración: oculta su correo electrónico y nombre de organización del encabezado y la salida `/status`, y omite la incorporación. **Establecerlo en `0` o `false` aún habilita el modo de demostración**, a diferencia de la mayoría de variables de activación/desactivación; desestablezca la variable para desactivarlo. Útil cuando transmite o graba una sesión |

465| `MAX_MCP_OUTPUT_TOKENS` | Número máximo de tokens permitidos en respuestas de herramientas MCP. Claude Code muestra una advertencia cuando la salida excede 10,000 tokens. Las herramientas que declaran [`anthropic/maxResultSizeChars`](/docs/es/mcp#raise-the-limit-for-a-specific-tool) usan ese límite de caracteres para contenido de texto en su lugar, pero el contenido de imagen de esas herramientas aún está sujeto a esta variable (predeterminado: 25000) |467| `MAX_MCP_OUTPUT_TOKENS` | Número máximo de tokens permitidos en respuestas de herramientas MCP. Claude Code muestra una advertencia cuando la salida excede 10,000 tokens. Las herramientas que declaran [`anthropic/maxResultSizeChars`](/docs/es/mcp#raise-the-limit-for-a-specific-tool) usan ese límite de caracteres para contenido de texto en su lugar, pero el contenido de imagen de esas herramientas aún está sujeto a esta variable (predeterminado: 25000) |

466| `MAX_STRUCTURED_OUTPUT_RETRIES` | Número de intentos que Claude Code permite cuando la respuesta del modelo falla en la validación contra el [`--json-schema`](/docs/es/cli-reference#cli-flags) en modo no interactivo con la bandera `-p`; después de esos muchos intentos fallidos sin salida válida, la ejecución falla. El mismo tope se aplica cuando la salida estructurada de un subagente de [flujo de trabajo](/docs/es/workflows) falla en la validación. El valor predeterminado es 5, un primer intento más cuatro reintentos |468| `MAX_STRUCTURED_OUTPUT_RETRIES` | Número de intentos que Claude Code permite cuando la respuesta del modelo falla en la validación contra el [`--json-schema`](/docs/es/cli-reference#cli-flags) en modo no interactivo con la bandera `-p`; después de esos muchos intentos fallidos sin salida válida, la ejecución falla. El mismo tope se aplica cuando la salida estructurada de un subagente de [flujo de trabajo](/docs/es/workflows) falla en la validación. El valor predeterminado es 5, un primer intento más cuatro reintentos |

467| `MAX_THINKING_TOKENS` | Presupuesto de token fijo para [pensamiento extendido](https://platform.claude.com/docs/en/build-with-claude/extended-thinking). Claude Code lo limita a un token por debajo de los tokens de salida máximos de la solicitud y nunca por debajo de 1,024. Consulte `CLAUDE_CODE_MAX_OUTPUT_TOKENS` para cómo se establece ese límite. Sin establecer y con el pensamiento habilitado, los modelos con [razonamiento adaptativo](/docs/es/model-config#adjust-effort-level) eligen su propia profundidad de pensamiento, y otros modelos usan el tope. Establezca en `0` para desabilitar el pensamiento en la API de Anthropic, excepto en Opus 5.5, Sonnet 5.5 y los modelos Fable, que no pueden tener el pensamiento deshabilitado. En [proveedores de terceros](/docs/es/third-party-integrations), `0` omite el parámetro `thinking` en su lugar. Con el pensamiento desactivado en la API de Anthropic, Claude Code envía esfuerzo `high` en lugar de un nivel más alto a modelos que sabe que [no aceptan esa combinación](/docs/es/errors#effort-isnt-available-with-thinking-turned-off), como Opus 5. Claude Code ignora valores distintos de cero en modelos de razonamiento adaptativo, excepto en los modelos donde `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` desactiva el razonamiento adaptativo |469| `MAX_THINKING_TOKENS` | Presupu esto de token fijo para [pensamiento extendido](https://platform.claude.com/docs/en/build-with-claude/extended-thinking). Claude Code lo limita a un token por debajo de los tokens de salida máximos de la solicitud y nunca por debajo de 1,024. Consulte `CLAUDE_CODE_MAX_OUTPUT_TOKENS` para cómo se establece ese límite. Sin establecer y con el pensamiento habilitado, los modelos con [razonamiento adaptativo](/docs/es/model-config#adjust-effort-level) eligen su propia profundidad de pensamiento, y otros modelos usan el tope. Establezca en `0` para desabilitar el pensamiento en la API de Anthropic, excepto en Opus 5.5, Sonnet 5.5 y los modelos Fable, que no pueden tener el pensamiento deshabilitado. En [proveedores de terceros](/docs/es/third-party-integrations), `0` omite el parámetro `thinking` en su lugar. Con el pensamiento desactivado en la API de Anthropic, Claude Code envía esfuerzo `high` en lugar de un nivel más alto a modelos que sabe que [no aceptan esa combinación](/docs/es/errors#effort-isnt-available-with-thinking-turned-off), como Opus 5. Claude Code ignora valores distintos de cero en modelos de razonamiento adaptativo, excepto en los modelos donde `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` desactiva el razonamiento adaptativo |

468| `MCP_CLIENT_SECRET` | Secreto de cliente de OAuth para servidores MCP que requ ieren [credenciales preconfiguradas](/docs/es/mcp#use-pre-configured-oauth-credentials). Evita el prompt interactivo al agregar un servidor con `--client-secret` |470| `MCP_CLIENT_SECRET` | Secreto de cliente de OAuth para servidores MCP que requieren [credenciales preconfiguradas](/docs/es/mcp#use-pre-configured-oauth-credentials). Evita el prompt interactivo al agregar un servidor con `--client-secret` |

469| `MCP_CONNECTION_NONBLOCKING` | Controla si el inicio espera a que se conecten los servidores MCP antes de la primera consulta. El inicio de MCP es no bloqueante de forma predeterminada: los servidores se conectan en segundo plano y sus herramientas se vuelven disponibles a medida que terminan. Establezca en `0` para hacer que Claude Code espere a que se conecten los servidores antes de la primera consulta. Los servidores configurados con [`alwaysLoad: true`](/docs/es/mcp#exempt-a-server-from-deferral) aún hacen que el inicio espere independientemente, excepto cuando se sirven desde la [caché de descubrimiento](/docs/es/mcp#server-status-detail), ya que sus herramientas deben estar presentes cuando se construye el primer prompt. En modo no interactivo (`-p`) sin `--input-format stream-json`, Claude Code también espera a los servidores aún pendientes antes del primer turno independientemente de esta variable. Cuando pasa [`--mcp-config`](/docs/es/cli-reference#cli-flags) explícitamente, la espera tiene un plazo más largo; consulte esa entrada de bandera para la excepción de servidor en caché |471| `MCP_CONNECTION_NONBLOCKING` | Controla si el inicio espera a que se conecten los servidores MCP antes de la primera consulta. El inicio de MCP es no bloqueante de forma predeterminada: los servidores se conectan en segundo plano y sus herramientas se vuelven disponibles a medida que terminan. Establezca en `0` para hacer que Claude Code espere a que se conecten los servidores antes de la primera consulta. Los servidores configurados con [`alwaysLoad: true`](/docs/es/mcp#exempt-a-server-from-deferral) aún hacen que el inicio espere independientemente, excepto cuando se sirven desde la [caché de descubrimiento](/docs/es/mcp#server-status-detail), ya que sus herramientas deben estar presentes cuando se construye el primer prompt. En modo no interactivo (`-p`) sin `--input-format stream-json`, Claude Code también espera a los servidores aún pendientes antes del primer turno independientemente de esta variable. Cuando pasa [`--mcp-config`](/docs/es/cli-reference#cli-flags) explícitamente, la espera tiene un plazo más largo; consulte esa entrada de bandera para la excepción de servidor en caché |

470| `MCP_CONNECT_TIMEOUT_MS` | Cuánto tiempo espera el inicio de MCP bloqueante, en milisegundos, para que se conecte el lote antes de tomar una instantánea de la lista de herramientas (predeterminado: 5000). Se aplica cuando `MCP_CONNECTION_NONBLOCKING=0` o para servidores marcados [`alwaysLoad: true`](/docs/es/mcp#exempt-a-server-from-deferral). Los servidores aún pendientes en el plazo siguen conectándose en segundo plano. Distinto de `MCP_TIMEOUT`, que limita el intento de conexión de un servidor individual |472| `MCP_CONNECT_TIMEOUT_MS` | Cuánto tiempo espera el inicio de MCP bloqueante, en milisegundos, para que se conecte el lote antes de tomar una instantánea de la lista de herramientas (predeterminado: 5000). Se aplica cuando `MCP_CONNECTION_NONBLOCKING=0` o para servidores marcados [`alwaysLoad: true`](/docs/es/mcp#exempt-a-server-from-deferral). Los servidores aún pendientes en el plazo siguen conectándose en segundo plano. Distinto de `MCP_TIMEOUT`, que limita el intento de conexión de un servidor individual |

471| `MCP_DISCOVERY_CACHE` | Activa o desactiva la [caché de descubrimiento de MCP](/docs/es/mcp#server-status-detail). Con la caché activada, un servidor HTTP o SSE remoto que ha usado antes puede mostrar el [estado `cached`](/docs/es/mcp#server-status-detail), y Claude Code se conecta en su primera llamada de herramienta en lugar de al inicio. La caché está desactivada de forma predeterminada a menos que un lanzamiento gradual la haya habilitado para su cuenta. Establezca en `1` para activarla, o `0` para mantenerla desactivada incluso cuando el lanzamiento la ha habilitado. Antes de v2.1.238, la caché estaba activada de forma predeterminada. El estado `cached` requiere Claude Code v2.1.221 o posterior |473| `MCP_DISCOVERY_CACHE` | Activa o desactiva la [caché de descubrimiento de MCP](/docs/es/mcp#server-status-detail). Con la caché activada, un servidor HTTP o SSE remoto que ha usado antes puede mostrar el [estado `cached`](/docs/es/mcp#server-status-detail), y Claude Code se conecta en su primera llamada de herramienta en lugar de al inicio. La caché está desactivada de forma predeterminada a menos que un lanzamiento gradual la haya habilitado para su cuenta. Establezca en `1` para activarla, o `0` para mantenerla desactivada incluso cuando el lanzamiento la ha habilitado. Antes de v2.1.238, la caché estaba activada de forma predeterminada. El estado `cached` requiere Claude Code v2.1.221 o posterior |

errors.md +66 −38

Details

236| `Couldn't open Claude Desktop` | [Errores de línea de comandos](#couldnt-open-claude-desktop) |236| `Couldn't open Claude Desktop` | [Errores de línea de comandos](#couldnt-open-claude-desktop) |

237| `Failed to open Claude Desktop. Please try opening it manually.` | [Errores de línea de comandos](#couldnt-open-claude-desktop) |237| `Failed to open Claude Desktop. Please try opening it manually.` | [Errores de línea de comandos](#couldnt-open-claude-desktop) |

238| `Couldn't read your Zed keymap` / `Couldn't back up your Zed keymap` / `Couldn't update your Zed keymap` | [Errores de línea de comandos](#terminal-setup-left-your-zed-keymap-unchanged) |238| `Couldn't read your Zed keymap` / `Couldn't back up your Zed keymap` / `Couldn't update your Zed keymap` | [Errores de línea de comandos](#terminal-setup-left-your-zed-keymap-unchanged) |

239| `Your Zed keymap isn't a readable list of keybindings` | [Errores de línea de comandos](#terminal-setup-left-your-zed-keymap-unchanged) |239| `Your Zed keymap isn't a readable list of atajos de teclado` | [Errores de línea de comandos](#terminal-setup-left-your-zed-keymap-unchanged) |

240| `Skill usage reports are not available on this connection.` | [Errores de línea de comandos](#skill-usage-reports-are-not-available-on-this-connection) |240| `Skill usage reports are not available on this connection.` | [Errores de línea de comandos](#skill-usage-reports-are-not-available-on-this-connection) |

241| `Custom output styles can't be selected over Remote Control or from a relayed message` | [Errores de línea de comandos](#custom-output-styles-cant-be-selected-over-remote-control) |241| `Custom output styles can't be selected over Remote Control or from a relayed message` | [Errores de línea de comandos](#custom-output-styles-cant-be-selected-over-remote-control) |

242| `Output styles are saved to local settings (.claude/settings.local.json), which this session doesn't load` | [Errores de línea de comandos](#output-styles-are-saved-to-local-settings-which-this-session-doesnt-load) |242| `Output styles are saved to local settings (.claude/settings.local.json), which this session doesn't load` | [Errores de línea de comandos](#output-styles-are-saved-to-local-settings-which-this-session-doesnt-load) |


322| `Transcript writes are failing (...)` | [Advertencias de guardado de sesión](#transcript-writes-are-failing) |322| `Transcript writes are failing (...)` | [Advertencias de guardado de sesión](#transcript-writes-are-failing) |

323| `Transcript saving is off — CLAUDE_CODE_SKIP_PROMPT_HISTORY is set` | [Advertencias de guardado de sesión](#transcript-saving-is-off-skip-prompt-history) |323| `Transcript saving is off — CLAUDE_CODE_SKIP_PROMPT_HISTORY is set` | [Advertencias de guardado de sesión](#transcript-saving-is-off-skip-prompt-history) |

324| `Transcript saving is off — inherited CLAUDE_CODE_CHILD_SESSION marker` | [Advertencias de guardado de sesión](#transcript-saving-is-off-child-session-marker) |324| `Transcript saving is off — inherited CLAUDE_CODE_CHILD_SESSION marker` | [Advertencias de guardado de sesión](#transcript-saving-is-off-child-session-marker) |

325| `Claude Code's fullscreen renderer didn't finish starting last time on this machine` / `Claude Code's fullscreen renderer has repeatedly failed to start on this machine` | [Advertencias de configuración](#fullscreen-failed-start-notice) |325| `Claude Code's fullscreen renderer didn't finish starting last time on this machine` / `Claude Code's fullscreen renderer has repeatedly failed to start on this machine` | [Representación en pantalla completa](/docs/es/fullscreen#fullscreen-renderer-didnt-finish-starting) |

326| `Claude Code exited after an unrecoverable interface error (...)` | [Advertencias de configuración](#exited-after-an-unrecoverable-interface-error) |326| `Claude Code exited after an unrecoverable interface error (...)` | [Advertencias de configuración](#exited-after-an-unrecoverable-interface-error) |

327| `Agent descriptions are over the 15.0k-token limit` | [Advertencias de configuración](#agent-descriptions-are-over-the-15000-token-limit) |327| `Agent descriptions are over the 15.0k-token limit` | [Advertencias de configuración](#agent-descriptions-are-over-the-15000-token-limit) |

328| `Not loaded: rename <path>, then restart — its name uses "<name>", a name reserved for the skills synced from your claude.ai account` | [Advertencias de configuración](#a-skill-command-or-workflow-wasnt-loaded-because-its-name-is-reserved) |328| `Not loaded: rename <path>, then restart — its name uses "<name>", a name reserved for the skills synced from your claude.ai account` | [Advertencias de configuración](#a-skill-command-or-workflow-wasnt-loaded-because-its-name-is-reserved) |


331| `Remote managed settings failed to load (<cause>)` | [Advertencias de configuración](#remote-managed-settings-failed-to-load) |331| `Remote managed settings failed to load (<cause>)` | [Advertencias de configuración](#remote-managed-settings-failed-to-load) |

332| `Managed settings were not approved; exiting without applying them.` | [Advertencias de configuración](#managed-settings-were-not-approved) |332| `Managed settings were not approved; exiting without applying them.` | [Advertencias de configuración](#managed-settings-were-not-approved) |

333| `Claude Code can't start: your organization's managed settings block the default model` / `Claude Code can't start: your organization allows only the models listed in "availableModels"` | [Advertencias de configuración](#managed-settings-block-the-default-model) |333| `Claude Code can't start: your organization's managed settings block the default model` / `Claude Code can't start: your organization allows only the models listed in "availableModels"` | [Advertencias de configuración](#managed-settings-block-the-default-model) |

334| `Your organization's managed settings allow Claude Code to use: <providers>` | [Advertencias de configuración](#managed-settings-dont-allow-this-api-provider) |

335| `Your organization's managed settings allow Claude Code to use no API provider at all` | [Advertencias de configuración](#managed-settings-dont-allow-this-api-provider) |

334| `MCP server <name> is blocked by enterprise managed policy` | [Advertencias de configuración](#mcp-server-is-blocked-by-enterprise-managed-policy) |336| `MCP server <name> is blocked by enterprise managed policy` | [Advertencias de configuración](#mcp-server-is-blocked-by-enterprise-managed-policy) |

335| `Managed settings document could not be parsed as a JSON object; none of its settings are in effect. Fix or remove it.` | [Advertencias de configuración](#managed-settings-document-could-not-be-parsed) |337| `Managed settings document could not be parsed as a JSON object; none of its settings are in effect. Fix or remove it.` | [Advertencias de configuración](#managed-settings-document-could-not-be-parsed) |

336| `Managed settings drop-in directory could not be read` | [Advertencias de configuración](#managed-settings-document-could-not-be-parsed) |338| `Managed settings drop-in directory could not be read` | [Advertencias de configuración](#managed-settings-document-could-not-be-parsed) |

339| `Unable to read managed policy settings` | [Advertencias de configuración](#unable-to-read-managed-policy-settings) |

337| `otelHeadersHelper failed; telemetry is not being exported. See /status: ...` | [Advertencias de configuración](#otelheadershelper-failed) |340| `otelHeadersHelper failed; telemetry is not being exported. See /status: ...` | [Advertencias de configuración](#otelheadershelper-failed) |

338| `"crossSessionInbound" must be one of "accept", "hold", "refuse"` | [Advertencias de configuración](#crosssessioninbound-must-be-one-of-accept-hold-refuse) |341| `"crossSessionInbound" must be one of "accept", "hold", "refuse"` | [Advertencias de configuración](#crosssessioninbound-must-be-one-of-accept-hold-refuse) |

339| `headersHelper not run — this workspace has no persisted trust` | [Advertencias de configuración](#headershelper-not-run) |342| `headersHelper not run — this workspace has no persisted trust` | [Advertencias de configuración](#headershelper-not-run) |


3657 No se pudo abrir Claude Desktop3660 No se pudo abrir Claude Desktop

3658</h3>3661</h3>

3659 3662 

3660Ejecutó [`/desktop`](/docs/es/desktop#coming-from-the-cli), o su alias `/app`, y el comando del sistema que Claude Code usa para abrir Claude Desktop falló. La sesión permanece en la terminal.3663Ejecutó [`/desktop`](/docs/es/desktop#coming-from-the-cli) o su alias `/app` en una sesión, o [`claude --desktop`](/docs/es/cli-reference#cli-flags) en su shell, y el comando del sistema que Claude Code usa para abrir Claude Desktop falló. Después de `/desktop`, la sesión permanece en la terminal; `claude --desktop` imprime el mensaje sin el prefijo `Error:` y sale con estado 1.

3664 

3665El texto entre paréntesis nombra el comando que falló, con su estado de salida y la primera línea de su salida de error cuando la produjo. En macOS ese comando es `open`, como en este ejemplo; en Windows es `rundll32`:

3661 3666 

3662```text theme={null}3667```text theme={null}

3663Error: Couldn't open Claude Desktop (`open` exited 1: LSOpenURLsWithRole() failed for the URL claude://resume?session=<session-id> with error -10814). Open Claude Desktop and run /desktop again.3668Error: Couldn't open Claude Desktop (`open` exited 1: LSOpenURLsWithRole() failed for the URL claude://resume?session=<session-id> with error -10814). Open Claude Desktop and try again.

3664```3669```

3665 3670 

3666**Qué hacer:**3671**Qué hacer:**

3667 3672 

3668* Abra Claude Desktop usted mismo, luego ejecute `/desktop` nuevamente3673* Abra Claude Desktop usted mismo, luego ejecute `/desktop` o `claude --desktop` nuevamente

3669* Para leer la salida de error completa de ese comando, active el registro de depuración con `/debug`, ejecute `/desktop` nuevamente, y verifique el registro de depuración3674* Para leer la salida de error completa del comando fallido, active el registro de depuración con `/debug` y ejecute `/desktop` nuevamente, o ejecute `claude --desktop --debug-file <path>`, luego verifique el registro de depuración

3670 3675 

3671Antes de v2.1.275, el mensaje era `Failed to open Claude Desktop. Please try opening it manually.` y no decía qué falló.3676Antes de v2.1.285, el mensaje terminaba `Open Claude Desktop and run /desktop again.` Antes de v2.1.275, era `Failed to open Claude Desktop. Please try opening it manually.` y no decía qué falló.

3672 3677 

3673<h3 id="terminal-setup-left-your-zed-keymap-unchanged">3678<h3 id="terminal-setup-left-your-zed-keymap-unchanged">

3674 /terminal-setup dejó su mapa de atajos de teclado de Zed sin cambios3679 /terminal-setup dejó su mapa de atajos de teclado de Zed sin cambios


3921commands path escapes plugin directory: ./commands\deploy.md — its path contains a backslash, which is not resolved reliably on this platform3926commands path escapes plugin directory: ./commands\deploy.md — its path contains a backslash, which is not resolved reliably on this platform

3922```3927```

3923 3928 

3924Antes de v2.1.251, Claude Code cargaba una ruta `commands` declarada en una entrada de marketplace incluso cuando apuntaba fuera del directorio del plugin. Claude Code ya rechazaba las rutas declaradas en `plugin.json` y las otras rutas de componentes en una entrada de marketplace.3929Antes de v2.1.251, Claude Code cargaba una ruta `commands` declarada en una entrada de marketplace incluso cuando apuntaba fuera del directorio del plugin.

3925 3930 

3926Antes de v2.1.257, la verificación solo miraba la ortografía de la ruta, no dónde conducía un enlace simbólico.3931Antes de v2.1.257, la verificación solo miraba la ortografía de la ruta, no dónde conducía un enlace simbólico.

3927 3932 


4001* `Failed to load marketplace configuration`: el archivo no es JSON válido, o no se puede leer. Un archivo vacío falla de esta manera también.4006* `Failed to load marketplace configuration`: el archivo no es JSON válido, o no se puede leer. Un archivo vacío falla de esta manera también.

4002* `Marketplace configuration file is corrupted`: el archivo es JSON válido pero su contenido no coincide con el esquema del registro.4007* `Marketplace configuration file is corrupted`: el archivo es JSON válido pero su contenido no coincide con el esquema del registro.

4003 4008 

4004Un archivo faltante no es una falla: Claude Code lo trata como un registro sin marketplaces.

4005 

4006Con un archivo vacío, `claude plugin install` informa:4009Con un archivo vacío, `claude plugin install` informa:

4007 4010 

4008```text theme={null}4011```text theme={null}


4460 4463 

4461Los comandos que abren un diálogo interactivo no pueden hacerlo mientras no hay terminal conectada a una sesión en segundo plano. `/install-github-app`, la lista de configuración `/mcp`, y las acciones de autenticación en el menú del servidor MCP responden con un mensaje. Para `/install-github-app` y la lista de configuración `/mcp`, la sesión también aparece bajo **Needs input** en [agent view](/docs/es/agent-view) para que pueda encontrarla, conectarse y ejecutar el comando nuevamente. Mientras una terminal está conectada, estos comandos funcionan normalmente.4464Los comandos que abren un diálogo interactivo no pueden hacerlo mientras no hay terminal conectada a una sesión en segundo plano. `/install-github-app`, la lista de configuración `/mcp`, y las acciones de autenticación en el menú del servidor MCP responden con un mensaje. Para `/install-github-app` y la lista de configuración `/mcp`, la sesión también aparece bajo **Needs input** en [agent view](/docs/es/agent-view) para que pueda encontrarla, conectarse y ejecutar el comando nuevamente. Mientras una terminal está conectada, estos comandos funcionan normalmente.

4462 4465 

4463Antes de v2.1.216, la sesión no aparecía bajo **Needs input** después de `/install-github-app` o la lista de configuración `/mcp` se rechazaba. En v2.1.213 a v2.1.215, los comandos seguían funcionando mientras una terminal estaba conectada, y el mensaje de rechazo le indicaba que se conectara y ejecutara el comando nuevamente. De v2.1.208 a v2.1.212, Claude Code los rechazaba incluso mientras una terminal estaba conectada, con un mensaje como `Can't open MCP settings in a background session`; en esas versiones, ejecute el comando desde una sesión `claude` normal en su lugar, o actualice. Antes de v2.1.208, abrían su diálogo dentro de la sesión en segundo plano. En v2.1.208 solamente, Claude Code también rechazó el selector `/model` en una sesión en segundo plano, y `/upgrade` imprimió la URL de actualización en lugar de abrir un navegador.4466Antes de v2.1.216, la sesión no aparecía bajo **Needs input** después de que `/install-github-app` o la lista de configuración `/mcp` se rechazara. En v2.1.213 a v2.1.215, los comandos seguían funcionando mientras una terminal estaba conectada, y el mensaje de rechazo le indicaba que se conectara y ejecutara el comando nuevamente. De v2.1.208 a v2.1.212, Claude Code los rechazaba incluso mientras una terminal estaba conectada, con un mensaje como `Can't open MCP settings in a background session`; en esas versiones, ejecute el comando desde una sesión `claude` normal en su lugar, o actualice. Antes de v2.1.208, abrían su diálogo dentro de la sesión en segundo plano. En v2.1.208 solamente, Claude Code también rechazó el selector `/model` en una sesión en segundo plano, y `/upgrade` imprimió la URL de actualización en lugar de abrir un navegador.

4464 4467 

4465La redacción nombra el comando. La lista de configuración `/mcp` reporta:4468La redacción nombra el comando. La lista de configuración `/mcp` reporta:

4466 4469 


4487 4490 

4488**Qué hacer:**4491**Qué hacer:**

4489 4492 

4490* Generalmente nada: el mensaje completo va a Claude como un error de herramienta, y Claude reintenta con la ruta directa que nombra. Para una edición de archivo bloqueada, la vista de conversación muestra solo una línea corta `Error editing file`; el mensaje completo aparece en la vista de transcripción, que abre con `Ctrl+O`. Un comando bloqueado lo imprime en su salida de comando.4493* Generalmente nada: el mensaje completo va a Claude como un error de herramienta, y Claude reintenta con la ruta directa que nombra. Para una edición de archivo bloqueada, la vista de conversación muestra solo una línea corta `Error editing file`; el mensaje completo aparece en la vista de transcripción, que abre con `Ctrl+O`. Un comando bloqueado lo imprime en su salida.

4491* Si el bloqueo se repite en el mismo archivo, la ruta probablemente se ejecuta a través de un enlace simbólico confirmado cuyo destino contiene `..`, como `docs/current -> ../README.md`; pida a Claude que edite el archivo de destino por su ruta real en lugar de a través del enlace4494* Si el bloqueo se repite en el mismo archivo, la ruta probablemente se ejecuta a través de un enlace simbólico confirmado cuyo destino contiene `..`, como `docs/current -> ../README.md`; pida a Claude que edite el archivo de destino por su ruta real en lugar de a través del enlace

4492 4495 

4493<h3 id="write-or-command-blocked-because-the-path-names-a-network-location">4496<h3 id="write-or-command-blocked-because-the-path-names-a-network-location">


4626terminal host process died — press Enter to restart4629terminal host process died — press Enter to restart

4627```4630```

4628 4631 

4629Si abre la fila antes de que se ejecute la verificación, el pie de página muestra `This session's terminal host process died (the conversation is saved) — press Enter to restart it` y la fila se vuelve fallida.

4630 

4631Desde el shell, `claude attach <id>` reinicia una sesión ya marcada como fallida por un host muerto, y de lo contrario imprime la causa y sale:4632Desde el shell, `claude attach <id>` reinicia una sesión ya marcada como fallida por un host muerto, y de lo contrario imprime la causa y sale:

4632 4633 

4633```text theme={null}4634```text theme={null}


5023 5024 

5024Claude Code escribe la mayoría de estos mensajes en stderr, no en la conversación, y escribe la mayoría de ellos al iniciar. Una entrada lo indica cuando su mensaje aparece en otro lugar, como en el registro de depuración o como un aviso de inicio en la vista de conversación, o en otro momento, como la [línea de diagnóstico de modelo no reconocido](#unrecognized-model-id-on-a-request) en el momento de la solicitud.5025Claude Code escribe la mayoría de estos mensajes en stderr, no en la conversación, y escribe la mayoría de ellos al iniciar. Una entrada lo indica cuando su mensaje aparece en otro lugar, como en el registro de depuración o como un aviso de inicio en la vista de conversación, o en otro momento, como la [línea de diagnóstico de modelo no reconocido](#unrecognized-model-id-on-a-request) en el momento de la solicitud.

5025 5026 

5026<h3 id="fullscreen-failed-start-notice">

5027 El renderizador de pantalla completa no terminó de iniciarse

5028</h3>

5029 

5030Una sesión anterior de [pantalla completa](/docs/es/fullscreen) en esta máquina se cerró antes de terminar de iniciarse, por lo que Claude Code inicia esta sesión en el renderizador clásico e imprime uno de estos avisos:

5031 

5032```text theme={null}

5033Claude Code's fullscreen renderer didn't finish starting last time on this machine, so this launch is using the classic renderer. It will try fullscreen again next launch; /tui default keeps the classic renderer.

5034 

5035Claude Code's fullscreen renderer has repeatedly failed to start on this machine, so it has been turned off here. Run /tui fullscreen to try it again (this also resets after an update).

5036```

5037 

5038**Qué hacer:**

5039 

5040* Siga [Fullscreen rendering](/docs/es/fullscreen#fullscreen-renderer-didnt-finish-starting). Dice qué aviso obtiene, qué hace Claude Code en sesiones posteriores, y cómo intentar pantalla completa de nuevo o mantener el renderizador clásico.

5041* Si la sesión que se cerró imprimió un mensaje de salida, consulte [Claude Code se cerró después de un error de interfaz irrecuperable](#exited-after-an-unrecoverable-interface-error) para ver qué nombre tiene.

5042 

5043Antes de v2.1.236, Claude Code no imprimía ningún aviso y seguía iniciando sesiones en renderización de pantalla completa después de un inicio fallido.

5044 

5045<h3 id="exited-after-an-unrecoverable-interface-error">5027<h3 id="exited-after-an-unrecoverable-interface-error">

5046 Claude Code se cerró después de un error de interfaz irrecuperable5028 Claude Code se cerró después de un error de interfaz irrecuperable

5047</h3>5029</h3>


5193* Si administra la configuración, agregue un modelo que sus usuarios puedan ejecutar a `availableModels`, o estreche las entradas `deniedModels` que bloquean cada alternativa. [Block specific models or versions](/docs/es/model-config#block-specific-models-or-versions) describe cómo la opción Predeterminada se reduce5175* Si administra la configuración, agregue un modelo que sus usuarios puedan ejecutar a `availableModels`, o estreche las entradas `deniedModels` que bloquean cada alternativa. [Block specific models or versions](/docs/es/model-config#block-specific-models-or-versions) describe cómo la opción Predeterminada se reduce

5194* Si no las administra, envíe el mensaje a su administrador. Sus propios archivos de configuración no pueden ampliar una lista `availableModels` o `deniedModels` administrada5176* Si no las administra, envíe el mensaje a su administrador. Sus propios archivos de configuración no pueden ampliar una lista `availableModels` o `deniedModels` administrada

5195 5177 

5178<h3 id="managed-settings-dont-allow-this-api-provider">

5179 La configuración administrada no permite este proveedor de API

5180</h3>

5181 

5182Su [configuración administrada](/docs/es/managed-settings) de la organización establece una lista [`allowedProviders`](/docs/es/settings-reference#allowedproviders), y el proveedor de API de la sesión no está en ella o la sesión usa un endpoint que no está fijado de la manera que esa entrada requiere. Claude Code se niega al iniciar, antes de un inicio de sesión, o cuando la sesión contacta a continuación la API. El mensaje comienza con los proveedores permitidos:

5183 

5184```text theme={null}

5185Your organization's managed settings allow Claude Code to use: Anthropic API, Amazon Bedrock.

5186```

5187 

5188Cuando la lista está vacía, el mensaje dice en su lugar:

5189 

5190```text theme={null}

5191Your organization's managed settings allow Claude Code to use no API provider at all (allowedProviders is an empty list), so it cannot start on this machine.

5192```

5193 

5194Cuando cada entrada no es reconocida, el paréntesis dice en su lugar `(allowedProviders lists only unrecognized entries)`.

5195 

5196**Qué hacer:**

5197 

5198* Siga los pasos `To continue:` del mensaje

5199* Si administra la configuración, las líneas del mensaje que comienzan con `Admins:` nombran la entrada a agregar o el valor a fijar, y la entrada [`allowedProviders`](/docs/es/settings-reference#allowedproviders) dice qué bloque `env` de qué fuente puede fijarlo

5200 

5196<h3 id="mcp-server-is-blocked-by-enterprise-managed-policy">5201<h3 id="mcp-server-is-blocked-by-enterprise-managed-policy">

5197 El servidor MCP está bloqueado por la política administrada empresarial5202 El servidor MCP está bloqueado por la política administrada empresarial

5198</h3>5203</h3>


5235 5240 

5236[Find entries Claude Code dropped](/docs/es/managed-settings#find-entries-claude-code-dropped) enumera lo que hace que cada fuente sea no analizable.5241[Find entries Claude Code dropped](/docs/es/managed-settings#find-entries-claude-code-dropped) enumera lo que hace que cada fuente sea no analizable.

5237 5242 

5238Claude Code se niega a iniciar incluso cuando otra fuente de administrador entrega una política válida. Ve este error en sesiones interactivas, `claude -p`, sesiones del SDK de agente, [sesiones en segundo plano](/docs/es/agent-view), y la mayoría de subcomandos, `claude doctor` incluido. El rechazo falla cerrado a propósito: la configuración en un documento que Claude Code no puede analizar no se puede aplicar, y iniciar de todas formas ejecutaría sesiones sin los controles de la organización.5243Claude Code se niega a iniciar incluso cuando otra fuente de administrador entrega una política válida. Ve este error en sesiones interactivas, `claude -p`, sesiones del SDK de agente, [sesiones en segundo plano](/docs/es/agent-view), y la mayoría de subcomandos, `claude doctor` incluido. El rechazo falla cerrado a propósito: la configuración en un documento que Claude Code no puede analizar no se puede aplicar, e iniciar de todas formas ejecutaría sesiones sin los controles de la organización.

5239 5244 

5240Un problema de esquema en un documento analizable no produce este error. [Find entries Claude Code dropped](/docs/es/managed-settings#find-entries-claude-code-dropped) cubre qué hace Claude Code con uno.5245Un problema de esquema en un documento analizable no produce este error. [Find entries Claude Code dropped](/docs/es/managed-settings#find-entries-claude-code-dropped) cubre qué hace Claude Code con uno.

5241 5246 


5246* Si administra la máquina, corrija el documento nombrado para que se analice como un objeto JSON, o elimine el archivo, perfil o valor del registro. Un `managed-settings.json` vacío cuenta como `{}` y no bloquea el inicio.5251* Si administra la máquina, corrija el documento nombrado para que se analice como un objeto JSON, o elimine el archivo, perfil o valor del registro. Un `managed-settings.json` vacío cuenta como `{}` y no bloquea el inicio.

5247* Si no lo hace, pida a su administrador que corrija el documento implementado. Nada en sus propios archivos de configuración causa o borra este error.5252* Si no lo hace, pida a su administrador que corrija el documento implementado. Nada en sus propios archivos de configuración causa o borra este error.

5248 5253 

5254<h3 id="unable-to-read-managed-policy-settings">

5255 No se pudo leer la configuración de política administrada

5256</h3>

5257 

5258Su organización implementa [configuración administrada](/docs/es/managed-settings), y una de las fuentes implementadas existe pero no se pudo leer, por una razón como un error de E/S en lugar de que el sistema operativo niegue la lectura. Sin otra fuente de administrador suministrando una política, Claude Code se cierra al iniciar en lugar de ejecutarse sin la política que la fuente puede llevar:

5259 

5260```text theme={null}

5261Unable to read managed policy settings.

5262This machine may require organization login enforcement, but the policy file failed to load.

5263Contact your administrator.

5264 

5265Detail: <source>: <reason>

5266```

5267 

5268En el mismo estado, los flujos de inicio de sesión, las solicitudes de API de una sesión que ya se está ejecutando, y el servidor [`claude gateway`](/docs/es/claude-apps-gateway) se rechazan con una variante de la primera línea que nombra [`allowedProviders`](/docs/es/settings-reference#allowedproviders).

5269 

5270Una lectura que el sistema operativo negó, como en un archivo de solo raíz, no produce esta salida: [la sesión se inicia sin las políticas de esa fuente](/docs/es/managed-settings#find-entries-claude-code-dropped). Para una fuente que no se puede analizar, Claude Code se cierra con [un mensaje diferente que nombra la fuente](#managed-settings-document-could-not-be-parsed).

5271 

5272**Qué hacer:**

5273 

5274* Si administra la máquina, corrija el problema que nombra la línea `Detail:` para que la fuente implementada se pueda leer, o elimine la fuente

5275* Si no lo hace, envíe el mensaje a su administrador. Nada en sus propios archivos de configuración causa o borra este error

5276 

5277Antes de v2.1.285, solo las sesiones que iniciaron sesión con credenciales de claude.ai o Claude Console se cerraban con este mensaje, y una lectura que el sistema operativo negó también lo produjo.

5278 

5249<h3 id="otelheadershelper-failed">5279<h3 id="otelheadershelper-failed">

5250 otelHeadersHelper falló5280 otelHeadersHelper falló

5251</h3>5281</h3>


5344* Corrija la regla en la fuente que nombra la advertencia entre paréntesis: una ruta de archivo de configuración, o la bandera `--allowed-tools` misma. Una ruta `claude-settings-<hash>.json` que no existe en el disco representa un valor `--settings` en línea. Corrija el JSON que pasa a esa bandera.5374* Corrija la regla en la fuente que nombra la advertencia entre paréntesis: una ruta de archivo de configuración, o la bandera `--allowed-tools` misma. Una ruta `claude-settings-<hash>.json` que no existe en el disco representa un valor `--settings` en línea. Corrija el JSON que pasa a esa bandera.

5345* Si la fuente dice `managed policy settings`, reenvíe la advertencia a quien mantenga su configuración administrada, ya que no puede borrarla usted mismo.5375* Si la fuente dice `managed policy settings`, reenvíe la advertencia a quien mantenga su configuración administrada, ya que no puede borrarla usted mismo.

5346 5376 

5347Claude Code no advierte sobre reglas de negación y solicitud con la misma forma: se niega o solicita los comandos adicionales que coinciden en lugar de aprobarlos. Tampoco advierte sobre reglas cuyo subcomando viene antes del primer `*`, como `Bash(git commit *)`, o reglas en las que ninguna palabra que no sea una opción sigue al `*`, como `Bash(git *)`, o sobre reglas de prefijo `:*` como `Bash(git:*)`.

5348 

5349En una [sesión en segundo plano](/docs/es/agent-view) o con `--output-format json` o `stream-json`, Claude Code escribe la advertencia en el registro de depuración en lugar de stderr, por lo que la salida leída por máquina se mantiene limpia. Ejecute con `--debug` para capturarla en `~/.claude/debug/<session-id>.txt`. Antes de v2.1.246, Claude Code aceptaba estas reglas sin una advertencia.5377En una [sesión en segundo plano](/docs/es/agent-view) o con `--output-format json` o `stream-json`, Claude Code escribe la advertencia en el registro de depuración en lugar de stderr, por lo que la salida leída por máquina se mantiene limpia. Ejecute con `--debug` para capturarla en `~/.claude/debug/<session-id>.txt`. Antes de v2.1.246, Claude Code aceptaba estas reglas sin una advertencia.

5350 5378 

5351<h3 id="crosssessioninbound-must-be-one-of-accept-hold-refuse">5379<h3 id="crosssessioninbound-must-be-one-of-accept-hold-refuse">


5458 Las respuestas parecen de menor calidad que lo habitual5486 Las respuestas parecen de menor calidad que lo habitual

5459</h2>5487</h2>

5460 5488 

5461Si las respuestas de Claude parecen menos capaces de lo que espera pero no se muestra ningún error, la causa suele ser el estado de la conversación en lugar del modelo en sí. Claude Code no cambia silenciosamente las versiones del modelo. Puede cambiar a un modelo de respaldo en tres casos específicos:5489Si las respuestas de Claude parecen menos capaces de lo que espera pero no se muestra ningún error, la causa suele ser el estado de la conversación en lugar del modelo en sí. Claude Code no cambia silenciosamente las versiones del modelo. Puede cambiar a un modelo de respaldo en estos casos:

5462 5490 

5463* Un [`--fallback-model`](/docs/es/cli-reference#cli-flags) configurado toma el control después de un error de disponibilidad, solo para ese turno, con un aviso en la transcripción5491* Un [`--fallback-model`](/docs/es/cli-reference#cli-flags) configurado toma el control después de un error de disponibilidad, solo para ese turno, con un aviso en la transcripción

5464* Una verificación de inicio de Amazon Bedrock o de la plataforma de agentes de Google Cloud encuentra su modelo predeterminado no disponible5492* Una verificación de inicio de Amazon Bedrock o de la plataforma de agentes de Google Cloud encuentra su modelo predeterminado no disponible, o su cuenta [pierde acceso a él durante la sesión](/docs/es/amazon-bedrock#when-a-model-is-disabled-mid-session)

5465* El [respaldo automático de modelo](/docs/es/model-config#automatic-model-fallback) en Fable 5.1, Fable 5, Opus 5.5, Sonnet 5.5 y Opus 5 mueve la sesión al modelo de respaldo de la categoría marcada, cuando esa categoría tiene uno, y muestra un aviso en la transcripción5493* El [respaldo automático de modelo](/docs/es/model-config#automatic-model-fallback) en Fable 5.1, Fable 5, Opus 5.5, Sonnet 5.5 y Opus 5 mueve la sesión al modelo de respaldo de la categoría marcada, cuando esa categoría tiene uno, y muestra un aviso en la transcripción

5466 5494 

5467La verificación de selección de modelo a continuación detecta el segundo y tercer caso; el primero aparece como un aviso de transcripción en lugar de un cambio de `/model`. La [configuración del modelo](/docs/es/model-config) explica cuándo se aplica cada respaldo.5495La verificación de selección de modelo a continuación detecta el segundo y tercer caso; el primero aparece como un aviso de transcripción en lugar de un cambio de `/model`. La [configuración del modelo](/docs/es/model-config) explica cuándo se aplica cada respaldo.

Details

293 293 

294Los alias de modelo como `opus` no actúan como fijaciones, ni tampoco un ID de modelo que Claude Code no reconoce.294Los alias de modelo como `opus` no actúan como fijaciones, ni tampoco un ID de modelo que Claude Code no reconoce.

295 295 

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

297 

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

299 Cuando un modelo se deshabilita durante la sesión

300</h3>

301 

302Si su proyecto pierde acceso al modelo en el que se ejecuta su sesión, por ejemplo porque un administrador lo deshabilita en [Model Garden](https://console.cloud.google.com/vertex-ai/model-garden), Claude Code cambia la sesión a otro modelo en lugar de fallar en cada solicitud, y muestra `Switched to <fallback> because <model> is not available`. Intenta los mismos modelos que el retroceso de inicio: versiones anteriores del mismo nivel primero y, para una sesión de Opus sin ninguna versión de Opus disponible, el modelo Sonnet predeterminado.

303 

304El cambio se aplica solo a un nivel que no ha fijado, la misma condición que el retroceso de inicio. Una sesión en una versión específica que eligió mantiene su modelo y, sin una cadena de modelo de retroceso, la solicitud falla en su lugar. En [modo automático](/docs/es/permission-modes#enable-auto-mode-on-bedrock-agent-platform-or-foundry), Claude Code cambia solo a un modelo que el modo automático admite en Agent Platform. Si ninguno de esos modelos está disponible tampoco, la solicitud falla.

305 

306Una [cadena de modelo de retroceso](/docs/es/model-config#fallback-model-chains) que configure reemplaza el cambio de nivel: en estos rechazos Claude Code cambia a su retroceso configurado en su lugar. Para que las solicitudes rechazadas fallen en lugar de cambiar, establezca [`CLAUDE_CODE_DISABLE_MODEL_ACCESS_FALLBACK=1`](/docs/es/env-vars). Una cadena de retroceso que configuró aún cambia en estos rechazos; elimine la cadena también si desea que cada solicitud rechazada falle.

307 

296<h2 id="iam-configuration">308<h2 id="iam-configuration">

297 Configuración de IAM309 Configuración de IAM

298</h2>310</h2>

headless.md +2 −2

Details

296 Aprobar herramientas automáticamente296 Aprobar herramientas automáticamente

297</h3>297</h3>

298 298 

299Utilice `--allowedTools` para permitir que Claude use ciertas herramientas sin solicitar confirmación. Este ejemplo ejecuta un conjunto de pruebas y corrige fallos, permitiendo que Claude ejecute comandos Bash y lea/edite archivos sin pedir permiso:299Utilice `--allowedTools` para permitir que Claude use ciertas herramientas sin solicitar confirmación. Enumerar `Read` y `Edit` permite que Claude lea y edite archivos sin pedir permiso. Enumerar `Bash` hace lo mismo para comandos de shell, excepto en una ejecución que comienza en [modo automático](/docs/es/permission-modes#how-auto-mode-evaluates-actions), donde Claude Code descarta una entrada `Bash` desnuda como una regla de permiso amplia y el modo automático evalúa cada comando en su lugar. Este ejemplo ejecuta un conjunto de pruebas y corrige fallos con esas tres herramientas enumeradas:

300 300 

301```bash theme={null}301```bash theme={null}

302claude -p "Run the test suite and fix any failures" \302claude -p "Run the test suite and fix any failures" \

303 --allowedTools "Bash,Read,Edit"303 --allowedTools "Bash,Read,Edit"

304```304```

305 305 

306Para establecer una línea base para toda la sesión en lugar de enumerar herramientas individuales, pase un [modo de permiso](/docs/es/permission-modes). Para `-p`, el [modo de permiso de inicio integrado](/docs/es/permission-modes#which-mode-a-session-starts-in) es Manual en cada plan, por lo que pase el modo de permiso que desee:306Para establecer una línea base para toda la sesión en lugar de enumerar herramientas individuales, pase un [modo de permiso](/docs/es/permission-modes). Una ejecución donde nada establece un modo de permiso toma el [modo de permiso de inicio integrado](/docs/es/permission-modes#which-mode-a-session-starts-in), que puede ser `auto`, así que pase el que desee:

307 307 

308* **`auto`**: pase `--permission-mode auto` para que un clasificador revise la mayoría de las acciones en lugar de usted308* **`auto`**: pase `--permission-mode auto` para que un clasificador revise la mayoría de las acciones en lugar de usted

309* **`dontAsk`**: Claude Code deniega cualquier llamada que de otro modo solicitaría, lo que es útil para ejecuciones de CI bloqueadas. Las acciones que no necesitan aprobación en modo Manual aún se ejecutan, como lecturas de archivos en sus directorios de trabajo y el [conjunto de comandos de solo lectura](/docs/es/permissions#read-only-commands), y también lo hacen las acciones que sus entradas `--allowedTools` o reglas `permissions.allow` cubren. `AskUserQuestion`, herramientas de conector [que su organización configuró para `ask`](/docs/es/mcp#organization-controls-on-connector-tools), y herramientas MCP marcadas [`requiresUserInteraction`](/docs/es/mcp#require-approval-for-a-specific-tool) se deniegan incluso cuando una regla de permiso coincide309* **`dontAsk`**: Claude Code deniega cualquier llamada que de otro modo solicitaría, lo que es útil para ejecuciones de CI bloqueadas. Las acciones que no necesitan aprobación en modo Manual aún se ejecutan, como lecturas de archivos en sus directorios de trabajo y el [conjunto de comandos de solo lectura](/docs/es/permissions#read-only-commands), y también lo hacen las acciones que sus entradas `--allowedTools` o reglas `permissions.allow` cubren. `AskUserQuestion`, herramientas de conector [que su organización configuró para `ask`](/docs/es/mcp#organization-controls-on-connector-tools), y herramientas MCP marcadas [`requiresUserInteraction`](/docs/es/mcp#require-approval-for-a-specific-tool) se deniegan incluso cuando una regla de permiso coincide

hooks.md +53 −53

Details

12 12 

13Los hooks son comandos de shell definidos por el usuario, puntos finales HTTP, llamadas a herramientas MCP, prompts de LLM o subagentes que se ejecutan automáticamente en puntos específicos del ciclo de vida de Claude Code. Claude Code dispara los mismos eventos de hooks dondequiera que se ejecute: sesiones en la terminal, extensiones de IDE, la [aplicación de escritorio](/docs/es/desktop-quickstart) y [Claude Code en la web](/docs/es/claude-code-on-the-web). Utilice esta referencia para buscar esquemas de eventos, opciones de configuración, formatos de entrada/salida JSON y características avanzadas como hooks asincronos, hooks HTTP y hooks de herramientas MCP.13Los hooks son comandos de shell definidos por el usuario, puntos finales HTTP, llamadas a herramientas MCP, prompts de LLM o subagentes que se ejecutan automáticamente en puntos específicos del ciclo de vida de Claude Code. Claude Code dispara los mismos eventos de hooks dondequiera que se ejecute: sesiones en la terminal, extensiones de IDE, la [aplicación de escritorio](/docs/es/desktop-quickstart) y [Claude Code en la web](/docs/es/claude-code-on-the-web). Utilice esta referencia para buscar esquemas de eventos, opciones de configuración, formatos de entrada/salida JSON y características avanzadas como hooks asincronos, hooks HTTP y hooks de herramientas MCP.

14 14 

15Un plugin también puede registrar hooks como funciones JavaScript que Claude Code llama en su propio proceso, que pueden dibujarse en la interfaz así como actuar sobre eventos. Un plugin que lo hace es un [mod](/docs/es/plugins/mods/overview), y esos hooks de función se cubren en [Reaccionar a eventos](/docs/es/plugins/mods/events) en lugar de aquí. Los hooks en esta página siguen funcionando junto con los mods.

16 

15<h2 id="hook-lifecycle">17<h2 id="hook-lifecycle">

16 Ciclo de vida de los hooks18 Ciclo de vida de los hooks

17</h2>19</h2>


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

250 252 

251<Note>253<Note>

252 Esta página utiliza términos específicos para cada nivel: **evento de hook** para el punto del ciclo de vida, **grupo de matcher** para el filtro, y **manejador de hook** para el comando de shell, punto final HTTP, herramienta MCP, prompt o agente que se ejecuta. "Hook" por sí solo se refiere a la característica general.254 Esta página utiliza términos específicos para cada nivel: **evento de hook** para el punto del ciclo de vida, **grupo de matcher** para el filtro, y **manejador de hook** para el comando shell, punto final HTTP, herramienta MCP, prompt o agente que se ejecuta. "Hook" por sí solo se refiere a la característica general.

253</Note>255</Note>

254 256 

255<h3 id="hook-locations">257<h3 id="hook-locations">

256 Ubicaciones de hooks258 Ubicaciones de hooks

257</h3>259</h3>

258 260 

259Dónde definas un hook determina su alcance:261Dónde defines un hook determina su alcance:

260 262 

261| Ubicación | Alcance | Compartible |263| Ubicación | Alcance | Compartible |

262| :- | :- | :- |264| :- | :- | :- |

263| `~/.claude/settings.json` | Todos tus proyectos | No, local en tu máquina |265| `~/.claude/settings.json` | Todos tus proyectos | No, local en tu máquina |

264| `.claude/settings.json` | Proyecto único | Sí, puede confirmarse en el repositorio |266| `.claude/settings.json` | Proyecto único | Sí, puede ser confirmado en el repositorio |

265| `.claude/settings.local.json` | Proyecto único | No, ignorado por git cuando Claude Code guarda una configuración en él |267| `.claude/settings.local.json` | Proyecto único | No, ignorado por git cuando Claude Code guarda una configuración en él |

266| Configuración de política administrada | Toda la organización | Sí, controlado por administrador |268| Configuración de política administrada | Toda la organización | Sí, controlado por administrador |

267| [Plugin](/docs/es/plugins/overview) `hooks/hooks.json` | Cuando el plugin está habilitado | Sí, incluido con el plugin |269| [Plugin](/docs/es/plugins/overview) `hooks/hooks.json` | Cuando el plugin está habilitado | Sí, incluido con el plugin |

268| [Skill](/docs/es/skills) frontmatter | El resto de la sesión una vez que se invoca la skill. Consulta [Hooks en skills y agentes](#hooks-in-skills-and-agents) | Sí, definido en el archivo de skill |270| [Skill](/docs/es/skills) frontmatter | El resto de la sesión una vez que se invoca la skill. Consulta [Hooks en skills y agentes](#hooks-in-skills-and-agents) | Sí, definido en el archivo de skill |

269| [Subagente](/docs/es/sub-agents) frontmatter | Mientras ese subagente se está ejecutando | Sí, definido en el archivo del subagente |271| [Subagent](/docs/es/sub-agents) frontmatter | Mientras ese subagente se está ejecutando | Sí, definido en el archivo del subagente |

270 272 

271Las [sesiones en la nube](/docs/es/claude-code-on-the-web) no leen tu `~/.claude/settings.json` local. En un [entorno autohospedado](/docs/es/self-hosted-environments-configuration#permissions-and-tool-approval), Claude Code también ejecuta los hooks que el operador sembró desde `~/.claude/` del host del ejecutor, y ejecuta los hooks en el archivo de configuración administrada de la imagen del ejecutor cuando ese archivo está entre las [fuentes administradas que Claude Code aplica](/docs/es/managed-settings#how-claude-code-combines-managed-sources), lo que por defecto significa solo cuando ni la configuración administrada por servidor ni una política de Claude Code entregada por MDM suministran el nivel administrado. Consulta [qué se transfiere de tu configuración](/docs/es/cloud-environments#what-carries-over-from-your-setup) para saber qué archivos de configuración y plugins, y por lo tanto qué hooks, llegan a una sesión en la nube.273Las [sesiones en la nube](/docs/es/claude-code-on-the-web) no leen tu `~/.claude/settings.json` local. En un [entorno autohospedado](/docs/es/self-hosted-environments-configuration#permissions-and-tool-approval), Claude Code también ejecuta los hooks que el operador sembró desde el `~/.claude/` del host del ejecutor, y ejecuta los hooks en el archivo de configuración administrada de la imagen del ejecutor cuando ese archivo está entre las [fuentes administradas que Claude Code aplica](/docs/es/managed-settings#how-claude-code-combines-managed-sources), lo que por defecto significa solo cuando ni la configuración administrada por servidor ni una política de Claude Code entregada por MDM suministran el nivel administrado. Consulta [qué se transfiere de tu configuración](/docs/es/cloud-environments#what-carries-over-from-your-setup) para saber qué archivos de configuración y plugins, y por lo tanto qué hooks, llegan a una sesión en la nube.

272 274 

273Para obtener detalles sobre la resolución de archivos de configuración, consulta [configuración](/docs/es/settings).275Para obtener detalles sobre la resolución de archivos de configuración, consulta [settings](/docs/es/settings).

274 276 

275Los hooks de archivos de configuración, configuración de política administrada y plugins también se ejecutan dentro de [subagentes](/docs/es/sub-agents). Cuando un subagente llama a una herramienta, eventos de herramienta como `PreToolUse` y `PostToolUse` activan los mismos hooks configurados que en la conversación principal, y la entrada lleva los campos de entrada comunes `agent_id` y `agent_type` [](#common-input-fields) que identifican al subagente.277Los hooks de archivos de configuración, configuración de política administrada y plugins también se ejecutan dentro de [subagentes](/docs/es/sub-agents). Cuando un subagente llama a una herramienta, eventos de herramienta como `PreToolUse` y `PostToolUse` activan los mismos hooks configurados que en la conversación principal, y la entrada lleva los campos de entrada comunes `agent_id` y `agent_type` [](#common-input-fields) que identifican al subagente.

276 278 

277Los administradores pueden usar [`allowManagedHooksOnly`](/docs/es/settings-reference#allowmanagedhooksonly) en [configuración administrada](/docs/es/managed-settings) para restringir qué hooks se ejecutan:279Los administradores pueden usar [`allowManagedHooksOnly`](/docs/es/settings-reference#allowmanagedhooksonly) en [configuración administrada](/docs/es/managed-settings) para restringir qué hooks se ejecutan:

278 280 

279* Tus hooks de usuario, proyecto, local y plugin están bloqueados. Los hooks de plugins forzados a habilitarse en la configuración administrada `enabledPlugins` están exentos281* Tus hooks de usuario, proyecto, local y plugin están bloqueados. Los hooks de plugins forzados a estar habilitados en la configuración administrada `enabledPlugins` están exentos

280* Claude Code también reduce tu configuración [`statusLine`](/docs/es/statusline), [`fileSuggestion`](/docs/es/settings-reference#filesuggestion) y [`subagentStatusLine`](/docs/es/statusline#subagent-status-lines) a la configuración administrada282* Claude Code también reduce tu configuración [`statusLine`](/docs/es/statusline), [`fileSuggestion`](/docs/es/settings-reference#filesuggestion) y [`subagentStatusLine`](/docs/es/statusline#subagent-status-lines) a la configuración administrada

281* Claude Code también deshabilita plugins con una [fuente `command`](/docs/es/plugins/marketplace-reference#command-plugin-source), incluidos los plugins forzados a habilitarse en la configuración administrada `enabledPlugins`, a menos que [`disableCommandPluginSources`](/docs/es/settings-reference#disablecommandpluginsources) esté explícitamente establecido en `false`. Las fuentes `command` requieren Claude Code v2.1.229 o posterior283* Claude Code también deshabilita plugins con una [fuente `command`](/docs/es/plugins/marketplace-reference#command-plugin-source), incluidos los plugins forzados a estar habilitados en la configuración administrada `enabledPlugins`, a menos que [`disableCommandPluginSources`](/docs/es/settings-reference#disablecommandpluginsources) esté explícitamente establecido en `false`. Las fuentes `command` requieren Claude Code v2.1.229 o posterior

282* Claude Code también bloquea los comandos [`headersHelper`](/docs/es/plugins/host-marketplace#authenticate-archive-downloads) del marketplace a menos que [`disableCommandPluginSources`](/docs/es/settings-reference#disablecommandpluginsources) esté explícitamente establecido en `false`, excepto para un marketplace que la propia configuración administrada declare284* Claude Code también bloquea los [comandos `headersHelper`](/docs/es/plugins/host-marketplace#authenticate-archive-downloads) del marketplace a menos que [`disableCommandPluginSources`](/docs/es/settings-reference#disablecommandpluginsources) esté explícitamente establecido en `false`, excepto para un marketplace que la propia configuración administrada declare

283 285 

284Consulta [qué se ejecuta bajo `allowManagedHooksOnly`](/docs/es/settings-reference#what-runs-under-allowmanagedhooksonly).286Consulta [qué se ejecuta bajo `allowManagedHooksOnly`](/docs/es/settings-reference#what-runs-under-allowmanagedhooksonly).

285 287 


294 Patrones de matcher296 Patrones de matcher

295</h3>297</h3>

296 298 

297El campo `matcher` filtra cuándo se activan los hooks. Cómo se evalúa un matcher depende de los caracteres que contiene:299El campo `matcher` filtra cuándo se activan los hooks. Cómo se evalúa un matcher depende de los caracteres que contenga:

298 300 

299| Valor de matcher | Evaluado como | Ejemplo |301| Valor de matcher | Evaluado como | Ejemplo |

300| :- | :- | :- |302| :- | :- | :- |

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

302| 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 |304| 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 |

303| Contiene cualquier otro carácter | Expresión regular de JavaScript, sin anclar | `^Notebook` coincide con cualquier herramienta cuyo nombre comienza con `Notebook`; `mcp__memory__.*` coincide con cada herramienta del servidor `memory` |305| 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` |

304 306 

305Un 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.307Un 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.

306 308 


334 336 

335Hacer coincidir `StopFailure` en `cloud_credential_error` requiere Claude Code v2.1.267 o posterior, la primera versión que reporta fallos de carga de credenciales bajo ese valor en lugar de `server_error` o `unknown`.337Hacer coincidir `StopFailure` en `cloud_credential_error` requiere Claude Code v2.1.267 o posterior, la primera versión que reporta fallos de carga de credenciales bajo ese valor en lugar de `server_error` o `unknown`.

336 338 

337Para la mayoría de eventos, Claude Code evalúa el matcher contra un campo de la [entrada JSON](#hook-input-and-output) que envía a tu hook en stdin. Para eventos de herramienta, ese campo es `tool_name`. Para `PreModelSwitch` y `PostModelSwitch`, Claude Code evalúa el matcher contra el nombre canónico que deriva de `to_model`, como se describe en [PreModelSwitch](#premodelswitch). Cada sección de [evento de hook](#hook-events) lista el conjunto completo de valores de matcher y el esquema de entrada para ese evento.339Para la mayoría de eventos, Claude Code evalúa el matcher contra un campo de la [entrada JSON](#hook-input-and-output) que envía a tu hook en stdin. Para eventos de herramienta, ese campo es `tool_name`. Para `PreModelSwitch` y `PostModelSwitch`, Claude Code evalúa el matcher contra el nombre canónico que deriva de `to_model`, como se describe en [PreModelSwitch](#premodelswitch). Cada sección de [evento de hook](#hook-events) enumera el conjunto completo de valores de matcher y el esquema de entrada para ese evento.

338 340 

339Este ejemplo ejecuta un script de linting solo cuando Claude escribe o edita un archivo:341Este ejemplo ejecuta un script de linting solo cuando Claude escribe o edita un archivo:

340 342 


358 360 

359Si añades un campo `matcher` a un evento sin soporte de matcher, se ignora silenciosamente.361Si añades un campo `matcher` a un evento sin soporte de matcher, se ignora silenciosamente.

360 362 

361Para eventos de herramienta, puedes filtrar más estrictamente estableciendo el campo [`if`](#common-fields) en manejadores de hook individuales. `if` utiliza [sintaxis de regla de permisos](/docs/es/permissions) para coincidir contra el nombre de la herramienta y los argumentos juntos, por lo que `"Bash(git *)"` se ejecuta cuando cualquier subcomando de la entrada de Bash coincide con `git *` y `"Edit(*.ts)"` se ejecuta solo para archivos TypeScript.363Para eventos de herramienta, puedes filtrar más estrictamente estableciendo el campo [`if`](#common-fields) en manejadores de hook individuales. `if` utiliza [sintaxis de regla de permisos](/docs/es/permissions) para coincidir contra el nombre de la herramienta y los argumentos juntos, así que `"Bash(git *)"` se ejecuta cuando cualquier subcomando de la entrada de Bash coincide con `git *` y `"Edit(*.ts)"` se ejecuta solo para archivos TypeScript.

362 364 

363<h4 id="match-mcp-tools">365<h4 id="match-mcp-tools">

364 Coincidir herramientas MCP366 Coincidir herramientas MCP

365</h4>367</h4>

366 368 

367Las herramientas del servidor [MCP](/docs/es/mcp) aparecen como herramientas regulares en eventos de herramienta (`PreToolUse`, `PostToolUse`, `PostToolUseFailure`, `PermissionRequest`, `PermissionDenied`), por lo que puedes hacerlas coincidir de la misma manera que cualquier otro nombre de herramienta.369Las herramientas del servidor [MCP](/docs/es/mcp) aparecen como herramientas regulares en eventos de herramienta (`PreToolUse`, `PostToolUse`, `PostToolUseFailure`, `PermissionRequest`, `PermissionDenied`), así que puedes hacerlas coincidir de la misma manera que cualquier otro nombre de herramienta.

368 370 

369Las herramientas MCP siguen el patrón de nomenclatura `mcp__<server>__<tool>`, por ejemplo:371Las herramientas MCP siguen el patrón de nomenclatura `mcp__<server>__<tool>`, por ejemplo:

370 372 

371* `mcp__memory__create_entities`: herramienta crear entidades del servidor Memory373* `mcp__memory__create_entities`: herramienta crear entidades del servidor Memory

372* `mcp__filesystem__read_file`: herramienta leer archivo del servidor Filesystem374* `mcp__filesystem__read_file`: herramienta leer archivo del servidor Filesystem

373* `mcp__github__search_repositories`: herramienta de búsqueda del servidor GitHub375* `mcp__github__search_repositories`: herramienta buscar del servidor GitHub

374 376 

375Para coincidir con cada herramienta de un servidor, añade `.*` al prefijo del servidor. El `.*` es obligatorio: un matcher como `mcp__memory` o `mcp__brave-search` contiene solo caracteres de coincidencia exacta, por lo que se compara como una cadena exacta y no coincide con ninguna herramienta.377Para hacer coincidir cada herramienta de un servidor, añade `.*` al prefijo del servidor. El `.*` es obligatorio: un matcher como `mcp__memory` o `mcp__brave-search` contiene solo caracteres de coincidencia exacta, así que se compara como una cadena exacta y no coincide con ninguna herramienta.

376 378 

377* `mcp__memory__.*` coincide con todas las herramientas del servidor `memory`379* `mcp__memory__.*` coincide con todas las herramientas del servidor `memory`

378* `mcp__brave-search__.*` coincide con todas las herramientas de un servidor cuyo nombre contiene un guión380* `mcp__brave-search__.*` coincide con todas las herramientas de un servidor cuyo nombre contiene un guión

379* `mcp__.*__write.*` coincide con cualquier herramienta cuyo nombre comienza con `write` de cualquier servidor381* `mcp__.*__write.*` coincide con cualquier herramienta cuyo nombre comienza con `write` de cualquier servidor

380 382 

381Las herramientas de un [servidor MCP incluido en plugin](/docs/es/mcp#plugin-provided-mcp-servers) utilizan un segmento de servidor con alcance que incluye el nombre del plugin: `mcp__plugin_<plugin-name>_<server-name>__<tool>`. Un matcher escrito contra la clave del servidor desnuda nunca se activa para estas herramientas. Para un plugin llamado `my-plugin` que incluye un servidor bajo la clave `db`, una herramienta `query` aparece como `mcp__plugin_my-plugin_db__query`, por lo que el matcher para cada herramienta de ese servidor es `mcp__plugin_my-plugin_db__.*`. Utiliza el mismo nombre de herramienta con alcance en el campo [`if`](#common-fields) de un manejador. Consulta [Servidores MCP incluidos en plugin](/docs/es/mcp#plugin-provided-mcp-servers) para saber cómo se construye el nombre con alcance.383Las herramientas de un [servidor MCP incluido en plugin](/docs/es/mcp#plugin-provided-mcp-servers) utilizan un segmento de servidor con alcance que incluye el nombre del plugin: `mcp__plugin_<plugin-name>_<server-name>__<tool>`. Un matcher escrito contra la clave del servidor desnuda nunca se activa para estas herramientas. Para un plugin llamado `my-plugin` que incluye un servidor bajo la clave `db`, una herramienta `query` aparece como `mcp__plugin_my-plugin_db__query`, así que el matcher para cada herramienta de ese servidor es `mcp__plugin_my-plugin_db__.*`. Utiliza el mismo nombre de herramienta con alcance en el campo [`if`](#common-fields) de un manejador. Consulta [Servidores MCP proporcionados por plugin](/docs/es/mcp#plugin-provided-mcp-servers) para saber cómo se construye el nombre con alcance.

382 384 

383Este ejemplo registra todas las operaciones del servidor de memoria y valida operaciones de escritura de cualquier servidor MCP:385Este ejemplo registra todas las operaciones del servidor de memoria y valida operaciones de escritura de cualquier servidor MCP:

384 386 


413 Campos de manejador de hook415 Campos de manejador de hook

414</h3>416</h3>

415 417 

416Cada objeto en el array `hooks` interno es un manejador de hook: el comando de shell, punto final HTTP, herramienta MCP, prompt LLM o agente que se ejecuta cuando el matcher coincide. Hay cinco tipos:418Cada 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:

417 419 

418* **[Hooks de comando](#command-hook-fields)** (`type: "command"`): ejecutan un comando de shell. Tu script recibe la [entrada JSON](#hook-input-and-output) del evento en stdin y comunica resultados de vuelta a través de códigos de salida y stdout.420* **[Hooks de comando](#command-hook-fields)** (`type: "command"`): ejecutan un comando shell. Tu script recibe la [entrada JSON](#hook-input-and-output) del evento en stdin y comunica resultados de vuelta a través de códigos de salida y stdout.

419* **[Hooks HTTP](#http-hook-fields)** (`type: "http"`): envían la entrada JSON del evento como una solicitud HTTP POST a una URL. El punto final comunica resultados de vuelta a través del cuerpo de respuesta utilizando el mismo [formato de salida JSON](#json-output) que los hooks de comando.421* **[Hooks HTTP](#http-hook-fields)** (`type: "http"`): envían la entrada JSON del evento como una solicitud HTTP POST a una URL. El punto final comunica resultados de vuelta a través del cuerpo de respuesta utilizando el mismo [formato de salida JSON](#json-output) que los hooks de comando.

420* **[Hooks de herramienta MCP](#mcp-tool-hook-fields)** (`type: "mcp_tool"`): llaman a una herramienta en un [servidor MCP](/docs/es/mcp) configurado. La salida de texto de la herramienta se trata como stdout de hook de comando.422* **[Hooks de herramienta MCP](#mcp-tool-hook-fields)** (`type: "mcp_tool"`): llaman a una herramienta en un [servidor MCP](/docs/es/mcp) configurado. La salida de texto de la herramienta se trata como stdout de hook de comando.

421* **[Hooks de prompt](#prompt-and-agent-hook-fields)** (`type: "prompt"`): envían un prompt a un modelo Claude para evaluación de un solo turno. El modelo devuelve su decisión como JSON. Consulta [Hooks basados en prompt](#prompt-based-hooks).423* **[Hooks de prompt](#prompt-and-agent-hook-fields)** (`type: "prompt"`): envían un prompt a un modelo Claude para evaluación de un solo turno. El modelo devuelve su decisión como JSON. Consulta [Hooks basados en prompt](#prompt-based-hooks).


425 427 

426Los manejadores se ejecutan en el directorio actual con el entorno de Claude Code. Si el directorio actual ya no existe, por ejemplo un worktree o directorio temporal que otro shell eliminó a mitad de sesión, Claude Code ejecuta hooks de comando desde el primero de estos que aún existe: el directorio en el que comenzó la sesión, la raíz del proyecto, tu directorio de inicio o el directorio temporal del sistema. Claude Code registra una advertencia nombrando el directorio de respaldo en el [registro de depuración](#debug-hooks).428Los manejadores se ejecutan en el directorio actual con el entorno de Claude Code. Si el directorio actual ya no existe, por ejemplo un worktree o directorio temporal que otro shell eliminó a mitad de sesión, Claude Code ejecuta hooks de comando desde el primero de estos que aún existe: el directorio en el que comenzó la sesión, la raíz del proyecto, tu directorio de inicio o el directorio temporal del sistema. Claude Code registra una advertencia nombrando el directorio de respaldo en el [registro de depuración](#debug-hooks).

427 429 

428La variable de entorno `$CLAUDE_CODE_REMOTE` es `"true"` en entornos web remotos y no está establecida en la CLI local. Claude Code v2.1.199 y posterior establece [`$CLAUDE_CODE_BRIDGE_SESSION_ID`](/docs/es/env-vars) en el ID de sesión de [Control Remoto](/docs/es/remote-control) mientras la sesión local tiene una conexión activa de Control Remoto.430La variable de entorno `$CLAUDE_CODE_REMOTE` es `"true"` en entornos web remotos y no está establecida en la CLI local. Claude Code v2.1.199 y posterior establece [`$CLAUDE_CODE_BRIDGE_SESSION_ID`](/docs/es/env-vars) en el ID de sesión de [Remote Control](/docs/es/remote-control) mientras la sesión local tiene una conexión activa de Remote Control.

429 431 

430<h4 id="common-fields">432<h4 id="common-fields">

431 Campos comunes433 Campos comunes


436| Campo | Requerido | Descripción |438| Campo | Requerido | Descripción |

437| :- | :- | :- |439| :- | :- | :- |

438| `type` | sí | `"command"`, `"http"`, `"mcp_tool"`, `"prompt"` o `"agent"` |440| `type` | sí | `"command"`, `"http"`, `"mcp_tool"`, `"prompt"` o `"agent"` |

439| `if` | no | Sintaxis de regla de permisos para filtrar cuándo se ejecuta este hook, como `"Bash(git *)"` o `"Edit(*.ts)"`. El comando de hook solo se ejecuta si la llamada de herramienta coincide con el patrón. Consulta la tabla [Bash matching](#bash-if-matching) a continuación para saber cómo los patrones de Bash se evalúan contra subcomandos, `$()` y backticks. Solo se evalúa en eventos de herramienta: `PreToolUse`, `PostToolUse`, `PostToolUseFailure`, `PermissionRequest` y `PermissionDenied`. En otros eventos, un hook con `if` establecido nunca se ejecuta. Utiliza la misma sintaxis que [reglas de permisos](/docs/es/permissions) |441| `if` | no | Sintaxis de regla de permisos para filtrar cuándo se ejecuta este hook, como `"Bash(git *)"` o `"Edit(*.ts)"`. El comando de hook solo se ejecuta si la llamada de herramienta coincide con el patrón. Consulta la [tabla de coincidencia de Bash](#bash-if-matching) a continuación para saber cómo los patrones de Bash se evalúan contra subcomandos, `$()` y backticks. Solo se evalúa en eventos de herramienta: `PreToolUse`, `PostToolUse`, `PostToolUseFailure`, `PermissionRequest` y `PermissionDenied`. En otros eventos, un hook con `if` establecido nunca se ejecuta. Utiliza la misma sintaxis que [reglas de permisos](/docs/es/permissions) |

440| `timeout` | no | Segundos antes de cancelar. Claude Code no lo aplica en un hook de comando que ejecutas con [`async: true`](#run-hooks-in-the-background). Valores por defecto: 600 para `command`, `http` y `mcp_tool`; 30 para `prompt`; 60 para `agent`. Claude Code reduce el valor por defecto de `command`, `http` y `mcp_tool` a 30 en [`UserPromptSubmit`](#userpromptsubmit), [`PreModelSwitch`](#premodelswitch) y [`PostModelSwitch`](#postmodelswitch), y a 10 en [`MessageDisplay`](#messagedisplay). Los hooks de [`SessionEnd`](#sessionend) comparten un presupuesto de 1.5 segundos; si tu configuración establece un `timeout` por hook más largo, Claude Code aumenta el presupuesto para que coincida, hasta 60 segundos |442| `timeout` | no | Segundos antes de cancelar. Claude Code no lo aplica en un hook de comando que ejecutes con [`async: true`](#run-hooks-in-the-background). Valores por defecto: 600 para `command`, `http` y `mcp_tool`; 30 para `prompt`; 60 para `agent`. Claude Code reduce el valor por defecto de `command`, `http` y `mcp_tool` a 30 en [`UserPromptSubmit`](#userpromptsubmit), [`PreModelSwitch`](#premodelswitch) y [`PostModelSwitch`](#postmodelswitch), y a 10 en [`MessageDisplay`](#messagedisplay). Los hooks de [`SessionEnd`](#sessionend) comparten un presupuesto de 1.5 segundos; si tu configuración establece un `timeout` por hook más largo, Claude Code aumenta el presupuesto para que coincida, hasta 60 segundos |

441| `statusMessage` | no | Mensaje de spinner personalizado mostrado mientras se ejecuta el hook |443| `statusMessage` | no | Mensaje de spinner personalizado mostrado mientras se ejecuta el hook |

442| `once` | no | Si es `true`, Claude Code elimina el hook después de su primera ejecución exitosa. Una ejecución que falla, bloquea con código de salida 2 o agota el tiempo de espera deja el hook en su lugar, por lo que se ejecuta de nuevo en el siguiente evento coincidente. Solo se respeta para hooks declarados en [frontmatter de skill](#hooks-in-skills-and-agents); se ignora en archivos de configuración y frontmatter de agente |444| `once` | no | Si es `true`, Claude Code elimina el hook después de su primera ejecución exitosa. Una ejecución que falla, bloquea con código de salida 2 o agota el tiempo de espera deja el hook en su lugar, así que se ejecuta de nuevo en el siguiente evento coincidente. Solo se respeta para hooks declarados en [frontmatter de skill](#hooks-in-skills-and-agents); se ignora en archivos de configuración y frontmatter de agente |

443 445 

444El campo `if` contiene exactamente una regla de permisos. No hay sintaxis `&&`, `||` o de lista para combinar reglas; para aplicar múltiples condiciones, define un manejador de hook separado para cada una.446El campo `if` contiene exactamente una regla de permisos. No hay sintaxis `&&`, `||` o de lista para combinar reglas; para aplicar múltiples condiciones, define un manejador de hook separado para cada una.

445 447 

446En una condición `if` para una herramienta de archivo, un patrón de directorio de un solo segmento como `"Edit(src/**)"` coincide solo con el directorio `src` en el directorio de trabajo y los archivos bajo él. Para coincidir con un directorio llamado `src` a cualquier profundidad, escribe `"Edit(**/src/**)"`. Antes de v2.1.214, `"Edit(src/**)"` coincidía con un directorio llamado `src` a cualquier profundidad bajo el directorio de trabajo.448En una condición `if` para una herramienta de archivo, un patrón de directorio de un solo segmento como `"Edit(src/**)"` coincide solo con el directorio `src` en el directorio de trabajo y los archivos bajo él. Para hacer coincidir un directorio llamado `src` a cualquier profundidad, escribe `"Edit(**/src/**)"`. Antes de v2.1.214, `"Edit(src/**)"` coincidía con un directorio llamado `src` a cualquier profundidad bajo el directorio de trabajo.

447 449 

448<span id="bash-if-matching" />Para patrones de Bash, si tu comando de hook se ejecuta depende de la forma del patrón y del comando de Bash que Claude está invocando. Las asignaciones `VAR=value` iniciales se eliminan antes de hacer coincidir.450<span id="bash-if-matching" />Para patrones de Bash, si tu comando de hook se ejecuta depende de la forma del patrón y del comando de Bash que Claude está invocando. Las asignaciones `VAR=value` iniciales se eliminan antes de hacer coincidir.

449 451 

450| Patrón `if` | Comando de Bash | ¿Se ejecuta el hook? | Por qué |452| patrón `if` | comando Bash | ¿Se ejecuta el hook? | Por qué |

451| :- | :- | :- | :- |453| :- | :- | :- | :- |

452| `Bash(git *)` | `FOO=bar git push` | sí | las asignaciones iniciales se eliminan; `git push` coincide |454| `Bash(git *)` | `FOO=bar git push` | sí | las asignaciones iniciales se eliminan; `git push` coincide |

453| `Bash(git *)` | `npm test && git push` | sí | cada subcomando se verifica; `git push` coincide |455| `Bash(git *)` | `npm test && git push` | sí | cada subcomando se verifica; `git push` coincide |

454| `Bash(rm *)` | `echo $(rm -rf /)` | sí | los comandos dentro de `$()` y backticks se verifican; `rm -rf /` coincide |456| `Bash(rm *)` | `echo $(rm -rf /)` | sí | los comandos dentro de `$()` y backticks se verifican; `rm -rf /` coincide |

455| `Bash(rm *)` | `echo $(date)` | no | ningún subcomando coincide con `rm *` |457| `Bash(rm *)` | `echo $(date)` | no | ningún subcomando coincide con `rm *` |

456| `Bash(cat *)` | `echo before $(date) after` | no | una sustitución puede estar en cualquier posición de argumento, por lo que se verifican el comando completo y `date`; ninguno coincide con `cat *` |

457| `Bash(git *)` | `$TOOL git push` | sí | Claude Code no puede saber a qué se expande el nombre del comando, por lo que ejecuta el hook |

458| `Bash(git push *)` | `echo $(date)` | sí | los patrones que especifican más que el nombre del comando ejecutan el hook de todas formas en `$()`, backticks o `$VAR` |458| `Bash(git push *)` | `echo $(date)` | sí | los patrones que especifican más que el nombre del comando ejecutan el hook de todas formas en `$()`, backticks o `$VAR` |

459 459 

460Cuando Claude Code no puede determinar qué comandos ejecuta la entrada de Bash, ejecuta tu hook independientemente del patrón. Porque el filtro `if` es de mejor esfuerzo, utiliza el [sistema de permisos](/docs/es/permissions) en lugar de un hook para aplicar una autorización o denegación dura.460Cuando Claude Code no puede determinar qué comandos ejecuta la entrada de Bash, ejecuta tu hook independientemente del patrón. Debido a que el filtro `if` es de mejor esfuerzo, utiliza el [sistema de permisos](/docs/es/permissions) en lugar de un hook para aplicar una autorización o denegación dura.

461 461 

462<h4 id="command-hook-fields">462<h4 id="command-hook-fields">

463 Campos de hook de comando463 Campos de hook de comando


467 467 

468| Campo | Requerido | Descripción |468| Campo | Requerido | Descripción |

469| :- | :- | :- |469| :- | :- | :- |

470| `command` | sí | Comando de shell a ejecutar. Con `args`, el ejecutable a generar directamente. Consulta [Forma exec y forma shell](#exec-form-and-shell-form) |470| `command` | sí | Comando shell a ejecutar. Con `args`, el ejecutable a generar directamente. Consulta [Forma exec y forma shell](#exec-form-and-shell-form) |

471| `args` | no | Lista de argumentos. Cuando está presente, `command` se resuelve como un ejecutable y se genera directamente con `args` como el vector de argumentos, sin shell involucrado. Consulta [Forma exec y forma shell](#exec-form-and-shell-form) |471| `args` | no | Lista de argumentos. Cuando está presente, `command` se resuelve como un ejecutable y se genera directamente con `args` como el vector de argumentos, sin shell involucrado. Consulta [Forma exec y forma shell](#exec-form-and-shell-form) |

472| `async` | no | Si es `true`, se ejecuta en segundo plano sin bloquear. Consulta [Ejecutar hooks en segundo plano](#run-hooks-in-the-background) |472| `async` | no | Si es `true`, se ejecuta en segundo plano sin bloquear. Consulta [Ejecutar hooks en segundo plano](#run-hooks-in-the-background) |

473| `asyncRewake` | no | Si es `true`, se ejecuta en segundo plano y despierta a Claude en código de salida 2. El stderr del hook, o stdout si stderr está vacío, se muestra a Claude como un [recordatorio del sistema](/docs/es/glossary#system-reminder) para que pueda reaccionar a un fallo de fondo de larga duración |473| `asyncRewake` | no | Si es `true`, se ejecuta en segundo plano y despierta a Claude en código de salida 2. El stderr del hook, o stdout si stderr está vacío, se muestra a Claude como un [recordatorio del sistema](/docs/es/glossary#system-reminder) para que pueda reaccionar a un fallo de fondo de larga duración |


479 Forma exec y forma shell479 Forma exec y forma shell

480</h5>480</h5>

481 481 

482Un hook de comando se ejecuta como forma exec cuando `args` está establecido, y forma shell cuando `args` se omite. Establece `args` siempre que el hook haga referencia a un [marcador de posición de ruta](#reference-scripts-by-path), ya que cada elemento se pasa como un argumento. Omite `args` cuando necesites características de shell como pipes o `&&`, o cuando ninguna preocupación se aplique.482Un hook de comando se ejecuta como forma exec cuando `args` está establecido, y forma shell cuando `args` se omite. Establece `args` siempre que el hook haga referencia a un [marcador de posición de ruta](#reference-scripts-by-path), ya que cada elemento se pasa como un argumento sin comillas. Omite `args` cuando necesites características de shell como pipes o `&&`, o cuando ninguna preocupación se aplique.

483 483 

484**Forma exec** se ejecuta cuando `args` está presente. Claude Code resuelve `command` como un ejecutable en `PATH` y lo genera directamente con `args` como el vector de argumentos. No hay shell, por lo que cada elemento de `args` es exactamente un argumento tal como está escrito, y los marcadores de posición de ruta como `${CLAUDE_PLUGIN_ROOT}` se sustituyen en `command` y en cada elemento de `args` como cadenas simples. Los caracteres especiales como apóstrofes, `$` y backticks pasan sin cambios porque no hay shell para interpretarlos. No ocurre tokenización de shell en ninguna plataforma.484**Forma exec** se ejecuta cuando `args` está presente. Claude Code resuelve `command` como un ejecutable en `PATH` y lo genera directamente con `args` como el vector de argumentos. No hay shell, así que cada elemento de `args` es un argumento exactamente como está escrito, sin comillas, y los marcadores de posición de ruta como `${CLAUDE_PLUGIN_ROOT}` se sustituyen en `command` y en cada elemento de `args` como cadenas simples. Los caracteres especiales como apóstrofes, `$` y backticks pasan sin cambios porque no hay shell para interpretarlos. No ocurre tokenización de shell en ninguna plataforma.

485 485 

486**Forma shell** se ejecuta cuando `args` se omite. La cadena `command` se pasa a un shell: `sh -c` en macOS y Linux, Git Bash en Windows, o PowerShell cuando Git Bash no está instalado. Establece el campo `shell` para elegir explícitamente. El shell tokeniza la cadena, expande variables e interpreta pipes, `&&`, redirecciones y globs.486**Forma shell** se ejecuta cuando `args` está ausente. La cadena `command` se pasa a un shell: `sh -c` en macOS y Linux, Git Bash en Windows, o PowerShell cuando Git Bash no está instalado. Establece el campo `shell` para elegir explícitamente. El shell tokeniza la cadena, expande variables e interpreta pipes, `&&`, redirecciones y globs.

487 487 

488<Note>488<Note>

489 En Windows, la forma exec requiere que `command` se resuelva en un ejecutable real como `.exe`. Los shims `.cmd` y `.bat` que npm, npx, eslint y otras herramientas instalan en `node_modules/.bin` no son ejecutables y no se pueden generar sin un shell. Para ejecutarlos en forma exec, invoca el script subyacente con `node` directamente, por ejemplo `"command": "node", "args": ["${CLAUDE_PLUGIN_ROOT}/node_modules/eslint/bin/eslint.js"]`. El patrón `node` más ruta de script funciona en cada plataforma porque `node.exe` es un binario real. Para ejecutar un shim `.cmd` o `.bat` por nombre, usa forma shell.489 En Windows, la forma exec requiere que `command` se resuelva en un ejecutable real como `.exe`. Los shims `.cmd` y `.bat` que npm, npx, eslint y otras herramientas instalan en `node_modules/.bin` no son ejecutables y no se pueden generar sin un shell. Para ejecutarlos en forma exec, invoca el script subyacente con `node` directamente, por ejemplo `"command": "node", "args": ["${CLAUDE_PLUGIN_ROOT}/node_modules/eslint/bin/eslint.js"]`. El patrón `node` más ruta de script funciona en cada plataforma porque `node.exe` es un binario real. Para ejecutar un shim `.cmd` o `.bat` por nombre, usa forma shell.


508}508}

509```509```

510 510 

511Ambas formas soportan los mismos [marcadores de posición de ruta](#reference-scripts-by-path), y ambas los exportan como variables de entorno `CLAUDE_PROJECT_DIR`, `CLAUDE_PLUGIN_ROOT` y `CLAUDE_PLUGIN_DATA` en el proceso generado, por lo que un script puede leer `process.env.CLAUDE_PLUGIN_ROOT` independientemente de cómo se haya lanzado.511Ambas formas soportan los mismos [marcadores de posición de ruta](#reference-scripts-by-path), y ambas los exportan como las variables de entorno `CLAUDE_PROJECT_DIR`, `CLAUDE_PLUGIN_ROOT` y `CLAUDE_PLUGIN_DATA` en el proceso generado, así que un script puede leer `process.env.CLAUDE_PLUGIN_ROOT` independientemente de cómo fue lanzado.

512 512 

513Los hooks de plugin además sustituyen valores [`${user_config.*}`](/docs/es/plugins/manifest-reference#user-configuration), solo en forma exec: el valor se sustituye en `command` y en cada elemento de `args` como una cadena simple, por lo que ningún shell lo re-analiza.513Los hooks de plugin además sustituyen valores [`${user_config.*}`](/docs/es/plugins/manifest-reference#user-configuration), solo en forma exec: el valor se sustituye en `command` y en cada elemento de `args` como una cadena simple, así que ningún shell lo re-analiza.

514 514 

515Un hook de plugin en forma shell cuyo `command` hace referencia a `${user_config.*}` falla con un [error](/docs/es/errors#plugin-command-references-user-config) en lugar de ejecutarse. Para usar un valor de opción de un hook en forma shell, lee la variable de entorno `$CLAUDE_PLUGIN_OPTION_<KEY>`, como `$CLAUDE_PLUGIN_OPTION_WEBHOOK_URL` para una opción `webhook_url`, o establece `args` para cambiar el hook a forma exec. Antes de v2.1.207, los comandos de hook de plugin en forma shell también sustituían `${user_config.*}`.515Un hook de plugin en forma shell cuyo `command` hace referencia a `${user_config.*}` falla con un [error](/docs/es/errors#plugin-command-references-user-config) en lugar de ejecutarse. Para usar un valor de opción de un hook en forma shell, lee la variable de entorno `$CLAUDE_PLUGIN_OPTION_<KEY>`, como `$CLAUDE_PLUGIN_OPTION_WEBHOOK_URL` para una opción `webhook_url`, o establece `args` para cambiar el hook a forma exec. Antes de v2.1.207, los comandos de hook de plugin en forma shell también sustituían `${user_config.*}`.

516 516 

517<Note>517<Note>

518 En forma exec, `command` es solo el nombre o ruta del ejecutable. Si `command` es un nombre desnudo sin separador de ruta y contiene espacios junto con `args`, Claude Code registra una advertencia porque la generación fallará: no hay un ejecutable llamado `node script.js`. Mueve los tokens adicionales a `args`. Las rutas absolutas con espacios, como `C:\Program Files\nodejs\node.exe`, son un ejecutable válido único y no activan la advertencia.518 En forma exec, `command` es solo el nombre o ruta del ejecutable. Si `command` es un nombre desnudo sin separador de ruta y contiene espacios junto con `args`, Claude Code registra una advertencia porque la generación fallará: no hay un ejecutable llamado `node script.js`. Mueve los tokens extra a `args`. Las rutas absolutas con espacios, como `C:\Program Files\nodejs\node.exe`, son un ejecutable válido único y no activan la advertencia.

519</Note>519</Note>

520 520 

521<h4 id="http-hook-fields">521<h4 id="http-hook-fields">


530| `headers` | no | Encabezados HTTP adicionales como pares clave-valor. Los valores soportan interpolación de variables de entorno usando sintaxis `$VAR_NAME` o `${VAR_NAME}`. Solo se resuelven las variables listadas en `allowedEnvVars` |530| `headers` | no | Encabezados HTTP adicionales como pares clave-valor. Los valores soportan interpolación de variables de entorno usando sintaxis `$VAR_NAME` o `${VAR_NAME}`. Solo se resuelven las variables listadas en `allowedEnvVars` |

531| `allowedEnvVars` | no | Lista de nombres de variables de entorno que pueden interpolarse en valores de encabezado. Las referencias a variables no listadas se reemplazan con cadenas vacías. Requerido para que funcione cualquier interpolación de variable de entorno |531| `allowedEnvVars` | no | Lista de nombres de variables de entorno que pueden interpolarse en valores de encabezado. Las referencias a variables no listadas se reemplazan con cadenas vacías. Requerido para que funcione cualquier interpolación de variable de entorno |

532 532 

533Claude Code envía la [entrada JSON](#hook-input-and-output) del hook como el cuerpo de solicitud POST con `Content-Type: application/json`. El cuerpo de respuesta utiliza el mismo [formato de salida JSON](#json-output) que los hooks de comando.533Claude Code envía la [entrada JSON](#hook-input-and-output) del hook como el cuerpo de la solicitud POST con `Content-Type: application/json`. El cuerpo de respuesta utiliza el mismo [formato de salida JSON](#json-output) que los hooks de comando.

534 534 

535El manejo de errores difiere de los hooks de comando; consulta [Manejo de respuesta HTTP](#http-response-handling).535El manejo de errores difiere de los hooks de comando; consulta [Manejo de respuesta HTTP](#http-response-handling).

536 536 


603 Cuando el servidor aún se está conectando603 Cuando el servidor aún se está conectando

604</h5>604</h5>

605 605 

606En eventos donde un hook puede bloquear o cambiar el resultado, como `PreToolUse` o `Stop`, Claude Code espera a que se conecte un servidor antes de llamar a la herramienta, durante como máximo [`MCP_TIMEOUT`](/docs/es/env-vars) y dentro del propio [`timeout`](#common-fields) del hook. En eventos observacionales, como `Notification` o `SessionEnd`, no espera.606En eventos donde un hook puede bloquear o cambiar el resultado, como `PreToolUse` o `Stop`, Claude Code espera a que un servidor se conecte antes de llamar a la herramienta, durante como máximo [`MCP_TIMEOUT`](/docs/es/env-vars) y dentro del [`timeout`](#common-fields) del propio hook. En eventos observacionales, como `Notification` o `SessionEnd`, no espera.

607 607 

608Un servidor que muestra el estado [`cached`](/docs/es/mcp#server-status-detail) se conecta cuando el hook llama a su herramienta. Si el servidor no está conectado en ese punto, el hook produce un error sin bloqueo y la ejecución continúa. El hook nunca inicia un flujo OAuth, por lo que [autentica el servidor desde `/mcp`](/docs/es/mcp#authenticate-with-remote-mcp-servers) primero.608Un servidor que muestra el estado [`cached`](/docs/es/mcp#server-status-detail) se conecta cuando el hook llama a su herramienta. Si el servidor no está conectado en ese punto, el hook produce un error sin bloqueo y la ejecución continúa. El hook nunca inicia un flujo OAuth, así que [autentica el servidor desde `/mcp`](/docs/es/mcp#authenticate-with-remote-mcp-servers) primero.

609 609 

610<h5 id="events-that-fire-before-mcp-servers-are-available">610<h5 id="events-that-fire-before-mcp-servers-are-available">

611 Eventos que se activan antes de que los servidores MCP estén disponibles611 Eventos que se activan antes de que los servidores MCP estén disponibles

612</h5>612</h5>

613 613 

614`SessionStart` al lanzar, incluso con `--continue` o `--resume`, y cada evento `Setup` se activan antes de que los servidores MCP de la sesión estén disponibles para los hooks. Claude Code omite sus hooks `mcp_tool` sin llamar a la herramienta, y el [registro de depuración](#debug-hooks) registra `mcp_tool hooks are not available for the 'SessionStart' hook event (no MCP client context)`, o el mismo mensaje nombrando `Setup`. Cuando `SessionStart` se activa de nuevo más tarde en la sesión, después de `/clear` o una compactación, sus hooks `mcp_tool` se ejecutan. Para cualquier cosa que la sesión necesite al lanzar, usa un hook `type: "command"` en `SessionStart` en su lugar.614`SessionStart` al lanzar, incluyendo con `--continue` o `--resume`, y cada evento `Setup` se activan antes de que los servidores MCP de la sesión estén disponibles para hooks. Claude Code omite sus hooks `mcp_tool` sin llamar a la herramienta, y el [registro de depuración](#debug-hooks) registra `mcp_tool hooks are not available for the 'SessionStart' hook event (no MCP client context)`, o el mismo mensaje nombrando `Setup`. Cuando `SessionStart` se activa de nuevo más tarde en la sesión, después de `/clear` o una compactación, sus hooks `mcp_tool` se ejecutan. Para cualquier cosa que la sesión necesite al lanzar, usa un hook `type: "command"` en `SessionStart` en su lugar.

615 615 

616<h4 id="prompt-and-agent-hook-fields">616<h4 id="prompt-and-agent-hook-fields">

617 Campos de hook de prompt y agente617 Campos de hook de prompt y agente


625| `model` | no | Modelo a usar para evaluación. Por defecto es el modelo que Claude Code usa para [funcionalidad de fondo](/docs/es/costs#background-token-usage) |625| `model` | no | Modelo a usar para evaluación. Por defecto es el modelo que Claude Code usa para [funcionalidad de fondo](/docs/es/costs#background-token-usage) |

626 626 

627<h3 id="reference-scripts-by-path">627<h3 id="reference-scripts-by-path">

628 Referencia de scripts por ruta628 Hacer referencia a scripts por ruta

629</h3>629</h3>

630 630 

631Utiliza estos marcadores de posición para hacer referencia a scripts de hook relativos a la raíz del proyecto o plugin, independientemente del directorio de trabajo cuando se ejecuta el hook:631Utiliza estos marcadores de posición para hacer referencia a scripts de hook relativos a la raíz del proyecto o plugin, independientemente del directorio de trabajo cuando se ejecuta el hook:

632 632 

633* `${CLAUDE_PROJECT_DIR}`: la raíz del proyecto donde comenzó la sesión. Claude Code también establece esta variable en el entorno de [servidores MCP stdio](/docs/es/mcp#option-3-add-a-local-stdio-server) y servidores LSP de plugin.633* `${CLAUDE_PROJECT_DIR}`: la raíz del proyecto donde comenzó la sesión. Claude Code también establece esta variable en el entorno de [servidores MCP stdio](/docs/es/mcp#option-3-add-a-local-stdio-server) y servidores LSP de plugin.

634* `${CLAUDE_PLUGIN_ROOT}`: el directorio de instalación del plugin, para scripts incluidos con un [plugin](/docs/es/plugins/overview). Consulta [variables de entorno de plugin](/docs/es/plugins/manifest-reference#environment-variables) para saber cómo se comporta la ruta entre actualizaciones.634* `${CLAUDE_PLUGIN_ROOT}`: el directorio de instalación del plugin, para scripts incluidos con un [plugin](/docs/es/plugins/overview). Consulta [variables de entorno de plugin](/docs/es/plugins/manifest-reference#environment-variables) para saber cómo se comporta la ruta entre actualizaciones.

635* `${CLAUDE_PLUGIN_DATA}`: el [directorio de datos persistentes](/docs/es/plugins/components#path-variables-and-persistent-data) del plugin, para dependencias y estado que deben sobrevivir a las actualizaciones del plugin.635* `${CLAUDE_PLUGIN_DATA}`: el [directorio de datos persistentes](/docs/es/plugins/components#path-variables-and-persistent-data) del plugin, para dependencias y estado que deben sobrevivir a actualizaciones de plugin.

636 636 

637<Note>637<Note>

638 **Los worktrees son diferentes.** Si Claude entra en un [worktree](/docs/es/worktrees) durante la sesión, Claude Code mantiene `${CLAUDE_PROJECT_DIR}` donde estaba y pasa la ruta del worktree a tus hooks de una manera diferente:638 **Los worktrees son diferentes.** Si Claude entra en un [worktree](/docs/es/worktrees) durante la sesión, Claude Code mantiene `${CLAUDE_PROJECT_DIR}` donde estaba y pasa la ruta del worktree a tus hooks de una manera diferente:

639 639 

640 * **`${CLAUDE_PROJECT_DIR}` se queda en su lugar**: aún apunta a la raíz del proyecto donde comenzó la sesión, por lo que un comando como `${CLAUDE_PROJECT_DIR}/.claude/hooks/check-style.sh` aún ejecuta el script en el checkout principal.640 * **`${CLAUDE_PROJECT_DIR}` se queda en su lugar**: aún apunta a la raíz del proyecto donde comenzó la sesión, así que un comando como `${CLAUDE_PROJECT_DIR}/.claude/hooks/check-style.sh` aún ejecuta el script en el checkout principal.

641 * **`cwd` sigue a Claude**: el campo `cwd` en la [entrada JSON](#common-input-fields) del hook es la raíz del worktree después de que Claude entra en un worktree, y el nuevo directorio después de que Claude ejecuta `cd`. Léelo cuando un hook necesite saber en qué directorio está trabajando Claude.641 * **`cwd` sigue a Claude**: el campo `cwd` en la [entrada JSON](#common-input-fields) del hook es la raíz del worktree después de que Claude entra en un worktree, y el nuevo directorio después de que Claude ejecuta `cd`. Léelo cuando un hook necesite saber en qué directorio está trabajando Claude.

642</Note>642</Note>

643 643 


704Además de archivos de configuración y plugins, los hooks pueden definirse directamente en [skills](/docs/es/skills) y [subagentes](/docs/es/sub-agents) usando frontmatter, en el mismo formato de configuración que los hooks basados en configuración. Cuánto tiempo Claude Code los mantiene registrados depende del componente:704Además de archivos de configuración y plugins, los hooks pueden definirse directamente en [skills](/docs/es/skills) y [subagentes](/docs/es/sub-agents) usando frontmatter, en el mismo formato de configuración que los hooks basados en configuración. Cuánto tiempo Claude Code los mantiene registrados depende del componente:

705 705 

706* **Hooks de subagente**: Claude Code los ejecuta solo mientras ese subagente se está ejecutando y los elimina cuando termina. Claude Code convierte un hook `Stop` aquí a `SubagentStop`, el evento que se activa cuando un subagente se completa.706* **Hooks de subagente**: Claude Code los ejecuta solo mientras ese subagente se está ejecutando y los elimina cuando termina. Claude Code convierte un hook `Stop` aquí a `SubagentStop`, el evento que se activa cuando un subagente se completa.

707* **Hooks de skill**: Claude Code los registra cuando tú o Claude invocas la skill y los mantiene ejecutándose durante el resto de la sesión, en turnos después del turno propio de la skill también. Para que Claude Code elimine un hook después de su primera ejecución exitosa en su lugar, establece [`once: true`](#common-fields) en él.707* **Hooks de skill**: Claude Code los registra cuando tú o Claude invocas la skill y los mantiene ejecutándose durante el resto de la sesión, en turnos después del turno de la propia skill también. Para que Claude Code elimine un hook después de su primera ejecución exitosa en su lugar, establece [`once: true`](#common-fields) en él.

708 708 

709Esta skill define un hook `PreToolUse` que ejecuta un script de validación de seguridad antes de cada comando `Bash`:709Esta skill define un hook `PreToolUse` que ejecuta un script de validación de seguridad antes de cada comando `Bash`:

710 710 


723 723 

724Los subagentes utilizan el mismo formato en su frontmatter YAML.724Los subagentes utilizan el mismo formato en su frontmatter YAML.

725 725 

726Los hooks de frontmatter en una skill de proyecto siguen la misma [regla de confianza de espacio de trabajo que los hooks en archivos de configuración](#workspace-trust). Claude Code los registra cuando tú o Claude invocas la skill, incluso en una ejecución `-p` en una carpeta que no has confiado.726Los hooks de frontmatter en una skill de proyecto siguen la misma [regla de confianza de espacio de trabajo que los hooks en archivos de configuración](#workspace-trust). Claude Code los registra cuando tú o Claude invocas la skill, incluyendo en una ejecución `-p` en una carpeta que no has confiado.

727 727 

728Los hooks de frontmatter en un subagente de proyecto se ejecutan solo después de que aceptes el [diálogo de confianza de espacio de trabajo](/docs/es/permissions#project-allow-rules-and-workspace-trust) para la carpeta de la que proviene el archivo del agente. Una sesión `-p` no cuenta como aceptarlo. [Lo que se ejecuta antes de confiar en una carpeta](/docs/es/permissions#what-runs-before-you-trust-a-folder) compara esto con la regla del archivo de configuración, y la página de subagentes lista [qué alcances están exentos](/docs/es/sub-agents#hooks-in-subagent-frontmatter). Antes de v2.1.218, estos hooks podían ejecutarse desde carpetas que no habías confiado.728Los hooks de frontmatter en un subagente de proyecto se ejecutan solo después de que aceptes el [diálogo de confianza de espacio de trabajo](/docs/es/permissions#project-allow-rules-and-workspace-trust) para la carpeta de la que vino el archivo del agente. Una sesión `-p` no cuenta como aceptarlo. [Qué se ejecuta antes de confiar en una carpeta](/docs/es/permissions#what-runs-before-you-trust-a-folder) compara esto con la regla del archivo de configuración, y la página de subagentes enumera [qué alcances están exentos](/docs/es/sub-agents#hooks-in-subagent-frontmatter). Antes de v2.1.218, estos hooks podían ejecutarse desde carpetas que no habías confiado.

729 729 

730<h3 id="the-/hooks-menu">730<h3 id="the-/hooks-menu">

731 El menú `/hooks`731 El menú `/hooks`

732</h3>732</h3>

733 733 

734Escribe `/hooks` en Claude Code para abrir un navegador de solo lectura para tus hooks configurados. El menú muestra cada evento de hook con un recuento de hooks configurados, te permite profundizar en matchers y muestra los detalles completos de cada manejador de hook. Úsalo para verificar la configuración, comprobar desde qué archivo de configuración proviene un hook o inspeccionar el comando, prompt o URL de un hook.734Escribe `/hooks` en Claude Code para abrir un navegador de solo lectura para tus hooks configurados. El menú muestra cada evento de hook con un recuento de hooks configurados, te permite profundizar en matchers y muestra los detalles completos de cada manejador de hook. Úsalo para verificar la configuración, comprobar desde qué archivo de configuración vino un hook o inspeccionar el comando, prompt o URL de un hook.

735 735 

736El menú muestra los cinco tipos de hook: `command`, `prompt`, `agent`, `http` y `mcp_tool`. Cada hook está etiquetado con un prefijo `[type]` y una fuente que indica dónde se definió:736El menú muestra los cinco tipos de hook: `command`, `prompt`, `agent`, `http` y `mcp_tool`. Cada hook está etiquetado con un prefijo `[type]` y una fuente que indica dónde fue definido:

737 737 

738* `User Settings`: de `~/.claude/settings.json`738* `User Settings`: de `~/.claude/settings.json`

739* `Project Settings`: de `.claude/settings.json`739* `Project Settings`: de `.claude/settings.json`


741* `Plugin Hooks`: de `hooks/hooks.json` de un plugin741* `Plugin Hooks`: de `hooks/hooks.json` de un plugin

742* `Session Hooks`: registrado en memoria para la sesión actual742* `Session Hooks`: registrado en memoria para la sesión actual

743 743 

744Seleccionar un hook abre una vista de detalle mostrando su evento, matcher, tipo, archivo de origen y el comando, prompt o URL completo. El menú es de solo lectura: para añadir, modificar o eliminar hooks, edita el JSON de configuración directamente o pide a Claude que haga el cambio.744Seleccionar un hook abre una vista de detalle que muestra su evento, matcher, tipo, archivo de fuente y el comando, prompt o URL completo. El menú es de solo lectura: para añadir, modificar o eliminar hooks, edita el JSON de configuración directamente o pide a Claude que haga el cambio.

745 745 

746<h3 id="disable-or-remove-hooks">746<h3 id="disable-or-remove-hooks">

747 Deshabilitar o eliminar hooks747 Deshabilitar o eliminar hooks

748</h3>748</h3>

749 749 

750Para eliminar un hook, elimina su entrada del archivo JSON de configuración.750Para eliminar un hook, borra su entrada del archivo de configuración JSON.

751 751 

752Para deshabilitar temporalmente todos los hooks sin eliminarlos, establece `"disableAllHooks": true` en tu archivo de configuración. Claude Code lee el valor que queda después de que se aplica la [precedencia de configuración](/docs/es/settings#settings-precedence), por lo que un `"disableAllHooks": false` en `.claude/settings.json` de un proyecto anula un `true` en tu configuración de usuario. Para desactivar los hooks para una ejecución sin importar lo que diga la configuración del proyecto, pasa `--settings '{"disableAllHooks": true}'`, que tiene precedencia sobre la configuración de proyecto y local. No hay forma de deshabilitar un hook individual mientras lo mantienes en la configuración.752Para deshabilitar temporalmente todos los hooks sin eliminarlos, establece `"disableAllHooks": true` en tu archivo de configuración. Claude Code lee el valor que queda después de que se aplica la [precedencia de configuración](/docs/es/settings#settings-precedence), así que un `"disableAllHooks": false` en `.claude/settings.json` de un proyecto anula un `true` en tu configuración de usuario. Para desactivar hooks para una ejecución sin importar lo que diga la configuración del proyecto, pasa `--settings '{"disableAllHooks": true}'`, que tiene precedencia sobre la configuración de proyecto y local. No hay forma de deshabilitar un hook individual mientras lo mantienes en la configuración.

753 753 

754La configuración `disableAllHooks` respeta la jerarquía de configuración administrada. Si un administrador ha configurado hooks a través de la configuración de política administrada, `disableAllHooks` establecido en la configuración de usuario, proyecto o local no puede deshabilitar esos hooks administrados. Solo `disableAllHooks` establecido en el nivel de configuración administrada puede deshabilitar hooks administrados. Para el alcance completo de cada nivel, consulta [`disableAllHooks`](/docs/es/settings-reference#disableallhooks).754La configuración `disableAllHooks` respeta la jerarquía de configuración administrada. Si un administrador ha configurado hooks a través de configuración de política administrada, `disableAllHooks` establecido en configuración de usuario, proyecto o local no puede deshabilitar esos hooks administrados. Solo `disableAllHooks` establecido en el nivel de configuración administrada puede deshabilitar hooks administrados. Para el alcance completo de cada nivel, consulta [`disableAllHooks`](/docs/es/settings-reference#disableallhooks).

755 755 

756Las ediciones directas a hooks en archivos de configuración normalmente se recogen automáticamente por el observador de archivos.756Las ediciones directas a hooks en archivos de configuración normalmente son recogidas automáticamente por el observador de archivos.

757 757 

758<h2 id="hook-input-and-output">758<h2 id="hook-input-and-output">

759 Entrada y salida de hooks759 Entrada y salida de hooks


1938| :- | :- |1938| :- | :- |

1939| `permissionDecision` | `"allow"` omite el prompt de permiso, excepto para las [acciones que ningún modo auto-aprueba](/docs/es/permission-modes#actions-no-mode-auto-approves) y para `AskUserQuestion` y `ExitPlanMode`, que necesitan [`updatedInput` emparejado con él](#allow-with-updatedinput). `"deny"` evita la llamada de herramienta. `"ask"` solicita al usuario que confirme. `"defer"` sale correctamente para que la herramienta pueda reanudarse más tarde. Las [reglas de denegación y pregunta](/docs/es/permissions#manage-permissions) aún se evalúan independientemente de lo que devuelva el hook |1939| `permissionDecision` | `"allow"` omite el prompt de permiso, excepto para las [acciones que ningún modo auto-aprueba](/docs/es/permission-modes#actions-no-mode-auto-approves) y para `AskUserQuestion` y `ExitPlanMode`, que necesitan [`updatedInput` emparejado con él](#allow-with-updatedinput). `"deny"` evita la llamada de herramienta. `"ask"` solicita al usuario que confirme. `"defer"` sale correctamente para que la herramienta pueda reanudarse más tarde. Las [reglas de denegación y pregunta](/docs/es/permissions#manage-permissions) aún se evalúan independientemente de lo que devuelva el hook |

1940| `permissionDecisionReason` | Para `"ask"`, se muestra al usuario pero no a Claude. Para `"deny"`, se muestra a Claude. Para `"allow"` y `"defer"`, se escribe en el [registro de depuración](#debug-hooks) solo |1940| `permissionDecisionReason` | Para `"ask"`, se muestra al usuario pero no a Claude. Para `"deny"`, se muestra a Claude. Para `"allow"` y `"defer"`, se escribe en el [registro de depuración](#debug-hooks) solo |

1941| `updatedInput` | Modifica los parámetros de entrada de la herramienta antes de la ejecución. Reemplaza el objeto de entrada completo, así que incluya campos sin cambios junto con los modificados. Claude Code evalúa reglas de permiso y la [elegibilidad de ejecución en segundo plano](/docs/es/tools-reference#background-commands) de un comando Bash contra la entrada que devuelve su hook, no la entrada que envió Claude. Combine con `"allow"` para auto-aprobar, o `"ask"` para mostrar la entrada modificada al usuario. Para `"defer"`, se ignora |1941| `updatedInput` | Modifica los parámetros de entrada de la herramienta antes de la ejecución. Reemplaza el objeto de entrada completo, así que incluya campos sin cambios junto con los modificados. Claude Code evalúa reglas de permiso y la [elegibilidad de ejecución en segundo plano](/docs/es/tools-reference#foreground-commands-that-move-to-the-background) de un comando Bash contra la entrada que devuelve su hook, no la entrada que envió Claude. Combine con `"allow"` para auto-aprobar, o `"ask"` para mostrar la entrada modificada al usuario. Para `"defer"`, se ignora |

1942| `additionalContext` | Cadena agregada al contexto de Claude junto con el resultado de la herramienta. Se ignora cuando `permissionDecision` es `"defer"`. Consulte [Agregar contexto para Claude](#add-context-for-claude) |1942| `additionalContext` | Cadena agregada al contexto de Claude junto con el resultado de la herramienta. Se ignora cuando `permissionDecision` es `"defer"`. Consulte [Agregar contexto para Claude](#add-context-for-claude) |

1943 1943 

1944Cuando múltiples hooks PreToolUse devuelven decisiones diferentes, la precedencia es `deny` > `defer` > `ask` > `allow`.1944Cuando múltiples hooks PreToolUse devuelven decisiones diferentes, la precedencia es `deny` > `defer` > `ask` > `allow`.

hooks-guide.md +3 −1

Details

1014 1014 

1015Los hooks `PreToolUse` se activan antes de cualquier verificación de modo de permiso, en cada [modo de permiso](/docs/es/permission-modes), incluyendo `dontAsk`. Un hook que devuelve `permissionDecision: "deny"` bloquea la herramienta incluso en modo `bypassPermissions` o con `--dangerously-skip-permissions`. Esto le permite aplicar política que los usuarios no pueden eludir cambiando su modo de permiso.1015Los hooks `PreToolUse` se activan antes de cualquier verificación de modo de permiso, en cada [modo de permiso](/docs/es/permission-modes), incluyendo `dontAsk`. Un hook que devuelve `permissionDecision: "deny"` bloquea la herramienta incluso en modo `bypassPermissions` o con `--dangerously-skip-permissions`. Esto le permite aplicar política que los usuarios no pueden eludir cambiando su modo de permiso.

1016 1016 

1017Lo inverso no es cierto: un hook que devuelve `"allow"` no elude reglas de negación de configuración, y no puede suprimir la solicitud de herramientas MCP marcadas [`requiresUserInteraction`](/docs/es/mcp#require-approval-for-a-specific-tool) o de herramientas conectoras [que su organización estableció en `ask`](/docs/es/mcp#organization-controls-on-connector-tools) en sesiones donde esa configuración llega a Claude Code. Los hooks pueden endurecer restricciones pero no relajarlas más allá de lo que las reglas de permiso permiten.1017Lo inverso no es cierto: un hook que devuelve `"allow"` no elude reglas de negación de configuración, y no puede suprimir la solicitud de herramientas MCP marcadas [`requiresUserInteraction`](/docs/es/mcp#require-approval-for-a-specific-tool) o de herramientas conectoras [que su organización estableció en `ask`](/docs/es/mcp#organization-controls-on-connector-tools) en sesiones donde esa configuración llega a Claude Code. Los hooks en archivos de configuración y en `hooks/hooks.json` de un plugin pueden endurecer restricciones pero no relajarlas más allá de lo que las reglas de permiso permiten.

1018 

1019Un [mod](/docs/es/plugins/mods/overview) que instale y que enganche `tool.check` puede aprobar una llamada que su hook `PreToolUse` bloqueó, a menos que el hook esté en configuración administrada. [Extender permisos con hooks](/docs/es/permissions#extend-permissions-with-hooks) enumera qué reglas prevalecen sobre un mod.

1018 1020 

1019<h3 id="hook-not-firing">1021<h3 id="hook-not-firing">

1020 Hook no se activa1022 Hook no se activa

Details

346* Indicar a Claude Code que ejecute un comando en segundo plano346* Indicar a Claude Code que ejecute un comando en segundo plano

347* Presionar `Ctrl+B` para mover una invocación regular de la herramienta Bash al segundo plano. Los usuarios de Tmux deben presionar `Ctrl+B` dos veces debido a la tecla de prefijo de tmux.347* Presionar `Ctrl+B` para mover una invocación regular de la herramienta Bash al segundo plano. Los usuarios de Tmux deben presionar `Ctrl+B` dos veces debido a la tecla de prefijo de tmux.

348 348 

349Cuando un comando alcanza su tiempo de espera antes de terminar, Claude Code automáticamente [lo mueve al segundo plano](/docs/es/tools-reference#background-commands) en lugar de detenerlo, a menos que el comando comience con `sleep`. Para cambiar cuánto tiempo se ejecutan los comandos antes de que esto suceda, establezca las [variables de entorno de tiempo de espera de Bash](/docs/es/tools-reference#timeout-and-output-limits).349Cuando un comando alcanza su tiempo de espera antes de terminar, Claude Code automáticamente [lo mueve al segundo plano](/docs/es/tools-reference#foreground-commands-that-move-to-the-background) en lugar de detenerlo, a menos que el comando comience con `sleep`. Si ha desactivado las tareas en segundo plano con [`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS`](/docs/es/env-vars#variables) o iniciando en [modo bare](/docs/es/headless#start-faster-with-bare-mode), el comando se detiene en su tiempo de espera. Para cambiar el tiempo de espera, establezca las [variables de entorno de tiempo de espera de Bash](/docs/es/tools-reference#timeout-and-output-limits).

350 350 

351**Características clave:**351**Características clave:**

352 352 


358* En macOS y Linux, Claude Code detiene sus tareas en segundo plano en ejecución cuando el sistema operativo señala presión de memoria crítica, siempre que la sesión haya estado inactiva durante al menos 30 minutos y no se esté ejecutando ningún turno o subagente. Requiere Claude Code v2.1.193 o posterior358* En macOS y Linux, Claude Code detiene sus tareas en segundo plano en ejecución cuando el sistema operativo señala presión de memoria crítica, siempre que la sesión haya estado inactiva durante al menos 30 minutos y no se esté ejecutando ningún turno o subagente. Requiere Claude Code v2.1.193 o posterior

359 * El [registro de depuración](/docs/es/debug-your-config) indica por qué se detuvieron las tareas, o por qué un evento de presión las dejó en ejecución359 * El [registro de depuración](/docs/es/debug-your-config) indica por qué se detuvieron las tareas, o por qué un evento de presión las dejó en ejecución

360 * Establezca [`CLAUDE_CODE_DISABLE_BG_SHELL_PRESSURE_REAP`](/docs/es/env-vars) en `1` para desactivar las detenciones por presión de memoria360 * Establezca [`CLAUDE_CODE_DISABLE_BG_SHELL_PRESSURE_REAP`](/docs/es/env-vars) en `1` para desactivar las detenciones por presión de memoria

361* Los comandos Bash y PowerShell en segundo plano tienen un límite de tiempo, contado desde el momento en que el comando entra en segundo plano: 30 minutos, o el `timeout` que Claude solicita cuando inicia un comando en segundo plano, hasta un máximo de 2 horas. Un comando que se mueve al segundo plano mientras se ejecuta, por ejemplo con `Ctrl+B`, obtiene 30 minutos desde el movimiento. Cuando un comando alcanza su límite, Claude Code lo detiene y le dice a Claude por qué, y Claude puede iniciarlo nuevamente con un `timeout` más largo si el trabajo aún lo necesita. Dos variables de entorno elevan los límites, en milisegundos, y ninguna puede acortarlos:361* Los comandos Bash y PowerShell en segundo plano tienen un límite de tiempo, contado desde el momento en que el comando entra en segundo plano: 30 minutos, o el `timeout` que Claude solicita cuando inicia un comando en segundo plano, hasta un máximo de 2 horas. Un comando que se mueve al segundo plano mientras se ejecuta, por ejemplo con `Ctrl+B`, obtiene 30 minutos desde el movimiento. Cuando un comando alcanza su límite, Claude Code lo detiene y le dice a Claude por qué, y Claude puede iniciarlo nuevamente con un `timeout` más largo si el trabajo aún lo necesita. Para prolongar los límites, consulte [Aumentar el límite de tiempo para comandos en segundo plano](/docs/es/tools-reference#raise-the-time-limit-for-background-commands) en la referencia de herramientas

362 * Establezca [`BASH_DEFAULT_TIMEOUT_MS`](/docs/es/env-vars) por encima de `1800000` para reemplazar el valor predeterminado de 30 minutos con ese valor, también para comandos movidos362* Un comando en segundo plano que un [subagente](/docs/es/sub-agents#run-subagents-in-foreground-or-background) en primer plano inició termina cuando ese subagente finaliza su ejecución, ya sea que se haya completado, fallado o fue interrumpido; consulte [Cuándo se detiene un comando en segundo plano](/docs/es/tools-reference#when-a-background-command-stops) en la referencia de herramientas

363 * Establezca [`BASH_MAX_TIMEOUT_MS`](/docs/es/env-vars) por encima de `7200000` para elevar el máximo de 2 horas. Establecer `BASH_DEFAULT_TIMEOUT_MS` por encima de `7200000` lo eleva de la misma manera

364* Un comando en segundo plano que un [subagente](/docs/es/sub-agents#run-subagents-in-foreground-or-background) en primer plano inició termina cuando ese subagente finaliza su ejecución, ya sea que se haya completado, fallado o fue interrumpido; consulte [Comandos en segundo plano](/docs/es/tools-reference#background-commands) en la referencia de herramientas

365 363 

366Para desactivar toda la funcionalidad de tareas en segundo plano, establezca la variable de entorno `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` en `1`. Consulte [Variables de entorno](/docs/es/env-vars) para obtener más detalles.364Para desactivar toda la funcionalidad de tareas en segundo plano, establezca la variable de entorno [`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS`](/docs/es/env-vars#variables) en `1`. Iniciar en [modo bare](/docs/es/headless#start-faster-with-bare-mode) también la desactiva.

367 365 

368**Comandos comúnmente colocados en segundo plano:**366**Comandos comúnmente colocados en segundo plano:**

369 367 

keybindings.md +1 −3

Details

545* Bajo un diseño no latino como el cirílico, Claude Code coincide con los atajos de teclado Ctrl por la posición de la tecla en el diseño estadounidense cuando la terminal utiliza el protocolo de teclado Kitty e informa esa posición. En tal terminal, con un diseño ruso activo, presionar Ctrl y la tecla W física activa `ctrl+w`. En una terminal que no informa la posición, Claude Code coincide con lo que la terminal envía para la pulsación de tecla: un código de control ASCII activa el atajo latino, y una pulsación de tecla que llega como el carácter cirílico no coincide con ningún atajo de teclado545* Bajo un diseño no latino como el cirílico, Claude Code coincide con los atajos de teclado Ctrl por la posición de la tecla en el diseño estadounidense cuando la terminal utiliza el protocolo de teclado Kitty e informa esa posición. En tal terminal, con un diseño ruso activo, presionar Ctrl y la tecla W física activa `ctrl+w`. En una terminal que no informa la posición, Claude Code coincide con lo que la terminal envía para la pulsación de tecla: un código de control ASCII activa el atajo latino, y una pulsación de tecla que llega como el carácter cirílico no coincide con ningún atajo de teclado

546* Bajo diseños que reorganizan letras latinas, como AZERTY, Claude Code coincide con la letra que escribe la tecla, por lo que presionar Ctrl y la tecla etiquetada A activa `ctrl+a`546* Bajo diseños que reorganizan letras latinas, como AZERTY, Claude Code coincide con la letra que escribe la tecla, por lo que presionar Ctrl y la tecla etiquetada A activa `ctrl+a`

547 547 

548Antes de v2.1.247, presionar un atajo de teclado Ctrl bajo un diseño no latino no activaba su atajo de teclado en terminales que utilizan el protocolo de teclado Kitty, como Ghostty, Kitty, WezTerm e iTerm2.

549 

550<h3 id="chords">548<h3 id="chords">

551 Acordes549 Acordes

552</h3>550</h3>


697* Modificadores mal escritos, como `ctl+k`. Claude Code descarta la parte que no reconoce y aplica la vinculación a la pulsación de tecla que permanece, `k` en este ejemplo.695* Modificadores mal escritos, como `ctl+k`. Claude Code descarta la parte que no reconoce y aplica la vinculación a la pulsación de tecla que permanece, `k` en este ejemplo.

698* Nombres de contexto inválidos696* Nombres de contexto inválidos

699* Valores de acción inválidos, como una acción que no es una cadena o `null`697* Valores de acción inválidos, como una acción que no es una cadena o `null`

700* Nombres de acción desconocidos, como un error tipográfico de una acción registrada. Claude Code omite la vinculación y mantiene cualquier vinculación predeterminada para esa tecla en vigor. Antes de v2.1.246, una vinculación con un nombre de acción desconocido deshabilitaba silenciosamente esa tecla698* Nombres de acción desconocidos, como un error tipográfico de una acción registrada. Claude Code omite la vinculación y mantiene cualquier vinculación predeterminada para esa tecla en vigor.

701* Conflictos de atajos reservados699* Conflictos de atajos reservados

702* Vinculaciones duplicadas en el mismo contexto700* Vinculaciones duplicadas en el mismo contexto

703 701 

llm-gateway.md +2 −0

Details

45 45 

46[Despliegue una puerta de enlace LLM para su organización](/docs/es/llm-gateway-rollout) camina cada paso y muestra los archivos de configuración a distribuir en cada uno. La puerta de enlace es una parte de la configuración de la organización; para aplicación de políticas, visibilidad de uso y decisiones de manejo de datos, consulte [Configure Claude Code para su organización](/docs/es/admin-setup).46[Despliegue una puerta de enlace LLM para su organización](/docs/es/llm-gateway-rollout) camina cada paso y muestra los archivos de configuración a distribuir en cada uno. La puerta de enlace es una parte de la configuración de la organización; para aplicación de políticas, visibilidad de uso y decisiones de manejo de datos, consulte [Configure Claude Code para su organización](/docs/es/admin-setup).

47 47 

48Para hacer que una puerta de enlace alcanzada a través de `ANTHROPIC_BASE_URL` sea el único destino que una máquina administrada pueda usar, establezca [`allowedProviders`](/docs/es/settings-reference#allowedproviders) en `["customEndpoint"]` en el mismo archivo de configuración administrada y coloque la `ANTHROPIC_BASE_URL` de la puerta de enlace en el bloque `env` de ese archivo. Claude Code entonces rechaza una sesión apuntada a cualquier otro lugar, incluyendo a Anthropic directamente o al proxy propio de un desarrollador, y acepta `ANTHROPIC_BASE_URL` solo con el valor que establezca allí. Para una puerta de enlace alcanzada a través de una variable de punto final específica del proveedor como `ANTHROPIC_BEDROCK_BASE_URL`, la entrada `allowedProviders` dice qué variable fijar. Requiere Claude Code v2.1.285 o posterior.

49 

48<h2 id="subscriptions-and-gateways">50<h2 id="subscriptions-and-gateways">

49 Suscripciones y puertas de enlace51 Suscripciones y puertas de enlace

50</h2>52</h2>

Details

310 310 

311Claude Code envía la solicitud de descubrimiento con ambos encabezados de credencial a continuación y omite un encabezado cuyo valor no se resuelve. Enviar ambos encabezados requiere Claude Code v2.1.248 o posterior. Las versiones anteriores envían solo `Authorization` cuando `ANTHROPIC_AUTH_TOKEN` se establece y solo `x-api-key` de lo contrario.311Claude Code envía la solicitud de descubrimiento con ambos encabezados de credencial a continuación y omite un encabezado cuyo valor no se resuelve. Enviar ambos encabezados requiere Claude Code v2.1.248 o posterior. Las versiones anteriores envían solo `Authorization` cuando `ANTHROPIC_AUTH_TOKEN` se establece y solo `x-api-key` de lo contrario.

312 312 

313* `Authorization`: `ANTHROPIC_AUTH_TOKEN` como un token portador, de lo contrario el valor [`apiKeyHelper`](/docs/es/llm-gateway-connect#rotate-credentials-with-apikeyhelper) como un token portador. En ese caso, Claude Code espera a que el asistente regrese antes de enviar la solicitud.313* `Authorization`: `ANTHROPIC_AUTH_TOKEN` como un token portador, de lo contrario el valor [`apiKeyHelper`](/docs/es/llm-gateway-connect#rotate-credentials-with-apikeyhelper) como un token portador.

314* `x-api-key`: la clave API que Claude Code resolvió, como `ANTHROPIC_API_KEY`. Cuando un valor de asistente es la única credencial, este encabezado también la lleva, por lo que el valor llega en ambos encabezados.314* `x-api-key`: la clave API que Claude Code resolvió, como `ANTHROPIC_API_KEY`. Cuando un valor de asistente es la única credencial, este encabezado también la lleva, por lo que el valor llega en ambos encabezados.

315 315 

316Claude Code también envía cualquier encabezado de `ANTHROPIC_CUSTOM_HEADERS`. Cuando un encabezado personalizado tiene un valor no vacío, Claude Code lo envía en lugar de un encabezado integrado del mismo nombre, haciendo coincidir los nombres sin distinción de mayúsculas y minúsculas.316Claude Code también envía cualquier encabezado de `ANTHROPIC_CUSTOM_HEADERS`. Cuando un encabezado personalizado tiene un valor no vacío, Claude Code lo envía en lugar de un encabezado integrado del mismo nombre, haciendo coincidir los nombres sin distinción de mayúsculas y minúsculas.

Details

199 199 

200Las [claves de inicio de sesión de puerta de enlace](#choose-a-delivery-mechanism) siguen una regla separada. Claude Code nunca las lee de la configuración administrada por servidor, por lo que mientras la configuración administrada por servidor es la fuente seleccionada, la fuente de administrador con mayor rango en la máquina que lleva una clave de política aún las suministra. Un valor en una fuente de administrador clasificada por debajo de esa, o en el registro HKCU, se ignora.200Las [claves de inicio de sesión de puerta de enlace](#choose-a-delivery-mechanism) siguen una regla separada. Claude Code nunca las lee de la configuración administrada por servidor, por lo que mientras la configuración administrada por servidor es la fuente seleccionada, la fuente de administrador con mayor rango en la máquina que lleva una clave de política aún las suministra. Un valor en una fuente de administrador clasificada por debajo de esa, o en el registro HKCU, se ignora.

201 201 

202[`allowedProviders`](/docs/es/settings-reference#allowedproviders) tiene su propia regla: la nota Scope de su entrada dice cómo una lista establecida en la máquina se combina con una administrada por servidor. Requiere Claude Code v2.1.285 o posterior.

203 

202Cuando una fuente de administrador establece `allowManagedMcpServersOnly` o una lista `allowedMcpServers` y ese valor no es el que está en vigor, `/status` y `claude doctor` nombran esa fuente y clave.204Cuando una fuente de administrador establece `allowManagedMcpServersOnly` o una lista `allowedMcpServers` y ese valor no es el que está en vigor, `/status` y `claude doctor` nombran esa fuente y clave.

203 205 

204<h3 id="compose-every-managed-source">206<h3 id="compose-every-managed-source">


353* Un archivo de configuración administrada vacío cuenta como `{}`.355* Un archivo de configuración administrada vacío cuenta como `{}`.

354* Un valor malformado en la clave de registro HKCU que se puede escribir por el usuario nunca bloquea el lanzamiento. Claude Code lo reporta como un aviso en `/status` y `claude doctor` en su lugar.356* Un valor malformado en la clave de registro HKCU que se puede escribir por el usuario nunca bloquea el lanzamiento. Claude Code lo reporta como un aviso en `/status` y `claude doctor` en su lugar.

355 357 

356Si un archivo de configuración administrada, archivo de complemento o directorio `managed-settings.d/` no se puede leer y ninguna fuente de administrador proporciona una política, las sesiones que inician sesión con credenciales de claude.ai o Claude Console salen al inicio con un mensaje para contactar a un administrador.358Cuando un archivo de configuración administrada, archivo de complemento, directorio `managed-settings.d/`, perfil MDM o valor de registro HKLM existe pero no se puede leer, y ninguna fuente de administrador proporciona una política, lo que sucede depende de por qué falló la lectura:

359 

360* Si el sistema operativo denegó la lectura, por ejemplo en un archivo de solo raíz, cada sesión se inicia sin las políticas de esa fuente. `/status` y `claude doctor` registran el fallo, y una ejecución con `-p` también lo imprime a stderr.

361* Para cualquier otro fallo de lectura, como un error de E/S, cada sesión sale al inicio con [un mensaje para contactar a un administrador](/docs/es/errors#unable-to-read-managed-policy-settings).

357 362 

358Para encontrar una entrada descartada, busque en uno de tres lugares:363Para encontrar una entrada descartada, busque en uno de tres lugares:

359 364 


387| Campo | Comportamiento cuando está presente pero es inválido |392| Campo | Comportamiento cuando está presente pero es inválido |

388| :- | :- |393| :- | :- |

389| `allowedMcpServers` | Se aplica como una lista de permitidos vacía hasta que se corrija el valor, por lo que ningún servidor MCP que los usuarios agreguen se admite. Los servidores que su organización entrega a través de [`managedMcpServers`](/docs/es/settings-reference#managedmcpservers) aún se cargan, y los servidores `managed-mcp.json` se cargan según [Cómo se evalúa un servidor](/docs/es/managed-mcp#how-a-server-is-evaluated). Una entrada individual inválida se elimina y el subconjunto válido se aplica. |394| `allowedMcpServers` | Se aplica como una lista de permitidos vacía hasta que se corrija el valor, por lo que ningún servidor MCP que los usuarios agreguen se admite. Los servidores que su organización entrega a través de [`managedMcpServers`](/docs/es/settings-reference#managedmcpservers) aún se cargan, y los servidores `managed-mcp.json` se cargan según [Cómo se evalúa un servidor](/docs/es/managed-mcp#how-a-server-is-evaluated). Una entrada individual inválida se elimina y el subconjunto válido se aplica. |

395| [`allowedProviders`](/docs/es/settings-reference#allowedproviders) | Se aplica como una lista de permitidos vacía hasta que se corrija el valor, por lo que cada proveedor de API se rechaza y Claude Code no se inicia en la máquina. Si solo una entrada individual no es un nombre de proveedor conocido, Claude Code descarta y reporta esa entrada y aplica el resto. |

390| `allowedHttpHookUrls` | Claude Code aplica una [lista de permitidos](/docs/es/settings-reference#allowedhttphookurls) administrada vacía hasta que corrija el valor, por lo que un hook HTTP se ejecuta solo si otro archivo de configuración enumera su URL. Si solo una entrada individual es inválida, Claude Code elimina esa entrada y aplica el resto. |396| `allowedHttpHookUrls` | Claude Code aplica una [lista de permitidos](/docs/es/settings-reference#allowedhttphookurls) administrada vacía hasta que corrija el valor, por lo que un hook HTTP se ejecuta solo si otro archivo de configuración enumera su URL. Si solo una entrada individual es inválida, Claude Code elimina esa entrada y aplica el resto. |

391| `httpHookAllowedEnvVars` | Claude Code aplica una [lista de permitidos](/docs/es/settings-reference#httphookallowedenvvars) administrada vacía hasta que corrija el valor, por lo que una variable de encabezado se interpola solo si otro archivo de configuración la nombra. Si solo una entrada individual es inválida, Claude Code elimina esa entrada y aplica el resto. |397| `httpHookAllowedEnvVars` | Claude Code aplica una [lista de permitidos](/docs/es/settings-reference#httphookallowedenvvars) administrada vacía hasta que corrija el valor, por lo que una variable de encabezado se interpola solo si otro archivo de configuración la nombra. Si solo una entrada individual es inválida, Claude Code elimina esa entrada y aplica el resto. |

392| `allowedChannelPlugins` | Claude Code aplica una lista de permitidos vacía hasta que corrija el valor, por lo que ningún plugin de canal pasado a `--channels` se admite. Si solo una entrada individual es inválida, elimina esa entrada y aplica el resto. |398| `allowedChannelPlugins` | Claude Code aplica una lista de permitidos vacía hasta que corrija el valor, por lo que ningún plugin de canal pasado a `--channels` se admite. Si solo una entrada individual es inválida, elimina esa entrada y aplica el resto. |


437 443 

438La mayoría de ellas son bloqueos: el valor que un bloqueo rige, como reglas de permisos o `sandbox.network.allowedDomains`, es una clave ordinaria que cualquier nivel puede establecer, y el bloqueo le dice a Claude Code que honre solo el valor administrado.444La mayoría de ellas son bloqueos: el valor que un bloqueo rige, como reglas de permisos o `sandbox.network.allowedDomains`, es una clave ordinaria que cualquier nivel puede establecer, y el bloqueo le dice a Claude Code que honre solo el valor administrado.

439 445 

440La tabla cubre los controles de permisos, plugins y entrega. Para cualquier clave no enumerada aquí, la columna Scope de la [referencia de configuración](/docs/es/settings-reference#all-settings) dice si es solo administrada; las claves solo administradas restantes allí incluyen la URL de inicio de sesión de puerta de enlace, versión, navegador, simulador móvil, host SSH, sesión local de Desktop, ruta binaria de sandbox, precios de modelo, restricción de modelo y controles CLAUDE.md.446La tabla cubre los controles de permisos, plugins y entrega. Para cualquier clave no enumerada aquí, la columna Scope de la [referencia de configuración](/docs/es/settings-reference#all-settings) dice si es solo administrada.

441 447 

442| Configuración | Descripción |448| Configuración | Descripción |

443| :- | :- |449| :- | :- |

mcp.md +74 −72

Details

90 90 

91Al configurar servidores MCP a través de JSON en `.mcp.json`, `~/.claude.json`, o `claude mcp add-json`, el campo `type` acepta `streamable-http` como alias para `http`. La especificación MCP utiliza el nombre `streamable-http` para este transporte, por lo que las configuraciones copiadas de la documentación del servidor funcionan sin modificación.91Al configurar servidores MCP a través de JSON en `.mcp.json`, `~/.claude.json`, o `claude mcp add-json`, el campo `type` acepta `streamable-http` como alias para `http`. La especificación MCP utiliza el nombre `streamable-http` para este transporte, por lo que las configuraciones copiadas de la documentación del servidor funcionan sin modificación.

92 92 

93Una entrada JSON que tiene una `url` pero no tiene `type` es un error de configuración, porque Claude Code lee una entrada sin `type` como un servidor stdio. Claude Code omite ese servidor e informa `MCP server "<name>" has a "url" but no "type"; add "type": "http" (or "sse" / "ws") to this entry`. Antes de v2.1.202, Claude Code informaba esta configuración incorrecta como `command: expected string, received undefined`.93Una entrada JSON que tiene una `url` pero sin `type` es un error de configuración, porque Claude Code lee una entrada sin `type` como un servidor stdio. Claude Code omite ese servidor e informa `MCP server "<name>" has a "url" but no "type"; add "type": "http" (or "sse" / "ws") to this entry`. Antes de v2.1.202, Claude Code informaba esta configuración incorrecta como `command: expected string, received undefined`.

94 94 

95Solo una aplicación host del SDK, como una aplicación [Agent SDK](/docs/es/agent-sdk/mcp) o la [aplicación de escritorio](/docs/es/desktop), puede registrar un servidor `"type": "sdk"` en proceso. Claude Code omite una entrada `"type": "sdk"` en `.mcp.json`, `~/.claude.json`, o configuración e informa `Skipped — MCP server "<name>" declares type "sdk", which only an SDK host application can register`.95Solo una aplicación host SDK, como una aplicación [Agent SDK](/docs/es/agent-sdk/mcp) o la [aplicación de escritorio](/docs/es/desktop), puede registrar un servidor `"type": "sdk"` en proceso. Claude Code omite una entrada `"type": "sdk"` en `.mcp.json`, `~/.claude.json`, o configuración e informa `Skipped — MCP server "<name>" declares type "sdk", which only an SDK host application can register`.

96 96 

97En ejecuciones `--output-format stream-json`, Claude Code también informa una entrada `--mcp-config` omitida en el campo [`mcp_server_errors`](/docs/es/headless#stream-responses) del evento `system/init`, para que los scripts puedan detectar que el servidor nunca se cargó. Esto requiere Claude Code v2.1.219 o posterior.97En ejecuciones `--output-format stream-json`, Claude Code también informa una entrada `--mcp-config` omitida en el campo [`mcp_server_errors`](/docs/es/headless#stream-responses) del evento `system/init`, para que los scripts puedan detectar que el servidor nunca se cargó. Esto requiere Claude Code v2.1.219 o posterior.

98 98 


101</h3>101</h3>

102 102 

103<Warning>103<Warning>

104 El transporte SSE (Server-Sent Events) está deprecado. Utilice servidores HTTP en su lugar, cuando estén disponibles.104 El transporte SSE (Server-Sent Events) está deprecado. Use servidores HTTP en su lugar, cuando estén disponibles.

105</Warning>105</Warning>

106 106 

107Algunos servicios aún exponen solo un punto final SSE. Agréguelos con el mismo comando `claude mcp add --transport http <name> <url>` que [un servidor HTTP](#option-1-add-a-remote-http-server). Claude Code intenta el transporte HTTP primero y cambia a SSE cuando el servidor no lo acepta. El cambio automático requiere Claude Code v2.1.265 o posterior.107Algunos servicios aún exponen solo un punto final SSE. Agréguelos con el mismo comando `claude mcp add --transport http <name> <url>` que [un servidor HTTP](#option-1-add-a-remote-http-server). Claude Code intenta el transporte HTTP primero y cambia a SSE cuando el servidor no lo acepta. El cambio automático requiere Claude Code v2.1.265 o posterior.


128 128 

129Claude Code establece `CLAUDE_PROJECT_DIR` en el entorno del servidor generado a la raíz del proyecto, para que su servidor pueda resolver rutas relativas al proyecto sin depender del directorio de trabajo. Este es el mismo directorio que los hooks reciben en su variable `CLAUDE_PROJECT_DIR`. Léalo desde dentro de su proceso de servidor, por ejemplo `process.env.CLAUDE_PROJECT_DIR` en Node o `os.environ["CLAUDE_PROJECT_DIR"]` en Python.129Claude Code establece `CLAUDE_PROJECT_DIR` en el entorno del servidor generado a la raíz del proyecto, para que su servidor pueda resolver rutas relativas al proyecto sin depender del directorio de trabajo. Este es el mismo directorio que los hooks reciben en su variable `CLAUDE_PROJECT_DIR`. Léalo desde dentro de su proceso de servidor, por ejemplo `process.env.CLAUDE_PROJECT_DIR` en Node o `os.environ["CLAUDE_PROJECT_DIR"]` en Python.

130 130 

131`CLAUDE_PROJECT_DIR` es la raíz del proyecto estable y no cambia cuando agrega o elimina directorios de trabajo a mitad de sesión. Un servidor que limita su propio acceso al sistema de archivos a un conjunto de directorios permitidos debe implementar la solicitud MCP `roots/list` en su lugar. Claude Code responde `roots/list` con el directorio de lanzamiento de la sesión más cada [directorio de trabajo adicional](/docs/es/permissions#working-directories) que haya otorgado con `--add-dir`, `/add-dir`, o la configuración `additionalDirectories`. Claude Code envía `notifications/roots/list_changed` cuando ese conjunto cambia. Antes de v2.1.203, `roots/list` devolvía solo el directorio de lanzamiento y Claude Code no enviaba `notifications/roots/list_changed`.131`CLAUDE_PROJECT_DIR` es la raíz del proyecto estable y no cambia cuando agrega o elimina directorios de trabajo a mitad de sesión. Un servidor que limita su propio acceso al sistema de archivos a un conjunto de directorios permitidos debe implementar la solicitud MCP `roots/list` en su lugar. Claude Code responde `roots/list` con el directorio de lanzamiento de la sesión más cada [directorio de trabajo adicional](/docs/es/permissions#working-directories) que ha otorgado con `--add-dir`, `/add-dir`, o la configuración `additionalDirectories`. Claude Code envía `notifications/roots/list_changed` cuando ese conjunto cambia. Antes de v2.1.203, `roots/list` devolvía solo el directorio de lanzamiento y Claude Code no enviaba `notifications/roots/list_changed`.

132 132 

133Esta variable se establece en el entorno del servidor, no en el entorno propio de Claude Code, por lo que hacer referencia a ella a través de la expansión `${VAR}` en el `command` o `args` de una entrada `.mcp.json` con alcance de proyecto o una entrada de servidor local o de usuario en `~/.claude.json` requiere un valor predeterminado como `${CLAUDE_PROJECT_DIR:-.}`. Las configuraciones MCP proporcionadas por plugins sustituyen `${CLAUDE_PROJECT_DIR}` directamente y no necesitan el valor predeterminado.133Esta variable se establece en el entorno del servidor, no en el entorno propio de Claude Code, por lo que hacer referencia a ella a través de la expansión `${VAR}` en el `command` o `args` de una entrada `.mcp.json` con alcance de proyecto o una entrada de servidor local o usuario en `~/.claude.json` requiere un valor predeterminado como `${CLAUDE_PROJECT_DIR:-.}`. Las configuraciones MCP proporcionadas por plugins sustituyen `${CLAUDE_PROJECT_DIR}` directamente y no necesitan el valor predeterminado.

134 134 

135```bash theme={null}135```bash theme={null}

136# Sintaxis básica136# Sintaxis básica


142```142```

143 143 

144<Note>144<Note>

145 **Importante: Separar argumentos del servidor con `--`**145 **Importante: Separe los argumentos del servidor con `--`**

146 146 

147 Para servidores stdio, el `--` (doble guión) separa las opciones propias de Claude, como `--transport`, `--env`, y `--scope`, del comando y argumentos que ejecutan el servidor. Todo lo que viene después de `--` se pasa al servidor sin modificación.147 Para servidores stdio, el `--` (doble guión) separa las opciones propias de Claude, como `--transport`, `--env`, y `--scope`, del comando y argumentos que ejecutan el servidor. Todo lo que viene después de `--` se pasa al servidor sin cambios.

148 148 

149 Por ejemplo:149 Por ejemplo:

150 150 


153 153 

154 Sin `--`, Claude Code intentaría analizar las banderas del servidor, como `--port` arriba, como sus propias opciones.154 Sin `--`, Claude Code intentaría analizar las banderas del servidor, como `--port` arriba, como sus propias opciones.

155 155 

156 `--env` acepta múltiples pares `KEY=value`. Si el nombre del servidor viene directamente después de `--env`, la CLI lee el nombre como otro par y lo rechaza, por lo que debe colocar al menos otra opción, como `--transport stdio`, entre `--env` y el nombre del servidor.156 `--env` acepta múltiples pares `KEY=value`. Si el nombre del servidor viene directamente después de `--env`, la CLI lee el nombre como otro par y lo rechaza, así que coloque al menos otra opción, como `--transport stdio`, entre `--env` y el nombre del servidor.

157</Note>157</Note>

158 158 

159<h3 id="option-4-add-a-remote-websocket-server">159<h3 id="option-4-add-a-remote-websocket-server">

160 Opción 4: Agregar un servidor WebSocket remoto160 Opción 4: Agregar un servidor WebSocket remoto

161</h3>161</h3>

162 162 

163Los servidores WebSocket mantienen una conexión bidireccional persistente, que es adecuada para servidores MCP remotos que envían eventos a Claude sin ser solicitados. Utilice HTTP en su lugar cuando su servidor solo responda a solicitudes, ya que HTTP admite OAuth y la bandera `claude mcp add --transport`, mientras que WebSocket no admite ninguno de los dos.163Los servidores WebSocket mantienen una conexión bidireccional persistente, que es adecuada para servidores MCP remotos que envían eventos a Claude sin ser solicitados. Use HTTP en su lugar cuando su servidor solo responda a solicitudes, ya que HTTP admite OAuth y la bandera `claude mcp add --transport`, mientras que WebSocket no admite ninguno de los dos.

164 164 

165Configure servidores WebSocket en `.mcp.json` o con `claude mcp add-json`:165Configure servidores WebSocket en `.mcp.json` o con `claude mcp add-json`:

166 166 


169 '{"type":"ws","url":"wss://mcp.example.com/socket","headers":{"Authorization":"Bearer YOUR_TOKEN"}}'169 '{"type":"ws","url":"wss://mcp.example.com/socket","headers":{"Authorization":"Bearer YOUR_TOKEN"}}'

170```170```

171 171 

172La entrada `type: "ws"` acepta los mismos campos `url`, `headers`, `headersHelper`, `timeout`, y `alwaysLoad` que `http`. La autenticación es solo por encabezado, por lo que pase un token estático en `headers` o genere uno en el momento de la conexión con [`headersHelper`](#use-dynamic-headers-for-custom-authentication). La bandera `claude mcp add --transport` no acepta `ws`.172La entrada `type: "ws"` acepta los mismos campos `url`, `headers`, `headersHelper`, `timeout`, y `alwaysLoad` que `http`. La autenticación es solo por encabezado, así que pase un token estático en `headers` o genere uno en el momento de la conexión con [`headersHelper`](#use-dynamic-headers-for-custom-authentication). La bandera `claude mcp add --transport` no acepta `ws`.

173 173 

174<h3 id="add-a-server-from-setup-instructions-written-for-another-client">174<h3 id="add-a-server-from-setup-instructions-written-for-another-client">

175 Agregar un servidor desde instrucciones de configuración escritas para otro cliente175 Agregar un servidor desde instrucciones de configuración escritas para otro cliente

176</h3>176</h3>

177 177 

178Los servidores MCP no son específicos de Claude Code, por lo que las instrucciones de configuración de un servidor pueden estar escritas para Claude Desktop, Cursor, u otro cliente MCP y no proporcionar ningún comando `claude mcp add`. Para agregar el servidor de todas formas, busque en esas instrucciones una URL, un comando de lanzamiento, o un bloque JSON:178Los servidores MCP no son específicos de Claude Code, por lo que las instrucciones de configuración de un servidor pueden estar escritas para Claude Desktop, Cursor, u otro cliente MCP y no dar ningún comando `claude mcp add`. Para agregar el servidor de todas formas, busque en esas instrucciones una URL, un comando de lanzamiento, o un bloque JSON:

179 179 

180* **Una URL** como `https://mcp.example.com/mcp`: el servidor es remoto.180* **Una URL** como `https://mcp.example.com/mcp`: el servidor es remoto.

181* **Un comando de lanzamiento** como `npx -y @example/mcp-server`: el servidor se ejecuta en su máquina.181* **Un comando de lanzamiento** como `npx -y @example/mcp-server`: el servidor se ejecuta en su máquina.


187 Desde una URL187 Desde una URL

188</h4>188</h4>

189 189 

190Una URL significa que el servidor es remoto. Para un punto final `https://`, agréguelo con `--transport http`, o siga [Opción 2](#option-2-add-a-remote-sse-server) cuando las instrucciones digan que el punto final utiliza SSE. Para un punto final `wss://`, utilice [Opción 4](#option-4-add-a-remote-websocket-server) en su lugar, ya que `--transport` no acepta `ws`:190Una URL significa que el servidor es remoto. Para un punto final `https://`, agréguelo con `--transport http`, o siga [Opción 2](#option-2-add-a-remote-sse-server) cuando las instrucciones digan que el punto final usa SSE. Para un punto final `wss://`, use [Opción 4](#option-4-add-a-remote-websocket-server) en su lugar, ya que `--transport` no acepta `ws`:

191 191 

192```bash theme={null}192```bash theme={null}

193claude mcp add --transport http example https://mcp.example.com/mcp193claude mcp add --transport http example https://mcp.example.com/mcp

194```194```

195 195 

196Si las instrucciones también proporcionan una clave API o encabezado de token, páselo con `--header` como se muestra en [Opción 1](#option-1-add-a-remote-http-server).196Si las instrucciones también dan una clave API o encabezado de token, páselo con `--header` como se muestra en [Opción 1](#option-1-add-a-remote-http-server).

197 197 

198<h4 id="from-an-npx-uvx-or-binary-command">198<h4 id="from-an-npx-uvx-or-binary-command">

199 Desde un comando `npx`, `uvx`, o binario199 Desde un comando `npx`, `uvx`, o binario

200</h4>200</h4>

201 201 

202Un comando de lanzamiento significa que el servidor se ejecuta como un proceso stdio local. Coloque todo el comando después de `--`, para que Claude Code pase banderas como `-y` al comando que inicia el servidor en lugar de leerlas como sus propias opciones. Pase cualquier variable de entorno que las instrucciones soliciten con `--env`, después del nombre del servidor y antes de `--`:202Un comando de lanzamiento significa que el servidor se ejecuta como un proceso stdio local. Ponga todo el comando después de `--`, para que Claude Code pase banderas como `-y` al comando que inicia el servidor en lugar de leerlas como sus propias opciones. Pase cualquier variable de entorno que las instrucciones soliciten con `--env`, después del nombre del servidor y antes de `--`:

203 203 

204```bash theme={null}204```bash theme={null}

205claude mcp add example --env API_KEY=your-key -- npx -y @example/mcp-server205claude mcp add example --env API_KEY=your-key -- npx -y @example/mcp-server


214Un bloque `mcpServers` escrito para otro cliente MCP, como Claude Desktop, utiliza la clave contenedora y la forma de entrada que Claude Code lee. Pase a `claude mcp add-json` el objeto dentro de `mcpServers`, no el contenedor. Dos entradas necesitan una reparación primero:214Un bloque `mcpServers` escrito para otro cliente MCP, como Claude Desktop, utiliza la clave contenedora y la forma de entrada que Claude Code lee. Pase a `claude mcp add-json` el objeto dentro de `mcpServers`, no el contenedor. Dos entradas necesitan una reparación primero:

215 215 

216* **Una `url` sin `type`**: agregue `"type": "http"`, `"type": "sse"`, o `"type": "ws"` para coincidir con el punto final. Claude Code lee una entrada sin `type` como un servidor stdio, por lo que una entrada `url` sin `type` falla.216* **Una `url` sin `type`**: agregue `"type": "http"`, `"type": "sse"`, o `"type": "ws"` para coincidir con el punto final. Claude Code lee una entrada sin `type` como un servidor stdio, por lo que una entrada `url` sin `type` falla.

217* **Una clave con caracteres distintos de letras, números, guiones e guiones bajos**: elija un nombre de servidor que utilice solo esos caracteres. De lo contrario, la clave es el nombre del servidor.217* **Una clave con caracteres distintos de letras, números, guiones e guiones bajos**: elija un nombre de servidor que use solo esos caracteres. De lo contrario, la clave es el nombre del servidor.

218 218 

219Por ejemplo, este bloque:219Por ejemplo, este bloque:

220 220 


237 237 

238[Agregar servidores MCP desde configuración JSON](#add-mcp-servers-from-json-configuration) cubre el escape de shell y la bandera `--scope` para `add-json`. Para compartir el servidor con su equipo en su lugar, agregue `--scope project`, o agregue la entrada bajo `mcpServers` en `.mcp.json` en la raíz de su proyecto y confírmela. [Alcance de proyecto](#project-scope) cubre cómo Claude Code carga y aprueba ese archivo.238[Agregar servidores MCP desde configuración JSON](#add-mcp-servers-from-json-configuration) cubre el escape de shell y la bandera `--scope` para `add-json`. Para compartir el servidor con su equipo en su lugar, agregue `--scope project`, o agregue la entrada bajo `mcpServers` en `.mcp.json` en la raíz de su proyecto y confírmela. [Alcance de proyecto](#project-scope) cubre cómo Claude Code carga y aprueba ese archivo.

239 239 

240Cada comando `claude mcp add` y `claude mcp add-json` imprime una línea `Added ...`. Para verificar que Claude Code se conectó, ejecute `claude mcp get <name>`; [Estado del servidor](#server-status) cubre los estados que muestra y el paso de aprobación para servidores `.mcp.json`.240Cada comando `claude mcp add` y `claude mcp add-json` imprime una línea `Added ...` en caso de éxito. Para verificar que Claude Code se conectó, ejecute `claude mcp get <name>`; [Estado del servidor](#server-status) cubre los estados que muestra y el paso de aprobación para servidores `.mcp.json`.

241 241 

242<h3 id="managing-your-servers">242<h3 id="managing-your-servers">

243 Administración de sus servidores243 Administración de sus servidores


267 267 

268`claude mcp add` confirma una adición exitosa imprimiendo una línea `Added ...`, lo que significa que la configuración se escribió. Si el comando imprime un mensaje `was not saved` en su lugar, consulte [MCP server was not saved or removed](/docs/es/errors#mcp-server-was-not-saved-or-removed); para un mensaje `may not have been saved`, consulte [MCP server may not have been saved or removed](/docs/es/errors#mcp-server-may-not-have-been-saved-or-removed).268`claude mcp add` confirma una adición exitosa imprimiendo una línea `Added ...`, lo que significa que la configuración se escribió. Si el comando imprime un mensaje `was not saved` en su lugar, consulte [MCP server was not saved or removed](/docs/es/errors#mcp-server-was-not-saved-or-removed); para un mensaje `may not have been saved`, consulte [MCP server may not have been saved or removed](/docs/es/errors#mcp-server-may-not-have-been-saved-or-removed).

269 269 

270`claude mcp list` muestra un estado de salud junto a cada servidor que enumera, como `✔ Connected`, `! Needs authentication`, o `✘ Failed to connect`. Un estado de falla significa que Claude Code no pudo conectarse a ese servidor, no que el comando list haya fallado.270`claude mcp list` muestra un estado de salud junto a cada servidor que enumera, como `✔ Connected`, `! Needs authentication`, o `✘ Failed to connect`. Un estado de falla significa que Claude Code no pudo conectarse a ese servidor, no que el comando de lista haya fallado.

271 271 

272Los estados en esta lista informan una decisión de configuración en lugar de un intento de conexión, por lo que Claude Code los imprime sin conectarse al servidor:272Los estados en esta lista informan una decisión de configuración en lugar de un intento de conexión, por lo que Claude Code los imprime sin conectarse al servidor:

273 273 

274* ``⏸ Pending approval (run `claude` to approve)``: un servidor con alcance de proyecto de `.mcp.json` que aún no ha aprobado. Claude Code lo muestra tanto en `claude mcp list` como en `claude mcp get <name>`. Ejecute `claude` interactivamente para revisarlo y aprobarlo.274* ``⏸ Pending approval (run `claude` to approve)``: un servidor con alcance de proyecto de `.mcp.json` que aún no ha aprobado. Claude Code lo muestra tanto en `claude mcp list` como en `claude mcp get <name>`. Ejecute `claude` interactivamente para revisarlo y aprobarlo.

275* `✘ Rejected (see disabledMcpjsonServers in settings)`: un servidor `.mcp.json` que una entrada [`disabledMcpjsonServers`](/docs/es/settings-reference#disabledmcpjsonservers) rechaza. Claude Code lo muestra solo en `claude mcp get <name>`.275* `✘ Rejected (see disabledMcpjsonServers in settings)`: un servidor `.mcp.json` que una entrada [`disabledMcpjsonServers`](/docs/es/settings-reference#disabledmcpjsonservers) rechaza. Claude Code lo muestra solo en `claude mcp get <name>`.

276* `⊘ Disabled for this project (re-enable via /mcp)`: un servidor que la lista [`disabledMcpServers`](#disable-a-server-without-removing-it) del proyecto nombra. Claude Code lo muestra tanto en `claude mcp list` como en `claude mcp get <name>`. Active el servidor nuevamente desde el panel `/mcp`. Antes de v2.1.238, ambos comandos se conectaban a un servidor deshabilitado para verificar su salud e informaban el resultado de la conexión.276* `⊘ Disabled for this project (re-enable via /mcp)`: un servidor que la lista [`disabledMcpServers`](#disable-a-server-without-removing-it) del proyecto nombra. Claude Code lo muestra tanto en `claude mcp list` como en `claude mcp get <name>`. Active el servidor nuevamente desde el panel `/mcp`.

277 277 

278Los servidores WebSocket no aparecen en la salida de `claude mcp list`. Utilice `claude mcp get <name>` o el panel `/mcp` para verificarlos.278Los servidores WebSocket no aparecen en la salida de `claude mcp list`. Use `claude mcp get <name>` o el panel `/mcp` para verificarlos.

279 279 

280<h4 id="project-server-approvals-and-workspace-trust">280<h4 id="project-server-approvals-and-workspace-trust">

281 Aprobaciones de servidores de proyecto y confianza del espacio de trabajo281 Aprobaciones de servidores de proyecto y confianza del espacio de trabajo

282</h4>282</h4>

283 283 

284A partir de v2.1.196, `claude mcp list` y `claude mcp get` leen aprobaciones `.mcp.json` solo de archivos de configuración que no se registran en el repositorio hasta que confíe en el espacio de trabajo ejecutando `claude` en él y aceptando el diálogo de confianza del espacio de trabajo. Un repositorio clonado no puede aprobar sus propios servidores: [`enableAllProjectMcpServers`](/docs/es/settings-reference#enableallprojectmcpservers) o [`enabledMcpjsonServers`](/docs/es/settings-reference#enabledmcpjsonservers) confirmados en `.claude/settings.json` del proyecto se ignoran en una carpeta no confiable, y el servidor permanece en `⏸ Pending approval` en lugar de estar conectado y verificado de salud.284A partir de v2.1.196, `claude mcp list` y `claude mcp get` leen aprobaciones `.mcp.json` solo de archivos de configuración que no se confirman en el repositorio hasta que confíe en el espacio de trabajo ejecutando `claude` en él y aceptando el diálogo de confianza del espacio de trabajo. Un repositorio clonado no puede aprobar sus propios servidores: [`enableAllProjectMcpServers`](/docs/es/settings-reference#enableallprojectmcpservers) o [`enabledMcpjsonServers`](/docs/es/settings-reference#enabledmcpjsonservers) confirmados en `.claude/settings.json` del proyecto se ignoran en una carpeta no confiable, y el servidor permanece en `⏸ Pending approval` en lugar de estar conectado y verificado de salud.

285 285 

286Las aprobaciones de estas fuentes aún se aplican en una carpeta no confiable:286Las aprobaciones de estas fuentes aún se aplican en una carpeta no confiable:

287 287 


289* configuración administrada289* configuración administrada

290* configuración pasada con `--settings`290* configuración pasada con `--settings`

291 291 

292Claude Code también aplica aprobaciones de un `.claude/settings.local.json` sin seguimiento, pero ejecuta git para verificar si el archivo se rastrea, y ejecuta esa verificación solo en una [carpeta confiable](/docs/es/permissions#project-allow-rules-and-workspace-trust). En una carpeta que nunca ha confiado, Claude Code espera el diálogo de confianza antes de aplicar las aprobaciones del archivo, a menos que la carpeta sea su propio hogar de configuración: su directorio de inicio, o un directorio cuyo `.claude` haya establecido como [`CLAUDE_CONFIG_DIR`](/docs/es/env-vars). Antes de v2.1.207, Claude Code aplicaba aprobaciones de un `.claude/settings.local.json` sin seguimiento incluso en una carpeta que nunca había confiado.292Claude Code también aplica aprobaciones de un `.claude/settings.local.json` sin seguimiento, pero ejecuta git para verificar si el archivo se rastrea, y ejecuta esa verificación solo en una [carpeta confiable](/docs/es/permissions#project-allow-rules-and-workspace-trust). En una carpeta que nunca ha confiado, Claude Code espera el diálogo de confianza antes de aplicar las aprobaciones del archivo, a menos que la carpeta sea su propio hogar de configuración: su directorio de inicio, o un directorio cuyo `.claude` ha establecido como [`CLAUDE_CONFIG_DIR`](/docs/es/env-vars). Antes de v2.1.207, Claude Code aplicaba aprobaciones de un `.claude/settings.local.json` sin seguimiento incluso en una carpeta que nunca había confiado.

293 293 

294Una entrada `disabledMcpjsonServers` en cualquier archivo de configuración aún rechaza el servidor.294Una entrada `disabledMcpjsonServers` en cualquier archivo de configuración aún rechaza el servidor.

295 295 


297 Detalle del estado del servidor297 Detalle del estado del servidor

298</h4>298</h4>

299 299 

300En `/mcp`, incluido el menú de un servidor allí, y en el administrador [`/plugin`](/docs/es/plugins/install), un servidor HTTP o SSE remoto que ha utilizado antes puede mostrar un estado `cached` como `cached 2h ago · connects on first use · 5 tools`. Claude Code cargó la lista de herramientas del servidor desde su caché de descubrimiento, guardado en una sesión anterior, en lugar de conectarse al inicio, y Claude Code conecta el servidor la primera vez que Claude llama a una de las herramientas del servidor. Las herramientas están disponibles desde su primer mensaje, por lo que no necesita hacer nada. El caché de descubrimiento y su estado `cached` requieren Claude Code v2.1.221 o posterior.300En `/mcp`, incluido el menú de un servidor allí, y en el administrador [`/plugin`](/docs/es/plugins/install), un servidor HTTP o SSE remoto que ha usado antes puede mostrar un estado `cached` como `cached 2h ago · connects on first use · 5 tools`. Claude Code cargó la lista de herramientas del servidor desde su caché de descubrimiento, guardado en una sesión anterior, en lugar de conectarse al inicio, y Claude Code conecta el servidor la primera vez que Claude llama a una de las herramientas del servidor. Las herramientas están disponibles desde su primer mensaje, por lo que no necesita hacer nada. El caché de descubrimiento y su estado `cached` requieren Claude Code v2.1.221 o posterior.

301 301 

302El caché de descubrimiento está desactivado de forma predeterminada a menos que un lanzamiento gradual lo haya habilitado para su cuenta. Establezca [`MCP_DISCOVERY_CACHE=1`](/docs/es/env-vars) para activarlo, o `0` para mantenerlo desactivado incluso cuando el lanzamiento lo haya habilitado. Antes de v2.1.238, el caché estaba activado de forma predeterminada.302El caché de descubrimiento está desactivado de forma predeterminada a menos que un despliegue gradual lo haya habilitado para su cuenta. Establezca [`MCP_DISCOVERY_CACHE=1`](/docs/es/env-vars) para activarlo, o `0` para mantenerlo desactivado incluso cuando el despliegue lo haya habilitado. Antes de v2.1.238, el caché estaba activado de forma predeterminada.

303 303 

304Cuando selecciona **Disable** o **Clear authentication** desde el menú de un servidor en `/mcp`, Claude Code también descarta la entrada de caché de ese servidor. **Reconnect** también la descarta en un servidor conectado o fallido; en un servidor `cached`, **Reconnect** conecta el servidor ahora y mantiene la entrada. La próxima vez que Claude Code se conecte al servidor después de descartar la entrada, obtiene la lista de herramientas del servidor en lugar de del caché.304Cuando selecciona **Disable** o **Clear authentication** desde el menú de un servidor en `/mcp`, Claude Code también descarta la entrada de caché de ese servidor. **Reconnect** también la descarta en un servidor conectado o fallido; en un servidor `cached`, **Reconnect** conecta el servidor ahora y mantiene la entrada. La próxima vez que Claude Code se conecte al servidor después de descartar la entrada, obtiene la lista de herramientas del servidor en lugar del caché.

305 305 

306Cuando el estado de un servidor es `✘ Failed to connect`, `claude mcp list` agrega el detalle de falla a esa línea de estado, y `claude mcp get <name>` lo muestra en una línea `Issue:`: el estado HTTP o código de error, más cualquier texto de error que el servidor devolvió. La vista de detalle del servidor en `/mcp` incluye el mismo texto informado por el servidor en su fila `Issue:`. Claude Code redacta texto similar a credenciales de este detalle y nunca incluye la URL del servidor expandida, que puede llevar secretos. Claude Code no agrega detalle a un estado `✘ Connection error`, porque el texto de excepción que imprimiría allí puede incrustar esa URL. Antes de v2.1.219, ambos comandos mostraban solo el estado de falla desnudo, sin el código de estado o el texto de error del servidor.306Cuando el estado de un servidor es `✘ Failed to connect`, `claude mcp list` añade el detalle de falla a esa línea de estado, y `claude mcp get <name>` lo muestra en una línea `Issue:`: el código de estado HTTP o código de error, más cualquier texto de error que el servidor devolvió. La vista de detalle del servidor en `/mcp` incluye el mismo texto informado por el servidor en su fila `Issue:`. Claude Code redacta texto similar a credenciales de este detalle y nunca incluye la URL del servidor expandida, que puede llevar secretos. Claude Code no añade detalle a un estado `✘ Connection error`, porque el texto de excepción que imprimiría allí puede incrustar esa URL. Antes de v2.1.219, ambos comandos mostraban solo el estado de falla desnudo, sin el código de estado o el texto de error del servidor.

307 307 

308Cuando completa la autenticación desde `/mcp` y la conexión aún falla con un estado HTTP o un código de error de transporte, Claude Code agrega ese código y el origen de la URL del servidor al mensaje que imprime después del intento. El origen es el esquema y host, más el puerto cuando la URL nombra uno, como `https://mcp.example.com`.308Cuando completa la autenticación desde `/mcp` y la conexión aún falla con un código de estado HTTP o un código de error de transporte, Claude Code añade ese código y el origen de la URL del servidor al mensaje que imprime después del intento. El origen es el esquema y host, más el puerto cuando la URL nombra uno, como `https://mcp.example.com`.

309 309 

310* La ruta y consulta nunca aparecen en ese mensaje.310* La ruta y consulta nunca aparecen en ese mensaje.

311* Para un servidor en el [alcance](#mcp-installation-scopes) local, de proyecto o de usuario o en configuración MCP administrada, el origen muestra el host tal como está escrito en esa configuración, por lo que una referencia `${VAR}` en el host no se expande en el mensaje.311* Para un servidor en el [alcance](#mcp-installation-scopes) local, de proyecto, o de usuario o en configuración MCP administrada, el origen muestra el host tal como está escrito en esa configuración, por lo que una referencia `${VAR}` en el host no se expande en el mensaje.

312* Para una falla sin código de estado o de error, Claude Code muestra el texto de error sin el origen.312* Para una falla sin código de estado o código de error, Claude Code muestra el texto de error sin el origen.

313 313 

314Un servidor remoto cuya configuración tiene una `url` vacía se muestra como `not configured` en `/mcp`, en `claude mcp list`, y en el administrador [`/plugin`](/docs/es/plugins/install), y Claude Code no intenta conectarse a él. Un plugin puede incluir una entrada de marcador de posición como esta para un conector que configura más tarde, por lo que Claude Code no lo informa como un error o un problema de configuración. La vista de detalle del servidor en `/mcp` lee `No URL configured for this server`; establezca la `url` de la entrada para conectarla. Antes de v2.1.208, Claude Code informaba una `url` vacía como un problema de configuración con un aviso para reconectar.314Un servidor remoto cuya configuración tiene una `url` vacía se muestra como `not configured` en `/mcp`, en `claude mcp list`, y en el administrador [`/plugin`](/docs/es/plugins/install), y Claude Code no intenta conectarse a él. Un plugin puede incluir una entrada de marcador de posición como esta para un conector que configura más tarde, por lo que Claude Code no lo informa como un error o un problema de configuración. La vista de detalle del servidor en `/mcp` lee `No URL configured for this server`; establezca la `url` de la entrada para conectarla. Antes de v2.1.208, Claude Code informaba una `url` vacía como un problema de configuración con un aviso para reconectar.

315 315 


319 319 

320Claude Code advierte sobre los problemas de configuración a continuación. Cada entrada dice qué verifica Claude Code y cómo borrar la advertencia:320Claude Code advierte sobre los problemas de configuración a continuación. Cada entrada dice qué verifica Claude Code y cómo borrar la advertencia:

321 321 

322* **Espacios en blanco ocultos**: Claude Code advierte cuando un valor de configuración MCP lleva espacios en blanco ocultos al principio o al final, que a menudo provienen de pegar un token con una nueva línea al final. Claude Code verifica `command`, `url`, cada entrada `args`, y los valores y nombres de clave bajo `env` y `headers`. Claude Code muestra la advertencia en la salida de `claude mcp list` y en `/mcp`, nombrando los campos afectados sin repetir sus valores, por ejemplo `Leading or trailing whitespace in: headers.Authorization`. Claude Code no recorta el espacio en blanco y utiliza los valores exactamente como están escritos, por lo que edite la configuración para eliminarlo.322* **Espacios en blanco ocultos**: Claude Code advierte cuando un valor de configuración MCP lleva espacios en blanco ocultos al principio o al final, que a menudo provienen de pegar un token con una nueva línea al final. Claude Code verifica `command`, `url`, cada entrada `args`, y los valores y nombres de clave bajo `env` y `headers`. Claude Code muestra la advertencia en la salida de `claude mcp list` y en `/mcp`, nombrando los campos afectados sin repetir sus valores, por ejemplo `Leading or trailing whitespace in: headers.Authorization`. Claude Code no recorta el espacio en blanco y usa los valores exactamente como están escritos, así que edite la configuración para eliminarlo.

323* **Mismo nombre en más de un alcance**: si define el mismo nombre de servidor en más de un [alcance](#mcp-installation-scopes) con diferentes puntos finales, Claude Code advierte sobre el conflicto en la salida de `claude mcp list` y en `/mcp`. Claude Code almacena inicios de sesión OAuth por punto final, por lo que cuando autentica la definición que se carga en un proyecto, aún necesita iniciar sesión por separado en un proyecto donde se carga una definición diferente. Mantenga el punto final que desea y elimine los otros con `claude mcp remove <name> --scope <scope>`. En la advertencia, Claude Code cita el punto final de cada alcance tal como está escrito en su configuración, con referencias [`${VAR}`](#environment-variable-expansion-in-mcp-json) sin expandir, por lo que nunca muestra un valor resuelto como una clave API.323* **Mismo nombre en más de un alcance**: si define el mismo nombre de servidor en más de un [alcance](#mcp-installation-scopes) con diferentes puntos finales, Claude Code advierte sobre el conflicto en la salida de `claude mcp list` y en `/mcp`. Claude Code almacena inicios de sesión OAuth por punto final, por lo que cuando autentica la definición que se carga en un proyecto, aún necesita iniciar sesión por separado en un proyecto donde se carga una definición diferente. Mantenga el punto final que desea y elimine los otros con `claude mcp remove <name> --scope <scope>`. En la advertencia, Claude Code cita el punto final de cada alcance tal como está escrito en su configuración, con referencias [`${VAR}`](#environment-variable-expansion-in-mcp-json) sin expandir, por lo que nunca muestra un valor resuelto como una clave API.

324* **Nombres reservados**: Claude Code reserva los nombres de sus servidores integrados, incluidos `workspace`, `claude-in-chrome`, `computer-use`, `Claude Preview`, y `Claude Browser`. Si su configuración define un servidor con un nombre reservado, Claude Code lo omite en el tiempo de carga y muestra una advertencia pidiéndole que lo renombre. `claude mcp add` rechaza un nombre reservado con un error. `Claude Preview` y `Claude Browser` ambos nombran el servidor integrado que el [panel de vista previa de la aplicación de escritorio Claude Code](/docs/es/desktop#preview-your-app) utiliza. Antes de v2.1.205, `Claude Browser` no estaba reservado, por lo que un servidor configurado por el usuario podría registrarse bajo ese nombre.324* **Nombres reservados**: Claude Code reserva los nombres de sus servidores integrados, incluidos `workspace`, `claude-in-chrome`, `computer-use`, `Claude Preview`, y `Claude Browser`. Si su configuración define un servidor con un nombre reservado, Claude Code lo omite en el tiempo de carga y muestra una advertencia pidiéndole que lo renombre. `claude mcp add` rechaza un nombre reservado con un error. `Claude Preview` y `Claude Browser` ambos nombran el servidor integrado que el [panel de vista previa de la aplicación de escritorio de Claude Code](/docs/es/desktop#preview-your-app) utiliza.

325* **Variable de entorno faltante**: si una referencia [`${VAR}`](#environment-variable-expansion-in-mcp-json) en la configuración de un servidor nombra una variable que no está establecida y no tiene `:-default`, Claude Code advierte en la salida de `claude mcp list` y en `/mcp`, nombrando la variable, y aún carga el servidor con el texto `${VAR}` sin expandir. Establezca la variable o agregue un respaldo `${VAR:-default}`. En la `url` y `headers` de un servidor remoto, algunas variables de credencial [se leen como vacías](#credential-variables-that-read-as-empty) en su lugar, sin advertencia.325* **Variable de entorno faltante**: si una referencia [`${VAR}`](#environment-variable-expansion-in-mcp-json) en la configuración de un servidor nombra una variable que no está establecida y no tiene `:-default`, Claude Code advierte en la salida de `claude mcp list` y en `/mcp`, nombrando la variable, y aún carga el servidor con el texto `${VAR}` sin expandir. Establezca la variable o agregue un fallback `${VAR:-default}`. En la `url` y `headers` de un servidor remoto, algunas variables de credencial [se leen como vacías](#credential-variables-that-read-as-empty) en su lugar, sin advertencia.

326 326 

327<h4 id="tool-availability">327<h4 id="tool-availability">

328 Disponibilidad de herramientas328 Disponibilidad de herramientas


330 330 

331El panel `/mcp` muestra el recuento de herramientas junto a cada servidor conectado e indica servidores que anuncian la capacidad de herramientas pero no exponen herramientas.331El panel `/mcp` muestra el recuento de herramientas junto a cada servidor conectado e indica servidores que anuncian la capacidad de herramientas pero no exponen herramientas.

332 332 

333Si su 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 su configuración:333Si su solicitud necesita herramientas de un servidor que aún se está conectando en segundo plano, Claude espera a que ese servidor continúe. Cómo sucede la espera depende de su configuración:

334 334 

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

336* **Sin búsqueda de herramientas**: Claude utiliza la herramienta `WaitForMcpServers` en su lugar. Las configuraciones sin búsqueda de herramientas incluyen un `ANTHROPIC_BASE_URL` personalizado, `ENABLE_TOOL_SEARCH=false`, y un modelo anterior a la generación Claude 4.5 en la Plataforma de Agentes de Google Cloud.336* **Sin búsqueda de herramientas**: Claude usa la herramienta `WaitForMcpServers` en su lugar. Las configuraciones sin búsqueda de herramientas incluyen un `ANTHROPIC_BASE_URL` personalizado, `ENABLE_TOOL_SEARCH=false`, y un modelo anterior a la generación Claude 4.5 en la Plataforma de Agentes de Google Cloud.

337* **En un despliegue de Microsoft Foundry [alojado en Azure](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options)**: Claude comienza en la ruta de búsqueda de herramientas en lugar de con `WaitForMcpServers`, ya que Claude Code descubre el rechazo del lado del servidor solo desde la API. Después de que Claude Code cambie ese despliegue a [carga anticipada](#scale-with-mcp-tool-search), las herramientas de un servidor que termina de conectarse están disponibles en la siguiente solicitud de Claude.337* **En un despliegue de Microsoft Foundry [alojado en Azure](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options)**: Claude comienza en la ruta de búsqueda de herramientas en lugar de con `WaitForMcpServers`, ya que Claude Code descubre el rechazo del lado del servidor solo desde la API. Después de que Claude Code cambie ese despliegue a [carga anticipada](#scale-with-mcp-tool-search), las herramientas de un servidor que termina de conectarse se vuelven disponibles en la siguiente solicitud de Claude.

338 338 

339Con la búsqueda de herramientas habilitada, cuando un servidor termina de conectarse mientras Claude está trabajando, Claude Code enumera los nombres de herramientas del servidor a Claude en su siguiente solicitud en el mismo turno. Claude puede entonces buscar y llamar a esas herramientas sin esperar su siguiente mensaje.339Con la búsqueda de herramientas habilitada, cuando un servidor termina de conectarse mientras Claude está trabajando, Claude Code enumera los nombres de herramientas del servidor a Claude en su siguiente solicitud en el mismo turno. Claude puede entonces buscar y llamar a esas herramientas sin esperar su siguiente mensaje.

340 340 


346 346 

347Cuando alterna un servidor, Claude Code registra su elección por proyecto en `~/.claude.json`, en una de dos listas que cubren conjuntos disjuntos de servidores:347Cuando alterna un servidor, Claude Code registra su elección por proyecto en `~/.claude.json`, en una de dos listas que cubren conjuntos disjuntos de servidores:

348 348 

349* `disabledMcpServers`: una lista de exclusión para servidores configurados por el usuario, servidores de plugins, servidores que su organización [proporciona a través de configuración administrada](/docs/es/managed-mcp#provide-servers-through-managed-settings), los conectores claude.ai que Claude Code [obtiene por sí mismo](#how-connectors-reach-claude-code), y servidores integrados que están habilitados de forma predeterminada. Claude Code no se conecta a un servidor que enumere aquí. Cuando deshabilita un conector claude.ai con el alternador `/mcp` por proyecto descrito en [Deshabilitar conectores claude.ai](#disable-claude-ai-connectors), Claude Code lo escribe en esta lista bajo su nombre de visualización, por ejemplo `claude.ai Slack`.349* `disabledMcpServers`: una lista de exclusión para servidores configurados por el usuario, servidores de plugins, servidores que su organización [proporciona a través de configuración administrada](/docs/es/managed-mcp#provide-servers-through-managed-settings), los conectores claude.ai que Claude Code [obtiene por sí mismo](#how-connectors-reach-claude-code), y servidores integrados que están activados de forma predeterminada. Claude Code no se conecta a un servidor que enumere aquí. Cuando deshabilita un conector claude.ai con el alternador `/mcp` por proyecto descrito en [Deshabilitar conectores claude.ai](#disable-claude-ai-connectors), Claude Code lo escribe en esta lista bajo su nombre de visualización, por ejemplo `claude.ai Slack`.

350* `enabledMcpServers`: una lista de inclusión para servidores integrados que están deshabilitados de forma predeterminada, como `computer-use`. Claude Code se conecta a un servidor deshabilitado de forma predeterminada solo cuando lo enumera aquí.350* `enabledMcpServers`: una lista de inclusión para servidores integrados que están desactivados de forma predeterminada, como `computer-use`. Claude Code se conecta a un servidor desactivado de forma predeterminada solo cuando lo enumera aquí.

351 351 

352Claude Code consulta exactamente una de las dos listas para cada servidor, por lo que ninguna lista anula la otra. Si agrega un servidor normal a `enabledMcpServers`, o un servidor integrado deshabilitado de forma predeterminada a `disabledMcpServers`, Claude Code ignora la entrada.352Claude Code consulta exactamente una de las dos listas para cada servidor, por lo que ninguna lista anula la otra. Si agrega un servidor regular a `enabledMcpServers`, o un servidor integrado desactivado de forma predeterminada a `disabledMcpServers`, Claude Code ignora la entrada.

353 353 

354`disabledMcpServers` y `enabledMcpServers` no están relacionados con [`enabledMcpjsonServers`](/docs/es/settings-reference#enabledmcpjsonservers) y [`disabledMcpjsonServers`](/docs/es/settings-reference#disabledmcpjsonservers), que controlan la aprobación de servidores definidos en el archivo `.mcp.json` de un proyecto.354`disabledMcpServers` y `enabledMcpServers` no están relacionados con [`enabledMcpjsonServers`](/docs/es/settings-reference#enabledmcpjsonservers) y [`disabledMcpjsonServers`](/docs/es/settings-reference#disabledmcpjsonservers), que controlan la aprobación de servidores definidos en el archivo `.mcp.json` de un proyecto.

355 355 


357 Tiempos de ejecución del cliente MCP357 Tiempos de ejecución del cliente MCP

358</h3>358</h3>

359 359 

360Claude Code se conecta a servidores MCP a través de uno de dos tiempos de ejecución del cliente. El tiempo de ejecución v1 se basa en MCP TypeScript SDK 1.x. El tiempo de ejecución v2 es el mismo código en [MCP TypeScript SDK 2.0](https://ts.sdk.modelcontextprotocol.io/v2/), que agrega la revisión del protocolo MCP 2026-07-28. El resto de esta página se aplica a ambos tiempos de ejecución, excepto donde una sección nombra el tiempo de ejecución v2.360Claude Code se conecta a servidores MCP a través de uno de dos tiempos de ejecución del cliente. El tiempo de ejecución v1 se basa en MCP TypeScript SDK 1.x. El tiempo de ejecución v2 es el mismo código en [MCP TypeScript SDK 2.0](https://ts.sdk.modelcontextprotocol.io/v2/), que añade la revisión del protocolo MCP 2026-07-28. El resto de esta página se aplica a ambos tiempos de ejecución, excepto donde una sección nombra el tiempo de ejecución v2.

361 361 

362Claude Code elige un tiempo de ejecución cada vez que lo inicia y lo mantiene hasta que sale. En sesiones donde [obtiene banderas de características](/docs/es/env-vars#features-that-need-feature-flag-fetching), utiliza el tiempo de ejecución v2 en Claude Code v2.1.232 o posterior.362Claude Code elige un tiempo de ejecución cada vez que lo inicia y lo mantiene hasta que sale. En sesiones donde [obtiene banderas de características](/docs/es/env-vars#features-that-need-feature-flag-fetching), utiliza el tiempo de ejecución v2 en Claude Code v2.1.232 o posterior.

363 363 

364En las sesiones donde no obtiene banderas de características, Claude Code utiliza el tiempo de ejecución v2 de forma predeterminada en Claude Code v2.1.274 o posterior:364En las sesiones donde no obtiene banderas de características, Claude Code utiliza el tiempo de ejecución v2 de forma predeterminada en Claude Code v2.1.274 o posterior:

365 365 

366* Sesiones en Amazon Bedrock, Claude Platform en AWS, Plataforma de Agentes de Google Cloud, o Microsoft Foundry, a menos que una plataforma anfitriona que integra Claude Code establezca [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/es/env-vars)366* Sesiones en Amazon Bedrock, Claude Platform en AWS, Plataforma de Agentes de Google Cloud, o Microsoft Foundry, a menos que una plataforma host que incrusta Claude Code establezca [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/es/env-vars)

367* Sesiones iniciadas sesión a través de una [puerta de enlace de aplicaciones Claude](/docs/es/claude-apps-gateway)367* Sesiones iniciadas a través de una [puerta de enlace de aplicaciones Claude](/docs/es/claude-apps-gateway)

368* Sesiones donde desactiva la telemetría o la obtención de banderas de características, por ejemplo con `DISABLE_TELEMETRY`368* Sesiones donde desactiva la telemetría o la obtención de banderas de características, por ejemplo con `DISABLE_TELEMETRY`

369 369 

370En v2, Claude Code también:370En v2, Claude Code también:

371 371 

372* Pregunta a servidores HTTP si admiten la revisión más nueva, y la utiliza con los que lo hacen. También pregunta a servidores conectores claude.ai en sesiones donde obtiene banderas de características. Para que pregunte a servidores stdio, o a servidores conectores en cada sesión, establezca [`MCP_PROTOCOL_NEGOTIATION`](/docs/es/env-vars) en `auto`. Se conecta a todos los demás servidores como v1 lo hace.372* Pregunta a los servidores HTTP si admiten la revisión más nueva, y la utiliza con los que lo hacen. También pregunta a los servidores conectores claude.ai en sesiones donde obtiene banderas de características. Para que pregunte a servidores stdio, o servidores conectores en cada sesión, establezca [`MCP_PROTOCOL_NEGOTIATION`](/docs/es/env-vars) en `auto`. Se conecta a todos los demás servidores como v1 lo hace.

373* Recibe notificaciones `list_changed` de servidores en la revisión más nueva sobre una [secuencia que mantiene abierta](#notification-streams-on-the-v2-runtime).373* Recibe notificaciones `list_changed` de servidores en la revisión más nueva sobre una [secuencia que mantiene abierta](#notification-streams-on-the-v2-runtime).

374* No registra un servidor de [canal](#push-messages-with-channels) que se conecta en la revisión más nueva, porque esa revisión no puede llevar mensajes de canal.374* No registra un servidor de [canal](#push-messages-with-channels) que se conecta en la revisión más nueva, porque esa revisión no puede llevar mensajes de canal.

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

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

377 377 

378Anthropic puede mantener un servidor específico en el protocolo anterior, u off esa secuencia, con una bandera de características que Claude Code obtiene.378Anthropic puede mantener un servidor específico en el protocolo anterior, o fuera de esa secuencia, con una bandera de característica que Claude Code obtiene.

379 379 

380Para elegir el tiempo de ejecución usted mismo, establezca [`MCP_SDK_GENERATION`](/docs/es/env-vars) en `v1` o `v2`. Para decidir si Claude Code pregunta, establezca [`MCP_PROTOCOL_NEGOTIATION`](/docs/es/env-vars) en `auto` o `legacy`.380Para elegir el tiempo de ejecución usted mismo, establezca [`MCP_SDK_GENERATION`](/docs/es/env-vars) en `v1` o `v2`. Para decidir si Claude Code pregunta, establezca [`MCP_PROTOCOL_NEGOTIATION`](/docs/es/env-vars) en `auto` o `legacy`.

381 381 


396* **La secuencia se cierra nuevamente dentro de 10 segundos**: Claude Code la reabre hasta tres veces, luego se detiene para esa conexión.396* **La secuencia se cierra nuevamente dentro de 10 segundos**: Claude Code la reabre hasta tres veces, luego se detiene para esa conexión.

397* **La secuencia permanece abierta más de 10 segundos, luego se cierra**, como las secuencias a hosts sin servidor comúnmente lo hacen: después de cinco reaperturas en una hora, Claude Code espera aproximadamente seis horas antes de la siguiente.397* **La secuencia permanece abierta más de 10 segundos, luego se cierra**, como las secuencias a hosts sin servidor comúnmente lo hacen: después de cinco reaperturas en una hora, Claude Code espera aproximadamente seis horas antes de la siguiente.

398 398 

399Hasta que la secuencia se reabre, mantiene las últimas herramientas, indicaciones y recursos obtenidos del servidor. Para recoger sus cambios más pronto, reconecte el servidor desde `/mcp`.399Hasta que la secuencia se reabre, mantiene las herramientas, indicaciones y recursos del servidor obtenidos por última vez. Para recoger sus cambios más pronto, reconecte el servidor desde `/mcp`.

400 400 

401<h3 id="automatic-reconnection">401<h3 id="automatic-reconnection">

402 Reconexión automática402 Reconexión automática


417 Conexiones iniciales fallidas417 Conexiones iniciales fallidas

418</h4>418</h4>

419 419 

420Cuando la primera conexión de un servidor HTTP o SSE falla con un error transitorio, como una respuesta 5xx, una conexión rechazada, o un tiempo de espera, Claude Code reintenta hasta tres veces. Si la conexión aún falla, Claude Code marca el servidor como fallido. Claude Code reintenta de esta manera al inicio y cuando se agrega un servidor a mitad de sesión. Eso incluye un servidor que Claude Code agrega a una [sesión en la nube](/docs/es/claude-code-on-the-web) desde su configuración y un servidor que agrega con el método [`setMcpServers()`](/docs/es/agent-sdk/typescript) del Agent SDK.420Cuando la primera conexión de un servidor HTTP o SSE falla con un error transitorio, como una respuesta 5xx, una conexión rechazada, o un tiempo de espera, Claude Code reintenta hasta tres veces. Si la conexión aún falla, Claude Code marca el servidor como fallido.

421 421 

422Claude Code no reintenta en estos casos:422Claude Code no reintenta en estos casos:

423 423 

424* La primera conexión de un servidor WebSocket424* La primera conexión de un servidor WebSocket

425* Un error de autenticación o no encontrado, porque requiere un cambio de configuración para resolverse. Cuando un [`headersHelper`](#use-dynamic-headers-for-custom-authentication) es la única fuente del servidor del encabezado `Authorization`, Claude Code reintenta un error de autenticación de todas formas, porque vuelve a ejecutar el ayudante en cada intento y puede recoger una credencial fresca425* Un error de autenticación o no encontrado, porque requiere un cambio de configuración para resolverse. Cuando un [`headersHelper`](#use-dynamic-headers-for-custom-authentication) es la única fuente del servidor del encabezado `Authorization`, Claude Code reintenta un error de autenticación de todas formas, porque vuelve a ejecutar el helper en cada intento y puede recoger una credencial fresca

426 426 

427<h4 id="failed-discovery-requests">427<h4 id="failed-discovery-requests">

428 Solicitudes de descubrimiento fallidas428 Solicitudes de descubrimiento fallidas


434 Cómo Claude aprende que un servidor falló434 Cómo Claude aprende que un servidor falló

435</h4>435</h4>

436 436 

437Si Claude Code le dice a Claude sobre un servidor configurado que no se conectó depende de [búsqueda de herramientas](#scale-with-mcp-tool-search), que está activada de forma predeterminada:437Si Claude Code le dice a Claude sobre un servidor configurado que falló al conectarse depende de [búsqueda de herramientas](#scale-with-mcp-tool-search), que está activada de forma predeterminada:

438 438 

439* Con búsqueda de herramientas, Claude Code le dice a Claude qué servidor falló y su error de conexión, por lo que Claude informa la falla de conexión en su respuesta. Claude Code incluye la misma información en resultados de `ToolSearch` que no encuentran herramientas coincidentes.439* Con búsqueda de herramientas, Claude Code le dice a Claude qué servidor falló y su error de conexión, por lo que Claude informa la falla de conexión en su respuesta. Claude Code incluye la misma información en resultados de `ToolSearch` que no encuentran herramientas coincidentes.

440* En cualquier [configuración sin búsqueda de herramientas](#configure-tool-search), Claude Code no informa fallas de conexión de servidor configurado a Claude.440* En cualquier [configuración sin búsqueda de herramientas](#configure-tool-search), Claude Code no informa fallos de conexión de servidores fallidos a Claude.

441 441 

442<h3 id="push-messages-with-channels">442<h3 id="push-messages-with-channels">

443 Mensajes de inserción con canales443 Enviar mensajes con canales

444</h3>444</h3>

445 445 

446Un servidor MCP también puede insertar mensajes directamente en su sesión para que Claude pueda reaccionar a eventos externos como resultados de CI, alertas de monitoreo, o mensajes de chat. Para habilitar esto, su servidor declara la capacidad `claude/channel` y usted lo activa con la bandera `--channels` al inicio. Consulte [Canales](/docs/es/channels) para utilizar un canal oficialmente compatible, o [Referencia de canales](/docs/es/channels-reference) para construir el suyo propio.446Un servidor MCP también puede enviar mensajes directamente a su sesión para que Claude pueda reaccionar a eventos externos como resultados de CI, alertas de monitoreo, o mensajes de chat. Para habilitar esto, su servidor declara la capacidad `claude/channel` y usted lo activa con la bandera `--channels` al inicio. Consulte [Channels](/docs/es/channels) para usar un canal oficialmente compatible, o [Channels reference](/docs/es/channels-reference) para construir el suyo propio.

447 447 

448En el [tiempo de ejecución v2](#mcp-client-runtimes), si establece [`MCP_PROTOCOL_NEGOTIATION`](/docs/es/env-vars) en `auto` y un servidor de canal negocia la revisión del protocolo MCP 2026-07-28, no puede entregar mensajes de canal, por lo que Claude Code no lo registra como un canal. Dejar la variable sin establecer, o establecerla en `legacy`, mantiene servidores stdio en el protocolo anterior.448En el [tiempo de ejecución v2](#mcp-client-runtimes), si establece [`MCP_PROTOCOL_NEGOTIATION`](/docs/es/env-vars) en `auto` y un servidor de canal negocia la revisión del protocolo MCP 2026-07-28, no puede entregar mensajes de canal, por lo que Claude Code no lo registra como un canal. Dejar la variable sin establecer, o establecerla en `legacy`, mantiene los servidores stdio en el protocolo anterior.

449 449 

450<Tip>450<Tip>

451 Consejos:451 Consejos:

452 452 

453 * Utilice la bandera `-s` o `--scope` para especificar dónde se almacena la configuración:453 * Use la bandera `-s` o `--scope` para especificar dónde se almacena la configuración:

454 * `local` (predeterminado): disponible solo para usted en el proyecto actual454 * `local` (predeterminado): disponible solo para usted en el proyecto actual

455 * `project`: compartido con todos en el proyecto a través del archivo `.mcp.json`455 * `project`: compartido con todos en el proyecto a través del archivo `.mcp.json`

456 * `user`: disponible para usted en todos los proyectos456 * `user`: disponible para usted en todos los proyectos

457 * Establezca variables de entorno con banderas `-e` o `--env` (por ejemplo, `-e KEY=value`)457 * Establezca variables de entorno con banderas `-e` o `--env` (por ejemplo, `-e KEY=value`)

458 * Las banderas `--transport` y `--header` también aceptan formas cortas `-t` y `-H`458 * Las banderas `--transport` y `--header` también aceptan formas cortas `-t` y `-H`

459 * Configure el tiempo de espera de inicio del servidor MCP utilizando la variable de entorno `MCP_TIMEOUT` (por ejemplo, `MCP_TIMEOUT=10000 claude` establece un tiempo de espera de 10 segundos)459 * Configure el tiempo de espera de inicio del servidor MCP usando la variable de entorno `MCP_TIMEOUT` (por ejemplo, `MCP_TIMEOUT=10000 claude` establece un tiempo de espera de 10 segundos)

460 * Establezca un tiempo de espera de ejecución de herramienta por servidor agregando un campo `timeout` en milisegundos a la entrada `.mcp.json` de ese servidor, por ejemplo `"timeout": 600000` para diez minutos. Esto anula la variable de entorno `MCP_TOOL_TIMEOUT` solo para ese servidor460 * Establezca un tiempo de espera de ejecución de herramientas por servidor agregando un campo `timeout` en milisegundos a la entrada `.mcp.json` de ese servidor, por ejemplo `"timeout": 600000` para diez minutos. Esto anula la variable de entorno `MCP_TOOL_TIMEOUT` solo para ese servidor

461 * Claude Code muestra una advertencia cuando la salida de herramientas MCP excede 10,000 tokens y limita la salida a 25,000 tokens de forma predeterminada. Para aumentar el límite, establezca la variable de entorno `MAX_MCP_OUTPUT_TOKENS` (por ejemplo, `MAX_MCP_OUTPUT_TOKENS=50000`); el umbral de advertencia es fijo. Consulte [Límites de salida de MCP y advertencias](#mcp-output-limits-and-warnings)461 * Claude Code muestra una advertencia cuando la salida de herramientas MCP excede 10,000 tokens y limita la salida a 25,000 tokens de forma predeterminada. Para aumentar el límite, establezca la variable de entorno `MAX_MCP_OUTPUT_TOKENS` (por ejemplo, `MAX_MCP_OUTPUT_TOKENS=50000`); el umbral de advertencia es fijo. Consulte [MCP output limits and warnings](#mcp-output-limits-and-warnings)

462 * Utilice `/mcp` para autenticarse con servidores remotos que requieren autenticación OAuth 2.0462 * Use `/mcp` para autenticarse con servidores remotos que requieren autenticación OAuth 2.0

463</Tip>463</Tip>

464 464 

465El `timeout` por servidor es un límite de reloj de pared duro por llamada de herramienta, y las notificaciones de progreso del servidor no lo extienden. Los valores por debajo de 1000 se ignoran y caen a `MCP_TOOL_TIMEOUT`, o a su valor predeterminado de aproximadamente 28 horas cuando esa variable no está establecida. Para un servidor HTTP, SSE, o [conector claude.ai](/docs/es/mcp#use-mcp-servers-from-claude-ai) también hay un segundo temporizador por solicitud que cubre cada solicitud hasta el primer byte de respuesta del servidor. Claude Code establece ese temporizador al mayor de tres valores: 60 segundos, el tiempo de espera de herramienta que se aplica al servidor, y `MCP_TIMEOUT`. El valor predeterminado de 28 horas de un `MCP_TOOL_TIMEOUT` sin establecer no entra en esa comparación, y un valor por debajo de 60 segundos no acorta el temporizador. Los servidores stdio y WebSocket no tienen temporizador por solicitud.465El `timeout` por servidor es un límite de reloj de pared duro por llamada de herramienta, y las notificaciones de progreso del servidor no lo extienden. Los valores por debajo de 1000 se ignoran y caen a `MCP_TOOL_TIMEOUT`, o a su valor predeterminado de aproximadamente 28 horas cuando esa variable no está establecida. Para un servidor HTTP, SSE, o [conector claude.ai](/docs/es/mcp#use-mcp-servers-from-claude-ai) también hay un segundo temporizador por solicitud que cubre cada solicitud hasta el primer byte de respuesta del servidor. Claude Code establece ese temporizador al mayor de tres valores: 60 segundos, el tiempo de espera de herramientas que se aplica al servidor, y `MCP_TIMEOUT`. El valor predeterminado de 28 horas de un `MCP_TOOL_TIMEOUT` sin establecer no entra en esa comparación, y un valor por debajo de 60 segundos no acorta el temporizador. Los servidores stdio y WebSocket no tienen temporizador por solicitud.

466 466 

467Un `timeout` por servidor de al menos 1000 también actúa como un piso en el tiempo de espera de inactividad descrito a continuación: Claude Code nunca aborta las llamadas de herramienta de ese servidor por inactividad más pronto que el `timeout` por servidor. Requiere Claude Code v2.1.203 o posterior.467Un `timeout` por servidor de al menos 1000 también actúa como un piso en el tiempo de espera de inactividad descrito a continuación: Claude Code nunca aborta las llamadas de herramientas de ese servidor por inactividad más pronto que el `timeout` por servidor. Requiere Claude Code v2.1.203 o posterior.

468 468 

469Una llamada de herramienta a un servidor MCP que no envía respuesta y ninguna notificación de progreso para la ventana de inactividad aborta con un error en lugar de esperar el límite de reloj de pared. Se aplica a todos los tipos de servidor excepto servidores IDE y servidores en proceso del SDK. La ventana de inactividad tiene un valor predeterminado de cinco minutos para servidores HTTP, SSE, WebSocket, y [conector claude.ai](#use-mcp-servers-from-claude-ai), y de 30 minutos para servidores stdio. Antes de v2.1.203, los servidores stdio estaban exentos del tiempo de espera de inactividad.469Una llamada de herramienta a un servidor MCP que no envía respuesta ni notificación de progreso durante la ventana de inactividad aborta con un error en lugar de esperar el límite de reloj de pared. El tiempo de espera de inactividad se aplica a todos los tipos de servidor excepto servidores IDE y servidores en proceso SDK. La ventana de inactividad tiene un valor predeterminado de cinco minutos para servidores HTTP, SSE, WebSocket, y [conector claude.ai](#use-mcp-servers-from-claude-ai), y de 30 minutos para servidores stdio. Antes de v2.1.203, los servidores stdio estaban exentos del tiempo de espera de inactividad.

470 470 

471Establezca la variable de entorno [`CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT`](/docs/es/env-vars) en milisegundos para cambiar la ventana de inactividad, o establézcala en `0` para deshabilitar la verificación.471Establezca la variable de entorno [`CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT`](/docs/es/env-vars) en milisegundos para cambiar la ventana de inactividad, o establézcala en `0` para deshabilitar la verificación.

472 472 

473Estos tiempos de espera limitan cuánto tiempo puede ejecutarse una llamada, no siempre cuánto tiempo bloquea la sesión: una llamada de conversación principal que se ejecuta más de dos minutos se mueve a una tarea de fondo primero. Consulte [Envío automático a segundo plano de llamadas de herramientas largas](#automatic-backgrounding-of-long-tool-calls).473Estos tiempos de espera limitan cuánto tiempo puede ejecutarse una llamada, no siempre cuánto bloquea la sesión: una llamada de conversación principal que se ejecuta más de dos minutos se mueve a una tarea de fondo primero. Consulte [Automatic backgrounding of long tool calls](#automatic-backgrounding-of-long-tool-calls).

474 474 

475<h3 id="automatic-backgrounding-of-long-tool-calls">475<h3 id="automatic-backgrounding-of-long-tool-calls">

476 Envío automático a segundo plano de llamadas de herramientas largas476 Ejecución automática en segundo plano de llamadas de herramientas largas

477</h3>477</h3>

478 478 

479Una llamada de herramienta MCP en la conversación principal que aún se está ejecutando después de dos minutos se mueve a una tarea de fondo en lugar de bloquear la sesión. Claude recibe el ID de tarea inmediatamente y continúa trabajando, y el resultado llega como una notificación de tarea cuando la llamada se resuelve. El envío automático a segundo plano requiere Claude Code v2.1.212 o posterior.479Una llamada de herramienta MCP en la conversación principal que aún se está ejecutando después de dos minutos se mueve a una tarea de fondo en lugar de bloquear la sesión. Claude recibe el ID de tarea inmediatamente y continúa trabajando, y el resultado llega como una notificación de tarea cuando la llamada se resuelve. La ejecución automática en segundo plano requiere Claude Code v2.1.212 o posterior.

480 480 

481La tarea aparece en [`/tasks`](/docs/es/commands#all-commands), donde también puede detenerla, y no sobrevive a la salida de la sesión. Los límites por llamada aún se aplican mientras la llamada se ejecuta en segundo plano: el límite de reloj de pared establecido por el `timeout` por servidor o [`MCP_TOOL_TIMEOUT`](/docs/es/env-vars), y el tiempo de espera de inactividad establecido por [`CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT`](/docs/es/env-vars).481La tarea aparece en [`/tasks`](/docs/es/commands#all-commands), donde también puede detenerla, y no sobrevive a la salida de la sesión. La entrada de la tarea muestra el progreso más reciente que el servidor ha informado.

482 482 

483Establezca la variable de entorno [`CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS`](/docs/es/env-vars) en milisegundos para cambiar el umbral, o establézcala en `0` para desactivar el envío automático a segundo plano. Establecer `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` en `1` también lo desactiva, junto con todas las otras características de tareas de fondo.483Los límites por llamada aún se aplican mientras la llamada se ejecuta en segundo plano: el límite de reloj de pared establecido por el `timeout` por servidor o [`MCP_TOOL_TIMEOUT`](/docs/es/env-vars), y el tiempo de espera de inactividad establecido por [`CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT`](/docs/es/env-vars).

484 

485Establezca la variable de entorno [`CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS`](/docs/es/env-vars) en milisegundos para cambiar el umbral, o establézcala en `0` para desactivar la ejecución automática en segundo plano. Establecer `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` en `1` también la desactiva, junto con todas las otras características de tareas de fondo.

484 486 

485Algunas llamadas nunca se mueven al fondo:487Algunas llamadas nunca se mueven al fondo:

486 488 

487* Llamadas de [subagentes](/docs/es/sub-agents); Claude Code solo envía a segundo plano llamadas de conversación principal489* Llamadas de [subagentes](/docs/es/sub-agents); Claude Code solo ejecuta en segundo plano llamadas de conversación principal

488* Llamadas a servidores IDE490* Llamadas a servidores IDE

489* Llamadas en [modo no interactivo](/docs/es/headless), a menos que `CLAUDE_AUTO_BACKGROUND_TASKS` esté establecido en `1`, ya que una ejecución única puede terminar antes de que llegue el resultado491* Llamadas en [modo no interactivo](/docs/es/headless), a menos que `CLAUDE_AUTO_BACKGROUND_TASKS` esté establecido en `1`, ya que una ejecución única puede terminar antes de que llegue el resultado

490 492 

491Una llamada esperando un [diálogo de elicitación](#respond-to-mcp-elicitation-requests) abierto no se envía a segundo plano mientras el diálogo está abierto; el servidor está bloqueado en su entrada, no es lento, por lo que Claude Code difiere el movimiento hasta que el diálogo se cierre.493Una llamada esperando un [diálogo de elicitación](#respond-to-mcp-elicitation-requests) abierto no se ejecuta en segundo plano mientras el diálogo está abierto; el servidor está bloqueado en su entrada, no es lento, por lo que Claude Code difiere el movimiento hasta que el diálogo se cierre.

492 494 

493<h3 id="plugin-provided-mcp-servers">495<h3 id="plugin-provided-mcp-servers">

494 Servidores MCP proporcionados por plugins496 Servidores MCP proporcionados por plugins


538**Características MCP de plugins**:540**Características MCP de plugins**:

539 541 

540* **Ciclo de vida automático**: los servidores se conectan y desconectan en estos puntos:542* **Ciclo de vida automático**: los servidores se conectan y desconectan en estos puntos:

541 * Al inicio de la sesión, Claude Code conecta automáticamente los servidores de plugins habilitados. En `/mcp`, un servidor de plugin remoto (HTTP o SSE) que ha utilizado antes puede mostrar el estado [`cached`](#server-status-detail) en su lugar; Claude Code lo conecta cuando Claude llama por primera vez a una de sus herramientas543 * Al inicio de la sesión, Claude Code conecta automáticamente los servidores de plugins habilitados. En `/mcp`, un servidor de plugin remoto (HTTP o SSE) que ha usado antes puede mostrar el estado [`cached`](#server-status-detail) en su lugar; Claude Code se conecta cuando Claude llama por primera vez a una de sus herramientas

542 * Si habilita o deshabilita un plugin durante una sesión, Claude Code conecta o desconecta sus servidores MCP cuando el cambio se aplica. [Aplicar cambios de plugins sin reiniciar](/docs/es/plugins/cli-reference#reload-plugins) describe cuándo es eso. En una sesión sin terminal interactiva, `/reload-plugins` no conecta o desconecta servidores MCP de plugins; esos cambios tienen efecto en su próxima sesión544 * Si habilita o deshabilita un plugin durante una sesión, Claude Code conecta o desconecta sus servidores MCP cuando el cambio se aplica. [Apply plugin changes without restarting](/docs/es/plugins/cli-reference#reload-plugins) describe cuándo es eso. En una sesión sin terminal interactiva, `/reload-plugins` no conecta ni desconecta servidores MCP de plugins; esos cambios tienen efecto en su próxima sesión

543 * Cuando recarga, Claude Code mantiene las conexiones activas de servidores de plugins cuya configuración no ha cambiado, y hace lo mismo cuando [reemplaza la lista de servidores MCP de la sesión](/docs/es/agent-sdk/typescript#mcpsetserversresult) desde el Agent SDK sin nombrarlos545 * Cuando recarga, Claude Code mantiene las conexiones activas de servidores de plugins cuya configuración no ha cambiado, y hace lo mismo cuando [reemplaza la lista de servidores MCP de la sesión](/docs/es/agent-sdk/typescript#mcpsetserversresult) desde el Agent SDK sin nombrarlos

544 * Cuando [mueve la sesión con `/cd`](/docs/es/permissions#move-the-session-to-another-directory) en v2.1.246 o posterior, Claude Code conecta los servidores de plugins que la configuración del nuevo directorio habilita y desconecta los servidores de plugins que ya no están habilitados, por lo que no necesita ejecutar `/reload-plugins` después del movimiento546 * Cuando [mueve la sesión con `/cd`](/docs/es/permissions#move-the-session-to-another-directory) en v2.1.246 o posterior, Claude Code conecta los servidores de plugins que la configuración del nuevo directorio habilita y desconecta los servidores de plugins que ya no están habilitados, por lo que no necesita ejecutar `/reload-plugins` después del movimiento

545 * En [sesiones en la nube](/docs/es/claude-code-on-the-web), una llamada MCP a un servidor de plugin que aún no está conectado, como justo después de que una sesión inactiva se despierte, inicia el servidor bajo demanda y espera a que se conecte547 * En [sesiones en la nube](/docs/es/claude-code-on-the-web), una llamada MCP a un servidor de plugin que aún no está conectado, como justo después de que una sesión inactiva se despierte, inicia el servidor bajo demanda y espera a que se conecte


551 553 

552Los servidores de plugins aparecen en `/mcp` con indicadores que muestran que provienen de plugins.554Los servidores de plugins aparecen en `/mcp` con indicadores que muestran que provienen de plugins.

553 555 

556Para un servidor stdio de un plugin, `claude mcp get` imprime `Command: stdio`, una línea `Args:` vacía, y cada variable de entorno como `NAME=[REDACTED]`. Los valores están ocultos porque pueden llevar credenciales.

557 

554**Nombres de herramientas MCP de plugins**:558**Nombres de herramientas MCP de plugins**:

555 559 

556Las herramientas de un servidor MCP agrupado en un plugin incluyen tanto el nombre del plugin como la clave del servidor en su nombre invocable. La forma completa es `mcp__plugin_<plugin-name>_<server-name>__<tool-name>`, donde cualquier carácter fuera de `A-Z`, `a-z`, `0-9`, `_`, y `-` se reemplaza con `_`. Para el servidor `database-tools` agrupado en un plugin llamado `my-plugin`, una herramienta `query` es invocable como:560Las herramientas de un servidor MCP agrupado en un plugin incluyen tanto el nombre del plugin como la clave del servidor en su nombre invocable. La forma completa es `mcp__plugin_<plugin-name>_<server-name>__<tool-name>`, donde cualquier carácter fuera de `A-Z`, `a-z`, `0-9`, `_`, y `-` se reemplaza con `_`. Para el servidor `database-tools` agrupado en un plugin llamado `my-plugin`, una herramienta `query` es invocable como:


559mcp__plugin_my-plugin_database-tools__query563mcp__plugin_my-plugin_database-tools__query

560```564```

561 565 

562Utilice este nombre completo cuando haga referencia a la herramienta en [reglas de permisos](/docs/es/permissions), la lista `allowed-tools` de una habilidad, el [campo `tools` de un subagente](/docs/es/sub-agents#available-tools), o un [coincidente de hook](/docs/es/hooks#match-mcp-tools). Un coincidente de hook escrito contra la clave del servidor desnuda, como `mcp__database-tools__.*`, nunca se dispara para un servidor agrupado en un plugin.566Use este nombre completo cuando haga referencia a la herramienta en [reglas de permisos](/docs/es/permissions), la lista `allowed-tools` de una skill, el [campo `tools` de un subagente](/docs/es/sub-agents#available-tools), o un [coincidente de hook](/docs/es/hooks#match-mcp-tools). Un coincidente de hook escrito contra la clave del servidor desnuda, como `mcp__database-tools__.*`, nunca se dispara para un servidor agrupado en un plugin.

563 567 

564El servidor mismo se registra bajo el nombre con alcance `plugin:<plugin-name>:<server-name>`, como `plugin:my-plugin:database-tools`. Utilice ese nombre donde se espera un nombre de servidor configurado, como el [campo `server` de un hook `mcp_tool`](/docs/es/hooks#mcp-tool-hook-fields).568El servidor mismo se registra bajo el nombre con alcance `plugin:<plugin-name>:<server-name>`, como `plugin:my-plugin:database-tools`. Use ese nombre donde se espera un nombre de servidor configurado, como el [campo `server` de un hook `mcp_tool`](/docs/es/hooks#mcp-tool-hook-fields).

565 569 

566Consulte la [referencia de componentes de plugins](/docs/es/plugins/components#mcp-servers) para obtener detalles sobre cómo agrupar servidores MCP con plugins.570Consulte la [referencia de componentes de plugins](/docs/es/plugins/components#mcp-servers) para obtener detalles sobre cómo agrupar servidores MCP con plugins.

567 571 


1456* Los nombres de propiedades de nivel superior deben tener entre 1 y 64 caracteres de largo y usar solo letras ASCII y dígitos, `_`, `.` y `-`1460* Los nombres de propiedades de nivel superior deben tener entre 1 y 64 caracteres de largo y usar solo letras ASCII y dígitos, `_`, `.` y `-`

1457* El esquema debe ser válido contra el meta-esquema de JSON Schema draft 2020-12. Claude Code aplica esta comprobación a esquemas que no declaran `$schema` y esquemas que declaran draft 2020-12. Un esquema que declara cualquier otro dialecto omite esta comprobación, aunque la comprobación de nombres de propiedades anterior sigue aplicándose1461* El esquema debe ser válido contra el meta-esquema de JSON Schema draft 2020-12. Claude Code aplica esta comprobación a esquemas que no declaran `$schema` y esquemas que declaran draft 2020-12. Un esquema que declara cualquier otro dialecto omite esta comprobación, aunque la comprobación de nombres de propiedades anterior sigue aplicándose

1458 1462 

1459Claude Code ejecuta las comprobaciones después de la [reescritura de combinador de nivel raíz](#tool-input-schemas-with-a-root-level-combinator), en el esquema que realmente enviaría.

1460 

1461Cuando Claude Code excluye una herramienta, registra el motivo en el registro del servidor e indica a Claude qué herramientas excluyó y por qué, para que pueda preguntarle a Claude por qué falta una herramienta. Si corrige el esquema en el servidor, la herramienta reaparece la próxima vez que Claude Code carga las herramientas del servidor.1463Cuando Claude Code excluye una herramienta, registra el motivo en el registro del servidor e indica a Claude qué herramientas excluyó y por qué, para que pueda preguntarle a Claude por qué falta una herramienta. Si corrige el esquema en el servidor, la herramienta reaparece la próxima vez que Claude Code carga las herramientas del servidor.

1462 1464 

1463Claude Code activa la exclusión a través de una bandera de características que obtiene de Anthropic. En una [implementación donde la obtención de banderas está desactivada](/docs/es/env-vars#features-that-need-feature-flag-fetching), o en una máquina cuyas banderas nunca han llegado, como una máquina aislada, Claude Code sigue ejecutando las comprobaciones y registra en el registro del servidor qué herramienta sería rechazada, pero envía el esquema de la herramienta a la API de todas formas. La API rechaza una solicitud que incluya ese esquema con [un error 400 que nombra la herramienta por su posición](/docs/es/errors#tool-input-schema-is-invalid). Antes de v2.1.216, ninguna implementación ejecutaba estas comprobaciones.1465Claude Code activa la exclusión a través de una bandera de características que obtiene de Anthropic. En una [implementación donde la obtención de banderas está desactivada](/docs/es/env-vars#features-that-need-feature-flag-fetching), o en una máquina cuyas banderas nunca han llegado, como una máquina aislada, Claude Code sigue ejecutando las comprobaciones y registra en el registro del servidor qué herramienta sería rechazada, pero envía el esquema de la herramienta a la API de todas formas. La API rechaza una solicitud que incluya ese esquema con [un error 400 que nombra la herramienta por su posición](/docs/es/errors#tool-input-schema-is-invalid). Antes de v2.1.216, ninguna implementación ejecutaba estas comprobaciones.

Details

360 360 

361 Lo que sucede a continuación le dice dónde está el problema:361 Lo que sucede a continuación le dice dónde está el problema:

362 362 

363 * El comando se inicia y espera entrada: el servidor en sí funciona. Ejecute `claude mcp get <name>` y confirme que el comando mostrado allí coincida con lo que acaba de ejecutar. Si el comando mostrado difiere de lo que escribió, probablemente omitió el separador `--` antes del comando del servidor. Elimine el servidor y vuelva a agregarlo con `--` en su lugar. Si escribió `.mcp.json` a mano, verifique su sintaxis y ubicación.363 * El comando se inicia y espera entrada: el servidor en sí funciona.

364 

365 Ejecute `claude mcp get <name>` y confirme que el comando mostrado allí coincida con lo que acaba de ejecutar. Si el comando mostrado difiere de lo que escribió, probablemente omitió el separador `--` antes del comando del servidor. Elimine el servidor y vuelva a agregarlo con `--` en su lugar. Si escribió `.mcp.json` a mano, verifique su sintaxis y ubicación. Antes de v2.1.285, `claude mcp get` no imprimía ninguna línea `Command` para una entrada stdio guardada sin un campo `type`, como una entrada `.mcp.json` escrita a mano. En esas versiones, ejecute `claude mcp list` en su lugar, que imprime la línea de comando de cualquier forma.

364 * El comando genera un error: el mensaje nombra lo que falta, como Node.js o un navegador.366 * El comando genera un error: el mensaje nombra lo que falta, como Node.js o un navegador.

365 </Accordion>367 </Accordion>

366 368 

model-config.md +11 −6

Details

39| **`sonnet`** | Utiliza el último modelo Sonnet para tareas de codificación diaria |39| **`sonnet`** | Utiliza el último modelo Sonnet para tareas de codificación diaria |

40| **`opus`** | Utiliza el último modelo Opus para tareas de razonamiento complejo |40| **`opus`** | Utiliza el último modelo Opus para tareas de razonamiento complejo |

41| **`haiku`** | Utiliza el modelo Haiku rápido y eficiente para tareas simples |41| **`haiku`** | Utiliza el modelo Haiku rápido y eficiente para tareas simples |

42| **`sonnet[1m]`** | Utiliza Sonnet con una [ventana de contexto de 1 millón de tokens](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model) para sesiones largas. Sin efecto cuando `sonnet` ya se resuelve a Sonnet 5.5 o Sonnet 5 con su ventana nativa de 1M; detrás de una [puerta de enlace LLM](/docs/es/llm-gateway), selecciona la ventana de 1M para ese modelo |42| **`sonnet[1m]`** | Utiliza Sonnet con una [ventana de contexto de 1 millón de tokens](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model) para sesiones largas. Sin efecto cuando `sonnet` ya se resuelve a Sonnet 5.5 o Sonnet 5 con su ventana nativa de 1M |

43| **`opus[1m]`** | Utiliza Opus con una [ventana de contexto de 1 millón de tokens](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model) para sesiones largas |43| **`opus[1m]`** | Utiliza Opus con una [ventana de contexto de 1 millón de tokens](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model) para sesiones largas |

44| **`opusplan`** | Modo especial que utiliza `opus` durante el Plan Mode, luego cambia a `sonnet` para la ejecución |44| **`opusplan`** | Modo especial que utiliza `opus` durante Plan Mode, luego cambia a `sonnet` para la ejecución |

45 45 

46La versión a la que se resuelven los alias `opus` y `sonnet` depende del proveedor:46La versión a la que se resuelven los alias `opus` y `sonnet` depende del proveedor:

47 47 


521 Cadenas de modelos de reserva521 Cadenas de modelos de reserva

522</h3>522</h3>

523 523 

524Cuando el modelo principal está sobrecargado, no disponible o devuelve otro error de servidor no reintentable, Claude Code puede cambiar a un modelo de reserva en lugar de fallar la solicitud. Los errores de autenticación, facturación, límite de velocidad, tamaño de solicitud y transporte, y una [denegación por la verificación de política de tu organización](/docs/es/errors#automatic-retries), nunca desencadenan un cambio; esos siguen su manejo normal de reintentos y errores.524Cuando el modelo principal está sobrecargado, no disponible o devuelve otro error de servidor no reintentable, Claude Code puede cambiar a un modelo de reserva en lugar de fallar la solicitud. Los errores de autenticación, facturación, límite de velocidad, tamaño de solicitud y transporte, y una [denegación por la verificación de política de tu organización](/docs/es/errors#automatic-retries), nunca desencadenan un cambio; esos siguen su manejo normal de reintentos y errores. Sí cambia cuando [Amazon Bedrock](/docs/es/amazon-bedrock#when-a-model-is-disabled-mid-session) o [Agent Platform de Google Cloud](/docs/es/google-vertex-ai#when-a-model-is-disabled-mid-session) rechaza un modelo que tu cuenta no puede invocar, que Claude Code trata como que el modelo no está disponible en lugar de como un error de autenticación.

525 525 

526Configura uno o más modelos de reserva y Claude Code los intenta en orden, mostrando un aviso cuando cambia. El cambio dura solo el turno actual, por lo que tu siguiente mensaje intenta el modelo principal primero de nuevo. Claude Code limita las cadenas a tres modelos después de la eliminación de duplicados e ignora entradas adicionales.526Configura uno o más modelos de reserva y Claude Code los intenta en orden, mostrando un aviso cuando cambia. El cambio dura solo el turno actual, por lo que tu siguiente mensaje intenta el modelo principal primero de nuevo. Claude Code limita las cadenas a tres modelos después de la eliminación de duplicados e ignora entradas adicionales.

527 527 


775 775 

776Claude Code verifica estos requisitos de plan solo cuando se conecta a la API de Anthropic directamente. Si apuntas `ANTHROPIC_BASE_URL` a una [puerta de enlace LLM](/docs/es/llm-gateway#subscriptions-and-gateways) y tu inicio de sesión guardado de claude.ai permanece como la credencial activa, Claude Code no verifica tus créditos de uso del plan. Las opciones `[1m]` permanecen disponibles en `/model`, y la puerta de enlace decide si la solicitud tiene éxito. Antes de v2.1.229, Claude Code rechazaba `/model sonnet[1m]` en esa configuración cuando no podía confirmar créditos de uso en la cuenta.776Claude Code verifica estos requisitos de plan solo cuando se conecta a la API de Anthropic directamente. Si apuntas `ANTHROPIC_BASE_URL` a una [puerta de enlace LLM](/docs/es/llm-gateway#subscriptions-and-gateways) y tu inicio de sesión guardado de claude.ai permanece como la credencial activa, Claude Code no verifica tus créditos de uso del plan. Las opciones `[1m]` permanecen disponibles en `/model`, y la puerta de enlace decide si la solicitud tiene éxito. Antes de v2.1.229, Claude Code rechazaba `/model sonnet[1m]` en esa configuración cuando no podía confirmar créditos de uso en la cuenta.

777 777 

778<span id="context-window-behind-a-gateway" />

779 

780Si estableces `ANTHROPIC_BASE_URL` a una [puerta de enlace LLM](/docs/es/llm-gateway) u otro proxy, Claude Code da a cada modelo que reconoce la misma ventana de contexto que el modelo tiene en la API de Anthropic. Fable 5.1, Fable 5, Sonnet 5 y posterior, y Opus 4.7 y posterior obtienen la ventana de 1M sin variante `[1m]` para seleccionar, y un modelo que alcanza 1M solo a través de su variante `[1m]`, como Opus 4.6, se ejecuta a 200K sin ella. Claude Code no puede detectar un límite inferior que la puerta de enlace o el servidor detrás de ella aplique. Si tu puerta de enlace rechaza solicitudes por encima de 200K tokens, ejecuta [`/autocompact 200k`](#set-the-auto-compact-window) para que las sesiones se compacten en ese límite.

781 

778Para desactivar el contexto de 1M, establece `CLAUDE_CODE_DISABLE_1M_CONTEXT=1`. Claude Code elimina variantes de modelo de 1M del selector de modelo. En modelos con una ventana de 1M nativa, como Sonnet 5 y los modelos Fable, también trata el modelo como si tuviera una ventana de contexto de 200K:782Para desactivar el contexto de 1M, establece `CLAUDE_CODE_DISABLE_1M_CONTEXT=1`. Claude Code elimina variantes de modelo de 1M del selector de modelo. En modelos con una ventana de 1M nativa, como Sonnet 5 y los modelos Fable, también trata el modelo como si tuviera una ventana de contexto de 200K:

779 783 

780* Con la compactación automática activada, las sesiones se compactan en el límite de 200K a través de [compactación automática](#set-the-auto-compact-window). Establecer la ventana de compactación automática por encima de 200K no levanta la retención, porque Claude Code limita esa ventana a la ventana de contexto del modelo.784* Con la compactación automática activada, las sesiones se compactan en el límite de 200K a través de [compactación automática](#set-the-auto-compact-window). Establecer la ventana de compactación automática por encima de 200K no levanta la retención, porque Claude Code limita esa ventana a la ventana de contexto del modelo.


803 807 

804En la API de Anthropic, Sonnet 5.5 y Sonnet 5 siempre se ejecutan con la ventana de contexto de 1M. No hay variante de 200K, sin sufijo `[1m]` para seleccionar, y sin créditos de uso requeridos en ningún plan. Las sesiones se compactan automáticamente antes de que la ventana se llene, en aproximadamente 967K tokens por defecto; establece [`CLAUDE_CODE_AUTO_COMPACT_WINDOW`](/docs/es/env-vars) para elegir un umbral diferente.808En la API de Anthropic, Sonnet 5.5 y Sonnet 5 siempre se ejecutan con la ventana de contexto de 1M. No hay variante de 200K, sin sufijo `[1m]` para seleccionar, y sin créditos de uso requeridos en ningún plan. Las sesiones se compactan automáticamente antes de que la ventana se llene, en aproximadamente 967K tokens por defecto; establece [`CLAUDE_CODE_AUTO_COMPACT_WINDOW`](/docs/es/env-vars) para elegir un umbral diferente.

805 809 

806Dos configuraciones presupuestan la ventana en 200K en su lugar:810Claude Code da a Sonnet 5.5 y Sonnet 5 la misma ventana de 1M detrás de una [puerta de enlace LLM](/docs/es/llm-gateway) u otro `ANTHROPIC_BASE_URL` personalizado. Si tu puerta de enlace aplica un límite inferior, consulta [la ventana de contexto detrás de una puerta de enlace](#context-window-behind-a-gateway).

811 

812Esta configuración presupuesta la ventana en 200K en su lugar:

807 813 

808* **Puerta de enlace LLM**: cuando `ANTHROPIC_BASE_URL` apunta a una [puerta de enlace](/docs/es/llm-gateway), Claude Code no puede verificar soporte de 1M. Para usar la ventana completa, selecciona Sonnet 5.5 (1M context) en el selector de modelo, que se asigna a `sonnet[1m]`, o ejecuta `/model claude-sonnet-5[1m]` para Sonnet 5.

809* **`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`**: mantiene sesiones en cada modelo con una ventana de 1M nativa a una ventana de 200K; consulta [Extended context](#extended-context) para cómo se aplica la retención. Útil para despliegues que necesitan limitar el contexto.814* **`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`**: mantiene sesiones en cada modelo con una ventana de 1M nativa a una ventana de 200K; consulta [Extended context](#extended-context) para cómo se aplica la retención. Útil para despliegues que necesitan limitar el contexto.

810 815 

811<h2 id="context-window-and-auto-compaction">816<h2 id="context-window-and-auto-compaction">


841* Las [sesiones en la nube](/docs/es/claude-code-on-the-web) se compactan cuando la conversación se acerca al límite del modelo846* Las [sesiones en la nube](/docs/es/claude-code-on-the-web) se compactan cuando la conversación se acerca al límite del modelo

842* Sonnet 4.6 y Opus 4.6 sin [contexto extendido](#extended-context) se compactan en el límite de 200K, y también lo hacen Opus 4.8 y posteriores cuando se ejecutan con una ventana de contexto de 200K, como en Amazon Bedrock, Google Cloud's Agent Platform y Microsoft Foundry847* Sonnet 4.6 y Opus 4.6 sin [contexto extendido](#extended-context) se compactan en el límite de 200K, y también lo hacen Opus 4.8 y posteriores cuando se ejecutan con una ventana de contexto de 200K, como en Amazon Bedrock, Google Cloud's Agent Platform y Microsoft Foundry

843* Cuando establece [`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`](/docs/es/env-vars), los modelos con una ventana nativa de 1M, como Sonnet 5 y los modelos Fable, se compactan en el límite de 200K848* Cuando establece [`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`](/docs/es/env-vars), los modelos con una ventana nativa de 1M, como Sonnet 5 y los modelos Fable, se compactan en el límite de 200K

844* Los modelos que se ejecutan con una ventana nativa de 1M, como Sonnet 5, los modelos Fable y Opus 4.7 y posteriores en la API de Anthropic, se compactan antes de que la ventana se llene, a aproximadamente 967K tokens de forma predeterminada. En Amazon Bedrock, Google Cloud's Agent Platform y Microsoft Foundry, [Fijar modelos para implementaciones de terceros](#pin-models-for-third-party-deployments) indica qué modelos se ejecutan con esa ventana; para las configuraciones que presupuestan Sonnet 5.5 y Sonnet 5 en 200K en su lugar, consulte [Ventana de contexto de Sonnet 5.5 y Sonnet 5](#sonnet-5-5-and-sonnet-5-context-window)849* Los modelos que se ejecutan con una ventana nativa de 1M se compactan antes de que la ventana se llene, a aproximadamente 967K tokens de forma predeterminada. En la API de Anthropic, estos incluyen Sonnet 5, los modelos Fable y Opus 4.7 y posteriores. En Amazon Bedrock, Google Cloud's Agent Platform y Microsoft Foundry, consulte [Fijar modelos para implementaciones de terceros](#pin-models-for-third-party-deployments) para ver qué modelos se ejecutan con esa ventana. Detrás de un `ANTHROPIC_BASE_URL` personalizado, consulte [la ventana de contexto detrás de una puerta de enlace](#context-window-behind-a-gateway)

845* Las sesiones en un ID de modelo que Claude Code no reconoce, como un alias de [puerta de enlace LLM](/docs/es/llm-gateway), se compactan en la ventana de contexto que Claude Code asume para el ID; consulte [Corregir la ventana para una puerta de enlace o ID de modelo personalizado](#correct-the-window-for-a-gateway-or-custom-model-id)850* Las sesiones en un ID de modelo que Claude Code no reconoce, como un alias de [puerta de enlace LLM](/docs/es/llm-gateway), se compactan en la ventana de contexto que Claude Code asume para el ID; consulte [Corregir la ventana para una puerta de enlace o ID de modelo personalizado](#correct-the-window-for-a-gateway-or-custom-model-id)

846 851 

847<h3 id="correct-the-window-for-a-gateway-or-custom-model-id">852<h3 id="correct-the-window-for-a-gateway-or-custom-model-id">

Details

1430* `error.type`: por qué Claude Code detuvo la sesión. Presente solo en eventos `refused`:1430* `error.type`: por qué Claude Code detuvo la sesión. Presente solo en eventos `refused`:

1431 * `"helper_failed"`: una [ejecución del asistente de política falló](/docs/es/settings-reference#helper-failures)1431 * `"helper_failed"`: una [ejecución del asistente de política falló](/docs/es/settings-reference#helper-failures)

1432 * `"policy_invalid"`: la configuración gestionada contiene un error que detiene a Claude Code de iniciar, o una fuente de administrador no se pudo cargar, por lo que Claude Code no puede verificar la aplicación de inicio de sesión de la organización1432 * `"policy_invalid"`: la configuración gestionada contiene un error que detiene a Claude Code de iniciar, o una fuente de administrador no se pudo cargar, por lo que Claude Code no puede verificar la aplicación de inicio de sesión de la organización

1433 * `"provider_not_allowed"`: la sesión usaría un proveedor de API, o enviaría el tráfico de un proveedor a un host, que la lista [`allowedProviders`](/docs/es/settings-reference#allowedproviders) gestionada no permite. Requiere Claude Code v2.1.285 o posterior

1433 * `"consent_rejected"`: el usuario rechazó el [diálogo de aprobación de seguridad](/docs/es/server-managed-settings#security-approval-dialogs) para configuración gestionada por servidor1434 * `"consent_rejected"`: el usuario rechazó el [diálogo de aprobación de seguridad](/docs/es/server-managed-settings#security-approval-dialogs) para configuración gestionada por servidor

1434 * `"force_refresh_failed"`: la búsqueda de configuración que [`forceRemoteSettingsRefresh`](/docs/es/settings-reference#forceremotesettingsrefresh) requiere falló1435 * `"force_refresh_failed"`: la búsqueda de configuración que [`forceRemoteSettingsRefresh`](/docs/es/settings-reference#forceremotesettingsrefresh) requiere falló

1435 * `"gateway_rejected"`: una [puerta de enlace de aplicaciones Claude](/docs/es/claude-apps-gateway) respondió a la carga de configuración gestionada con HTTP 4031436 * `"gateway_rejected"`: una [puerta de enlace de aplicaciones Claude](/docs/es/claude-apps-gateway) respondió a la carga de configuración gestionada con HTTP 403

Details

246| `storage.googleapis.com` | Instalador nativo y actualizador automático nativo en versiones anteriores a 2.1.116 |246| `storage.googleapis.com` | Instalador nativo y actualizador automático nativo en versiones anteriores a 2.1.116 |

247| `registry.npmjs.org` | Instalaciones de plugins (obtención de paquetes de plugins de origen npm e instalación de dependencias de paquetes Node.js de plugins), servidores MCP lanzados con `npx` y el registro de paquetes para instalaciones de npm y bun de Claude Code en sí |247| `registry.npmjs.org` | Instalaciones de plugins (obtención de paquetes de plugins de origen npm e instalación de dependencias de paquetes Node.js de plugins), servidores MCP lanzados con `npx` y el registro de paquetes para instalaciones de npm y bun de Claude Code en sí |

248| `bridge.claudeusercontent.com` | Puente WebSocket de extensión [Claude en Chrome](/docs/es/chrome) |248| `bridge.claudeusercontent.com` | Puente WebSocket de extensión [Claude en Chrome](/docs/es/chrome) |

249| `*.frame.claudeusercontent.com` | Lecturas de contenido de [Artifact](/docs/es/artifacts). La CLI obtiene los archivos de un artefacto de este host cuando Claude abre uno, y solo cuando la herramienta Artifact está [disponible](/docs/es/artifacts#availability) para su cuenta. Para desactivar la herramienta y eliminar este requisito, establezca [`"enableArtifact": false`](/docs/es/settings-reference#enableartifact) o [`CLAUDE_CODE_DISABLE_ARTIFACT=1`](/docs/es/env-vars); Claude Code también respeta la configuración [`disableArtifact`](/docs/es/settings-reference#disableartifact) obsoleta. Consulte [Deshabilitar artefactos](/docs/es/artifacts#disable-artifacts) para ver cómo interactúan estas configuraciones |249| `*.frame.claudeusercontent.com` | Lecturas de contenido de [Artifact](/docs/es/artifacts). La CLI obtiene los archivos de un artefacto de este host cuando Claude abre uno, y solo cuando la herramienta Artifact está [disponible](/docs/es/artifacts#availability) para su cuenta. Para desactivar la herramienta y eliminar este requisito, establezca [`"enableArtifact": false`](/docs/es/settings-reference#enableartifact) o [`CLAUDE_CODE_DISABLE_ARTIFACT=1`](/docs/es/env-vars) |

250| `github.com` | Clonación de [marketplaces de plugins](/docs/es/plugins/overview) y plugins alojados en GitHub, incluido el marketplace oficial de Anthropic, sobre HTTPS o SSH. Para clonar fuentes de GitHub `owner/repo` solo sobre HTTPS, establezca [`CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1`](/docs/es/env-vars) |250| `github.com` | Clonación de [marketplaces de plugins](/docs/es/plugins/overview) y plugins alojados en GitHub, incluido el marketplace oficial de Anthropic, sobre HTTPS o SSH. Para clonar fuentes de GitHub `owner/repo` solo sobre HTTPS, establezca [`CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1`](/docs/es/env-vars) |

251| `raw.githubusercontent.com` | Fuente de registro de cambios para [`/release-notes`](/docs/es/commands). En sesiones interactivas, Claude Code también la obtiene en segundo plano al inicio cuando su registro de cambios en caché aún no cubre la versión en ejecución, como el primer inicio después de una actualización; las sesiones no interactivas y en la nube nunca la obtienen |251| `raw.githubusercontent.com` | Fuente de registro de cambios para [`/release-notes`](/docs/es/commands). En sesiones interactivas, Claude Code también la obtiene en segundo plano al inicio cuando su registro de cambios en caché aún no cubre la versión en ejecución, como el primer inicio después de una actualización; las sesiones no interactivas y en la nube nunca la obtienen |

252| `*-review.googlesource.com` | Búsqueda de cambios de Gerrit en checkouts de `googlesource.com`. Cuando una sesión de pestaña de Claude Desktop Code se inicia o se reanuda en un checkout [confiable](/docs/es/permissions#project-allow-rules-and-workspace-trust) cuyo `origin` es un host `googlesource.com`, Claude Code pregunta anónimamente al servidor `-review` de ese host por el cambio abierto que coincida con el `Change-Id` de HEAD, una vez por inicio o reanudación. Otros tipos de sesión omiten la búsqueda, y no se contacta a ningún otro host de Gerrit. Opcional: deshabilitar con [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/es/env-vars) |252| `*-review.googlesource.com` | Búsqueda de cambios de Gerrit en checkouts de `googlesource.com`. Cuando una sesión de pestaña de Claude Desktop Code se inicia o se reanuda en un checkout [confiable](/docs/es/permissions#project-allow-rules-and-workspace-trust) cuyo `origin` es un host `googlesource.com`, Claude Code pregunta anónimamente al servidor `-review` de ese host por el cambio abierto que coincida con el `Change-Id` de HEAD, una vez por inicio o reanudación. Otros tipos de sesión omiten la búsqueda, y no se contacta a ningún otro host de Gerrit. Opcional: deshabilitar con [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/es/env-vars) |

Details

86| Cómo ejecuta Claude Code | Modo de permisos inicial integrado |86| Cómo ejecuta Claude Code | Modo de permisos inicial integrado |

87| :- | :- |87| :- | :- |

88| Cualquier archivo de configuración establece `disableAutoMode` en `"disable"` | `default` |88| Cualquier archivo de configuración establece `disableAutoMode` en `"disable"` | `default` |

89| `claude -p` o el [SDK de Agent](/docs/es/agent-sdk/permissions) | `default` |89| `claude -p` o el [Agent SDK](/docs/es/agent-sdk/permissions#permission-modes) | `default` en sesiones que [obtienen banderas de características](/docs/es/env-vars#features-that-need-feature-flag-fetching). En sesiones que no lo hacen, como en un proveedor de terceros o con telemetría desactivada, `auto` con Claude Code v2.1.285 o posterior y `default` en versiones anteriores. Una sesión en una organización cuya política retiene el valor predeterminado `auto` comienza en `default` en su lugar |

90| En una terminal o a través de la [extensión de VS Code](/docs/es/vs-code) | `auto` con Claude Code v2.1.283 o posterior; en versiones anteriores, `auto` en planes Pro, Max o Team en sesiones que [obtienen banderas de características](/docs/es/env-vars#features-that-need-feature-flag-fetching), y `default` en caso contrario |90| En una terminal o a través de la [extensión de VS Code](/docs/es/vs-code) | `auto` con Claude Code v2.1.283 o posterior; en versiones anteriores, `auto` en planes Pro, Max o Team en sesiones que [obtienen banderas de características](/docs/es/env-vars#features-that-need-feature-flag-fetching), y `default` en caso contrario |

91 91 

92En su [primera sesión después de una instalación o actualización](/docs/es/env-vars#first-session-after-an-install-or-upgrade), Claude Code puede elegir el modo de permisos inicial antes de que lleguen sus banderas de características. Esa sesión puede iniciarse en un modo de permisos diferente al que proporciona la tabla, y su siguiente sesión coincide con la tabla.92En su [primera sesión después de una instalación o actualización](/docs/es/env-vars#first-session-after-an-install-or-upgrade), Claude Code puede elegir el modo de permisos inicial antes de que lleguen sus banderas de características. Esa sesión puede iniciarse en un modo de permisos diferente al que proporciona la tabla, y su siguiente sesión coincide con la tabla.


98* En una terminal, una vez, en la parte superior de la sesión98* En una terminal, una vez, en la parte superior de la sesión

99* En la extensión de VS Code, como una tarjeta en la pantalla de nueva conversación que permanece hasta que la descarte99* En la extensión de VS Code, como una tarjeta en la pantalla de nueva conversación que permanece hasta que la descarte

100 100 

101En planes Pro, Max y Team, si su `~/.claude/settings.json` establece un `defaultMode` distinto de `auto` y ningún otro archivo de configuración establece uno, sus sesiones siguen iniciándose en ese modo. Claude Code pregunta una vez, en la terminal o en la extensión de VS Code, si desea cambiar la configuración a modo automático. Si rechaza, su configuración permanece como está.101Si su `~/.claude/settings.json` establece un `defaultMode` distinto de `auto` y ningún otro archivo de configuración establece uno, sus sesiones siguen iniciándose en ese modo. En planes Pro, Max y Team, y en sesiones que [no obtienen banderas de características](/docs/es/env-vars#features-that-need-feature-flag-fetching), Claude Code pregunta una vez, en la terminal o en la extensión de VS Code, si desea cambiar la configuración a modo automático. Si rechaza, su configuración permanece como está.

102 102 

103<h3 id="start-in-a-different-mode">103<h3 id="start-in-a-different-mode">

104 Comience en un modo de permisos diferente104 Comience en un modo de permisos diferente


322 Modo automático en Bedrock, Agent Platform o Foundry322 Modo automático en Bedrock, Agent Platform o Foundry

323</h3>323</h3>

324 324 

325En [Amazon Bedrock](/docs/es/amazon-bedrock), [Google Cloud's Agent Platform](/docs/es/google-vertex-ai), [Microsoft Foundry](/docs/es/microsoft-foundry) y sesiones de [puerta de enlace de aplicaciones Claude](/docs/es/claude-apps-gateway) con sesión iniciada, el modo automático está disponible de forma predeterminada. Con Claude Code v2.1.283 o posterior, también es el [modo de permiso de inicio integrado](#which-mode-a-session-starts-in) para sesiones de terminal interactivo y [VS Code](/docs/es/vs-code). Para elegir el modo de permiso de inicio usted mismo, establezca `permissions.defaultMode` como [Comenzar en un modo de permiso diferente](#start-in-a-different-mode) describe, o seleccione un modo de permiso del indicador de modo de la extensión VS Code.325En [Amazon Bedrock](/docs/es/amazon-bedrock), [Google Cloud's Agent Platform](/docs/es/google-vertex-ai), [Microsoft Foundry](/docs/es/microsoft-foundry) y sesiones de [puerta de enlace de aplicaciones Claude](/docs/es/claude-apps-gateway) con sesión iniciada, el modo automático está disponible de forma predeterminada. Cuando nada más establece un modo de permiso, también es el [modo de permiso de inicio integrado](#which-mode-a-session-starts-in), en las versiones que esa sección enumera en su tabla. Para elegir el modo de permiso de inicio usted mismo, establezca `permissions.defaultMode` como [Comenzar en un modo de permiso diferente](#start-in-a-different-mode) describe, o seleccione un modo de permiso del indicador de modo de la extensión VS Code.

326 326 

327Solo Claude Sonnet 5 o posterior, Opus 4.7 o posterior y los modelos Fable son compatibles en estos proveedores. En cualquier otro modelo, la sesión comienza en Manual en su lugar.327Solo Claude Sonnet 5 o posterior, Opus 4.7 o posterior y los modelos Fable son compatibles en estos proveedores. En cualquier otro modelo, la sesión comienza en Manual en su lugar.

328 328 


342 342 

343Donde el servidor revisa las acciones, sus veredictos las deciden. Otros dos resultados son posibles:343Donde el servidor revisa las acciones, sus veredictos las deciden. Otros dos resultados son posibles:

344 344 

345* **El servidor no revisa la sesión**: una respuesta se completa sin resultados de revisión, o el servidor responde que no revisa esta sesión. Las causas más comunes son una puerta de enlace LLM o proxy que descarta la solicitud de revisión o los resultados, y una plataforma, región o credencial que aún no tiene verificaciones del lado del servidor. Claude Code vuelve a sus propias solicitudes del clasificador. Una vez que esa alternativa se mantiene durante el resto de la sesión, muestra un [aviso sobre cargos de solicitud del clasificador](/docs/es/auto-mode-classifier-billing) en cuentas donde esas solicitudes se facturan.345* **El servidor no revisa la sesión**: una respuesta se completa sin resultados de revisión, o el servidor responde que no revisa esta sesión. Las causas más comunes son una puerta de enlace LLM o proxy que descarta la solicitud de revisión o los resultados, y una plataforma, región o credencial que aún no tiene verificaciones del lado del servidor. Claude Code vuelve a sus propias solicitudes del clasificador. Una vez que ese respaldo se mantiene durante el resto de la sesión, muestra un [aviso sobre cargos de solicitud del clasificador](/docs/es/auto-mode-classifier-billing) en cuentas donde esas solicitudes se facturan.

346* **El servidor no da veredicto para una acción**: Claude Code niega la acción en lugar de ejecutarla sin revisar. En cualquier conexión, esto sucede cuando la respuesta finaliza antes de que lleguen los resultados de revisión o los resultados llegan en una forma que Claude Code no puede leer. Una puerta de enlace LLM o proxy que acorta respuestas o reescribe los resultados puede causar cualquiera de los dos. En una conexión directa a la API de Anthropic, también sucede cuando la verificación del servidor falla para la acción, por ejemplo al agotarse el tiempo de espera. [El servidor no devolvió ningún veredicto de seguridad](/docs/es/errors#the-server-returned-no-safety-verdict) cubre el mensaje de negación, qué sucede cuando las negaciones se repiten y qué hacer.346* **El servidor no da veredicto para una acción**: Claude Code niega la acción en lugar de ejecutarla sin revisar. En cualquier conexión, esto sucede cuando la respuesta finaliza antes de que lleguen los resultados de la revisión o los resultados llegan en una forma que Claude Code no puede leer. Una puerta de enlace LLM o proxy que acorta respuestas o reescribe los resultados puede causar cualquiera de los dos. En una conexión directa a la API de Anthropic, también sucede cuando la verificación del servidor falla para la acción, por ejemplo al agotarse el tiempo de espera. [El servidor no devolvió ningún veredicto de seguridad](/docs/es/errors#the-server-returned-no-safety-verdict) cubre el mensaje de negación, qué sucede cuando las negaciones se repiten y qué hacer.

347 347 

348Para omitir preguntar al servidor y siempre usar las propias solicitudes del clasificador de Claude Code, establezca [`CLAUDE_CODE_AUTO_MODE_SERVER=0`](/docs/es/env-vars). En una conexión directa a la API de Anthropic, la variable requiere Claude Code v2.1.281 o posterior. Establecerlo en `1` allí activa la revisión del servidor en una sesión que no la tiene, como una sesión `-p` o Agent SDK, a menos que también haya establecido `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`. Si establece `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1` y deja `CLAUDE_CODE_AUTO_MODE_SERVER` sin establecer, Claude Code también deja de preguntar al servidor, excepto como [Desactivar capacidades previas al lanzamiento](/docs/es/llm-gateway-protocol#disable-pre-release-capabilities) describe.348Para omitir preguntar al servidor y siempre usar las propias solicitudes del clasificador de Claude Code, establezca [`CLAUDE_CODE_AUTO_MODE_SERVER=0`](/docs/es/env-vars). En una conexión directa a la API de Anthropic, la variable requiere Claude Code v2.1.281 o posterior. Establecerlo en `1` allí activa la revisión del servidor en una sesión que no la tiene, como una sesión `-p` o Agent SDK, a menos que también haya establecido `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`. Si establece `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1` y deja `CLAUDE_CODE_AUTO_MODE_SERVER` sin establecer, Claude Code también deja de preguntar al servidor, excepto como [Deshabilitar capacidades previas al lanzamiento](/docs/es/llm-gateway-protocol#disable-pre-release-capabilities) describe.

349 349 

350<h3 id="what-the-classifier-blocks-by-default">350<h3 id="what-the-classifier-blocks-by-default">

351 Lo que el clasificador bloquea de forma predeterminada351 Lo que el clasificador bloquea de forma predeterminada


363* Modificación de infraestructura compartida363* Modificación de infraestructura compartida

364* Destrucción irreversible de archivos que existían antes de la sesión364* Destrucción irreversible de archivos que existían antes de la sesión

365* Inserción forzada365* Inserción forzada

366* Confirmar o insertar un cambio que enviaría secretos o datos sensibles fuera del repositorio cuando se ejecuta, o ampliar lo que expone una implementación. Esto cubre un flujo de trabajo de CI o configuración de implementación que pasa un secreto a un destino que no lo recibe ya, un script o paso de configuración que lee un almacén de secretos y envía los datos, y un cambio de configuración que amplía lo que publica una implementación, como un registro, visibilidad, artefacto o configuración de mapa de origen. La verificación se aplica en cualquier rama, se aplica incluso cuando el repositorio es público y se activa cuando el cambio se confirma o se inserta, independientemente de si esa confirmación o inserción activa la canalización; borrarla requiere nombrar el efecto de ejecución, no solo la confirmación o inserción. Antes de v2.1.211, esta verificación se limitaba a la rama predeterminada en su lugar: una inserción allí se bloqueaba cuando llevaba contenido sensible, cambios ocultos o mal descritos en relación con lo que pidió, contenido portado desde fuera del repositorio o enrutado alrededor de una revisión que pidió366* Confirmar o insertar un cambio que enviaría secretos o datos sensibles fuera del repositorio cuando se ejecuta, o ampliar lo que expone una implementación. Esto cubre un flujo de trabajo de CI o configuración de implementación que pasa un secreto a un destino que no lo recibe ya, un script o paso de configuración que lee un almacén de secretos y envía los datos, y un cambio de configuración que amplía lo que publica una implementación, como un registro, visibilidad, artefacto o configuración de mapa de origen. La verificación se aplica en cualquier rama, se aplica incluso cuando el repositorio es público y se activa cuando el cambio se confirma o se inserta, independientemente de si esa confirmación o inserción desencadena la canalización; borrarla requiere nombrar el efecto de ejecución, no solo la confirmación o inserción. Antes de v2.1.211, esta verificación se limitaba a la rama predeterminada en su lugar: una inserción allí se bloqueaba cuando llevaba contenido sensible, cambios ocultos o mal descritos en relación con lo que pidió, contenido portado desde fuera del repositorio o enrutado alrededor de una revisión que pidió

367* `git reset --hard`, `git checkout -- .`, `git restore .`, `git clean -fd`, `git stash drop` o `git stash clear`, que el clasificador presume descartaría cambios no confirmados367* `git reset --hard`, `git checkout -- .`, `git restore .`, `git clean -fd`, `git stash drop` o `git stash clear`, que el clasificador presume descartaría cambios sin confirmar

368* `git commit --amend` cuando la confirmación en HEAD no fue creada en esta sesión368* `git commit --amend` cuando la confirmación en HEAD no fue creada en esta sesión

369* Desde v2.1.198, `git commit --amend` cuando la confirmación en HEAD ya ha sido insertada. Una reescritura de solo mensaje no se bloquea: `--amend -m` sin nada recién preparado, en una confirmación que Claude creó durante esta sesión369* Desde v2.1.198, `git commit --amend` cuando la confirmación en HEAD ya ha sido insertada. Una reescritura de solo mensaje no se bloquea: `--amend -m` sin nada recién preparado, en una confirmación que Claude creó durante esta sesión

370* `terraform destroy`, `pulumi destroy`, `cdk destroy` o `terragrunt destroy`, y aplicar un plan que destruye recursos370* `terraform destroy`, `pulumi destroy`, `cdk destroy` o `terragrunt destroy`, y aplicar un plan que destruye recursos

371* Escritura en un administrador de secretos, o cambio de registros DNS o certificados TLS371* Escritura en un administrador de secretos, o cambio de registros DNS o certificados TLS

372* Fusión de una solicitud de extracción que ningún humano ha aprobado, aprobación de la propia solicitud de extracción de Claude o desactivación de verificaciones de CI372* Fusión de una solicitud de extracción que ningún humano ha aprobado, aprobación de la propia solicitud de extracción de Claude o deshabilitación de verificaciones de CI

373* Publicación de un comentario que es en sí mismo un comando para automatización, como `atlantis apply` o `/deploy` o `/merge` de un bot373* Publicación de un comentario que es en sí mismo un comando para automatización, como `atlantis apply` o `/deploy` o `/merge` de un bot

374* Alternancia, ramificación o eliminación de una marca de característica de producción374* Alternancia, ramificación o eliminación de una bandera de característica de producción

375* Aplicación de cambios de infraestructura a un alcance de IaC protegido, o drenaje y eliminación de nodos de clúster375* Aplicación de cambios de infraestructura a un alcance de IaC protegido, o drenaje y eliminación de nodos de clúster

376* Escrituras en un clúster de cómputo compartido que van más allá del recurso que nombró, como un selector de etiqueta o `--all` que captura trabajos de otros usuarios376* Escrituras en un clúster de cómputo compartido que van más allá del recurso que nombró, como un selector de etiqueta o `--all` que captura trabajos de otros usuarios

377* Creación de recursos de Kubernetes que se ejecutan en cada nodo o interceptan tráfico de clúster, como DaemonSets y webhooks de admisión377* Creación de recursos de Kubernetes que se ejecutan en cada nodo o interceptan tráfico de clúster, como DaemonSets y webhooks de admisión


381* Acceso a una ubicación listada como ubicación de datos sensibles en su [entorno](/docs/es/auto-mode-config#define-trusted-infrastructure), o copia de datos de una. A partir de v2.1.198, esto también bloquea el envío de datos de uno a una audiencia que la entrada excluye381* Acceso a una ubicación listada como ubicación de datos sensibles en su [entorno](/docs/es/auto-mode-config#define-trusted-infrastructure), o copia de datos de una. A partir de v2.1.198, esto también bloquea el envío de datos de uno a una audiencia que la entrada excluye

382* Enrutamiento de una instalación de paquete alrededor de su registro de paquetes interno a un registro público. A partir de v2.1.198, esto también se aplica cuando le ha dicho a Claude que existe un registro interno o espejo en la conversación, no solo cuando uno está listado en su entorno382* Enrutamiento de una instalación de paquete alrededor de su registro de paquetes interno a un registro público. A partir de v2.1.198, esto también se aplica cuando le ha dicho a Claude que existe un registro interno o espejo en la conversación, no solo cuando uno está listado en su entorno

383* Ejecución de un comando con una bandera que desactiva una protección de seguridad, como `--insecure`383* Ejecución de un comando con una bandera que desactiva una protección de seguridad, como `--insecure`

384* Lanzamiento de un bucle de agente autónomo que se ejecuta sin aprobación humana o sandbox, como uno iniciado con `--dangerously-skip-permissions` o `--no-sandbox`. A partir de v2.1.198, esto también cubre la ejecución de un agente de terceros o evaluador con aislamiento y aprobación por acción desactivados, como un ejecutor iniciado con `--yes-always`384* Lanzamiento de un bucle de agente autónomo que se ejecuta sin aprobación humana o sandbox, como uno iniciado con `--dangerously-skip-permissions` o `--no-sandbox`. A partir de v2.1.198, esto también cubre la ejecución de un agente de terceros o arnés de evaluación con aislamiento y aprobación por acción deshabilitados, como un ejecutor iniciado con `--yes-always`

385* Acciones del navegador [Claude en Chrome](/docs/es/chrome) que podrían enviar contenido de página, cookies o credenciales fuera de origen385* Acciones del navegador [Claude en Chrome](/docs/es/chrome) que podrían enviar contenido de página, cookies o credenciales fuera del origen

386 386 

387Varias de estas categorías dependen de entradas de [entorno](/docs/es/auto-mode-config#define-trusted-infrastructure), como destinos remotos sensibles y alcances de IaC protegidos, que puede reducir a nombres concretos.387Varias de estas categorías dependen de entradas de [entorno](/docs/es/auto-mode-config#define-trusted-infrastructure), como destinos remotos sensibles y alcances de IaC protegidos, que puede reducir a nombres concretos.

388 388 

389Claude Code v2.1.198 y posterior también bloquean estos de forma predeterminada:389Claude Code v2.1.198 y posterior también bloquean estos de forma predeterminada:

390 390 

391* Eliminación de archivos en `/tmp`, `$TMPDIR` u otro directorio compartido de scratch o caché por comodín, glob o filtro de edad en lugar de por una ruta nombrada específica391* Eliminación de archivos en `/tmp`, `$TMPDIR` u otro directorio compartido de scratch o caché por comodín, glob o filtro de edad en lugar de por una ruta nombrada específica

392* Inclusión de detalles sensibles en contenido enviado, cargado, publicado o escrito a otras personas o sistemas compartidos, cuando su propio mensaje no autorizó esos detalles para ese destinatario. Los cuerpos de PR y problemas, mensajes de confirmación y comentarios cuentan como este tipo de contenido saliente cuando el repositorio está fuera del límite de confianza o es público, incluidos los repositorios públicos de su propia organización; las rutas de archivo internas, nombres de código, datos de respuesta de API en vivo como correos electrónicos o identificadores de cuenta e identificadores de infraestructura cuentan como detalles sensibles. El alcance de PR, problema y mensaje de confirmación requiere Claude Code v2.1.200 o posterior. Los datos personales en vivo de una respuesta de API en un cuerpo de PR o problema, como una dirección de correo electrónico, un identificador de cuenta u organización o una métrica de uso, requieren que nombre esos detalles y el destinatario independientemente de la visibilidad del repositorio o el límite de confianza. Esa verificación requiere Claude Code v2.1.203 o posterior392* Inclusión de detalles sensibles en contenido enviado, cargado, publicado o escrito a otras personas o sistemas compartidos, cuando su propio mensaje no autorizó esos detalles para ese destinatario. Los cuerpos de PR y problema, mensajes de confirmación y comentarios cuentan como este tipo de contenido saliente cuando el repositorio está fuera del límite de confianza o es público, incluidos los repositorios públicos de su propia organización; las rutas de archivo internas, nombres de código, datos de respuesta de API en vivo como correos electrónicos o identificadores de cuenta e identificadores de infraestructura cuentan como detalles sensibles. El alcance de PR, problema y mensaje de confirmación requiere Claude Code v2.1.200 o posterior. Los datos personales en vivo de una respuesta de API en un cuerpo de PR o problema, como una dirección de correo electrónico, un identificador de cuenta u organización o una métrica de uso, requieren que nombre esos detalles y el destinatario independientemente de la visibilidad del repositorio o límite de confianza. Esa verificación requiere Claude Code v2.1.203 o posterior

393* Envío de pulsaciones de teclas a su propio panel tmux de Claude Code para impulsar su propia interfaz, que el clasificador trata como Claude cambiando sus propios permisos o supervisión393* Envío de pulsaciones de teclas a su propio panel tmux de Claude Code para impulsar su propia interfaz, que el clasificador trata como Claude cambiando sus propios permisos o supervisión

394 394 

395Claude Code v2.1.200 y posterior también bloquean estos de forma predeterminada:395Claude Code v2.1.200 y posterior también bloquean estos de forma predeterminada:


403 403 

404Claude Code v2.1.203 y posterior también bloquean estos de forma predeterminada:404Claude Code v2.1.203 y posterior también bloquean estos de forma predeterminada:

405 405 

406* Contenido de un almacén local sensible, o de un archivo cuyo nombre, ruta o tipo lo marca como sensible, entrando en una confirmación, una inserción, texto de PR o problema, un gist o pegado, o una publicación de paquete, a menos que haya nombrado tanto la fuente como el destino. Las transcripciones de sesión y registros de conversación, carpetas de puntos de credencial y configuración como claves SSH, credenciales en la nube, perfiles de navegador e historial de shell, y exportaciones de datos de usuario cuentan, y el repositorio siendo privado no lo borra406* Contenido de un almacén local sensible, o de un archivo cuyo nombre, ruta o tipo lo marca como sensible, entrando en una confirmación, una inserción, texto de PR o problema, un gist o pegado, o una publicación de paquete, a menos que haya nombrado tanto la fuente como el destino. Las transcripciones de sesión y registros de conversación, carpetas de puntos de credencial y configuración como claves SSH, credenciales en la nube, perfiles de navegador e historial de shell, y exportaciones de datos de usuario cuentan, y el hecho de que el repositorio sea privado no lo borra

407 407 

408Claude Code v2.1.205 y posterior también bloquean estos de forma predeterminada:408Claude Code v2.1.205 y posterior también bloquean estos de forma predeterminada:

409 409 

410* Escritura en transcripciones de sesión de Claude Code, los archivos de historial `.jsonl` bajo `~/.claude/projects/` o su directorio de configuración configurado, ya sea directamente o a través de un comando de shell. La regla también cubre las líneas de metadatos que Claude Code agrega a cada entrada de transcripción para sus propias verificaciones. Leer una transcripción no se bloquea410* Escritura en transcripciones de sesión de Claude Code, los archivos de historial `.jsonl` bajo `~/.claude/projects/` o su directorio de configuración configurado, ya sea directamente o a través de un comando de shell. La regla también cubre las líneas de metadatos que Claude Code agrega a cada entrada de transcripción para sus propias verificaciones. Leer una transcripción no se bloquea

411* Una eliminación forzada recursiva como `rm -rf "$VAR"` o `Remove-Item -Recurse -Force $dir` cuyo destino es una variable de shell que no está asignada en ningún lugar de la conversación que el clasificador ve, o un glob enraizado en tal variable. El valor provino solo de la salida de comando anterior, que el clasificador nunca recibe, por lo que el clasificador no puede verificar el destino de eliminación contra las otras reglas de eliminación. El bloqueo se borra cuando nombra la ruta exacta que se está eliminando, o cuando Claude vuelve a ejecutar la eliminación con la ruta literal resuelta escrita en el comando. Las eliminaciones cuyo destino el clasificador puede resolver no se ven afectadas.411* Una eliminación forzada recursiva como `rm -rf "$VAR"` o `Remove-Item -Recurse -Force $dir` cuyo destino es una variable de shell que no se asigna en ningún lugar de la conversación que el clasificador ve, o un glob enraizado en tal variable. El valor provino solo de la salida del comando anterior, que el clasificador nunca recibe, por lo que el clasificador no puede verificar el destino de eliminación contra las otras reglas de eliminación. El bloqueo se borra cuando nombra la ruta exacta que se está eliminando, o cuando Claude vuelve a ejecutar la eliminación con la ruta literal resuelta escrita en el comando. Las eliminaciones cuyo destino el clasificador puede resolver no se ven afectadas.

412 412 

413 Un glob directamente bajo la variable, como en `rm -rf "$VAR"/*`, es una [ruta crítica](#critical-paths) en su lugar. Los destinos de `Remove-Item` que son un `*` desnudo o terminan en `/*` o `\*` nunca llegan al clasificador: Claude Code los [niega directamente](#remove-item-in-powershell).413 Un glob directamente bajo la variable, como en `rm -rf "$VAR"/*`, es una [ruta crítica](#critical-paths) en su lugar. Los destinos de `Remove-Item` que son un `*` desnudo o terminan en `/*` o `\*` nunca llegan al clasificador: Claude Code [los niega directamente](#remove-item-in-powershell).

414 414 

415Claude Code v2.1.257 y posterior también bloquean estos de forma predeterminada:415Claude Code v2.1.257 y posterior también bloquean estos de forma predeterminada:

416 416 


419* Lectura de credenciales que pertenecen al host en lugar de a su tarea, como certificados de nodo o la autenticación de registro de contenedor del nodo419* Lectura de credenciales que pertenecen al host en lugar de a su tarea, como certificados de nodo o la autenticación de registro de contenedor del nodo

420* Conexión o escaneo de contenedores, pods o máquinas virtuales hermanas que Claude no inició, o el nodo debajo del contenedor420* Conexión o escaneo de contenedores, pods o máquinas virtuales hermanas que Claude no inició, o el nodo debajo del contenedor

421 421 

422Si Claude Code se ejecuta en algún lugar que se supone que permite uno de estos, describa esa configuración en una entrada de [Host containment](/docs/es/auto-mode-config#define-trusted-infrastructure) en `autoMode.environment`.422Si Claude Code se ejecuta en algún lugar que se supone que permite uno de estos, describa esa configuración en una entrada de [Contención de host](/docs/es/auto-mode-config#define-trusted-infrastructure) en `autoMode.environment`.

423 423 

424Claude Code v2.1.261 y posterior también bloquean estos de forma predeterminada:424Claude Code v2.1.261 y posterior también bloquean estos de forma predeterminada:

425 425 


431* Instalación de dependencias declaradas en sus archivos de bloqueo o manifiestos431* Instalación de dependencias declaradas en sus archivos de bloqueo o manifiestos

432* Lectura de `.env` y envío de credenciales a su API coincidente432* Lectura de `.env` y envío de credenciales a su API coincidente

433* Solicitudes HTTP de solo lectura433* Solicitudes HTTP de solo lectura

434* Inserción a cualquier rama del repositorio en el que está trabajando, incluida la rama predeterminada. Una rama no predeterminada cuyo nombre la marca como destino de implementación o publicación, como `production` o `gh-pages`, no está cubierta: el clasificador juzga una inserción allí en sus propios términos. El contenido de la inserción aún se verifica contra las otras reglas, las reglas [`permissions.deny`](/docs/es/permissions#manage-permissions) aún pueden bloquear comandos de inserción [como se escriben](/docs/es/permissions#bash-rule-limits) en todos los modos, y la protección de rama propia del remoto aún se aplica. Antes de v2.1.211, solo las inserciones a la rama en la que comenzó, las ramas que Claude creó y las inserciones rutinarias a la rama predeterminada se permitían de forma predeterminada, y antes de v2.1.203 cualquier inserción directa a la rama predeterminada se bloqueaba434* Inserción a cualquier rama del repositorio en el que está trabajando, incluida la rama predeterminada. Una rama no predeterminada cuyo nombre la marca como destino de implementación o publicación, como `production` o `gh-pages`, no está cubierta: el clasificador juzga una inserción allí en sus propios términos. El contenido de la inserción aún se verifica contra las otras reglas, las reglas [`permissions.deny`](/docs/es/permissions#manage-permissions) aún pueden bloquear comandos de inserción [como se escriben](/docs/es/permissions#bash-rule-limits) en todos los modos, y la protección de rama propia del remoto aún se aplica. Antes de v2.1.211, solo las inserciones a la rama en la que comenzó, ramas que Claude creó e inserciones rutinarias a la rama predeterminada se permitían de forma predeterminada, y antes de v2.1.203 cualquier inserción directa a la rama predeterminada se bloqueaba

435* Eliminación de los trabajos exactos que Claude creó anteriormente en la misma sesión435* Eliminación de los trabajos exactos que Claude creó anteriormente en la misma sesión

436* Lectura, revisión o escritura de código, configuraciones y modelos de amenaza relacionados con la seguridad como parte de su tarea436* Lectura, revisión o escritura de código, configuraciones y modelos de amenaza relacionados con la seguridad como parte de su tarea

437* Mensajes entre agentes que trabajan juntos en la misma sesión multiagente437* Mensajes entre agentes que trabajan juntos en la misma sesión multiagente

438* Envío de datos a los dominios, depósitos y servicios de confianza que lista en [`environment`](/docs/es/auto-mode-config#define-trusted-infrastructure). Esto cubre solo el flujo de datos, no operaciones destructivas o de credencial en la misma infraestructura438* Envío de datos a los dominios, depósitos y servicios de confianza que enumera en [`environment`](/docs/es/auto-mode-config#define-trusted-infrastructure). Esto cubre solo el flujo de datos, no operaciones destructivas o de credencial en la misma infraestructura

439* [Claude en Chrome](/docs/es/chrome) navegación a un dominio interno de confianza, localhost o una URL que nombró439* [Claude en Chrome](/docs/es/chrome) navegación a un dominio interno de confianza, localhost o una URL que nombró

440 440 

441Los comandos en sandbox no obtienen acceso a la red de forma predeterminada. Claude nombra los hosts que un comando necesita en el comando mismo, el clasificador los revisa con el comando, y una lista aprobada abre esos hosts solo para ese comando. [Dominios permitidos por comando](/docs/es/sandboxing#per-command-allowed-domains-in-auto-mode) cubre lo que una lista puede y no puede abrir y qué sucede cuando un comando llega a un host no listado.441Los comandos en sandbox no obtienen acceso a la red de forma predeterminada. Claude nombra los hosts que necesita un comando en el comando mismo, el clasificador los revisa con el comando, y una lista aprobada abre esos hosts solo para ese comando. [Dominios permitidos por comando](/docs/es/sandboxing#per-command-allowed-domains-in-auto-mode) cubre lo que una lista puede y no puede abrir y qué sucede cuando un comando llega a un host no listado.

442 442 

443Ejecute `claude auto-mode defaults` para imprimir las listas de reglas completas como JSON. Si las acciones rutinarias se bloquean, un administrador puede agregar repositorios, depósitos y servicios de confianza a través de la configuración `autoMode.environment`: consulte [Configurar modo automático](/docs/es/auto-mode-config).443Ejecute `claude auto-mode defaults` para imprimir las listas de reglas completas como JSON. Si las acciones rutinarias se bloquean, un administrador puede agregar repositorios, depósitos y servicios de confianza a través de la configuración `autoMode.environment`: consulte [Configurar modo automático](/docs/es/auto-mode-config).

444 444 

445La inserción a cualquier rama del repositorio en el que está trabajando y la creación de una solicitud de extracción que coincida con su solicitud se ejecutan sin una solicitud, a menos que la inserción o solicitud de extracción caiga bajo la [lista bloqueada](#what-the-classifier-blocks-by-default), como secretos o datos sensibles que salen del repositorio, o una solicitud de extracción que apunta a un repositorio u organización diferente. Para requerir un punto de control humano antes de estos comandos mientras permanece en modo automático, agregue reglas `permissions.ask`, que coincidan con el comando [como se escriben](/docs/es/permissions#bash-rule-limits): consulte [Límites comunes](/docs/es/auto-mode-config#common-boundaries).445La inserción a cualquier rama del repositorio en el que está trabajando y la creación de una solicitud de extracción que coincida con su solicitud se ejecutan sin solicitud, a menos que la inserción o solicitud de extracción caiga bajo la [lista bloqueada](#what-the-classifier-blocks-by-default), como secretos o datos sensibles que salen del repositorio, o una solicitud de extracción que apunta a un repositorio u organización diferente. Para requerir un punto de control humano antes de estos comandos mientras permanece en modo automático, agregue reglas `permissions.ask`, que coincidan con el comando [como se escriben](/docs/es/permissions#bash-rule-limits): consulte [Límites comunes](/docs/es/auto-mode-config#common-boundaries).

446 446 

447<h3 id="first-read-outside-the-working-directories">447<h3 id="first-read-outside-the-working-directories">

448 La primera lectura fuera de los directorios de trabajo448 La primera lectura fuera de los directorios de trabajo

449</h3>449</h3>

450 450 

451Mientras [`permissions.blockReadsOutsideWorkingDirectories`](/docs/es/settings-reference#permissions-blockreadsoutsideworkingdirectories) está desactivado, las lecturas de archivo se ejecutan sin una solicitud en modo automático, incluidas las lecturas fuera de los [directorios de trabajo](/docs/es/permissions#working-directories). La primera vez que Claude usa la herramienta Read, Grep o Glob en una ruta fuera de ellos, Claude Code le pregunta si desea seguir permitiendo esas lecturas.451Mientras [`permissions.blockReadsOutsideWorkingDirectories`](/docs/es/settings-reference#permissions-blockreadsoutsideworkingdirectories) está desactivado, las lecturas de archivo se ejecutan sin solicitud en modo automático, incluidas las lecturas fuera de los [directorios de trabajo](/docs/es/permissions#working-directories). La primera vez que Claude usa la herramienta Read, Grep o Glob en una ruta fuera de ellos, Claude Code pregunta si permitir esa lectura.

452 452 

453La solicitud no aparece en ejecuciones `-p` no interactivas o sesiones en segundo plano; las lecturas allí se ejecutan como antes.453La solicitud no aparece en ejecuciones `-p` no interactivas o sesiones en segundo plano; las lecturas allí se ejecutan como antes.

454 454 

455Sea cual sea su respuesta, Claude sigue trabajando:455Sea cual sea su respuesta, Claude sigue trabajando:

456 456 

457* **Sí, y seguir permitiendo**: la lectura se ejecuta, las lecturas posteriores fuera de los directorios de trabajo se ejecutan como antes, y Claude Code registra su respuesta para que la solicitud no aparezca de nuevo457* **Sí, y siga permitiendo cualquier lectura fuera de los directorios de trabajo**: la lectura se ejecuta, las lecturas posteriores fuera de los directorios de trabajo se ejecutan como antes, y Claude Code registra su respuesta para que la solicitud no aparezca de nuevo

458* **No, y bloquear de ahora en adelante**: la lectura se rechaza, y Claude Code establece [`permissions.blockReadsOutsideWorkingDirectories`](/docs/es/settings-reference#permissions-blockreadsoutsideworkingdirectories) en `true` en su configuración de usuario, lo que hace que las herramientas de archivo rechacen tales lecturas en cada sesión posterior y en cada modo de permiso. Para permitir que Claude lea tal ruta más tarde, agregue su directorio con `/add-dir` o elimine la configuración.458* **No, y bloquee las lecturas fuera de los directorios de trabajo de ahora en adelante**: la lectura se rechaza, y Claude Code establece [`permissions.blockReadsOutsideWorkingDirectories`](/docs/es/settings-reference#permissions-blockreadsoutsideworkingdirectories) en `true` en su configuración de usuario, lo que hace que las herramientas de archivo rechacen tales lecturas en cada sesión posterior y en cada modo de permiso. Para permitir que Claude lea tal ruta más tarde, agregue su directorio con `/add-dir` o elimine la configuración.

459* **No, y preguntar de nuevo la próxima vez**: la lectura se rechaza, y la próxima lectura fuera de los directorios de trabajo solicita de nuevo459* **No, y pregunta de nuevo la próxima vez**: la lectura se rechaza, y la próxima lectura fuera de los directorios de trabajo solicita de nuevo

460* **Sí, pero preguntar de nuevo la próxima vez**: la lectura se ejecuta, nada se guarda, y la próxima lectura fuera de los directorios de trabajo solicita de nuevo460* **Sí, pero pregunta de nuevo la próxima vez**: la lectura se ejecuta, nada se guarda, y la próxima lectura fuera de los directorios de trabajo solicita de nuevo

461 461 

462<h3 id="boundaries-you-state-in-conversation">462<h3 id="boundaries-you-state-in-conversation">

463 Límites que establece en la conversación463 Límites que establece en la conversación

464</h3>464</h3>

465 465 

466El clasificador trata los límites que establece en la conversación como una señal de bloqueo. Si le dice a Claude "no insertes" o "espera hasta que revise antes de implementar", el clasificador bloquea acciones coincidentes incluso cuando las reglas predeterminadas las permitirían. Un límite permanece en vigor hasta que lo levante en un mensaje posterior. El propio juicio de Claude de que se cumplió una condición no lo levanta.466El clasificador trata los límites que establece en la conversación como una señal de bloqueo. Si le dice a Claude "no insertes" o "espera hasta que revise antes de implementar", el clasificador bloquea acciones coincidentes incluso cuando las reglas predeterminadas las permitirían. Un límite permanece en vigor hasta que lo levanta en un mensaje posterior. El propio juicio de Claude de que se cumplió una condición no lo levanta.

467 467 

468Los límites no se almacenan como reglas. El clasificador los relee de la transcripción en cada verificación, por lo que un límite puede perderse si [la compactación de contexto](/docs/es/costs#reduce-token-usage) elimina el mensaje que lo estableció. Para una garantía dura, agregue una [regla de negación](/docs/es/permissions#permission-rule-syntax) en su lugar.468Los límites no se almacenan como reglas. El clasificador los relee de la transcripción en cada verificación, por lo que un límite puede perderse si [la compactación de contexto](/docs/es/costs#reduce-token-usage) elimina el mensaje que lo estableció. Para una garantía dura, agregue una [regla de negación](/docs/es/permissions#permission-rule-syntax) en su lugar.

469 469 


473 473 

474Si le dice a Claude que una acción bloqueada está permitida, el clasificador lee eso como su aprobación y puede borrar el bloqueo. La forma en que lo expresó decide si la acción se ejecuta y qué tan lejos llega la aprobación:474Si le dice a Claude que una acción bloqueada está permitida, el clasificador lee eso como su aprobación y puede borrar el bloqueo. La forma en que lo expresó decide si la acción se ejecuta y qué tan lejos llega la aprobación:

475 475 

476* **Nombre la acción y sus especificidades**: su mensaje tiene que nombrar la acción y la cosa específica que la hace peligrosa, como la rama de una inserción forzada. Nombrar solo el verbo no borra nada, así que "puede hacer una inserción forzada" deja el bloqueo en su lugar.476* **Nombre la acción y sus especificidades**: su mensaje tiene que nombrar la acción y la cosa específica que la hace peligrosa, como la rama de una inserción forzada. Nombrar solo el verbo no borra nada, así que "puede insertar forzadamente" deja el bloqueo en su lugar.

477* **Espere que cubra una acción**: una aprobación cubre la acción destructiva que nombró, por lo que una acción posterior se bloquea de nuevo a menos que haya otorgado la aprobación como permanente. Para dejar de aprobar un patrón rutinario una acción a la vez, agréguelo a [`autoMode.allow`](/docs/es/auto-mode-config#override-the-block-and-allow-rules).477* **Espere que cubra una acción**: una aprobación cubre la acción destructiva que nombró, por lo que una acción posterior se bloquea de nuevo a menos que haya otorgado la aprobación como permanente. Para dejar de aprobar un patrón rutinario una acción a la vez, agréguelo a [`autoMode.allow`](/docs/es/auto-mode-config#override-the-block-and-allow-rules).

478* **Algunos bloqueos permanecen en su lugar**: [el orden de precedencia del clasificador](/docs/es/auto-mode-config#override-the-block-and-allow-rules) establece qué bloqueos puede alcanzar su aprobación. Para ejecutar un paso que no borrará, [abandone el modo automático](#switch-permission-modes) y responda a la solicitud de permiso.478* **Algunos bloqueos permanecen en su lugar**: [el orden de precedencia del clasificador](/docs/es/auto-mode-config#override-the-block-and-allow-rules) establece qué bloqueos puede alcanzar su aprobación. Para ejecutar un paso que no borrará, [abandone el modo automático](#switch-permission-modes) y responda la solicitud de permiso.

479 479 

480<h3 id="when-auto-mode-falls-back">480<h3 id="when-auto-mode-falls-back">

481 Cuando el modo automático se retira481 Cuando el modo automático retrocede

482</h3>482</h3>

483 483 

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

485 485 

486* **Una acción bloqueada**: Claude Code muestra una notificación y enumera la acción en `/permissions` bajo la pestaña **Denegadas recientemente**, donde puede presionar `r` para reintentar con una aprobación manual.486* **Una acción bloqueada**: Claude Code muestra una notificación y enumera la acción en `/permissions` bajo la pestaña **Denegadas recientemente**, donde puede presionar `r` para reintentar con una aprobación manual.

487* **Bloqueos repetidos**: si el clasificador bloquea una acción 3 veces seguidas o 20 veces en total, el modo automático se pausa y Claude Code reanuda las solicitudes. Aprobar la acción solicitada reanuda el modo automático. Consulte [Umbrales de bloqueo repetido](#repeated-block-thresholds) para saber cómo se cuentan los bloqueos.487* **Bloqueos repetidos**: si el clasificador bloquea una acción 3 veces seguidas o 20 veces en total, el modo automático se pausa y Claude Code reanuda las solicitudes. Aprobar la acción solicitada reanuda el modo automático. Consulte [Umbrales de bloqueo repetido](#repeated-block-thresholds) para saber cómo se cuentan los bloqueos.

488* **Sin veredicto del clasificador**: cuando una verificación de seguridad separada del modo automático rechaza la solicitud del clasificador, o la respuesta del clasificador no se analiza, Claude Code niega la acción sin la notificación o la entrada **Denegadas recientemente**. Consulte [El modo automático no puede determinar la seguridad de una acción](/docs/es/errors#auto-mode-cannot-determine-the-safety-of-an-action) para el mensaje que muestra cada caso y qué hacer.488* **Sin veredicto del clasificador**: cuando una verificación de seguridad separada del modo automático rechaza la propia solicitud del clasificador, o la respuesta del clasificador no se analiza, Claude Code niega la acción sin la notificación o la entrada **Denegadas recientemente**. Consulte [El modo automático no puede determinar la seguridad de una acción](/docs/es/errors#auto-mode-cannot-determine-the-safety-of-an-action) para el mensaje que muestra cada caso y qué hacer.

489* **Sin veredicto del servidor**: bajo [revisión del clasificador del lado del servidor](#server-side-classifier-review), Claude Code niega una acción para la que el servidor no da veredicto, y detiene el turno después de diez respuestas seguidas sin veredicto. Consulte [El servidor no devolvió ningún veredicto de seguridad](/docs/es/errors#the-server-returned-no-safety-verdict).489* **Sin veredicto del servidor**: bajo [revisión del clasificador del lado del servidor](#server-side-classifier-review), Claude Code niega una acción para la que el servidor no da veredicto, y detiene el turno después de diez respuestas seguidas sin veredicto. Consulte [El servidor no devolvió ningún veredicto de seguridad](/docs/es/errors#the-server-returned-no-safety-verdict).

490* **Un cambio de modo durante una verificación**: si cambia modos de permiso mientras una verificación del clasificador está pendiente, Claude Code descarta un veredicto que el nuevo modo no habría solicitado. Se le solicita aprobación en su lugar, o la acción se niega automáticamente en [modo `dontAsk`](#allow-only-pre-approved-tools-with-dontask-mode).490* **Un cambio de modo durante una verificación**: si cambia modos de permiso mientras una verificación del clasificador está pendiente, Claude Code descarta un veredicto que el nuevo modo no habría solicitado. Se le solicita aprobación en su lugar, o la acción se niega automáticamente en [modo `dontAsk`](#allow-only-pre-approved-tools-with-dontask-mode).

491 491 


493 Umbrales de bloqueo repetido493 Umbrales de bloqueo repetido

494</h4>494</h4>

495 495 

496Los umbrales de 3 bloqueos seguidos y 20 bloqueos totales no son configurables. El contador total persiste para la sesión y se reinicia solo cuando su propio límite activa una retirada. Claude Code no cuenta una negación hacia ninguno de los umbrales cuando una verificación de seguridad separada del modo automático rechaza la solicitud del clasificador.496Los umbrales de 3 bloqueos seguidos y 20 bloqueos totales no son configurables. El contador total persiste para la sesión y se reinicia solo cuando su propio límite desencadena un respaldo. Claude Code no cuenta una negación hacia ninguno de los umbrales cuando una verificación de seguridad separada del modo automático rechaza la propia solicitud del clasificador.

497 497 

498Una ejecución `-p` [no interactiva](/docs/es/headless) sin un [`--permission-prompt-tool`](/docs/es/cli-reference#cli-flags) no tiene solicitud a la que retirarse. Cuando los bloqueos repetidos alcanzan un umbral, la acción no se ejecuta y Claude sigue trabajando. Claude Code no detiene la ejecución.498Una ejecución `-p` [no interactiva](/docs/es/headless) sin un [`--permission-prompt-tool`](/docs/es/cli-reference#cli-flags) no tiene solicitud a la que retroceder. Cuando los bloqueos repetidos alcanzan un umbral, la acción no se ejecuta y Claude sigue trabajando. Claude Code no detiene la ejecución.

499 499 

500Los bloqueos repetidos generalmente significan que el clasificador carece de contexto sobre su infraestructura. Use `/feedback` para informar falsos positivos, o haga que un administrador [configure infraestructura de confianza](/docs/es/auto-mode-config).500Los bloqueos repetidos generalmente significan que el clasificador carece de contexto sobre su infraestructura. Use `/feedback` para informar falsos positivos, o haga que un administrador [configure infraestructura de confianza](/docs/es/auto-mode-config).

501 501 

502<h3 id="how-auto-mode-evaluates-actions">502<h3 id="how-auto-mode-evaluates-actions">

503 Cómo el clasificador evalúa acciones503 Cómo el modo automático evalúa acciones

504</h3>504</h3>

505 505 

506Las siguientes secciones cubren el orden en que Claude Code evalúa una acción, cómo el clasificador revisa el trabajo de subagentes, y qué llamadas del clasificador agregan en costo y latencia.506Las siguientes secciones cubren el orden en que Claude Code evalúa una acción, cómo el clasificador revisa el trabajo de subagentes y qué llamadas del clasificador agregan en costo y latencia.

507 507 

508<span id="how-the-classifier-evaluates-actions" />508<span id="how-the-classifier-evaluates-actions" />

509 509 


516 * Ninguna regla de permitir aprueba eliminaciones de `rm` y `rmdir` dirigidas a una [ruta crítica](#critical-paths)516 * Ninguna regla de permitir aprueba eliminaciones de `rm` y `rmdir` dirigidas a una [ruta crítica](#critical-paths)

517 * Las herramientas MCP marcadas [`requiresUserInteraction`](/docs/es/mcp#require-approval-for-a-specific-tool) le solicitan directamente incluso cuando una regla de permitir coincide, y también lo hacen las herramientas de conector [que su organización estableció en `ask`](/docs/es/mcp#organization-controls-on-connector-tools) en sesiones donde esa configuración llega a Claude Code517 * Las herramientas MCP marcadas [`requiresUserInteraction`](/docs/es/mcp#require-approval-for-a-specific-tool) le solicitan directamente incluso cuando una regla de permitir coincide, y también lo hacen las herramientas de conector [que su organización estableció en `ask`](/docs/es/mcp#organization-controls-on-connector-tools) en sesiones donde esa configuración llega a Claude Code

518 * Un comando de shell que lleva [dominios permitidos por comando](/docs/es/sandboxing#per-command-allowed-domains-in-auto-mode) también se enruta al clasificador incluso cuando una regla de permitir coincide, porque una regla aprueba el comando, no sus hosts518 * Un comando de shell que lleva [dominios permitidos por comando](/docs/es/sandboxing#per-command-allowed-domains-in-auto-mode) también se enruta al clasificador incluso cuando una regla de permitir coincide, porque una regla aprueba el comando, no sus hosts

519 * Las reglas de solicitud que coinciden en el contenido de un comando, como `Bash(git push *)`, se retiran a una solicitud de permiso519 * Las reglas de solicitud que coinciden en el contenido de un comando, como `Bash(git push *)`, retroceden a una solicitud de permiso

520 * Una escritura que la [verificación de enlace simbólico](/docs/es/permissions#symlinks) resuelve a una ruta protegida le solicita cuando la ruta que Claude solicitó no es en sí misma protegida520 * Una escritura que la [verificación de enlace simbólico](/docs/es/permissions#symlinks) resuelve a una ruta protegida le solicita cuando la ruta que Claude solicitó no es en sí misma protegida

521 2. Las acciones de solo lectura y ediciones de archivo en su directorio de trabajo se aprueban automáticamente, excepto escrituras en [rutas protegidas](#protected-paths) y [la primera lectura fuera de los directorios de trabajo](#first-read-outside-the-working-directories), que le solicita521 2. Las acciones de solo lectura y ediciones de archivo en su directorio de trabajo se aprueban automáticamente, excepto escrituras en [rutas protegidas](#protected-paths) y [la primera lectura fuera de los directorios de trabajo](#first-read-outside-the-working-directories), que le solicita

522 * En una sesión con [revisión del clasificador del lado del servidor](#server-side-classifier-review), las acciones de solo lectura y comandos de shell [en sandbox](/docs/es/sandboxing#sandbox-modes) esperan esa revisión y se bloquean si la marca522 * En una sesión con [revisión del clasificador del lado del servidor](#server-side-classifier-review), las acciones de solo lectura y comandos de shell [en sandbox](/docs/es/sandboxing#sandbox-modes) esperan esa revisión y se bloquean si la marca


524 3. Todo lo demás va al clasificador, aparte de [eliminaciones de ruta crítica](#critical-paths) bajo su manejo predeterminado. Las herramientas de conector y herramientas MCP de `requiresUserInteraction` que le solicitan directamente en el paso 1 nunca llegan al clasificador tampoco, por lo que ni una aprobación requerida por la organización ni un paso de consentimiento se aprueban automáticamente524 3. Todo lo demás va al clasificador, aparte de [eliminaciones de ruta crítica](#critical-paths) bajo su manejo predeterminado. Las herramientas de conector y herramientas MCP de `requiresUserInteraction` que le solicitan directamente en el paso 1 nunca llegan al clasificador tampoco, por lo que ni una aprobación requerida por la organización ni un paso de consentimiento se aprueban automáticamente

525 4. Si el clasificador bloquea, Claude recibe la razón. En la mayoría de sesiones la razón nombra la regla que el clasificador coincidió, como `[Data Exfiltration]`, en lugar de dar una explicación escrita; consulte [Revisar negaciones](/docs/es/auto-mode-config#review-denials)525 4. Si el clasificador bloquea, Claude recibe la razón. En la mayoría de sesiones la razón nombra la regla que el clasificador coincidió, como `[Data Exfiltration]`, en lugar de dar una explicación escrita; consulte [Revisar negaciones](/docs/es/auto-mode-config#review-denials)

526 526 

527 Un [mod](/docs/es/plugins/mods/overview) que instale que enganche `tool.check` puede aprobar una acción antes del paso 3, y el clasificador no verifica una acción que el mod aprueba. Consulte [Extender permisos con hooks](/docs/es/permissions#extend-permissions-with-hooks).

528 

527 Al entrar en modo automático, se descartan las reglas de permitir amplias que otorgan ejecución de código arbitrario:529 Al entrar en modo automático, se descartan las reglas de permitir amplias que otorgan ejecución de código arbitrario:

528 530 

529 * `Bash(*)` o `PowerShell(*)` sin restricciones531 * `Bash(*)` o `PowerShell(*)` sin restricciones


532 * Reglas de permitir `Agent`534 * Reglas de permitir `Agent`

533 * Reglas de permitir [`Monitor`](/docs/es/tools-reference#monitor-tool), porque Claude Code ejecuta comandos Monitor a través del shell535 * Reglas de permitir [`Monitor`](/docs/es/tools-reference#monitor-tool), porque Claude Code ejecuta comandos Monitor a través del shell

534 536 

535 Las reglas estrechas como `Bash(npm test)` permanecen en vigor. Claude Code restaura las reglas descartadas cuando abandona el modo automático. Antes de v2.1.236, Claude Code dejaba las reglas de permitir `Monitor` en vigor en modo automático, por lo que una regla que coincidía con toda la herramienta aprobaba comandos Monitor sin revisión del clasificador.537 Las reglas estrechas como `Bash(npm test)` permanecen en vigor. Claude Code restaura las reglas descartadas cuando abandona el modo automático. Antes de v2.1.236, Claude Code dejaba las reglas de permitir `Monitor` en vigor en modo automático, por lo que una regla que coincidía con la herramienta completa aprobaba comandos Monitor sin revisión del clasificador.

536 538 

537 Claude Code también ejecuta `git status` a sí mismo antes de un comando que descartaría trabajo no confirmado, como `git reset --hard` o `rm -rf`, y muestra al clasificador si hay trabajo preparado, modificado o sin seguimiento presente. Claude Code informa archivos sin seguimiento en esa verificación incluso cuando la configuración de git del repositorio establece `status.showUntrackedFiles=no`.539 Claude Code también ejecuta `git status` a sí mismo antes de un comando que descartaría trabajo sin confirmar, como `git reset --hard` o `rm -rf`, y muestra al clasificador si hay trabajo preparado, modificado o sin seguimiento presente. Claude Code informa archivos sin seguimiento en esa verificación incluso cuando la configuración de git del repositorio establece `status.showUntrackedFiles=no`.

538 540 

539 En las solicitudes del clasificador enviadas por Claude Code mismo, el clasificador ve mensajes de usuario, llamadas de herramienta que no sean búsquedas de solo lectura como lecturas de archivo y búsquedas, y su contenido de CLAUDE.md. Los resultados de herramientas se eliminan de esas solicitudes, por lo que el contenido hostil en un archivo o página web no puede manipular el clasificador directamente.541 En las solicitudes del clasificador enviadas por Claude Code mismo, el clasificador ve mensajes de usuario, llamadas de herramienta que no sean búsquedas de solo lectura como lecturas de archivo y búsquedas, y su contenido de CLAUDE.md. Los resultados de herramientas se eliminan de esas solicitudes, por lo que el contenido hostil en un archivo o página web no puede manipular el clasificador directamente.

540 542 

541 Puede anotar el resultado de una llamada con el campo `classifierContext` de un [gancho PostToolUse](/docs/es/hooks#annotate-a-result-for-the-auto-mode-classifier), que el clasificador lee como contexto proporcionado por la aplicación. El campo requiere Claude Code v2.1.236 o posterior.543 Puede anotar el resultado de una llamada con un campo [`classifierContext` del hook PostToolUse](/docs/es/hooks#annotate-a-result-for-the-auto-mode-classifier), que el clasificador lee como contexto proporcionado por la aplicación. El campo requiere Claude Code v2.1.236 o posterior.

542 544 

543 Una sonda separada del lado del servidor escanea los resultados de herramientas entrantes y marca contenido sospechoso antes de que Claude lo lea. Para obtener más información sobre cómo funcionan estas capas juntas, consulte el [anuncio del modo automático](https://claude.com/blog/auto-mode) y la [inmersión profunda de ingeniería](https://www.anthropic.com/engineering/claude-code-auto-mode).545 Una sonda separada del lado del servidor escanea los resultados de herramientas entrantes y marca contenido sospechoso antes de que Claude lo lea. Para obtener más información sobre cómo funcionan estas capas juntas, consulte el [anuncio del modo automático](https://claude.com/blog/auto-mode) y la [inmersión profunda de ingeniería](https://www.anthropic.com/engineering/claude-code-auto-mode).

544 </Accordion>546 </Accordion>

545 547 

546 <Accordion title="Cómo el modo automático maneja subagentes">548 <Accordion title="Cómo el modo automático maneja subagentes">

547 El clasificador verifica el trabajo de [subagente](/docs/es/sub-agents) en tres puntos:549 El clasificador verifica el trabajo de [subagentes](/docs/es/sub-agents) en tres puntos:

548 550 

549 1. Antes de que comience un subagente, se evalúa la descripción de la tarea delegada, por lo que una tarea que parece peligrosa se bloquea en el momento del desove.551 1. Antes de que comience un subagente, se evalúa la descripción de la tarea delegada, por lo que una tarea de aspecto peligroso se bloquea en el momento del desove.

550 2. Mientras el subagente se ejecuta, cada una de sus acciones pasa por el mismo [orden de decisión](#how-the-classifier-evaluates-actions) que en la sesión principal, con las mismas reglas de bloqueo y permitir. Cualquier `permissionMode` en el frontmatter del subagente se ignora.552 2. Mientras el subagente se ejecuta, cada una de sus acciones pasa por el mismo [orden de decisión](#how-the-classifier-evaluates-actions) que en la sesión principal, con las mismas reglas de bloqueo y permitir. Cualquier `permissionMode` en el frontmatter del subagente se ignora.

551 3. Cuando el subagente termina, el clasificador revisa su trabajo y su informe final antes de que el principal lea el informe. Cuando el clasificador marca el trabajo o informe del subagente, o una verificación de seguridad de API separada rechaza la revisión, el informe se entrega de todas formas, precedido de una advertencia de seguridad. Cuando el clasificador no está disponible para la revisión, el informe llega con una nota para verificar el trabajo del subagente antes de actuar en consecuencia.553 3. Cuando el subagente termina, el clasificador revisa su trabajo y su informe final antes de que el principal lea el informe. Cuando el clasificador marca el trabajo o informe del subagente, o una verificación de seguridad de API separada rechaza la revisión, el informe aún se entrega, precedido de una advertencia de seguridad. Cuando el clasificador no está disponible para la revisión, el informe llega con una nota para verificar el trabajo del subagente antes de actuar en consecuencia.

552 </Accordion>554 </Accordion>

553 555 

554 <Accordion title="Costo y latencia">556 <Accordion title="Costo y latencia">

555 El clasificador se ejecuta en Claude Sonnet 5 de forma predeterminada en lugar de en su selección `/model`. Un modelo clasificador que Anthropic configura del lado del servidor tiene precedencia sobre ese predeterminado. Cuando el modelo de su sesión es Claude Sonnet 4.6, o cuando [`availableModels`](/docs/es/model-config#restrict-model-selection) excluye Sonnet 5, el clasificador se ejecuta en el modelo de su sesión en su lugar, u en un modelo Opus cuando la sesión se ejecuta en un [modelo Fable](/docs/es/model-config#work-with-fable); en proveedores que no sean la API de Anthropic, ese respaldo de Opus es el modelo Opus predeterminado del proveedor.557 El clasificador se ejecuta en Claude Sonnet 5 de forma predeterminada en lugar de en su selección `/model`. Un modelo clasificador que Anthropic configura del lado del servidor tiene precedencia sobre ese predeterminado. Cuando el modelo de su sesión es Claude Sonnet 4.6, o cuando [`availableModels`](/docs/es/model-config#restrict-model-selection) excluye Sonnet 5, el clasificador se ejecuta en el modelo de su sesión en su lugar, u en un modelo Opus cuando la sesión se ejecuta en un [modelo Fable](/docs/es/model-config#work-with-fable); en proveedores que no sean la API de Anthropic, ese respaldo de Opus es el modelo Opus predeterminado del proveedor.

556 558 

557 La primera solicitud de modo automático de la sesión valida el predeterminado de Sonnet 5: si la solicitud tiene éxito, Sonnet 5 permanece como el modelo clasificador de la sesión, y si falla porque el modelo no está disponible, la sesión usa el respaldo en su lugar. Después de que esa validación se resuelve, el modelo del clasificador no cambia para la sesión.559 La primera solicitud de modo automático de la sesión valida el predeterminado de Sonnet 5: si la solicitud tiene éxito, Sonnet 5 permanece como el modelo clasificador de la sesión, y si falla porque el modelo no está disponible, la sesión usa el respaldo en su lugar.

558 560 

559 En planes Enterprise y en cuentas que usan la API de Claude, [Claude Platform en AWS](/docs/es/claude-platform-on-aws), Amazon Bedrock, Google Cloud's Agent Platform o Microsoft Foundry, las llamadas del clasificador cuentan hacia su uso de tokens. Cada verificación envía una porción de la transcripción más la acción pendiente, agregando un viaje de ida y vuelta antes de la ejecución. Las lecturas y ediciones de directorio de trabajo fuera de rutas protegidas omiten el clasificador, por lo que la sobrecarga proviene principalmente de comandos de shell y operaciones de red. Donde el servidor revisa las acciones como parte de las solicitudes del modelo de la sesión, no hay llamadas del clasificador separadas para contar; consulte [Revisión del clasificador del lado del servidor](#server-side-classifier-review).561 En planes Enterprise y en cuentas que usan la API de Claude, [Claude Platform en AWS](/docs/es/claude-platform-on-aws), Amazon Bedrock, Google Cloud's Agent Platform o Microsoft Foundry, las llamadas del clasificador cuentan hacia su uso de tokens. Cada verificación envía una porción de la transcripción más la acción pendiente, agregando un viaje de ida y vuelta antes de la ejecución. Las lecturas y ediciones de directorio de trabajo fuera de rutas protegidas omiten el clasificador, por lo que la sobrecarga proviene principalmente de comandos de shell y operaciones de red. Donde el servidor revisa las acciones como parte de las solicitudes del modelo de la sesión, no hay llamadas del clasificador separadas para contar; consulte [Revisión del clasificador del lado del servidor](#server-side-classifier-review).

560 562 

561 El acceso a la red en sandbox no agrega solicitudes del clasificador por conexión. El clasificador juzga [los hosts que un comando nombra](/docs/es/sandboxing#per-command-allowed-domains-in-auto-mode) junto con el comando en una revisión, y Claude Code verifica cada conexión contra la lista aprobada sin llamar al clasificador de nuevo.563 El acceso a la red en sandbox no agrega solicitudes del clasificador por conexión. El clasificador juzga [los hosts que nombra un comando](/docs/es/sandboxing#per-command-allowed-domains-in-auto-mode) junto con el comando en una revisión, y Claude Code verifica cada conexión contra la lista aprobada sin llamar al clasificador de nuevo.

562 </Accordion>564 </Accordion>

563</AccordionGroup>565</AccordionGroup>

564 566 


667* `.yarn`669* `.yarn`

668* `.mvn`670* `.mvn`

669* `.claude`, excepto por `.claude/worktrees` donde Claude almacena sus propios git worktrees671* `.claude`, excepto por `.claude/worktrees` donde Claude almacena sus propios git worktrees

672* Un directorio que cargó con [`--plugin-dir`](/docs/es/plugins/mods/create#change-a-mod-with-claude), porque Claude Code recarga y ejecuta el código de un mod desde él cuando un archivo cambia

670 673 

671Archivos protegidos:674Archivos protegidos:

672 675 

permissions.md +14 −3

Details

599 599 

600Los [hooks de Claude Code](/docs/es/hooks-guide) le permiten registrar comandos de shell personalizados que evalúan permisos en tiempo de ejecución. Cuando Claude Code realiza una llamada de herramienta, los hooks PreToolUse se ejecutan antes del aviso de permisos, para cada herramienta excepto [`EndConversation`](/docs/es/tools-reference#endconversation-tool-behavior). La salida del hook puede denegar la llamada de herramienta, forzar un aviso u omitir el aviso para permitir que la llamada continúe.600Los [hooks de Claude Code](/docs/es/hooks-guide) le permiten registrar comandos de shell personalizados que evalúan permisos en tiempo de ejecución. Cuando Claude Code realiza una llamada de herramienta, los hooks PreToolUse se ejecutan antes del aviso de permisos, para cada herramienta excepto [`EndConversation`](/docs/es/tools-reference#endconversation-tool-behavior). La salida del hook puede denegar la llamada de herramienta, forzar un aviso u omitir el aviso para permitir que la llamada continúe.

601 601 

602Las decisiones del hook no omiten las reglas de permisos. Claude Code evalúa las reglas de negación y solicitud independientemente de lo que devuelva un hook PreToolUse: una regla de negación coincidente bloquea la llamada, y una regla de solicitud coincidente aún solicita incluso cuando el hook devolvió `"allow"` u `"ask"`. Esto preserva la precedencia de negación primero descrita en [Administrar permisos](#manage-permissions), incluyendo reglas de negación establecidas en configuración administrada.602Las decisiones del hook PreToolUse no omiten las reglas de permisos. Claude Code evalúa las reglas de negación y solicitud independientemente de lo que devuelva un hook PreToolUse: una regla de negación coincidente bloquea la llamada, y una regla de solicitud coincidente aún solicita incluso cuando el hook devolvió `"allow"` u `"ask"`. Esto preserva la precedencia de negación primero descrita en [Administrar permisos](#manage-permissions), incluyendo reglas de negación establecidas en configuración administrada.

603 

604Esa precedencia cubre hooks en archivos de configuración y en el archivo `hooks/hooks.json` de un plugin. Un [mod](/docs/es/plugins/mods/overview) que instale y que enganche `tool.check` responde después de que las reglas y los hooks PreToolUse hayan decidido, y su respuesta puede reemplazar la de ellos:

605 

606* **Reglas de solicitud**: el mod puede aprobar una llamada que una regla de solicitud solicitaría

607* **Un bloqueo de un hook `PreToolUse`**: el mod puede aprobar la llamada, a menos que el hook esté en configuración administrada

608* **El clasificador de modo automático**: en [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode), una llamada que el mod aprueba se ejecuta sin una verificación de clasificador

609* **Reglas de negación**: en una máquina con configuración administrada, o cuando ha iniciado sesión con un plan de Team o Enterprise, las reglas de negación prevalecen sobre el mod de forma predeterminada, y su organización puede cambiar eso. En cualquier otro lugar, el mod puede aprobar una llamada que una regla de negación rechaza.

610 

611Consulte [Decidir si confiar en un mod](/docs/es/plugins/mods/overview#decide-whether-to-trust-a-mod), o [Administrar mods para su organización](/docs/es/plugins/mods/admin#know-what-happens-by-default) si implementa configuración administrada.

603 612 

604Las herramientas MCP marcadas como [`requiresUserInteraction`](/docs/es/mcp#require-approval-for-a-specific-tool) también aún solicitan cuando un hook devuelve `"allow"`, al igual que las herramientas de conector [que su organización estableció en `ask`](/docs/es/mcp#organization-controls-on-connector-tools) en sesiones donde esa configuración llega a Claude Code.613Las herramientas MCP marcadas como [`requiresUserInteraction`](/docs/es/mcp#require-approval-for-a-specific-tool) también aún solicitan cuando un hook devuelve `"allow"`, al igual que las herramientas de conector [que su organización estableció en `ask`](/docs/es/mcp#organization-controls-on-connector-tools) en sesiones donde esa configuración llega a Claude Code.

605 614 


717 726 

718Lo mismo se aplica en todos los ámbitos de configuración: si la configuración de usuario permite un permiso y la configuración de proyecto lo deniega, la regla de negación lo bloquea. Lo contrario también es cierto: una negación a nivel de usuario bloquea un permiso a nivel de proyecto, porque las reglas de negación de cualquier ámbito se evalúan antes que las reglas de permiso.727Lo mismo se aplica en todos los ámbitos de configuración: si la configuración de usuario permite un permiso y la configuración de proyecto lo deniega, la regla de negación lo bloquea. Lo contrario también es cierto: una negación a nivel de usuario bloquea un permiso a nivel de proyecto, porque las reglas de negación de cualquier ámbito se evalúan antes que las reglas de permiso.

719 728 

729Esta precedencia es entre archivos de configuración y argumentos de línea de comandos. Para saber si una regla de negación se mantiene sobre un [mod](/docs/es/plugins/mods/overview) que instale, consulte [Extender permisos con hooks](#extend-permissions-with-hooks).

730 

720Los hosts de inserción pueden proporcionar política administrada adicional a través de la opción `managedSettings` del SDK, incluyendo reglas de permiso de permitir a menos que el administrador establezca los bloqueos `allowManaged*Only`; [Entregar política a sesiones de Claude Desktop](/docs/es/claude-apps-gateway#deliver-policy-to-claude-desktop-sessions) cubre cuándo se aplica la política del integrador en absoluto.731Los hosts de inserción pueden proporcionar política administrada adicional a través de la opción `managedSettings` del SDK, incluyendo reglas de permiso de permitir a menos que el administrador establezca los bloqueos `allowManaged*Only`; [Entregar política a sesiones de Claude Desktop](/docs/es/claude-apps-gateway#deliver-policy-to-claude-desktop-sessions) cubre cuándo se aplica la política del integrador en absoluto.

721 732 

722<h2 id="project-allow-rules-and-workspace-trust">733<h2 id="project-allow-rules-and-workspace-trust">


763| [Hooks](/docs/es/hooks) en archivos de configuración, el bloque [`env`](/docs/es/settings-reference#env) y comandos auxiliares como [`apiKeyHelper`](/docs/es/settings-reference#apikeyhelper), y los [hooks](/docs/es/hooks#hooks-in-skills-and-agents) de una skill del proyecto y [`allowed-tools`](/docs/es/skills#pre-approve-tools-for-a-skill) | Utilizado | Utilizado. La confianza del espacio de trabajo nunca bloquea `allowed-tools` de una skill en ninguna sesión |774| [Hooks](/docs/es/hooks) en archivos de configuración, el bloque [`env`](/docs/es/settings-reference#env) y comandos auxiliares como [`apiKeyHelper`](/docs/es/settings-reference#apikeyhelper), y los [hooks](/docs/es/hooks#hooks-in-skills-and-agents) de una skill del proyecto y [`allowed-tools`](/docs/es/skills#pre-approve-tools-for-a-skill) | Utilizado | Utilizado. La confianza del espacio de trabajo nunca bloquea `allowed-tools` de una skill en ninguna sesión |

764| Reglas `permissions.allow` y `additionalDirectories` en `.claude/settings.json` | No se utiliza hasta que acepte el diálogo de confianza, que aparece nuevamente enumerándolas | No se utiliza. Claude Code imprime una advertencia [`this workspace has not been trusted`](/docs/es/errors#workspace-has-not-been-trusted) a stderr |775| Reglas `permissions.allow` y `additionalDirectories` en `.claude/settings.json` | No se utiliza hasta que acepte el diálogo de confianza, que aparece nuevamente enumerándolas | No se utiliza. Claude Code imprime una advertencia [`this workspace has not been trusted`](/docs/es/errors#workspace-has-not-been-trusted) a stderr |

765| Hooks de frontmatter en un [subagente](/docs/es/sub-agents#hooks-in-subagent-frontmatter) del proyecto, un plugin [`@skills-dir`](/docs/es/plugins/loading#plugins-shared-through-a-repository) del proyecto, y entradas [`extraKnownMarketplaces`](/docs/es/settings-reference#extraknownmarketplaces) del repositorio o un directorio `--add-dir` | No se utiliza, y no se ofrece diálogo | No se utiliza |776| Hooks de frontmatter en un [subagente](/docs/es/sub-agents#hooks-in-subagent-frontmatter) del proyecto, un plugin [`@skills-dir`](/docs/es/plugins/loading#plugins-shared-through-a-repository) del proyecto, y entradas [`extraKnownMarketplaces`](/docs/es/settings-reference#extraknownmarketplaces) del repositorio o un directorio `--add-dir` | No se utiliza, y no se ofrece diálogo | No se utiliza |

766| [`mcpServers`](/docs/es/sub-agents#scope-mcp-servers-to-a-subagent) en línea en el frontmatter de un subagente del repositorio o un directorio `--add-dir`. Antes de v2.1.238, Claude Code cargaba estos servidores en ambas situaciones | No se utiliza, y no se ofrece diálogo | No se utiliza |777| [`mcpServers`](/docs/es/sub-agents#scope-mcp-servers-to-a-subagent) en línea en el frontmatter de un subagente del repositorio o un directorio `--add-dir` | No se utiliza, y no se ofrece diálogo | No se utiliza |

767| Servidores en `.mcp.json`, incluidos los que el repositorio [aprueba en su propia configuración](/docs/es/mcp#project-server-approvals-and-workspace-trust) | Claude Code le pregunta antes de conectarlos. Las aprobaciones propias del repositorio no cuentan | Conectado sin preguntar, aprobado o no. El SDK los carga solo cuando `settingSources` incluye configuración del proyecto. `claude mcp list` en la misma carpeta aún reporta tal servidor como pendiente |778| Servidores en `.mcp.json`, incluidos los que el repositorio [aprueba en su propia configuración](/docs/es/mcp#project-server-approvals-and-workspace-trust) | Claude Code le pregunta antes de conectarlos. Las aprobaciones propias del repositorio no cuentan | Conectado sin preguntar, aprobado o no. El SDK los carga solo cuando `settingSources` incluye configuración del proyecto. `claude mcp list` en la misma carpeta aún reporta tal servidor como pendiente |

768| Un [`headersHelper`](/docs/es/mcp#trust-a-folder-before-its-headershelper-runs) en un servidor en `.mcp.json`. Antes de v2.1.238, Claude Code ejecutaba el auxiliar en ambas situaciones | No se ejecuta hasta que acepte el diálogo de confianza, que aparece nuevamente nombrando dónde se declara el auxiliar. Claude Code conecta el servidor solo con sus `headers` estáticos hasta entonces | No se ejecuta. Claude Code conecta el servidor con sus `headers` estáticos y imprime una línea [`headersHelper not run`](/docs/es/errors#headershelper-not-run) por servidor a stderr |779| Un [`headersHelper`](/docs/es/mcp#trust-a-folder-before-its-headershelper-runs) en un servidor en `.mcp.json` | No se ejecuta hasta que acepte el diálogo de confianza, que aparece nuevamente nombrando dónde se declara el auxiliar. Claude Code conecta el servidor solo con sus `headers` estáticos hasta entonces | No se ejecuta. Claude Code conecta el servidor con sus `headers` estáticos y imprime una línea [`headersHelper not run`](/docs/es/errors#headershelper-not-run) por servidor a stderr |

769 780 

770Para las filas que necesitan que esta carpeta exacta sea confiada, confíe en ella manualmente: establezca `projects["<path>"].hasTrustDialogAccepted` en `true` en `~/.claude.json`, donde `<path>` es la raíz del repositorio, o la carpeta misma fuera de un repositorio. Claude Code imprime la clave exacta en la línea de registro de depuración para un hook de subagente omitido o servidor MCP en línea, en la advertencia de stderr para reglas de permiso omitidas, y en la línea `headersHelper not run` para un auxiliar omitido.781Para las filas que necesitan que esta carpeta exacta sea confiada, confíe en ella manualmente: establezca `projects["<path>"].hasTrustDialogAccepted` en `true` en `~/.claude.json`, donde `<path>` es la raíz del repositorio, o la carpeta misma fuera de un repositorio. Claude Code imprime la clave exacta en la línea de registro de depuración para un hook de subagente omitido o servidor MCP en línea, en la advertencia de stderr para reglas de permiso omitidas, y en la línea `headersHelper not run` para un auxiliar omitido.

771 782 

Details

29Cada subcomando comparte estos códigos de salida, argumentos de plugins y valores de ámbito:29Cada subcomando comparte estos códigos de salida, argumentos de plugins y valores de ámbito:

30 30 

31* **Códigos de salida**: `0` en caso de éxito y `1` en caso de fallo. `validate` añade salida `2` para un error inesperado, y `eval` añade los códigos listados en [su sección](#plugin-eval).31* **Códigos de salida**: `0` en caso de éxito y `1` en caso de fallo. `validate` añade salida `2` para un error inesperado, y `eval` añade los códigos listados en [su sección](#plugin-eval).

32* **Argumentos de plugins**: un argumento `<plugin>` es un `name` de plugin o `name@marketplace`. Cuando dos marketplaces ofrecen el mismo nombre, usa la forma calificada.32* **Argumentos de plugins**: un argumento `<plugin>` es un `name` de plugin o `name@marketplace`. Cuando dos marketplaces ofrecen el mismo nombre, usa la forma calificada. `configure` toma solo la forma calificada.

33* **Ámbitos**: `--scope` toma `user`, `project` o `local`, y nombra el archivo de configuración al que escribe el comando. `update` también toma `managed`.33* **Ámbitos**: `--scope` toma `user`, `project` o `local`, y nombra el archivo de configuración al que escribe el comando. `update` también toma `managed`.

34 34 

35<h3 id="plugin-init">35<h3 id="plugin-init">


87| Bandera | Descripción |87| Bandera | Descripción |

88| :- | :- |88| :- | :- |

89| `-s, --scope <scope>` | Ámbito de instalación: `user`, `project` o `local`. Por defecto es `user` |89| `-s, --scope <scope>` | Ámbito de instalación: `user`, `project` o `local`. Por defecto es `user` |

90| `--config <key=value>` | Establece una opción [`userConfig`](/docs/es/plugins/manifest-reference) que declara el manifiesto del plugin. Repite la bandera para cada opción. Requiere Claude Code v2.1.147 o posterior |90| `--config <key=value>` | Establece una opción [`userConfig`](/docs/es/plugins/manifest-reference) que declara el manifiesto del plugin. Repite la bandera para cada opción. Requiere Claude Code v2.1.147 o posterior. Una clave escrita como `<server>.<key>` establece una configuración que un [servidor MCP empaquetado](/docs/es/plugins/components#include-a-packaged-mcpb-server) declara en su propio `user_config` en su lugar, para un archivo de paquete enviado dentro del plugin. La forma `<server>.<key>` requiere Claude Code v2.1.285 o posterior |

91| `-y, --yes` | Acepta el comando de instalación mostrado sin el aviso `Run this command now?`. Se ignora cuando el comando se ejecuta dentro de una sesión de Claude Code, como desde la herramienta Bash o un hook. Requiere Claude Code v2.1.229 o posterior |91| `-y, --yes` | Acepta el comando de instalación mostrado sin el aviso `Run this command now?`. Se ignora cuando el comando se ejecuta dentro de una sesión de Claude Code, como desde la herramienta Bash o un hook. Requiere Claude Code v2.1.229 o posterior |

92| `--accept-command <sha256>` | Acepta el comando de instalación mostrado cuyo `sha256` una ejecución anterior de [`--json`](#plugin-json-result) reportó en `shownCommand`, en lugar de `-y`. No se puede combinar con `-y`. Consulta [Aceptar un comando de instalación mostrado](#accept-a-displayed-install-command). Requiere Claude Code v2.1.271 o posterior |92| `--accept-command <sha256>` | Acepta el comando de instalación mostrado cuyo `sha256` una ejecución anterior de [`--json`](#plugin-json-result) reportó en `shownCommand`, en lugar de `-y`. No se puede combinar con `-y`. Consulta [Aceptar un comando de instalación mostrado](#accept-a-displayed-install-command). Requiere Claude Code v2.1.271 o posterior |

93| `--json` | Imprime el resultado como un objeto JSON en la última línea de stdout en lugar del mensaje legible por humanos, para usar en scripts. Consulta [Formato de resultado JSON](#plugin-json-result). Requiere Claude Code v2.1.268 o posterior |93| `--json` | Imprime el resultado como un objeto JSON en la última línea de stdout en lugar del mensaje legible por humanos, para usar en scripts. Consulta [Formato de resultado JSON](#plugin-json-result). Requiere Claude Code v2.1.268 o posterior |


297| :- | :- |297| :- | :- |

298| `--json` | Imprime la lista como JSON |298| `--json` | Imprime la lista como JSON |

299| `--available` | También lista plugins que tus marketplaces ofrecen que no has instalado. No tiene efecto sin `--json` |299| `--available` | También lista plugins que tus marketplaces ofrecen que no has instalado. No tiene efecto sin `--json` |

300| `--data-size [plugin]` | Mide el directorio de [datos guardados](#what-an-uninstall-deletes-and-keeps) de cada plugin instalado, o solo el del plugin nombrado, dado como `name@marketplace`. No tiene efecto sin `--json`. Si el nombre no tiene registro de instalación, el comando imprime `--data-size names a plugin that is not installed` y sale con `1` en lugar de imprimir la lista. Requiere Claude Code v2.1.285 o posterior |

300 301 

301Claude Code agrupa la salida legible por humanos por cómo se carga cada plugin:302Claude Code agrupa la salida legible por humanos por cómo se carga cada plugin:

302 303 


328| `notes` | array of strings | Advertencias de autoría para un plugin que cargó y funciona |329| `notes` | array of strings | Advertencias de autoría para un plugin que cargó y funciona |

329| `errorDetails` | array of objects | Un objeto por entrada de `errors`, dando su `type` de diagnóstico y los nombres a los que se refiere, como el plugin, marketplace, servidor o archivo. Requiere Claude Code v2.1.268 o posterior |330| `errorDetails` | array of objects | Un objeto por entrada de `errors`, dando su `type` de diagnóstico y los nombres a los que se refiere, como el plugin, marketplace, servidor o archivo. Requiere Claude Code v2.1.268 o posterior |

330| `noteDetails` | array of objects | Los mismos objetos de detalle para cada entrada de `notes`. Requiere Claude Code v2.1.268 o posterior |331| `noteDetails` | array of objects | Los mismos objetos de detalle para cada entrada de `notes`. Requiere Claude Code v2.1.268 o posterior |

332| `hasUserConfig` | boolean | Presente y `true` cuando el plugin cargó y su manifiesto declara opciones [`userConfig`](/docs/es/plugins/manifest-reference#user-configuration). Ausente para un plugin que falló al cargar, sin importar lo que su manifiesto declare. Los valores guardados nunca se incluyen. Requiere Claude Code v2.1.285 o posterior |

333| `projectEnabled` | boolean | Si el `.claude/settings.json` compartido del proyecto activa el plugin. Solo installs de marketplace. Requiere Claude Code v2.1.285 o posterior |

334| `dataDirSize` | object | Con `--data-size`, el tamaño del directorio de [datos guardados](#what-an-uninstall-deletes-and-keeps) del plugin como `bytes` y `human`; ausente cuando el directorio falta o está vacío. Solo installs de marketplace. Requiere Claude Code v2.1.285 o posterior |

335| `dataDirUnreadable` | boolean | Con `--data-size`, `true` cuando el directorio de datos guardados existe pero no pudo ser medido. Solo installs de marketplace. Requiere Claude Code v2.1.285 o posterior |

331 336 

332Con `--json --available`, Claude Code imprime un objeto en lugar de un array. Su campo `installed` contiene el array de objetos de plugin instalado, y su campo `available` contiene un objeto por plugin de marketplace no instalado con los campos a continuación.337Con `--json --available`, Claude Code imprime un objeto en lugar de un array. Su campo `installed` contiene el array de objetos de plugin instalado, y su campo `available` contiene un objeto por plugin de marketplace no instalado con los campos a continuación.

333 338 


371 376 

372Para un plugin que no está cargado, Claude Code imprime ``Plugin "formatter" not found. Run `claude plugin list` to see installed plugins, or pass --plugin-dir <path> to load one from disk.`` y sale con `1`.377Para un plugin que no está cargado, Claude Code imprime ``Plugin "formatter" not found. Run `claude plugin list` to see installed plugins, or pass --plugin-dir <path> to load one from disk.`` y sale con `1`.

373 378 

379<h3 id="plugin-configure">

380 plugin configure

381</h3>

382 

383Muestra las opciones [`userConfig`](/docs/es/plugins/manifest-reference#user-configuration) de un plugin instalado y cuáles están establecidas, o guarda valores canalizados en stdin. Requiere Claude Code v2.1.285 o posterior.

384 

385```bash theme={null}

386claude plugin configure <plugin>

387```

388 

389| Bandera | Descripción |

390| :- | :- |

391| `--values-stdin` | Lee valores de opciones de stdin como un objeto JSON de strings de una sola línea y los guarda. Las opciones que dejas fuera mantienen sus valores guardados |

392| `--json` | Imprime el resultado como un objeto JSON en stdout. Sin `--values-stdin`, el objeto lleva el `schema` y `choices` de las opciones, sus `inputs` iniciales, y los nombres de opciones `configured` y `unconfigured`. Con `--values-stdin`, lleva los nombres de opciones `saved` y, cuando pueden ser leídos de vuelta, los `unconfigured` |

393 

394Sin banderas, el comando lista cada opción con hasta tres etiquetas: `required` u `optional`, luego `sensitive` para una opción que el manifiesto declara sensible, luego `set` o `not set`. No imprime valores guardados. Con `--json`, la salida incluye los valores guardados de opciones que no son sensibles, y nunca el texto de una sensible.

395 

396Para guardar valores, escríbelos en un archivo como un objeto JSON que mapea claves de opciones a valores de string, luego pasa el archivo en stdin. Reemplaza `formatter@my-marketplace` con el id de tu propio plugin como `claude plugin list` lo muestra. Este ejemplo establece una opción nombrada `api_url` desde un archivo `values.json` que contiene `{"api_url": "https://example.com"}`:

397 

398```bash theme={null}

399claude plugin configure formatter@my-marketplace --values-stdin < values.json

400```

401 

402Claude Code valida cada valor contra el tipo declarado de la opción e imprime `Configuration saved. Restart Claude Code to apply it.` Si pasas una clave que el manifiesto no declara, o un valor que falla la validación, el comando no guarda nada, imprime `Failed to save configuration:` con la razón, y sale con `1`. Con `--json`, un valor rechazado también imprime un objeto en stdout cuyo campo `refused` lleva el `message` y, cuando una opción es culpable, su clave `option`.

403 

404Pasa el id completo `name@marketplace` del plugin, como `claude plugin list` lo muestra. `configure` no acepta un `name` simple. Cuando ningún plugin cargado tiene ese id, el comando imprime `No installed plugin has the id "<plugin>".` y sale con `1`.

405 

406Para la configuración de un servidor MCP empaquetado, consulta [`plugin install --config`](#plugin-install) o el elemento **Configure** en `/plugin`.

407 

374<h3 id="plugin-prune">408<h3 id="plugin-prune">

375 plugin prune409 plugin prune

376</h3>410</h3>

Details

791 791 

792Los hooks en `hooks/hooks.json` y en la clave de manifiesto `hooks` se cargan ambos. Para cada evento y su carga útil, consulte [Eventos de hook](/docs/es/hooks#hook-events).792Los hooks en `hooks/hooks.json` y en la clave de manifiesto `hooks` se cargan ambos. Para cada evento y su carga útil, consulte [Eventos de hook](/docs/es/hooks#hook-events).

793 793 

794Para escribir hooks como funciones JavaScript que se ejecutan dentro de Claude Code y pueden dibujar en su interfaz, enumere un archivo de módulo bajo una clave `modules` en el mismo `hooks/hooks.json`. Un plugin con uno es un mod. Consulte [Crear un mod](/docs/es/plugins/mods/create).

795 

794<h4 id="when-plugin-hooks-fire">796<h4 id="when-plugin-hooks-fire">

795 Cuándo se activan los hooks del plugin797 Cuándo se activan los hooks del plugin

796</h4>798</h4>


868 870 

869El servidor toma su nombre del `name` en el manifiesto del paquete.871El servidor toma su nombre del `name` en el manifiesto del paquete.

870 872 

873Un manifiesto propio del paquete puede declarar configuraciones que el servidor necesita del usuario en un bloque `user_config`. Un servidor empaquetado con una configuración requerida que no tiene un valor guardado no se inicia. La pestaña **Errors** de `/plugin` muestra `Bundled MCP server "<name>" was not started: it needs configuration`.

874 

875Los usuarios proporcionan los valores de una de dos maneras:

876 

877* **En `/plugin`**: seleccione el plugin en la pestaña **Installed** y elija **Configure**

878* **En la instalación, desde el shell**: pase [`--config <server>.<key>=<value>`](/docs/es/plugins/cli-reference#plugin-install) a `claude plugin install`. Requiere Claude Code v2.1.285 o posterior, y funciona solo para un paquete empaquetado dentro del plugin.

879 

871Para transportes y autenticación, consulte [MCP](/docs/es/mcp#plugin-provided-mcp-servers).880Para transportes y autenticación, consulte [MCP](/docs/es/mcp#plugin-provided-mcp-servers).

872 881 

873<h3 id="lsp-servers">882<h3 id="lsp-servers">


1071 Cuándo aparece el diálogo de configuración1080 Cuándo aparece el diálogo de configuración

1072</h3>1081</h3>

1073 1082 

1074El diálogo aparece solo en la interfaz interactiva `/plugin`. Se abre para cualquier opción que aún no esté establecida cuando el usuario hace cualquiera de lo siguiente:1083El diálogo es parte de la interfaz interactiva `/plugin`. Se abre para cualquier opción que aún no esté establecida cuando el usuario hace cualquiera de lo siguiente:

1075 1084 

1076* Instala el plugin en `/plugin`1085* Instala el plugin en `/plugin`

1077* Ejecuta `/plugin install <plugin>@<marketplace>` dentro de una sesión1086* Ejecuta `/plugin install <plugin>@<marketplace>` dentro de una sesión


1079 1088 

1080Para abrir el mismo diálogo en cualquier momento, el usuario ejecuta `/plugin configure <plugin>@<marketplace>`.1089Para abrir el mismo diálogo en cualquier momento, el usuario ejecuta `/plugin configure <plugin>@<marketplace>`.

1081 1090 

1082El comando de shell `claude plugin install` nunca solicita valores de `userConfig`. Para establecer valores desde el shell, pase cada uno como `--config KEY=VALUE`. Cuando las opciones permanecen sin establecer, el comando imprime una línea `userConfig options not yet set` que nombra ambas formas de establecerlas. [El diálogo `userConfig` nunca aparece](/docs/es/plugins/troubleshooting#the-userconfig-dialog-never-appears) cita la línea.1091El diálogo Manage plugins de la extensión de VS Code [Manage plugins dialog](/docs/es/vs-code#install-plugins) solicita opciones sin establecer como un formulario después de una instalación, y un icono de engranaje en la fila del plugin abre el formulario nuevamente con cada opción.

1092 

1093El comando de shell `claude plugin install` nunca solicita valores de `userConfig`. Para establecer valores desde el shell, pase cada uno como `--config KEY=VALUE` cuando instale, o canalice un objeto JSON a [`claude plugin configure --values-stdin`](/docs/es/plugins/cli-reference#plugin-configure) después.

1094 

1095Cuando las opciones permanecen sin establecer, `claude plugin install` imprime una línea `userConfig options not yet set`. Para el texto exacto de la línea, consulte [The `userConfig` dialog never appears](/docs/es/plugins/troubleshooting#the-userconfig-dialog-never-appears).

1083 1096 

1084Para los campos de opción, dónde se almacena cada valor, cómo un componente hace referencia a un valor guardado, y qué campos rechazan `${user_config.*}`, consulte [Configuración del usuario](/docs/es/plugins/manifest-reference#user-configuration).1097Para los campos de opción, dónde se almacena cada valor, cómo un componente hace referencia a un valor guardado, y qué campos rechazan `${user_config.*}`, consulte [Configuración del usuario](/docs/es/plugins/manifest-reference#user-configuration).

1085 1098 

Details

72 La última oración del resumen le dice si el plugin es utilizable en esta sesión aún:72 La última oración del resumen le dice si el plugin es utilizable en esta sesión aún:

73 73 

74 * **Active now**: `Plugin is now active.` No se necesita recarga.74 * **Active now**: `Plugin is now active.` No se necesita recarga.

75 * **Active, but a server needs setup**: `Plugin is now active.` va seguido de `Its bundled MCP server needs configuration before it can start`. El [servidor MCP empaquetado](/docs/es/plugins/components#include-a-packaged-mcpb-server) del plugin no puede iniciarse hasta que establezca sus opciones. Seleccione el plugin en la pestaña **Installed** en `/plugin` y elija **Configure** para establecer las opciones del servidor.

75 * **Reload needed**: `Run /reload-plugins to activate.` El panel se cierra y Claude Code ejecuta esa recarga por usted. Si la recarga [invalidaría el prompt cache](/docs/es/prompt-caching#enabling-or-disabling-a-plugin), advierte y deja el plugin pendiente en su lugar. Ejecute `/reload-plugins --force` para activarlo de todas formas, lo que cuesta una solicitud sin caché.76 * **Reload needed**: `Run /reload-plugins to activate.` El panel se cierra y Claude Code ejecuta esa recarga por usted. Si la recarga [invalidaría el prompt cache](/docs/es/prompt-caching#enabling-or-disabling-a-plugin), advierte y deja el plugin pendiente en su lugar. Ejecute `/reload-plugins --force` para activarlo de todas formas, lo que cuesta una solicitud sin caché.

76 * **Load failed**: `The plugin couldn't be loaded`. Abra la pestaña **Errors** en `/plugin` para la razón, luego consulte [After install: plugin not working](/docs/es/plugins/troubleshooting#plugin-installed-but-not-working).77 * **Load failed**: `The plugin couldn't be loaded`. Abra la pestaña **Errors** en `/plugin` para la razón, luego consulte [After install: plugin not working](/docs/es/plugins/troubleshooting#plugin-installed-but-not-working).

77 </Step>78 </Step>


248Un marketplace privado es uno en un repositorio al que necesita credenciales para clonar, en GitHub o cualquier otro host git. Lo agrega con el mismo comando `/plugin marketplace add` o `claude plugin marketplace add` que uno público. Claude Code lo clona con las credenciales git ya en su máquina y nunca solicita, así que cada forma de conectarse tiene un requisito:249Un marketplace privado es uno en un repositorio al que necesita credenciales para clonar, en GitHub o cualquier otro host git. Lo agrega con el mismo comando `/plugin marketplace add` o `claude plugin marketplace add` que uno público. Claude Code lo clona con las credenciales git ya en su máquina y nunca solicita, así que cada forma de conectarse tiene un requisito:

249 250 

250* **HTTPS**: sus ayudantes de credenciales git se aplican, así que el acceso que configuró con `gh auth login`, el Keychain de macOS, o `git-credential-store` funciona. Los prompts interactivos se suprimen, así que un host al que nunca se ha autenticado falla en lugar de pedir una contraseña.251* **HTTPS**: sus ayudantes de credenciales git se aplican, así que el acceso que configuró con `gh auth login`, el Keychain de macOS, o `git-credential-store` funciona. Los prompts interactivos se suprimen, así que un host al que nunca se ha autenticado falla en lugar de pedir una contraseña.

251* **SSH**: el host ya debe estar en su archivo `known_hosts` y la clave debe funcionar sin un prompt de frase de contraseña, porque los prompts de huella digital del host y frase de contraseña también se suprimen.252* **SSH**: el host ya debe estar en su archivo `known_hosts` y la clave debe funcionar sin un prompt de frase de contraseña. Si su configuración de git nombra un programa SSH en `GIT_SSH_COMMAND`, `GIT_SSH`, o el `core.sshCommand` de su configuración de git, Claude Code ejecuta ese programa.

252* **Abreviatura de GitHub `owner/repo`**: Claude Code verifica si su clave SSH se autentica en `github.com`, luego clona sobre SSH si lo hace y sobre HTTPS si no. Establezca [`CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1`](/docs/es/env-vars#variables) para omitir esa verificación y siempre clonar sobre HTTPS.253* **Abreviatura de GitHub `owner/repo`**: Claude Code verifica si su clave SSH se autentica en `github.com`, luego clona sobre SSH si lo hace y sobre HTTPS si no. Establezca [`CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1`](/docs/es/env-vars#variables) para omitir esa verificación y siempre clonar sobre HTTPS.

253 254 

254Las mismas credenciales se aplican cuando ejecuta `/plugin install`, `/plugin marketplace update` y `claude plugin update`.255Las mismas credenciales se aplican cuando ejecuta `/plugin install`, `/plugin marketplace update` y `claude plugin update`.


288 289 

289* Escriba para filtrar por nombre o descripción.290* Escriba para filtrar por nombre o descripción.

290* Presione **Space** para habilitar o deshabilitar el plugin seleccionado, y **f** para marcarlo como favorito.291* Presione **Space** para habilitar o deshabilitar el plugin seleccionado, y **f** para marcarlo como favorito.

291* Presione **Enter** para abrir los detalles de un plugin. El menú allí ofrece **Disable plugin** o **Enable plugin**, **Update now** y **Uninstall**. Los plugins que toman configuración también ofrecen **Configure options**.292* Presione **Enter** para abrir los detalles de un plugin.

293 

294El menú de detalles de un plugin ofrece **Disable plugin** o **Enable plugin**, **Update now** y **Uninstall**. Dos elementos más aparecen para plugins que toman configuración, y un plugin puede mostrar ambos:

295 

296* **Configure options**: se muestra cuando el manifiesto del plugin declara opciones [`userConfig`](/docs/es/plugins/manifest-reference#user-configuration). Abre el diálogo para esas opciones

297* **Configure**: se muestra cuando el plugin incluye un [servidor MCP empaquetado](/docs/es/plugins/components#include-a-packaged-mcpb-server). Establece la configuración `user_config` propia de ese servidor

292 298 

293La pestaña también puede mostrar plugins en alcance **Managed**. Su organización instaló esos a través de [configuración administrada](/docs/es/settings#settings-files), y no puede habilitarlos, deshabilitarlos o desinstalarlos aquí.299La pestaña también puede mostrar plugins en alcance **Managed**. Su organización instaló esos a través de [configuración administrada](/docs/es/settings#settings-files), y no puede habilitarlos, deshabilitarlos o desinstalarlos aquí.

294 300 

Details

146| [`dependencies`](#dependencies) | Array of strings or objects | Plugins que deben estar habilitados para que este funcione |146| [`dependencies`](#dependencies) | Array of strings or objects | Plugins que deben estar habilitados para que este funcione |

147| [`settings`](#settings) | Object | Configuración que Claude Code aplica mientras el plugin está habilitado. Solo `agent` y `subagentStatusLine` tienen efecto |147| [`settings`](#settings) | Object | Configuración que Claude Code aplica mientras el plugin está habilitado. Solo `agent` y `subagentStatusLine` tienen efecto |

148| [`userConfig`](#user-configuration) | Object | Valores que Claude Code solicita al usuario cuando el plugin está habilitado |148| [`userConfig`](#user-configuration) | Object | Valores que Claude Code solicita al usuario cuando el plugin está habilitado |

149| `types` | Path | Un archivo `.d.ts` que declara los valores `$.state` y los sustantivos `$` de un [mod](/docs/es/plugins/mods/reference#files) |

149| [`channels`](#channels) | Array of objects | Canales de mensajes que proporciona el plugin, cada uno vinculado a uno de sus servidores MCP |150| [`channels`](#channels) | Array of objects | Canales de mensajes que proporciona el plugin, cada uno vinculado a uno de sus servidores MCP |

150| `skills` | Path, or array of paths | Directorios para escanear en busca de skills, cada uno un directorio de carpetas `<name>/SKILL.md` o una carpeta que contenga `SKILL.md` directamente. `"."` nombra la raíz del plugin. Se suma al escaneo predeterminado `skills/` |151| `skills` | Path, or array of paths | Directorios para escanear en busca de skills, cada uno un directorio de carpetas `<name>/SKILL.md` o una carpeta que contenga `SKILL.md` directamente. `"."` nombra la raíz del plugin. Se suma al escaneo predeterminado `skills/` |

151| [`commands`](#commands) | Path, array of paths, or object | Archivos de comando `.md` planos, directorios de ellos, u un objeto mapa de nombre de comando a `source` o `content`. Reemplaza el escaneo predeterminado `commands/` |152| [`commands`](#commands) | Path, array of paths, or object | Archivos de comando `.md` planos, directorios de ellos, u un objeto mapa de nombre de comando a `source` o `content`. Reemplaza el escaneo predeterminado `commands/` |


170 171 

171Claude Code espacía cada componente bajo él, por lo que un agente `reviewer` en el plugin `deploy-tools` aparece como `deploy-tools:reviewer`.172Claude Code espacía cada componente bajo él, por lo que un agente `reviewer` en el plugin `deploy-tools` aparece como `deploy-tools:reviewer`.

172 173 

174`claude plugin validate` también verifica que el nombre no se pase como uno de los propios plugins de Anthropic. La verificación ignora mayúsculas y trata cualquier serie de separadores como uno:

175 

176| Nombre | Resultado |

177| :- | :- |

178| Comienza con `claude-`, `anthropic-`, `anthropics-`, o `cc-plugin-` | Error |

179| Es `claude`, `anthropic`, `anthropics`, `claude-code`, o `claude-mods` | Error |

180| Pone `official` junto a `claude` o `anthropic`, como `official-claude-tools` | Error |

181| Tiene `claude`, `anthropic`, o `anthropics` como palabra completa en cualquier otro lugar, como `mcp-for-claude` | Advertencia |

182 

183El error dice `Plugin name "<name>" is reserved: it passes as one of Anthropic's own`, y la advertencia dice `Plugin name "<name>" reads as one of Anthropic's own`. `claude plugin init` y `claude plugin tag` rechazan un nombre que genera el error. Solo estos comandos verifican el nombre. Claude Code aún instala y carga un plugin cuyo nombre rechazan.

184 

173<h3 id="displayname">185<h3 id="displayname">

174 `displayName`186 `displayName`

175</h3>187</h3>

Details

484| `Author name cannot be empty` | Error | `owner.name` |484| `Author name cannot be empty` | Error | `owner.name` |

485| `Plugin name cannot contain spaces. Use kebab-case (e.g., "my-plugin")` | Error | `plugins[i].name` |485| `Plugin name cannot contain spaces. Use kebab-case (e.g., "my-plugin")` | Error | `plugins[i].name` |

486| `Plugin name cannot contain control or bidirectional-formatting characters` | Error | `plugins[i].name` |486| `Plugin name cannot contain control or bidirectional-formatting characters` | Error | `plugins[i].name` |

487| `Plugin name "x" is reserved: it passes as one of Anthropic's own` | Error | `plugins[i].name`. Consulte el [`name`](/docs/es/plugins/manifest-reference#name) del manifiesto para los nombres reservados |

488| `Plugin name "x" reads as one of Anthropic's own` | Advertencia | `plugins[i].name` |

487| `Claude Code cannot install plugins from marketplace "x". Each part of a plugin id (plugin@marketplace) may use only the letters a-z and A-Z, digits, ".", "_" and "-", and must start with a letter or digit. Change the marketplace's "name".` | Error | `name` |489| `Claude Code cannot install plugins from marketplace "x". Each part of a plugin id (plugin@marketplace) may use only the letters a-z and A-Z, digits, ".", "_" and "-", and must start with a letter or digit. Change the marketplace's "name".` | Error | `name` |

488| `Claude Code cannot install plugin "x". Each part of a plugin id (plugin@marketplace) may use only the letters a-z and A-Z, digits, ".", "_" and "-", and must start with a letter or digit. Change this entry's "name".` | Error | `plugins[i].name` |490| `Claude Code cannot install plugin "x". Each part of a plugin id (plugin@marketplace) may use only the letters a-z and A-Z, digits, ".", "_" and "-", and must start with a letter or digit. Change this entry's "name".` | Error | `plugins[i].name` |

489| `Duplicate plugin name "x" found in marketplace` | Error | Dos entradas comparten un `name` |491| `Duplicate plugin name "x" found in marketplace` | Error | Dos entradas comparten un `name` |

plugins/org.md +4 −1

Details

212| `pluginTrustMessage` | Agrega su texto al aviso de confianza que `/plugin` muestra antes de que se instale un plugin | No cambia el texto del aviso en sí |212| `pluginTrustMessage` | Agrega su texto al aviso de confianza que `/plugin` muestra antes de que se instale un plugin | No cambia el texto del aviso en sí |

213| `allowedChannelPlugins` | Reemplaza la lista predeterminada de plugins permitidos para enviar mensajes de canal. Requiere `channelsEnabled: true` | Consulte [Restrict which channel plugins can run](/docs/es/channels#restrict-which-channel-plugins-can-run) |213| `allowedChannelPlugins` | Reemplaza la lista predeterminada de plugins permitidos para enviar mensajes de canal. Requiere `channelsEnabled: true` | Consulte [Restrict which channel plugins can run](/docs/es/channels#restrict-which-channel-plugins-can-run) |

214| [`CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL=1`](/docs/es/env-vars) | Detiene las sesiones de terminal interactivas de auto-registrar el marketplace oficial | No elimina un marketplace ya registrado. La allowlist y blocklist cierran el mismo auto-registro sin él. Una máquina que comenzó una vez con él establecido no reanuda el auto-registro después de desestablecerlo |214| [`CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL=1`](/docs/es/env-vars) | Detiene las sesiones de terminal interactivas de auto-registrar el marketplace oficial | No elimina un marketplace ya registrado. La allowlist y blocklist cierran el mismo auto-registro sin él. Una máquina que comenzó una vez con él establecido no reanuda el auto-registro después de desestablecerlo |

215| [`allowManagedModsOnly`](/docs/es/plugins/mods/admin#stop-user-installed-mods-from-loading) | Detiene cada [mod](/docs/es/plugins/mods/overview) instalado que no [cuenta como el de su organización](/docs/es/plugins/mods/admin#install-your-organizations-mods) de cargarse | No detiene un plugin que contiene un mod de instalar. Para eso, use las claves de marketplace en esta tabla |

215 216 

216Cada clave en la tabla es una configuración administrada, aparte de `enabledPlugins`, `syncClaudeAiPlugins` y `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL`:217Cada clave en la tabla es una configuración administrada, aparte de `enabledPlugins`, `syncClaudeAiPlugins`, `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL` y `allowManagedModsOnly`:

217 218 

218* **`enabledPlugins`**: puede establecerla en cualquier alcance, y la configuración administrada la bloquea.219* **`enabledPlugins`**: puede establecerla en cualquier alcance, y la configuración administrada la bloquea.

219* **`syncClaudeAiPlugins`**: cada usuario también puede establecerla en su propia configuración de usuario o local. Consulte su [alcance en la referencia de configuración](/docs/es/settings-reference#syncclaudeaiplugins).220* **`syncClaudeAiPlugins`**: cada usuario también puede establecerla en su propia configuración de usuario o local. Consulte su [alcance en la referencia de configuración](/docs/es/settings-reference#syncclaudeaiplugins).

220* **`CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL`**: esta es una variable de entorno que entrega a través del bloque `env` administrado que se muestra bajo [Turn updates off for the whole fleet](#turn-updates-off-for-the-whole-fleet).221* **`CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL`**: esta es una variable de entorno que entrega a través del bloque `env` administrado que se muestra bajo [Turn updates off for the whole fleet](#turn-updates-off-for-the-whole-fleet).

222* **`allowManagedModsOnly`**: esta es una opción en un plugin built-in, que establece bajo `pluginConfigs` en configuración administrada. Consulte [Stop user-installed mods from loading](/docs/es/plugins/mods/admin#stop-user-installed-mods-from-loading).

221 223 

222Cada clave de configuración aquí tiene una entrada en la [settings reference](/docs/es/settings-reference).224Cada clave de configuración aquí tiene una entrada en la [settings reference](/docs/es/settings-reference).

223 225 


457* [Marketplace reference](/docs/es/plugins/marketplace-reference#marketplace-sources): los valores `source` que `extraKnownMarketplaces`, `strictKnownMarketplaces` y `blockedMarketplaces` aceptan459* [Marketplace reference](/docs/es/plugins/marketplace-reference#marketplace-sources): los valores `source` que `extraKnownMarketplaces`, `strictKnownMarketplaces` y `blockedMarketplaces` aceptan

458* [Host and maintain a marketplace](/docs/es/plugins/host-marketplace): ejecute el marketplace al que apunta su política460* [Host and maintain a marketplace](/docs/es/plugins/host-marketplace): ejecute el marketplace al que apunta su política

459* [Plugin security and trust](/docs/es/plugins/security): lo que un plugin puede hacer en una máquina y cómo revisar uno antes de instalar461* [Plugin security and trust](/docs/es/plugins/security): lo que un plugin puede hacer en una máquina y cómo revisar uno antes de instalar

462* [Administrar mods para su organización](/docs/es/plugins/mods/admin): desactive o limite mods, los plugins que ejecutan JavaScript dentro de Claude Code

460* [Server-managed settings](/docs/es/server-managed-settings): entregue estas claves desde la consola de administración de claude.ai463* [Server-managed settings](/docs/es/server-managed-settings): entregue estas claves desde la consola de administración de claude.ai

461* [Troubleshoot plugins](/docs/es/plugins/troubleshooting#blocked-by-your-organization): los mensajes que ven los usuarios cuando la política los bloquea464* [Troubleshoot plugins](/docs/es/plugins/troubleshooting#blocked-by-your-organization): los mensajes que ven los usuarios cuando la política los bloquea

Details

30* [**Skills**](/docs/es/plugins/components#skills): instrucciones `SKILL.md` que Claude carga cuando es relevante, y que también puede ejecutar como un comando30* [**Skills**](/docs/es/plugins/components#skills): instrucciones `SKILL.md` que Claude carga cuando es relevante, y que también puede ejecutar como un comando

31* [**Agentes**](/docs/es/plugins/components#agents): definiciones de subagentes a las que Claude puede delegar31* [**Agentes**](/docs/es/plugins/components#agents): definiciones de subagentes a las que Claude puede delegar

32* [**Hooks**](/docs/es/plugins/components#hooks): comandos que Claude Code ejecuta en puntos de su ciclo de vida, como después de cada edición32* [**Hooks**](/docs/es/plugins/components#hooks): comandos que Claude Code ejecuta en puntos de su ciclo de vida, como después de cada edición

33* [**Un módulo de hooks**](/docs/es/plugins/mods/overview): hooks escritos como funciones JavaScript, que también pueden dibujar paneles y agregar comandos. Un plugin que tiene uno se llama mod

33* [**Servidores MCP**](/docs/es/plugins/components#mcp-servers): servidores de herramientas a los que Claude Code se conecta mientras el plugin está habilitado34* [**Servidores MCP**](/docs/es/plugins/components#mcp-servers): servidores de herramientas a los que Claude Code se conecta mientras el plugin está habilitado

34 35 

35Este diagrama muestra un plugin llamado `my-plugin` que contiene uno de cada uno de esos componentes, y lo que obtiene de cada archivo una vez que se carga el plugin.36Este diagrama muestra un plugin llamado `my-plugin` que contiene una skill, un agente, hooks y un servidor MCP, y lo que obtiene de cada archivo una vez que se carga el plugin.

36 37 

37<img src="https://mintcdn.com/claude-code/2Q_GtOEovg5qaBem/images/plugin-directory.svg?fit=max&auto=format&n=2Q_GtOEovg5qaBem&q=85&s=f623b64e82713b830e48174f0a922888" className="dark:hidden" alt="Diagram in two columns joined by five straight arrows. Left, the directory of a plugin named my-plugin, holding a manifest at .claude-plugin/plugin.json, skills/review/SKILL.md, agents/reviewer.md, hooks/hooks.json, .mcp.json, and other components. Right, what each file gives you in your session: the manifest sets the plugin name, my-plugin; the skill runs as /my-plugin:review; the agent file is a subagent Claude can delegate to; the hooks file holds hooks that run on lifecycle events; and .mcp.json adds an MCP server that gives Claude tools." width="760" height="336" data-path="images/plugin-directory.svg" />38<img src="https://mintcdn.com/claude-code/2Q_GtOEovg5qaBem/images/plugin-directory.svg?fit=max&auto=format&n=2Q_GtOEovg5qaBem&q=85&s=f623b64e82713b830e48174f0a922888" className="dark:hidden" alt="Diagram in two columns joined by five straight arrows. Left, the directory of a plugin named my-plugin, holding a manifest at .claude-plugin/plugin.json, skills/review/SKILL.md, agents/reviewer.md, hooks/hooks.json, .mcp.json, and other components. Right, what each file gives you in your session: the manifest sets the plugin name, my-plugin; the skill runs as /my-plugin:review; the agent file is a subagent Claude can delegate to; the hooks file holds hooks that run on lifecycle events; and .mcp.json adds an MCP server that gives Claude tools." width="760" height="336" data-path="images/plugin-directory.svg" />

38 39 

Details

29Un plugin puede contener contenido que ejecuta código en tu máquina con tus privilegios de usuario y contenido que entra en el contexto de Claude como instrucciones, así que [revisa un plugin antes de instalarlo](#review-a-plugin-before-you-install). Esto es lo que un plugin instalado puede hacer:29Un plugin puede contener contenido que ejecuta código en tu máquina con tus privilegios de usuario y contenido que entra en el contexto de Claude como instrucciones, así que [revisa un plugin antes de instalarlo](#review-a-plugin-before-you-install). Esto es lo que un plugin instalado puede hacer:

30 30 

31* **Hooks**: los [hooks](/docs/es/hooks) de un plugin se ejecutan como comandos de shell en puntos del ciclo de vida de Claude Code, como antes o después de una llamada a herramienta.31* **Hooks**: los [hooks](/docs/es/hooks) de un plugin se ejecutan como comandos de shell en puntos del ciclo de vida de Claude Code, como antes o después de una llamada a herramienta.

32* **Mods**: un [mod](/docs/es/plugins/mods/overview) de un plugin ejecuta JavaScript dentro de Claude Code con tus permisos. Para ver qué hace un mod antes de instalarlo, consulta [Decide whether to trust a mod](/docs/es/plugins/mods/overview#decide-whether-to-trust-a-mod).

32* **Servidores MCP y LSP**: Claude Code se conecta a los [servidores MCP](/docs/es/mcp) que declara un plugin habilitado y le da a Claude sus herramientas. Un servidor MCP de stdio se ejecuta como un proceso que Claude Code inicia en tu máquina. Claude Code también inicia los servidores de lenguaje que declara el plugin.33* **Servidores MCP y LSP**: Claude Code se conecta a los [servidores MCP](/docs/es/mcp) que declara un plugin habilitado y le da a Claude sus herramientas. Un servidor MCP de stdio se ejecuta como un proceso que Claude Code inicia en tu máquina. Claude Code también inicia los servidores de lenguaje que declara el plugin.

33* **Directorio `bin/`**: Claude Code añade el directorio `bin/` de cada plugin habilitado a la `PATH` del shell de la herramienta Bash, así que los comandos Bash de Claude pueden ejecutar cualquier ejecutable allí.34* **Directorio `bin/`**: Claude Code añade el directorio `bin/` de cada plugin habilitado a la `PATH` del shell de la herramienta Bash, así que los comandos Bash de Claude pueden ejecutar cualquier ejecutable allí.

34* **Skills, comandos y agentes**: estos entran en el contexto de Claude como instrucciones, así que influyen en lo que Claude hace con las herramientas que ya tiene.35* **Skills, comandos y agentes**: estos entran en el contexto de Claude como instrucciones, así que influyen en lo que Claude hace con las herramientas que ya tiene.


37Las [reglas de permisos](/docs/es/permissions) y [sandbox](/docs/es/sandboxing) de Claude Code cubren las llamadas a herramientas que hace Claude, no el código que ejecuta un plugin por sí solo:38Las [reglas de permisos](/docs/es/permissions) y [sandbox](/docs/es/sandboxing) de Claude Code cubren las llamadas a herramientas que hace Claude, no el código que ejecuta un plugin por sí solo:

38 39 

39* **Hooks y procesos de servidor**: los hooks de comando ejecutan comandos de shell con tus permisos de usuario completos. Claude Code ejecuta hooks y servidores MCP fuera del sandbox.40* **Hooks y procesos de servidor**: los hooks de comando ejecutan comandos de shell con tus permisos de usuario completos. Claude Code ejecuta hooks y servidores MCP fuera del sandbox.

40* **Llamadas a herramientas de Claude**: una llamada a una de las herramientas MCP del plugin, y un comando Bash que ejecuta un ejecutable del `bin/` del plugin, son llamadas a herramientas, así que tus reglas de permisos se aplican a ellas.41* **Llamadas a herramientas de Claude**: una llamada a una de las herramientas MCP del plugin, y un comando Bash que ejecuta un ejecutable del `bin/` del plugin, son llamadas a herramientas, así que tus reglas de permisos se aplican a ellas. Para ver qué puede hacer un mod en una llamada a herramienta, consulta [Decide whether to trust a mod](/docs/es/plugins/mods/overview#decide-whether-to-trust-a-mod).

41 42 

42Instalar un plugin también lo habilita, a menos que su manifiesto o entrada de marketplace establezca [`defaultEnabled: false`](/docs/es/plugins/install#choose-an-install-scope) y no lo hayas habilitado tú mismo.43Instalar un plugin también lo habilita, a menos que su manifiesto o entrada de marketplace establezca [`defaultEnabled: false`](/docs/es/plugins/install#choose-an-install-scope) y no lo hayas habilitado tú mismo.

43 44 

Details

201 201 

202Una adición exitosa imprime `Successfully added marketplace: <name>`.202Una adición exitosa imprime `Successfully added marketplace: <name>`.

203 203 

204<h3 id="invalid-git-url">

205 `Invalid git URL`

206</h3>

207 

208Agregó un mercado, instaló un plugin, o ejecutó una actualización desde una dirección git, y el comando falló con `Invalid git URL` en su mensaje.

209 

210Claude Code verifica cada dirección git antes de ejecutar git. Rechaza una dirección cuyo protocolo no admite. También rechaza una dirección que git podría leer como nombrando un servidor o carpeta diferente del que muestra la dirección.

211 

212El texto después de la dirección nombra qué cambiar. Reescriba la dirección como dice el mensaje y ejecute el comando nuevamente.

213 

214Un rechazo que en su lugar dice `is blocked by enterprise policy` proviene de la configuración de su organización. Vea [Marketplace source is blocked by enterprise policy](#marketplace-source-is-blocked-by-enterprise-policy).

215 

204<h3 id="path-does-not-exist">216<h3 id="path-does-not-exist">

205 `Path does not exist: <path>`217 `Path does not exist: <path>`

206</h3>218</h3>


410 422 

411`claude plugin install` en su shell imprime un mensaje diferente. Para un plugin ya instalado en el scope de destino, imprime `Plugin "<name>@<marketplace>" is already installed (scope: user)` y sale con 0. Si su directorio de caché falta, el mismo comando lo descarga nuevamente.423`claude plugin install` en su shell imprime un mensaje diferente. Para un plugin ya instalado en el scope de destino, imprime `Plugin "<name>@<marketplace>" is already installed (scope: user)` y sale con 0. Si su directorio de caché falta, el mismo comando lo descarga nuevamente.

412 424 

425<h3 id="plugin-would-share-its-folder">

426 `"<plugin>" was not installed: it would share its folder with "<other>"`

427</h3>

428 

429Instaló un plugin a través de `claude plugin install`, `/plugin`, o una sugerencia de instalación en una sesión, y Claude Code lo rechazó con esta línea, o con `would share its saved data with`.

430 

431El id del plugin rechazado y el id de un plugin instalado se asignan a la misma carpeta en el disco: son iguales una vez que `.` y `@` se escriben como `-`. En macOS y Windows, los ids que difieren solo en mayúsculas se asignan a la misma carpeta también. Instalar ambos pondría los archivos de un plugin en la carpeta del otro, por lo que Claude Code rechaza y el plugin instalado mantiene sus archivos.

432 

433El mensaje nombra la salida:

434 

435* **El otro plugin está instalado**: el mensaje dice `Only one of the two can be installed.` y nombra el comando `claude plugin uninstall`, o el paso de desinstalación en `/plugin`, que elimina el otro plugin. Ejecútelo, luego instale nuevamente. Para lo que la desinstalación elimina, vea [What an uninstall deletes and keeps](/docs/es/plugins/cli-reference#what-an-uninstall-deletes-and-keeps).

436* **Ambos ids llegan en una instalación**, como un plugin y una dependencia que necesita: ningún orden de instalación ayuda. Solo un mantenedor del mercado que enumera los dos plugins puede arreglarlo, renombrando uno de ellos. Cuando los dos provienen de diferentes mercados, un mantenedor de cualquiera de ellos puede.

437 

413<h3 id="this-plugin-uses-a-source-type-your-claude-code-version-does-not-suppo">438<h3 id="this-plugin-uses-a-source-type-your-claude-code-version-does-not-suppo">

414 `This plugin uses a source type your Claude Code version does not support`439 `This plugin uses a source type your Claude Code version does not support`

415</h3>440</h3>


790* **`URL is unset or invalid`**: una opción `${user_config.*}` que usa la URL no está establecida. Ejecute `/plugin configure <plugin>` para establecerla815* **`URL is unset or invalid`**: una opción `${user_config.*}` que usa la URL no está establecida. Ejecute `/plugin configure <plugin>` para establecerla

791* **`has an invalid MCP url`** o **`headersHelper for MCP server '<server>' references ${user_config.*}`**: la configuración del plugin en sí es culpable. Corrija la `url` o `headersHelper` en la configuración MCP de su plugin, o infórmelo al autor del plugin si el plugin no es suyo. El caso `headersHelper` tiene su propia entrada bajo [plugin command references user\_config](/docs/es/errors#plugin-command-references-user-config)816* **`has an invalid MCP url`** o **`headersHelper for MCP server '<server>' references ${user_config.*}`**: la configuración del plugin en sí es culpable. Corrija la `url` o `headersHelper` en la configuración MCP de su plugin, o infórmelo al autor del plugin si el plugin no es suyo. El caso `headersHelper` tiene su propia entrada bajo [plugin command references user\_config](/docs/es/errors#plugin-command-references-user-config)

792 817 

818<h4 id="bundled-mcp-server-name-was-not-started-it-needs-configuration">

819 `Bundled MCP server "<name>" was not started: it needs configuration`

820</h4>

821 

822El plugin incluye el servidor como un [MCPB bundle](/docs/es/plugins/components#include-a-packaged-mcpb-server) que declara `user_config`, y una configuración requerida no tiene un valor guardado aún o un valor guardado falla la validación propia del bundle, por lo que Claude Code omite iniciar el servidor. El resto del plugin funciona.

823 

824Seleccione el plugin en la pestaña **Installed** de `/plugin` y elija **Configure** para proporcionar los valores. Después de guardar, `/plugin` muestra `Configuration saved.` y se cierra, y Claude Code recarga plugins como se describe bajo [Manage installed plugins](/docs/es/plugins/install#manage-installed-plugins). El servidor se inicia una vez que esa recarga se aplica. Antes de v2.1.285, Claude Code omitía el servidor sin mostrar esta línea.

825 

793<h4 id="server-is-configured-but-never-connects">826<h4 id="server-is-configured-but-never-connects">

794 Server is configured but never connects827 Server is configured but never connects

795</h4>828</h4>


937La instalación interactiva muestra el diálogo, y el comando de shell toma los valores como indicadores en su lugar:970La instalación interactiva muestra el diálogo, y el comando de shell toma los valores como indicadores en su lugar:

938 971 

939* **`/plugin install` en una sesión, o la pestaña Discover en `/plugin`**: el diálogo es parte de esta instalación interactiva972* **`/plugin install` en una sesión, o la pestaña Discover en `/plugin`**: el diálogo es parte de esta instalación interactiva

973* **El diálogo Manage plugins de la extensión VS Code**: solicita opciones sin establecer como un formulario después de la instalación. Antes de v2.1.285, la instalación allí no mostraba ningún formulario de opciones, así que establezca los valores desde una sesión de terminal con `/plugin configure <plugin>@<marketplace>`

940* **`claude plugin install` en su shell**: nunca solicita valores `userConfig`. Guarda cualquier valor `--config KEY=VALUE` que pase, y cuando las opciones permanecen sin establecer imprime `N userConfig options not yet set — run /plugin configure <plugin>@<marketplace> in Claude Code, or pass --config KEY=VALUE.` Cuando cualquiera de las opciones sin establecer es requerida, `(M required)` sigue `not yet set`.974* **`claude plugin install` en su shell**: nunca solicita valores `userConfig`. Guarda cualquier valor `--config KEY=VALUE` que pase, y cuando las opciones permanecen sin establecer imprime `N userConfig options not yet set — run /plugin configure <plugin>@<marketplace> in Claude Code, or pass --config KEY=VALUE.` Cuando cualquiera de las opciones sin establecer es requerida, `(M required)` sigue `not yet set`.

941 975 

942Si instaló desde el shell, pase los valores con `--config`, un indicador por opción:976Si instaló desde el shell, pase los valores con `--config`, un indicador por opción:


945claude plugin install my-plugin@my-marketplace --config api_url=https://example.com979claude plugin install my-plugin@my-marketplace --config api_url=https://example.com

946```980```

947 981 

948Cuando cada opción está establecida, la salida de instalación no lleva ninguna línea `not yet set`. Para abrir el diálogo después en su lugar, ejecute `/plugin configure my-plugin@my-marketplace` en una sesión.982Cuando cada opción está establecida, la salida de instalación no lleva ninguna línea `not yet set`.

983 

984Para abrir el diálogo después en su lugar, ejecute `/plugin configure my-plugin@my-marketplace` en una sesión. Desde el shell, [`claude plugin configure`](/docs/es/plugins/cli-reference#plugin-configure) muestra qué opciones aún no están establecidas y guarda valores canalizados en stdin. Requiere Claude Code v2.1.285 o posterior.

949 985 

950Si pasa una clave `--config` que el manifiesto no declara, el plugin aún se instala, y el comando imprime `⚠ Installed, but --config not applied: --config key "<key>" isn't declared in this plugin's userConfig.` seguido de las claves que el plugin sí declara.986Si pasa una clave `--config` que el manifiesto no declara, el plugin aún se instala, y el comando imprime `⚠ Installed, but --config not applied: --config key "<key>" isn't declared in this plugin's userConfig.` seguido de las claves que el plugin sí declara.

951 987 

988Para un plugin que envía un [archivo de paquete MCPB](/docs/es/plugins/components#include-a-packaged-mcpb-server) declarando `user_config` propio, el mensaje dice `isn't declared in this plugin's userConfig or by its bundled MCP servers.` en su lugar, y las claves conocidas incluyen las de ese servidor, escritas `<server>.<key>`. Un paquete que el manifiesto referencia por URL no se lee en el tiempo de instalación, por lo que sus claves no se enumeran y el mensaje dice configurarlo en `/plugin`. Establecer claves `<server>.<key>` requiere Claude Code v2.1.285 o posterior.

989 

952<h3 id="claude-plugin-validate-reports-errors">990<h3 id="claude-plugin-validate-reports-errors">

953 `claude plugin validate` reports errors991 `claude plugin validate` reports errors

954</h3>992</h3>


968| `Path contains ".." which could be a path traversal attempt: <path>` | Una ruta de componente escapa del directorio del plugin. | Use rutas dentro de la raíz del plugin. |1006| `Path contains ".." which could be a path traversal attempt: <path>` | Una ruta de componente escapa del directorio del plugin. | Use rutas dentro de la raíz del plugin. |

969| `Path is a file; skills entries must be directories containing SKILL.md` | Una entrada `skills` apunta a `SKILL.md` en lugar de su directorio. | Apunte al directorio padre, o `.` para un `SKILL.md` a nivel de raíz. |1007| `Path is a file; skills entries must be directories containing SKILL.md` | Una entrada `skills` apunta a `SKILL.md` en lugar de su directorio. | Apunte al directorio padre, o `.` para un `SKILL.md` a nivel de raíz. |

970| `No frontmatter block found` o `YAML frontmatter failed to parse: <error>` | Un archivo de skill, agent, o comando tiene frontmatter YAML faltante o inválido. | Agregue o corrija el frontmatter entre delimitadores `---`. Se informa al validar un directorio de plugin. |1008| `No frontmatter block found` o `YAML frontmatter failed to parse: <error>` | Un archivo de skill, agent, o comando tiene frontmatter YAML faltante o inválido. | Agregue o corrija el frontmatter entre delimitadores `---`. Se informa al validar un directorio de plugin. |

1009| `Plugin name "<name>" is reserved: it passes as one of Anthropic's own` | El nombre `name` del plugin es uno de los [nombres reservados](/docs/es/plugins/manifest-reference#name). | Renombre el plugin por lo que hace. |

971| `Unknown field '<key>'` | El manifiesto tiene un campo que el esquema no define. | Elimínelo, o use el nombre que el mensaje sugiere. Claude Code ignora campos desconocidos en el tiempo de carga. |1010| `Unknown field '<key>'` | El manifiesto tiene un campo que el esquema no define. | Elimínelo, o use el nombre que el mensaje sugiere. Claude Code ignora campos desconocidos en el tiempo de carga. |

972 1011 

973Ejecute el comando nuevamente después de cada solución hasta que no imprima errores.1012Ejecute el comando nuevamente después de cada solución hasta que no imprima errores.

Details

84<span id="loop-provider-differences" />84<span id="loop-provider-differences" />

85 85 

86<Note>86<Note>

87 Los intervalos elegidos dinámicamente y el [prompt de mantenimiento integrado](#run-the-built-in-maintenance-prompt) funcionan en todos los proveedores, y con [obtención de banderas de características](/docs/es/env-vars#features-that-need-feature-flag-fetching) desactivada. En Amazon Bedrock, Claude Platform en AWS, Google Cloud's Agent Platform y Microsoft Foundry, o con obtención desactivada, ambos requieren Claude Code v2.1.248 o posterior. En esos casos, en versiones anteriores, un prompt sin intervalo se ejecuta en un horario fijo de 10 minutos, y un `/loop` sin prompt imprime el mensaje de uso.87 Los intervalos elegidos dinámicamente y el [prompt de mantenimiento integrado](#run-the-built-in-maintenance-prompt) funcionan en todos los proveedores, y con [obtención de banderas de características](/docs/es/env-vars#features-that-need-feature-flag-fetching) desactivada. En Amazon Bedrock, Claude Platform en AWS, Google Cloud's Agent Platform y Microsoft Foundry, o con obtención desactivada, ambos requieren Claude Code v2.1.248 o posterior.

88</Note>88</Note>

89 89 

90<h3 id="run-the-built-in-maintenance-prompt">90<h3 id="run-the-built-in-maintenance-prompt">

Details

87Un ejecutor sirve a un propietario a la vez. La primera sesión que un ejecutor recoge bloquea el ejecutor al propietario de esa sesión, y el ejecutor luego ejecuta sesiones solo para ese propietario, hasta una capacidad configurada. Quién es el propietario depende de cómo se inició la sesión:87Un ejecutor sirve a un propietario a la vez. La primera sesión que un ejecutor recoge bloquea el ejecutor al propietario de esa sesión, y el ejecutor luego ejecuta sesiones solo para ese propietario, hasta una capacidad configurada. Quién es el propietario depende de cómo se inició la sesión:

88 88 

89* **Sesiones que inicia un usuario**: el propietario es la cuenta de ese usuario.89* **Sesiones que inicia un usuario**: el propietario es la cuenta de ese usuario.

90* **Sesiones de canal de Claude Tag**: Claude las ejecuta sin cuenta de usuario adjunta, por lo que el propietario es el [agente de Claude Tag](https://claude.com/docs/claude-tag/concepts/glossary#agent-identity) que inició la sesión. Cada sesión de canal que ese agente inicia tiene el mismo propietario, quienquiera que haya enviado el mensaje de Slack, por lo que un ejecutor bloqueado a él sirve sesiones que diferentes personas iniciaron cuando lo ejecuta en una `--capacity` superior a uno o con un `--drain-grace-sec` positivo. Un ejecutor bloqueado a un usuario nunca recoge estos, y un ejecutor bloqueado a un agente de Claude Tag nunca recoge sesiones de un usuario.90* **Sesiones de canal de Claude Tag**: Claude las ejecuta sin cuenta de usuario adjunta, por lo que el propietario es el [agente de Claude Tag](https://claude.com/docs/claude-tag/concepts/glossary#agent-identity) que inició la sesión. Cada sesión de canal que ese agente inicia tiene el mismo propietario, quienquiera que haya enviado el mensaje de Slack, por lo que un ejecutor bloqueado a él sirve sesiones que diferentes personas iniciaron cuando lo ejecuta en una `--capacity` superior a uno o con un `--drain-grace-sec` positivo.

91 91 

92El tamaño mínimo de la flota es, por lo tanto, el número de propietarios que espera que estén activos a la vez, contando usuarios y agentes de Claude Tag.92El tamaño mínimo de la flota es, por lo tanto, el número de propietarios que espera que estén activos a la vez, contando usuarios y agentes de Claude Tag.

93 93 

Details

163 Excepciones por clave en fuentes administradas163 Excepciones por clave en fuentes administradas

164</h3>164</h3>

165 165 

166Tres tipos de claves son excepciones a la regla de no fusión:166Estas claves son excepciones a la regla de no fusión:

167 167 

168* **Claves de bloqueo entre fuentes**: un pequeño conjunto de claves, como los bloqueos de lista de permitidos de sandbox, [enumeradas en la página de configuración administrada](/docs/es/managed-settings#precedence-within-the-managed-tier). Claude Code las honra cuando cualquier fuente administrada controlada por administrador las establece; el nivel de registro HKCU escribible por el usuario se excluye.168* **Claves de bloqueo entre fuentes**: un pequeño conjunto de claves, como los bloqueos de lista de permitidos de sandbox, [enumeradas en la página de configuración administrada](/docs/es/managed-settings#precedence-within-the-managed-tier). Claude Code las honra cuando cualquier fuente administrada controlada por administrador las establece; el nivel de registro HKCU escribible por el usuario se excluye.

169 169 


171* **El bloque `env`**: aparte de la unidad de telemetría y las variables de enrutamiento emparejadas con una clave de credencial, ambas cubiertas a continuación, se fusiona por clave en las fuentes controladas por administrador. Para cada variable de entorno, la fuente de mayor prioridad que la define gana, y las fuentes de administrador inferiores rellenan las variables que las fuentes superiores dejan sin establecer. Una entrada `env` administrada por endpoint se aplica, por lo tanto, siempre que la configuración administrada por servidor deje esa variable sin establecer, o mientras un valor de servidor en caché para ella se [retiene pendiente de confirmación del servidor](#fetch-and-caching-behavior). Requiere Claude Code v2.1.223 o posterior. Antes de v2.1.223, Claude Code aplica solo el bloque `env` de la fuente seleccionada.171* **El bloque `env`**: aparte de la unidad de telemetría y las variables de enrutamiento emparejadas con una clave de credencial, ambas cubiertas a continuación, se fusiona por clave en las fuentes controladas por administrador. Para cada variable de entorno, la fuente de mayor prioridad que la define gana, y las fuentes de administrador inferiores rellenan las variables que las fuentes superiores dejan sin establecer. Una entrada `env` administrada por endpoint se aplica, por lo tanto, siempre que la configuración administrada por servidor deje esa variable sin establecer, o mientras un valor de servidor en caché para ella se [retiene pendiente de confirmación del servidor](#fetch-and-caching-behavior). Requiere Claude Code v2.1.223 o posterior. Antes de v2.1.223, Claude Code aplica solo el bloque `env` de la fuente seleccionada.

172 * **Unidad de telemetría**: las claves del exportador `OTEL_EXPORTER_OTLP_*`, los conmutadores de captura de contenido `OTEL_LOG_*`, `OTEL_LOGS_EXPORTER` y las variables de rastreo beta `ENABLE_BETA_TRACING_DETAILED` y `BETA_TRACING_ENDPOINT` siguen la fuente más alta que establece cualquiera de ellas como una unidad. Una fuente que entrega la clave de credencial `otelHeadersHelper` reclama la unidad también, pero coloca estas variables solo cuando es la fuente seleccionada: una fuente que no está seleccionada pero entrega la clave no contribuye ninguna de ellas y aún bloquea las fuentes inferiores de rellenarlas. De cualquier forma, un punto final del exportador de una fuente nunca puede emparejarse con credenciales de otra.172 * **Unidad de telemetría**: las claves del exportador `OTEL_EXPORTER_OTLP_*`, los conmutadores de captura de contenido `OTEL_LOG_*`, `OTEL_LOGS_EXPORTER` y las variables de rastreo beta `ENABLE_BETA_TRACING_DETAILED` y `BETA_TRACING_ENDPOINT` siguen la fuente más alta que establece cualquiera de ellas como una unidad. Una fuente que entrega la clave de credencial `otelHeadersHelper` reclama la unidad también, pero coloca estas variables solo cuando es la fuente seleccionada: una fuente que no está seleccionada pero entrega la clave no contribuye ninguna de ellas y aún bloquea las fuentes inferiores de rellenarlas. De cualquier forma, un punto final del exportador de una fuente nunca puede emparejarse con credenciales de otra.

173 * **Enrutamiento emparejado con credencial**: una fuente que empareja variables de enrutamiento con una clave de credencial solo para fuente seleccionada, como `apiKeyHelper` u `otelHeadersHelper`, contribuye esas variables de enrutamiento solo cuando gana la ranura.173 * **Enrutamiento emparejado con credencial**: una fuente que empareja variables de enrutamiento con una clave de credencial solo para fuente seleccionada, como `apiKeyHelper` u `otelHeadersHelper`, contribuye esas variables de enrutamiento solo cuando gana la ranura.

174* **`allowedProviders`**: una lista establecida en la máquina y una lista administrada por servidor se combinan como [la nota de Alcance de su entrada](/docs/es/settings-reference#allowedproviders) indica. Requiere Claude Code v2.1.285 o posterior

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

175 176 

176<h3 id="fetch-and-caching-behavior">177<h3 id="fetch-and-caching-behavior">

sessions.md +20 −2

Details

29 29 

30`claude --continue` abre una [sesión en segundo plano](/docs/es/agent-view) que ha terminado, pero no una que aún se está ejecutando; abrir sesiones en segundo plano terminadas requiere Claude Code v2.1.257 o posterior. Si su conversación más reciente es una que [movió al segundo plano](/docs/es/agent-view#send-the-session-to-the-background) y aún se está ejecutando allí, Claude Code sale con `Your most recent conversation is running in the background` y el ID de esa sesión. Conéctese a la sesión desde [`claude agents`](/docs/es/agent-view#attach-to-a-session), o ejecute `claude --resume` para elegir otra.30`claude --continue` abre una [sesión en segundo plano](/docs/es/agent-view) que ha terminado, pero no una que aún se está ejecutando; abrir sesiones en segundo plano terminadas requiere Claude Code v2.1.257 o posterior. Si su conversación más reciente es una que [movió al segundo plano](/docs/es/agent-view#send-the-session-to-the-background) y aún se está ejecutando allí, Claude Code sale con `Your most recent conversation is running in the background` y el ID de esa sesión. Conéctese a la sesión desde [`claude agents`](/docs/es/agent-view#attach-to-a-session), o ejecute `claude --resume` para elegir otra.

31 31 

32<span id="resume-a-running-background-session" />

33 

34Cuando la conversación que reanuda con `claude --resume` o `/resume` pertenece a una [sesión en segundo plano](/docs/es/agent-view) que aún se está ejecutando, Claude Code abre la sesión en ejecución en sí. Con `--bg` en la línea de comandos, la reanudación es un [envío en segundo plano](/docs/es/agent-view#from-your-shell) en su lugar. Antes de v2.1.285, Claude Code se negaba y le indicaba que abriera la sesión con `claude attach <id>`, o que la detuviera primero con `claude stop <id>`.

35 

36* **Desde su shell**: `claude --resume <session>` ejecuta [`claude attach`](/docs/es/agent-view#attach-to-a-session) en esa sesión en la misma terminal en lugar de cargar la transcripción en sí. Una solicitud que pasa en la línea de comandos, como en `claude --resume <session> "check the tests too"`, va a la sesión como su siguiente turno primero, y Claude Code imprime `Sent your prompt to the background session (<id>); opening it…` antes de adjuntar. `claude -p --resume <session> "prompt"` escrito en una terminal hace lo mismo, por lo que `-p` no mantiene esa ejecución no interactiva.

37 

38 Claude Code no abre la sesión cuando la línea de comandos tiene cualquiera de estos:

39 

40 * Entrada o salida canalizadas o redirigidas

41 * Banderas que configuran la sesión, como `--permission-mode`, `--model` o `--settings`

42 * Banderas que leen la salida, como `--output-format json` u `--json-schema`

43 * Banderas que limitan o rebobinan la ejecución, como `--max-turns` o `--max-budget-usd`

44 

45 Con cualquiera de estos, o cuando [la vista de agente está desactivada](/docs/es/agent-view#turn-off-agent-view), Claude Code no envía nada y sale con estado 1, imprimiendo que la sesión se está ejecutando en segundo plano junto con el comando `claude attach <id>` que la abre, o indicándole que la encuentre en `claude agents` cuando no puede determinar el ID. Agregue `--fork-session` para reanudar una copia de la conversación en su lugar. Para continuar la conversación en sí en una sesión propia, con sus banderas aplicadas, ejecute `claude stop <id>` y luego repita el comando.

46 

47 Una solicitud que comienza con `/` o `!` no se envía, ni tampoco ninguna solicitud mientras la sesión espera su respuesta a una pregunta. En ambos casos Claude Code no abre la sesión, y el mensaje incluye `Your prompt was not sent to it` con la razón.

48* **Desde dentro de una sesión**: `/resume` mueve su conversación actual al segundo plano y adjunta esta terminal a la sesión en ejecución, imprimiendo `Opening "<title>", running in the background (<id>)`. Presione `←` en una solicitud vacía para volver a la vista de agente, que también enumera la conversación que dejó. Cuando la conversación actual no puede moverse al segundo plano, por ejemplo porque ya está adjunto a una sesión en segundo plano o la persistencia de sesión está desactivada, `/resume` imprime el comando `claude attach` para ejecutar en su lugar.

49 

32Puede ejecutar `claude --resume <session-id>` desde cualquier directorio: Claude Code busca el ID en el directorio del proyecto actual y sus git worktrees primero, luego en todos los demás proyectos en esta máquina, por lo que encuentra una sesión que comenzó en otro lugar o se movió con [`/cd`](/docs/es/commands). La búsqueda entre proyectos resuelve el ID solo cuando exactamente otro proyecto contiene una transcripción con mensajes para él, por lo que un duplicado copiado manualmente hace que Claude Code reporte no encontrado en lugar de reanudar una copia arbitraria. Si ninguna sesión almacenada coincide con el ID, Claude Code reporta `No conversation found with session ID: <session-id>`. Antes de v2.1.223, la búsqueda se detenía en el directorio del proyecto actual y sus git worktrees, por lo que tenía que reanudar desde el directorio en el que la sesión trabajó por última vez.50Puede ejecutar `claude --resume <session-id>` desde cualquier directorio: Claude Code busca el ID en el directorio del proyecto actual y sus git worktrees primero, luego en todos los demás proyectos en esta máquina, por lo que encuentra una sesión que comenzó en otro lugar o se movió con [`/cd`](/docs/es/commands). La búsqueda entre proyectos resuelve el ID solo cuando exactamente otro proyecto contiene una transcripción con mensajes para él, por lo que un duplicado copiado manualmente hace que Claude Code reporte no encontrado en lugar de reanudar una copia arbitraria. Si ninguna sesión almacenada coincide con el ID, Claude Code reporta `No conversation found with session ID: <session-id>`. Antes de v2.1.223, la búsqueda se detenía en el directorio del proyecto actual y sus git worktrees, por lo que tenía que reanudar desde el directorio en el que la sesión trabajó por última vez.

33 51 

34<h3 id="what-a-resumed-session-restores">52<h3 id="what-a-resumed-session-restores">

35 Qué restaura una sesión reanudada53 Qué restaura una sesión reanudada

36</h3>54</h3>

37 55 

38Una sesión reanudada restaura la conversación junto con el estado guardado en ella:56Cuando Claude Code carga una conversación desde su transcripción, la sesión reanudada restaura la conversación junto con el estado guardado en ella:

39 57 

40* Historial de conversación: el historial completo, incluidas las llamadas a herramientas y los resultados. Una herramienta que aún se estaba ejecutando cuando terminó el proceso anterior, por ejemplo en un bloqueo, no termina ni se ejecuta de nuevo cuando reanuda. Claude ve la llamada marcada como cortada antes de que se registrara su resultado y se le indica que verifique si tuvo efecto antes de ejecutarla de nuevo, a menos que [`CLAUDE_CODE_RESUME_INTERRUPTED_TURN`](/docs/es/env-vars#variables) esté configurado. Antes de v2.1.281, Claude Code eliminaba la llamada cortada de la conversación o se la mostraba a Claude como una que usted interrumpió.58* Historial de conversación: el historial completo, incluidas las llamadas a herramientas y los resultados. Una herramienta que aún se estaba ejecutando cuando terminó el proceso anterior, por ejemplo en un bloqueo, no termina ni se ejecuta de nuevo cuando reanuda. Claude ve la llamada marcada como cortada antes de que se registrara su resultado y se le indica que verifique si tuvo efecto antes de ejecutarla de nuevo, a menos que [`CLAUDE_CODE_RESUME_INTERRUPTED_TURN`](/docs/es/env-vars#variables) esté configurado. Antes de v2.1.281, Claude Code eliminaba la llamada cortada de la conversación o se la mostraba a Claude como una que usted interrumpió.

41* Modelo: la sesión continúa en el modelo que estaba usando. El modelo no se restaura cuando ha sido retirado o no está permitido por `availableModels`, cuando una bandera `--model` o una variable de entorno de la familia `ANTHROPIC_MODEL` elige una en el lanzamiento, o en proveedores que usan ID de implementación específicos del proveedor, como [Amazon Bedrock, Google Cloud's Agent Platform y Microsoft Foundry](/docs/es/third-party-integrations); consulte [configuración de modelo](/docs/es/model-config#setting-your-model) para el orden de resolución.59* Modelo: la sesión continúa en el modelo que estaba usando. El modelo no se restaura cuando ha sido retirado o no está permitido por `availableModels`, cuando una bandera `--model` o una variable de entorno de la familia `ANTHROPIC_MODEL` elige una en el lanzamiento, o en proveedores que usan ID de implementación específicos del proveedor, como [Amazon Bedrock, Google Cloud's Agent Platform y Microsoft Foundry](/docs/es/third-party-integrations); consulte [configuración de modelo](/docs/es/model-config#setting-your-model) para el orden de resolución.


51 Modo de permisos al reanudar69 Modo de permisos al reanudar

52</h4>70</h4>

53 71 

54El modo de permisos en el que Claude Code inicia una sesión reanudada depende de cómo reanude:72El modo de permisos en el que Claude Code inicia una sesión reanudada depende de cómo reanude. Los casos a continuación se aplican cuando Claude Code carga la conversación desde su transcripción; cuando [abre una sesión en segundo plano que aún se está ejecutando](#resume-a-running-background-session) en su lugar, esa sesión mantiene el modo de permisos en el que está.

55 73 

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

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

Details

599| [`allowedChannelPlugins`](#allowedchannelplugins) | Reemplace la lista de permitidos predeterminada de [plugins de canal](/docs/es/channels#restrict-which-channel-plugins-can-run) que pueden enviar mensajes | Plugins y skills | Managed |599| [`allowedChannelPlugins`](#allowedchannelplugins) | Reemplace la lista de permitidos predeterminada de [plugins de canal](/docs/es/channels#restrict-which-channel-plugins-can-run) que pueden enviar mensajes | Plugins y skills | Managed |

600| [`allowedHttpHookUrls`](#allowedhttphookurls) | Limite qué URLs pueden dirigirse a los [hooks HTTP](/docs/es/hooks) | Hooks y automatización | Any file |600| [`allowedHttpHookUrls`](#allowedhttphookurls) | Limite qué URLs pueden dirigirse a los [hooks HTTP](/docs/es/hooks) | Hooks y automatización | Any file |

601| [`allowedMcpServers`](#allowedmcpservers) | Lista de permitidos de qué [servidores MCP](/docs/es/mcp) pueden agregar los usuarios | MCP | Any file |601| [`allowedMcpServers`](#allowedmcpservers) | Lista de permitidos de qué [servidores MCP](/docs/es/mcp) pueden agregar los usuarios | MCP | Any file |

602| [`allowedProviders`](#allowedproviders) | Limite qué [proveedores de API](/docs/es/third-party-integrations) puede usar una máquina | Autenticación y proveedores | Managed |

602| [`allowManagedHooksOnly`](#allowmanagedhooksonly) | Ejecute solo los [hooks](/docs/es/hooks) que su organización implementa | Hooks y automatización | Managed |603| [`allowManagedHooksOnly`](#allowmanagedhooksonly) | Ejecute solo los [hooks](/docs/es/hooks) que su organización implementa | Hooks y automatización | Managed |

603| [`allowManagedMcpServersOnly`](#allowmanagedmcpserversonly) | Haga que la lista de permitidos de [MCP](/docs/es/mcp) administrada sea la única que se aplique | MCP | Managed |604| [`allowManagedMcpServersOnly`](#allowmanagedmcpserversonly) | Haga que la lista de permitidos de [MCP](/docs/es/mcp) administrada sea la única que se aplique | MCP | Managed |

604| [`allowManagedPermissionRulesOnly`](#allowmanagedpermissionrulesonly) | Haga que la [configuración administrada](/docs/es/managed-settings) sea la única fuente de configuración de [reglas de permisos](/docs/es/permissions#managed-settings) | Configuración de permisos | Managed |605| [`allowManagedPermissionRulesOnly`](#allowmanagedpermissionrulesonly) | Haga que la [configuración administrada](/docs/es/managed-settings) sea la única fuente de configuración de [reglas de permisos](/docs/es/permissions#managed-settings) | Configuración de permisos | Managed |

605| [`alwaysThinkingEnabled`](#alwaysthinkingenabled) | Desactive el [pensamiento extendido](/docs/es/model-config#extended-thinking) para cada sesión | Modelo y respuestas | Any file |606| [`alwaysThinkingEnabled`](#alwaysthinkingenabled) | Desactive el [pensamiento extendido](/docs/es/model-config#extended-thinking) para cada sesión | Modelo y respuestas | Any file |

606| [`apiKeyHelper`](#apikeyhelper) | Genere la [credencial de API](/docs/es/authentication#credential-management) con su propio comando | Autenticación y proveedores | Any file |607| [`apiKeyHelper`](#apikeyhelper) | Genere la [credencial de API](/docs/es/authentication#credential-management) con su propio comando | Autenticación y proveedores | Any file |

607| [`askUserQuestionTimeout`](#askuserquestiontimeout) | Permita que una pregunta sin respuesta [continúe automáticamente](/docs/es/tools-reference#question-auto-continue-timeout) después del tiempo de inactividad | Interfaz y terminal | User or managed |608| [`askUserQuestionTimeout`](#askuserquestiontimeout) | Permita que una pregunta sin respuesta [continúe automáticamente](/docs/es/tools-reference#question-auto-continue-timeout) después del tiempo de inactividad | Interfaz y terminal | User or managed |

609| [`appendPlugins`](#appendplugins) | Ejecute los [mods](/docs/es/plugins/mods/admin) de su organización después de cada mod que instale un usuario | Plugins y skills | User or managed |

608| [`attribution`](#attribution) | Personalice la atribución que Claude Code agrega a commits y pull requests | Git y atribución | Any file |610| [`attribution`](#attribution) | Personalice la atribución que Claude Code agrega a commits y pull requests | Git y atribución | Any file |

609| [`attribution.commit`](#attribution-commit) | Cambie u oculte el tráiler que Claude Code agrega a los commits | Git y atribución | Any file |611| [`attribution.commit`](#attribution-commit) | Cambie u oculte el tráiler que Claude Code agrega a los commits | Git y atribución | Any file |

610| [`attribution.pr`](#attribution-pr) | Cambie u oculte la línea de atribución en las descripciones de pull requests | Git y atribución | Any file |612| [`attribution.pr`](#attribution-pr) | Cambie u oculte la línea de atribución en las descripciones de pull requests | Git y atribución | Any file |


729| [`policyHelper.timeoutMs`](#policyhelper-timeoutms) | Establezca cuánto tiempo Claude Code espera al [auxiliar](/docs/es/managed-settings#compute-the-policy-with-a-helper-program) | Configuración empresarial y administrada | Managed |731| [`policyHelper.timeoutMs`](#policyhelper-timeoutms) | Establezca cuánto tiempo Claude Code espera al [auxiliar](/docs/es/managed-settings#compute-the-policy-with-a-helper-program) | Configuración empresarial y administrada | Managed |

730| [`preferredNotifChannel`](#preferrednotifchannel) | Elija un [timbre de terminal o notificación de escritorio](/docs/es/terminal-config#get-a-terminal-bell-or-notification) para la finalización de tareas | Remoto, escritorio y notificaciones | Any file |732| [`preferredNotifChannel`](#preferrednotifchannel) | Elija un [timbre de terminal o notificación de escritorio](/docs/es/terminal-config#get-a-terminal-bell-or-notification) para la finalización de tareas | Remoto, escritorio y notificaciones | Any file |

731| [`prefersReducedMotion`](#prefersreducedmotion) | [Reduzca o desactive](/docs/es/accessibility#accessibility-settings) las animaciones de spinner, shimmer y flash | Interfaz y terminal | Any file |733| [`prefersReducedMotion`](#prefersreducedmotion) | [Reduzca o desactive](/docs/es/accessibility#accessibility-settings) las animaciones de spinner, shimmer y flash | Interfaz y terminal | Any file |

734| [`prependPlugins`](#prependplugins) | Ejecute los [mods](/docs/es/plugins/mods/admin) de su organización antes de cada mod que instale un usuario | Plugins y skills | User or managed |

732| [`processWrapper`](#processwrapper) | Ejecute los procesos de fondo de Claude Code a través de un [iniciador corporativo](/docs/es/corporate-launcher) en macOS y Linux | Agentes, sesiones y worktrees | User or managed |735| [`processWrapper`](#processwrapper) | Ejecute los procesos de fondo de Claude Code a través de un [iniciador corporativo](/docs/es/corporate-launcher) en macOS y Linux | Agentes, sesiones y worktrees | User or managed |

733| [`promptCacheTtl`](#promptcachettl) | Elija la [duración del caché de prompt](/docs/es/prompt-caching#cache-lifetime) para la conversación principal | Modelo y respuestas | Any file |736| [`promptCacheTtl`](#promptcachettl) | Elija la [duración del caché de prompt](/docs/es/prompt-caching#cache-lifetime) para la conversación principal | Modelo y respuestas | Any file |

734| [`promptSuggestionEnabled`](#promptsuggestionenabled) | Oculte las [sugerencias de prompt](/docs/es/interactive-mode#prompt-suggestions) atenuadas en el cuadro de entrada | Interfaz y terminal | Any file |737| [`promptSuggestionEnabled`](#promptsuggestionenabled) | Oculte las [sugerencias de prompt](/docs/es/interactive-mode#prompt-suggestions) atenuadas en el cuadro de entrada | Interfaz y terminal | Any file |


3675 `spinnerTipsOverride`3678 `spinnerTipsOverride`

3676</h3>3679</h3>

3677 3680 

3678Agrega tus propios consejos a los [consejos del spinner](#spinnertipsenabled) que Claude Code muestra mientras Claude trabaja, o reemplaza los consejos integrados con los tuyos. Claude Code pone tus consejos en la misma rotación que los integrados: elige el consejo que ha estado sin mostrarse más tiempo, omite consejos aún en su enfriamiento, y rompe empates por prioridad.3681Agrega tus propios consejos a los [consejos del spinner](#spinnertipsenabled) que Claude Code muestra mientras Claude trabaja, o reemplaza los consejos integrados con los tuyos. Claude Code pone tus consejos en la misma rotación que los integrados.

3679 3682 

3680Si estableces [`spinnerTipsEnabled`](#spinnertipsenabled) a `false`, Claude Code oculta todos los consejos, incluyendo los tuyos.3683Si estableces [`spinnerTipsEnabled`](#spinnertipsenabled) a `false`, Claude Code oculta todos los consejos, incluyendo los tuyos.

3681 3684 


3683* **Type**: objeto con campos `tips`, `tipsFile`, `label`, y `excludeDefault`, cada uno opcional3686* **Type**: objeto con campos `tips`, `tipsFile`, `label`, y `excludeDefault`, cada uno opcional

3684* **Default**: unset, por lo que Claude Code muestra solo los consejos integrados3687* **Default**: unset, por lo que Claude Code muestra solo los consejos integrados

3685 3688 

3686Objetos de consejo, `tipsFile`, `label`, y la regla de la línea Scope que la configuración de proyecto y local contribuyen solo strings planos requieren Claude Code v2.1.247 o posterior. En versiones anteriores, `excludeDefault` de un archivo de proyecto o local también se aplica.3689Objetos de consejo, `tipsFile`, `label`, y la regla de la línea Scope que la configuración de proyecto y local contribuyen solo strings planos requieren Claude Code v2.1.247 o posterior.

3687 3690 

3688Cada entrada `tips` es un string plano u objeto con estos campos:3691Cada entrada `tips` es un string plano u objeto con estos campos:

3689 3692 


4305Cuando lo establece en `true`, Claude Code cambia qué hooks y comandos similares a hooks se cargan:4308Cuando lo establece en `true`, Claude Code cambia qué hooks y comandos similares a hooks se cargan:

4306 4309 

4307* **Se ejecutan hooks administrados y SDK**: hooks de configuración administrada y hooks que el [Agent SDK](/docs/es/agent-sdk/overview) registra en proceso4310* **Se ejecutan hooks administrados y SDK**: hooks de configuración administrada y hooks que el [Agent SDK](/docs/es/agent-sdk/overview) registra en proceso

4308* **Se ejecutan hooks de plugins forzados a habilitarse**: hooks de plugins que su configuración administrada fuerza a habilitar a través de [`enabledPlugins`](#enabledplugins). Claude Code coincide con el ID completo `plugin@marketplace`, por lo que un plugin con el mismo nombre de un marketplace diferente permanece bloqueado. Esto le permite distribuir hooks verificados a través de un marketplace de organización mientras bloquea todo lo demás4311* **Se ejecutan hooks de plugins forzados a habilitarse**: hooks de plugins que su configuración administrada fuerza a habilitar a través de [`enabledPlugins`](#enabledplugins). Claude Code coincide con el ID completo `plugin@marketplace`, por lo que un plugin con el mismo nombre de un marketplace diferente permanece bloqueado. Esto le permite distribuir hooks verificados a través de un marketplace de organización mientras bloquea todo lo demás. Un [mod](/docs/es/plugins/mods/overview) en tal plugin se carga solo cuando [cuenta como el de su organización](/docs/es/plugins/mods/admin#install-your-organizations-mods)

4309* **Todo lo demás está bloqueado**: hooks de usuario, proyecto y locales, hooks de otros plugins y hooks declarados en frontmatter de agente4312* **Todo lo demás está bloqueado**: hooks de usuario, proyecto y locales, hooks y mods de otros plugins instalados, y hooks declarados en frontmatter de agente. [Los mods integrados en Claude Code](/docs/es/plugins/mods/overview#mods-built-into-claude-code) continúan ejecutándose. Para bloquear solo los mods de los usuarios, establezca [`allowManagedModsOnly`](/docs/es/plugins/mods/admin#set-options-on-the-built-in-guard) en su lugar.

4310* **Los plugins con origen de comando están deshabilitados**: Claude Code también deshabilita plugins con un [origen `command`](/docs/es/plugins/marketplace-reference#command-plugin-source), incluidos plugins forzados a habilitarse en `enabledPlugins` administrado, a menos que establezca [`disableCommandPluginSources`](#disablecommandpluginsources) explícitamente en `false`4313* **Los plugins con origen de comando están deshabilitados**: Claude Code también deshabilita plugins con un [origen `command`](/docs/es/plugins/marketplace-reference#command-plugin-source), incluidos plugins forzados a habilitarse en `enabledPlugins` administrado, a menos que establezca [`disableCommandPluginSources`](#disablecommandpluginsources) explícitamente en `false`

4311* **Los comandos `headersHelper` del marketplace están bloqueados**: Claude Code también bloquea los comandos [`headersHelper`](/docs/es/plugins/host-marketplace#authenticate-archive-downloads) del marketplace a menos que [`disableCommandPluginSources`](#disablecommandpluginsources) esté explícitamente establecido en `false`, excepto para un marketplace que la configuración administrada declara. Requiere Claude Code v2.1.238 o posterior4314* **Los comandos `headersHelper` del marketplace están bloqueados**: Claude Code también bloquea los comandos [`headersHelper`](/docs/es/plugins/host-marketplace#authenticate-archive-downloads) del marketplace a menos que [`disableCommandPluginSources`](#disablecommandpluginsources) esté explícitamente establecido en `false`, excepto para un marketplace que la configuración administrada declara. Requiere Claude Code v2.1.238 o posterior

4312* **La línea de estado y la sugerencia de archivo se reducen a configuración administrada**: Claude Code lee [`statusLine`](/docs/es/statusline), [`fileSuggestion`](#filesuggestion) y [`subagentStatusLine`](/docs/es/statusline#subagent-status-lines) solo de configuración administrada, siguiendo las [puertas de línea de estado y sugerencia de archivo](#status-line-and-file-suggestion-gates)4315* **La línea de estado y la sugerencia de archivo se reducen a configuración administrada**: Claude Code lee [`statusLine`](/docs/es/statusline), [`fileSuggestion`](#filesuggestion) y [`subagentStatusLine`](/docs/es/statusline#subagent-status-lines) solo de configuración administrada, siguiendo las [puertas de línea de estado y sugerencia de archivo](#status-line-and-file-suggestion-gates)


4502 4505 

4503* **Scope**: [`Any file`](#scopes)4506* **Scope**: [`Any file`](#scopes)

4504* **Type**: Boolean4507* **Type**: Boolean

4505 * `true`: Claude Code elimina los skills y flujos de trabajo incluidos y oculta comandos integrados como `/init` del modelo4508 * `true`: Claude Code elimina los skills y flujos de trabajo incluidos y oculta del modelo los comandos integrados como `/init`

4506 * `false`: los skills incluidos se cargan4509 * `false`: los skills incluidos se cargan

4507* **Default**: sin establecer, por lo que los skills incluidos se cargan4510* **Default**: sin establecer, por lo que los skills incluidos se cargan

4508* **Per-session overrides**: [`CLAUDE_CODE_DISABLE_BUNDLED_SKILLS`](/docs/es/env-vars) establecido en `1` desactiva los skills incluidos para una sesión; cualquiera de los dos que los desactive, el otro no puede volver a activarlos4511* **Per-session overrides**: [`CLAUDE_CODE_DISABLE_BUNDLED_SKILLS`](/docs/es/env-vars) establecido en `1` desactiva los skills incluidos durante una sesión; cualquiera de los dos que los desactive, el otro no puede volver a activarlos

4509 4512 

4510```json settings.json theme={null}4513```json settings.json theme={null}

4511{4514{


4549 * `"off"`: Claude no ve el skill y `/name` está oculto del autocompletado4552 * `"off"`: Claude no ve el skill y `/name` está oculto del autocompletado

4550* **Default**: sin establecer, por lo que cada skill es `"on"`4553* **Default**: sin establecer, por lo que cada skill es `"on"`

4551 4554 

4552Este ejemplo enumera `legacy-context` a Claude solo por nombre y oculta `deploy` de Claude y del autocompletado `/`:4555Este ejemplo lista `legacy-context` a Claude solo por nombre y oculta `deploy` de Claude y del autocompletado `/`:

4553 4556 

4554```json settings.json theme={null}4557```json settings.json theme={null}

4555{4558{


4560}4563}

4561```4564```

4562 4565 

4563Los anulaciones no se aplican a los skills de plugins, que administra a través de `/plugin`.4566Los anulaciones no se aplican a los skills de plugins, que gestiona a través de `/plugin`.

4564 4567 

4565En configuración administrada y archivos pasados con `--settings`, una clave en un alias de skill incluido, como `checkup` para `/doctor`, también se aplica al skill; consulte [cómo las claves de alias se combinan con las claves en el nombre propio del skill](/docs/es/skills#override-skill-visibility-from-settings).4568En configuración administrada y archivos pasados con `--settings`, una clave en un alias de un skill incluido, como `checkup` para `/doctor`, también se aplica al skill; consulte [cómo las claves de alias se combinan con las claves en el nombre propio del skill](/docs/es/skills#override-skill-visibility-from-settings).

4566 4569 

4567<h3 id="syncclaudeaiskills">4570<h3 id="syncclaudeaiskills">

4568 `syncClaudeAiSkills`4571 `syncClaudeAiSkills`

4569</h3>4572</h3>

4570 4573 

4571Desactive la descarga de los [skills habilitados para su cuenta claude.ai](/docs/es/skills#how-synced-skills-behave). Claude Code los descarga en `~/.claude/skills/synced/` en [sesiones de terminal donde inicia sesión con su cuenta claude.ai](/docs/es/skills#where-synced-skills-load), interactivas o no interactivas, y en sesiones de Cowork y en la nube. Establezca `false` para detener esa descarga y dejar de cargar los skills que ya sincronizó. Claude Code solo respeta `false`: `true` es lo mismo que sin establecer y no activa la sincronización donde de otro modo está desactivada.4574Desactive la descarga de los [skills habilitados para su cuenta de claude.ai](/docs/es/skills#how-synced-skills-behave). Claude Code los descarga en `~/.claude/skills/synced/` en [sesiones de terminal donde inicia sesión con su cuenta de claude.ai](/docs/es/skills#where-synced-skills-load), interactivas o no interactivas, y en sesiones de Cowork y en la nube. Establezca `false` para detener esa descarga y dejar de cargar los skills que ya sincronizó. Claude Code solo respeta `false`: `true` es lo mismo que sin establecer y no activa la sincronización donde de otro modo está desactivada.

4572 4575 

4573* **Scope**: [`User, local, or managed`](#scopes), y archivos pasados con `--settings`. Un repositorio no puede desactivarlo para usted.4576* **Scope**: [`User, local, or managed`](#scopes), y archivos pasados con `--settings`. Un repositorio no puede desactivarla para usted.

4574* **Type**: Boolean4577* **Type**: Boolean

4575 * `false`: Claude Code deja de descargar skills sincronizados y deja de cargar los que ya están en `~/.claude/skills/synced/`. En configuración de usuario o administrada, también los mueve a `~/.claude/skills/.trash/`4578 * `false`: Claude Code deja de descargar skills sincronizados y deja de cargar los que ya están en `~/.claude/skills/synced/`. En configuración de usuario o administrada, también los mueve a `~/.claude/skills/.trash/`

4576 * `true`: lo mismo que sin establecer4579 * `true`: lo mismo que sin establecer

4577* **Default**: sin establecer, por lo que las sesiones que iniciaron sesión con su cuenta claude.ai sincronizan sus skills4580* **Default**: sin establecer, por lo que las sesiones que inician sesión con su cuenta de claude.ai sincronizan sus skills

4578 4581 

4579Este ejemplo evita que una máquina descargue los skills de la cuenta en cualquier sesión:4582Este ejemplo evita que una máquina descargue los skills de la cuenta en cualquier sesión:

4580 4583 


4588 `syncClaudeAiPlugins`4591 `syncClaudeAiPlugins`

4589</h3>4592</h3>

4590 4593 

4591Desactive la descarga de los [plugins habilitados para su cuenta claude.ai](/docs/es/plugins/loading#synced-plugins). Claude Code los descarga en `~/.claude/plugins/synced/` al inicio de sesiones de terminal donde inicia sesión con su cuenta claude.ai y en sesiones de Cowork, y carga cada uno como `<name>@synced`. Establezca `false` para detener esa descarga y dejar de cargar los plugins que ya sincronizó. Claude Code solo respeta `false`: `true` es lo mismo que sin establecer y no activa la sincronización donde de otro modo está desactivada. Requiere Claude Code v2.1.273 o posterior.4594Desactive la descarga de los [plugins habilitados para su cuenta de claude.ai](/docs/es/plugins/loading#synced-plugins). Claude Code los descarga en `~/.claude/plugins/synced/` al inicio de sesiones de terminal donde inicia sesión con su cuenta de claude.ai y en sesiones de Cowork, y carga cada uno como `<name>@synced`. Establezca `false` para detener esa descarga y dejar de cargar los plugins que ya sincronizó. Claude Code solo respeta `false`: `true` es lo mismo que sin establecer y no activa la sincronización donde de otro modo está desactivada. Requiere Claude Code v2.1.273 o posterior.

4592 4595 

4593* **Scope**: [`User, local, or managed`](#scopes), y archivos pasados con `--settings`. Un repositorio no puede desactivarlo para usted.4596* **Scope**: [`User, local, or managed`](#scopes), y archivos pasados con `--settings`. Un repositorio no puede desactivarla para usted.

4594* **Type**: Boolean4597* **Type**: Boolean

4595 * `false`: Claude Code deja de descargar plugins sincronizados y deja de cargar los que ya están en `~/.claude/plugins/synced/`. En configuración de usuario o administrada, también los mueve a `~/.claude/plugins/.trash/`4598 * `false`: Claude Code deja de descargar plugins sincronizados y deja de cargar los que ya están en `~/.claude/plugins/synced/`. En configuración de usuario o administrada, también los mueve a `~/.claude/plugins/.trash/`

4596 * `true`: lo mismo que sin establecer4599 * `true`: lo mismo que sin establecer

4597* **Default**: sin establecer, por lo que las sesiones que iniciaron sesión con su cuenta claude.ai sincronizan sus plugins4600* **Default**: sin establecer, por lo que las sesiones que inician sesión con su cuenta de claude.ai sincronizan sus plugins

4598 4601 

4599Para desactivar un plugin sincronizado en lugar de todos ellos, establezca `"<name>@synced": false` en [`enabledPlugins`](#enabledplugins).4602Para desactivar un plugin sincronizado en lugar de todos, establezca `"<name>@synced": false` en [`enabledPlugins`](#enabledplugins).

4600 4603 

4601Este ejemplo evita que una máquina descargue los plugins de la cuenta en cualquier sesión:4604Este ejemplo evita que una máquina descargue los plugins de la cuenta en cualquier sesión:

4602 4605 


4629 4632 

4630Una matriz vacía bloquea cada plugin de canal.4633Una matriz vacía bloquea cada plugin de canal.

4631 4634 

4632Esta clave entra en vigor una vez que los canales pasan la puerta [`channelsEnabled`](#channelsenabled) para la cuenta: en planes Team y Enterprise, y en cuentas de Console con configuración administrada, eso significa `channelsEnabled: true`. Consulte [Restringir qué plugins de canal pueden ejecutarse](/docs/es/channels#restrict-which-channel-plugins-can-run).4635Esta clave entra en vigor una vez que los canales pasan la puerta [`channelsEnabled`](#channelsenabled) para la cuenta: en planes de Team y Enterprise, y en cuentas de Console con configuración administrada, eso significa `channelsEnabled: true`. Consulte [Restringir qué plugins de canal pueden ejecutarse](/docs/es/channels#restrict-which-channel-plugins-can-run).

4633 4636 

4634<h3 id="blockedmarketplaces">4637<h3 id="blockedmarketplaces">

4635 `blockedMarketplaces`4638 `blockedMarketplaces`

4636</h3>4639</h3>

4637 4640 

4638Bloquee fuentes de mercado de plugins para su organización. Claude Code verifica la lista de bloqueo al agregar mercado y al instalar, actualizar, actualizar y actualizar automáticamente plugins, por lo que un mercado que alguien agregó antes de que establezca la política no puede usarse para obtener plugins tampoco. Las fuentes bloqueadas se verifican antes de la descarga, por lo que nunca tocan el sistema de archivos.4641Bloquee fuentes de mercado de plugins para su organización. Claude Code verifica la lista de bloqueo al agregar un mercado y al instalar, actualizar, actualizar y actualizar automáticamente un plugin, por lo que un mercado que alguien agregó antes de establecer la política no puede usarse para obtener plugins tampoco. Las fuentes bloqueadas se verifican antes de la descarga, por lo que nunca tocan el sistema de archivos.

4639 4642 

4640Si establece esta clave en la [consola de administrador de claude.ai](/docs/es/server-managed-settings), claude.ai también la aplica cuando alguien en su organización agrega un mercado desde un repositorio de git en claude.ai, como [Cómo funcionan las restricciones](/docs/es/plugins/org#restrict-what-users-can-install) describe.4643Si establece esta clave en la [consola de administración de claude.ai](/docs/es/server-managed-settings), claude.ai también la aplica cuando alguien en su organización agrega un mercado desde un repositorio de git en claude.ai, como [Cómo funcionan las restricciones](/docs/es/plugins/org#restrict-what-users-can-install) describe.

4641 4644 

4642* **Scope**: [`Managed`](#scopes)4645* **Scope**: [`Managed`](#scopes)

4643* **Type**: matriz de objetos de fuente de mercado, en las mismas formas que [`strictKnownMarketplaces`](#allowed-source-types)4646* **Type**: matriz de objetos de fuente de mercado, en las mismas formas que [`strictKnownMarketplaces`](#allowed-source-types)


4653}4656}

4654```4657```

4655 4658 

4656Una entrada `github` puede usar la forma [comodín de propietario](#owner-wildcards) `"owner/*"` para bloquear cada repositorio bajo ese propietario de GitHub, que requiere Claude Code v2.1.223 o posterior. Agregue `{ "source": "skills-dir" }` para evitar que Claude Code cargue plugins [`@skills-dir`](/docs/es/plugins/loading#plugins-shared-through-a-repository) desde `~/.claude/skills/` sin restringir ningún mercado. Consulte [Restricciones de mercado administradas](/docs/es/plugins/org#restrict-what-users-can-install).4659Una entrada `github` puede usar la forma [comodín de propietario](#owner-wildcards) `"owner/*"` para bloquear cada repositorio bajo ese propietario de GitHub, que requiere Claude Code v2.1.223 o posterior. Agregue `{ "source": "skills-dir" }` para detener la carga de Claude Code de [plugins `@skills-dir`](/docs/es/plugins/loading#plugins-shared-through-a-repository) desde `~/.claude/skills/` sin restringir ningún mercado. Consulte [Restricciones de mercado administradas](/docs/es/plugins/org#restrict-what-users-can-install).

4657 4660 

4658<h3 id="channelsenabled">4661<h3 id="channelsenabled">

4659 `channelsEnabled`4662 `channelsEnabled`

4660</h3>4663</h3>

4661 4664 

4662Permita [canales](/docs/es/channels) para su organización. En planes Team y Enterprise de claude.ai, Claude Code bloquea canales hasta que establezca esto en `true`. Para cuentas de [Anthropic Console](/docs/es/authentication#claude-console-authentication) que se autentican con una clave API, los canales se permiten de forma predeterminada. Si su organización implementa configuración administrada, Claude Code también bloquea canales en esas cuentas hasta que establezca esta clave en `true`.4665Permita [canales](/docs/es/channels) para su organización. En planes de Team y Enterprise de claude.ai, Claude Code bloquea los canales hasta que establezca esto en `true`. Para cuentas de [Anthropic Console](/docs/es/authentication#claude-console-authentication) que se autentican con una clave API, los canales se permiten de forma predeterminada. Si su organización implementa configuración administrada, Claude Code también bloquea los canales en esas cuentas hasta que establezca esta clave en `true`.

4663 4666 

4664* **Scope**: [`Managed`](#scopes)4667* **Scope**: [`Managed`](#scopes)

4665* **Type**: Boolean4668* **Type**: Boolean

4666 * `true`: Claude Code permite canales para su organización4669 * `true`: Claude Code permite canales para su organización

4667 * `false`: lo mismo que sin establecer; si los canales están bloqueados depende de su plan, como dice el Default4670 * `false`: lo mismo que sin establecer; si los canales están bloqueados depende de su plan, como dice el Default

4668* **Default**: sin establecer; los canales están bloqueados en planes Team y Enterprise y en cuentas de Console con configuración administrada, y permitidos en planes Pro y Max y en cuentas de Console sin configuración administrada4671* **Default**: sin establecer; los canales están bloqueados en planes de Team y Enterprise y en cuentas de Console con configuración administrada, y permitidos en planes Pro y Max y en cuentas de Console sin configuración administrada

4669 4672 

4670```json managed-settings.json theme={null}4673```json managed-settings.json theme={null}

4671{4674{


4679 `disableCommandPluginSources`4682 `disableCommandPluginSources`

4680</h3>4683</h3>

4681 4684 

4682Bloquee la [fuente de plugin `command`](/docs/es/plugins/marketplace-reference#command-plugin-source), que instala un plugin ejecutando un comando declarado por el mercado en la máquina del usuario. Cuando lo establece en `true`, Claude Code nunca ejecuta el comando, no instala ni actualiza plugins de origen de comando, y deja de cargar los ya instalados. Establézcalo en `false` para permitirlos explícitamente. Siempre que bloquea fuentes de comando, ya sea que lo establezca en `true` o lo deje sin establecer bajo [`allowManagedHooksOnly`](#allowmanagedhooksonly), también bloquea comandos [`headersHelper`](/docs/es/plugins/host-marketplace#authenticate-archive-downloads) del mercado, excepto para un mercado que la configuración administrada declara. Requiere Claude Code v2.1.229 o posterior, y el bloqueo `headersHelper` requiere v2.1.238 o posterior.4685Bloquee la [fuente de plugin `command`](/docs/es/plugins/marketplace-reference#command-plugin-source), que instala un plugin ejecutando un comando declarado por el mercado en la máquina del usuario. Cuando lo establece en `true`, Claude Code nunca ejecuta el comando, no instala ni actualiza plugins de origen de comando, y deja de cargar los ya instalados. Establézcalo en `false` para permitirlos explícitamente. Siempre que bloquea fuentes de comando, ya sea que lo establezca en `true` o lo deje sin establecer bajo [`allowManagedHooksOnly`](#allowmanagedhooksonly), también bloquea los comandos [`headersHelper`](/docs/es/plugins/host-marketplace#authenticate-archive-downloads) del mercado, excepto para un mercado que la configuración administrada declara. Requiere Claude Code v2.1.229 o posterior, y el bloqueo de `headersHelper` requiere v2.1.238 o posterior.

4683 4686 

4684* **Scope**: [`Managed`](#scopes)4687* **Scope**: [`Managed`](#scopes)

4685* **Type**: Boolean4688* **Type**: Boolean


4717 `pluginTrustMessage`4720 `pluginTrustMessage`

4718</h3>4721</h3>

4719 4722 

4720Agregue el texto de su propia organización a la advertencia de confianza de plugin que Claude Code muestra antes de la instalación, por ejemplo para confirmar que los plugins de su mercado interno están revisados.4723Agregue el texto de su propia organización al aviso de confianza de plugin que Claude Code muestra antes de la instalación, por ejemplo para confirmar que los plugins de su mercado interno están revisados.

4721 4724 

4722* **Scope**: [`Managed`](#scopes)4725* **Scope**: [`Managed`](#scopes)

4723* **Type**: cadena4726* **Type**: cadena

4724* **Default**: sin establecer, por lo que Claude Code muestra solo la advertencia estándar4727* **Default**: sin establecer, por lo que Claude Code muestra solo el aviso estándar

4725 4728 

4726```json managed-settings.json theme={null}4729```json managed-settings.json theme={null}

4727{4730{


4733 `strictKnownMarketplaces`4736 `strictKnownMarketplaces`

4734</h3>4737</h3>

4735 4738 

4736Restrinja qué fuentes de mercado de plugins pueden agregar e instalar plugins las personas en su organización. Claude Code aplica la lista de permitidos al agregar mercado y al instalar, actualizar, actualizar y actualizar automáticamente plugins, antes de cualquier operación de red o sistema de archivos, por lo que un mercado que alguien agregó antes de que establezca la política no puede usarse para obtener plugins una vez que su fuente ya no coincida. Los usuarios bloqueados ven un error que nombra la política administrada.4739Restrinja qué fuentes de mercado de plugins pueden agregar e instalar plugins las personas en su organización. Claude Code aplica la lista de permitidos al agregar un mercado y al instalar, actualizar, actualizar y actualizar automáticamente un plugin, antes de cualquier operación de red o sistema de archivos, por lo que un mercado que alguien agregó antes de establecer la política no puede usarse para obtener plugins una vez que su fuente ya no coincida. Los usuarios bloqueados ven un error que nombra la política administrada.

4737 4740 

4738Si establece esta clave en la [consola de administrador de claude.ai](/docs/es/server-managed-settings), claude.ai también la aplica cuando alguien en su organización agrega un mercado desde un repositorio de git en claude.ai, como [Cómo funcionan las restricciones](/docs/es/plugins/org#restrict-what-users-can-install) describe.4741Si establece esta clave en la [consola de administración de claude.ai](/docs/es/server-managed-settings), claude.ai también la aplica cuando alguien en su organización agrega un mercado desde un repositorio de git en claude.ai, como [Cómo funcionan las restricciones](/docs/es/plugins/org#restrict-what-users-can-install) describe.

4739 4742 

4740* **Scope**: [`Managed`](#scopes)4743* **Scope**: [`Managed`](#scopes)

4741* **Type**: matriz de objetos de fuente de mercado; consulte [Tipos de fuente permitidos](#allowed-source-types)4744* **Type**: matriz de objetos de fuente de mercado; consulte [Tipos de fuente permitidos](#allowed-source-types)


4768| `url` | `{ "source": "url", "url": "https://plugins.example.com/marketplace.json", "headers": { "Authorization": "Bearer ${TOKEN}" } }` | `url` requerido; `headers` agrega encabezados HTTP para acceso autenticado |4771| `url` | `{ "source": "url", "url": "https://plugins.example.com/marketplace.json", "headers": { "Authorization": "Bearer ${TOKEN}" } }` | `url` requerido; `headers` agrega encabezados HTTP para acceso autenticado |

4769| `file` | `{ "source": "file", "path": "/opt/acme-corp/plugins/marketplace.json" }` | `path` requerido, la ruta absoluta a un archivo `marketplace.json` |4772| `file` | `{ "source": "file", "path": "/opt/acme-corp/plugins/marketplace.json" }` | `path` requerido, la ruta absoluta a un archivo `marketplace.json` |

4770| `directory` | `{ "source": "directory", "path": "/opt/acme-corp/approved-marketplaces" }` | `path` requerido, la ruta absoluta a un directorio que contiene `.claude-plugin/marketplace.json` |4773| `directory` | `{ "source": "directory", "path": "/opt/acme-corp/approved-marketplaces" }` | `path` requerido, la ruta absoluta a un directorio que contiene `.claude-plugin/marketplace.json` |

4771| `hostPattern` | `{ "source": "hostPattern", "hostPattern": "^github\\.example\\.com$" }` | `hostPattern` requerido, una regex coincidida en cualquier lugar del host del mercado; anclela con `^` y `$` para coincidir con el host completo |4774| `hostPattern` | `{ "source": "hostPattern", "hostPattern": "^github\\.example\\.com$" }` | `hostPattern` requerido, una regex coincidida en cualquier lugar del host del mercado; anclela con `^` y `$` para coincidir con todo el host |

4772| `pathPattern` | `{ "source": "pathPattern", "pathPattern": "^/opt/approved/" }` | `pathPattern` requerido, una regex coincidida en cualquier lugar en la `path` de fuentes `file` y `directory`; comience con `^` para fijar un prefijo |4775| `pathPattern` | `{ "source": "pathPattern", "pathPattern": "^/opt/approved/" }` | `pathPattern` requerido, una regex coincidida en cualquier lugar en la `path` de fuentes `file` y `directory`; comience con `^` para fijar un prefijo |

4773| `skills-dir` | `{ "source": "skills-dir" }` | Sin campos. Opta por el escaneo de plugin `~/.claude/skills/` nuevamente |4776| `skills-dir` | `{ "source": "skills-dir" }` | Sin campos. Vuelve a optar por el escaneo de plugin `~/.claude/skills/` |

4774 4777 

4775Tres tipos de fuente llevan reglas más allá de la tabla:4778Tres tipos de fuente llevan reglas más allá de la tabla:

4776 4779 

4777* **`url`**: un mercado de URL descarga solo el archivo `marketplace.json`, y Claude Code no obtiene archivos de plugin por ruta relativa desde ese servidor, por lo que sus plugins deben usar una [fuente de plugin](/docs/es/plugins/marketplace-reference#plugin-sources) que no sea una ruta relativa, como una URL de archivo, que puede estar en el mismo host. Para plugins con rutas relativas, use un mercado basado en Git en su lugar. Consulte [Los plugins con rutas relativas fallan en mercados basados en URL](/docs/es/plugins/troubleshooting#plugins-with-relative-paths-fail-in-url-based-marketplaces).4780* **`url`**: un mercado de URL descarga solo el archivo `marketplace.json`, y Claude Code no obtiene archivos de plugin por ruta relativa desde ese servidor, por lo que sus plugins deben usar una [fuente de plugin](/docs/es/plugins/marketplace-reference#plugin-sources) que no sea una ruta relativa, como una URL de archivo, que puede estar en el mismo host. Para plugins con rutas relativas, use un mercado basado en Git en su lugar. Consulte [Los plugins con rutas relativas fallan en mercados basados en URL](/docs/es/plugins/troubleshooting#plugins-with-relative-paths-fail-in-url-based-marketplaces).

4778* **`hostPattern`**: úselo para permitir cada mercado en un GitHub Enterprise interno o servidor GitLab sin enumerar cada repositorio. Claude Code compara fuentes `github` contra `github.com`, toma el nombre de host de fuentes `url`, y lo toma de fuentes `git` dependiendo de la forma de [URL de git](https://git-scm.com/docs/git-clone#_git_urls):4781* **`hostPattern`**: úselo para permitir cada mercado en un GitHub Enterprise interno o servidor GitLab sin listar cada repositorio. Claude Code compara fuentes `github` contra `github.com`, toma el nombre de host de fuentes `url`, y lo toma de fuentes `git` dependiendo de la forma de [URL de git](https://git-scm.com/docs/git-clone#_git_urls):

4779 4782 

4780 * Una URL con un esquema, como `https://` o `ssh://`: el nombre de host en la URL.4783 * Una URL con un esquema, como `https://` o `ssh://`: el nombre de host en la URL.

4781 * Una dirección SSH sin esquema, en la forma `user@host:path` de git, como `git@git.example.com:tools/plugins.git`: el host entre `@` y `:`, que es el host al que se conecta git.4784 * Una dirección SSH sin esquema, en la forma `user@host:path` de git, como `git@git.example.com:tools/plugins.git`: el host entre `@` y `:`, que es el host al que se conecta git.

4782 * Cualquier otra forma sin esquema: sin host, por lo que ninguna entrada `strictKnownMarketplaces` `hostPattern` la coincide. Para una `blockedMarketplaces` `hostPattern`, Claude Code toma un host de un conjunto más amplio de formas, por lo que una entrada de lista de bloqueo aún puede coincidir con tal forma. Antes de v2.1.234, una `strictKnownMarketplaces` `hostPattern` también coincidía con algunas formas que git no trata como direcciones SSH.4785 * Cualquier otra forma sin esquema: sin host, por lo que ninguna entrada `hostPattern` de `strictKnownMarketplaces` coincide con ella. Para una entrada `hostPattern` de `blockedMarketplaces`, Claude Code toma un host de un conjunto más amplio de formas, por lo que una entrada de lista de bloqueo aún puede coincidir con tal forma. Antes de v2.1.234, una entrada `hostPattern` de `strictKnownMarketplaces` también coincidía con algunas formas que git no trata como direcciones SSH.

4783 4786 

4784 Las fuentes `file` y `directory` no tienen host y nunca coinciden con una entrada `hostPattern`.4787 Las fuentes `file` y `directory` no tienen host y nunca coinciden con una entrada `hostPattern`.

4785* **`pathPattern`**: úselo para permitir mercados del sistema de archivos junto con entradas `hostPattern` para fuentes de red. `".*"` permite cada ruta local; un patrón más estrecho como `"^/opt/approved/"` restringe a un directorio.4788* **`pathPattern`**: úselo para permitir mercados del sistema de archivos junto con entradas `hostPattern` para fuentes de red. `".*"` permite cada ruta local; un patrón más estrecho como `"^/opt/approved/"` restringe a un directorio.

4786 4789 

4787Cualquier lista de permitidos, incluso una vacía, también evita que Claude Code cargue plugins [`@skills-dir`](/docs/es/plugins/loading#plugins-shared-through-a-repository) desde `~/.claude/skills/`. Agregue la entrada `{ "source": "skills-dir" }` para seguir cargándolos; la entrada no tiene significado fuera de esta clave y `blockedMarketplaces`.4790Cualquier lista de permitidos, incluso una vacía, también detiene la carga de Claude Code de [plugins `@skills-dir`](/docs/es/plugins/loading#plugins-shared-through-a-repository) desde `~/.claude/skills/`. Agregue la entrada `{ "source": "skills-dir" }` para seguir cargándolos; la entrada no tiene significado fuera de esta clave y `blockedMarketplaces`.

4788 4791 

4789<h4 id="owner-wildcards">4792<h4 id="owner-wildcards">

4790 Comodines de propietario4793 Comodines de propietario


4802}4805}

4803```4806```

4804 4807 

4805Solo la posición de nombre de repositorio completo puede ser un comodín. Claude Code compara entradas como `*`, `*/plugins` o `acme-corp/tools-*` literalmente, por lo que no coinciden con ningún repositorio.4808Solo la posición de nombre de repositorio completo puede ser un comodín. Claude Code ignora entradas como `*`, `*/plugins` o `acme-corp/tools-*` como inválidas, por lo que no coinciden con ningún repositorio.

4806 4809 

4807Las reglas de coincidencia difieren entre las dos configuraciones:4810Las reglas de coincidencia difieren entre las dos configuraciones:

4808 4811 

4809| Rule | `strictKnownMarketplaces` | `blockedMarketplaces` |4812| Rule | `strictKnownMarketplaces` | `blockedMarketplaces` |

4810| - | - | - |4813| - | - | - |

4811| Coincidencia de ortografías de fuente | Solo forma `owner/repo`. Una URL de git que clona el mismo repositorio no coincide | Cualquier ortografía, incluidas las URL de git que se resuelven en el mismo repositorio github.com |4814| Coincidencia de ortografías de fuente | Solo forma `owner/repo`. Una URL de git que clona el mismo repositorio no coincide | Cualquier ortografía, incluidas URLs de git que se resuelven en el mismo repositorio github.com |

4812| Caso del propietario | Sensible a mayúsculas y minúsculas, como coincidencia exacta de entrada | Insensible a mayúsculas y minúsculas |4815| Caso del propietario | Sensible a mayúsculas y minúsculas, como coincidencia exacta de entrada | Insensible a mayúsculas y minúsculas |

4813| `ref` | Sigue las reglas de coincidencia exacta de entrada: una entrada con una `ref` coincide solo con fuentes con esa ref exacta, y una entrada sin una coincide solo con fuentes que no especifican una ref | Una entrada sin una `ref` bloquea todas las refs de los repositorios que coincide |4816| `ref` | Sigue las reglas de entrada exacta: una entrada con un `ref` coincide solo con fuentes con ese ref exacto, y una entrada sin uno coincide solo con fuentes que no especifican un ref | Una entrada sin un `ref` bloquea todos los refs de los repositorios que coincide |

4814| `path` | Más flexible que las reglas de coincidencia exacta de entrada: una entrada con una `path` requiere ese valor exacto, mientras que una entrada sin una coincide con cualquier ruta dentro del repositorio | Una entrada sin una `path` bloquea todas las rutas de los repositorios que coincide |4817| `path` | Más flexible que las reglas de entrada exacta: una entrada con un `path` requiere ese valor exacto, mientras que una entrada sin uno coincide con cualquier ruta dentro del repositorio | Una entrada sin un `path` bloquea todas las rutas de los repositorios que coincide |

4815 4818 

4816<h4 id="exact-matching">4819<h4 id="exact-matching">

4817 Coincidencia exacta4820 Coincidencia exacta


4832 Permitir solo el mercado oficial4835 Permitir solo el mercado oficial

4833</h4>4836</h4>

4834 4837 

4835Para permitir el mercado oficial de Anthropic y nada más, enumere su repositorio:4838Para permitir solo el mercado oficial de Anthropic, liste su repositorio:

4836 4839 

4837```json managed-settings.json theme={null}4840```json managed-settings.json theme={null}

4838{4841{


4842}4845}

4843```4846```

4844 4847 

4845Con esta entrada, Claude Code mantiene un mercado oficial ya registrado disponible y, en una máquina nueva, registra el mercado automáticamente la primera vez que inicia Claude Code interactivamente. El registro automático comúnmente pierde:4848Con esta entrada, Claude Code mantiene un mercado oficial ya registrado disponible y, en una máquina nueva, registra el mercado automáticamente la primera vez que inicia una sesión de terminal interactiva. El registro automático comúnmente falla:

4846 4849 

4847* Entornos no interactivos que se ejecutan antes del primer lanzamiento interactivo de la máquina.4850* Entornos no interactivos que se ejecutan antes de la primera sesión de terminal interactiva de la máquina.

4848* Máquinas donde Claude Code ya se ejecutó interactivamente bajo una política que bloqueó el mercado, como el bloqueo de matriz vacía. Claude Code registra el intento bloqueado y no reintenta después de que cambia la política.4851* Máquinas donde Claude Code solo se ha ejecutado a través de la extensión de VS Code.

4852* Máquinas donde Claude Code ya ejecutó una sesión de terminal interactiva bajo una política que bloqueó el mercado, como el bloqueo de matriz vacía. Claude Code registra el intento bloqueado y no reintenta después de que cambia la política.

4849 4853 

4850En estas máquinas, agregue el mercado a [`extraKnownMarketplaces`](#extraknownmarketplaces) en el mismo `managed-settings.json` para que Claude Code lo registre automáticamente, o ejecute `claude plugin marketplace add anthropics/claude-plugins-official`.4854En estas máquinas, agregue el mercado a [`extraKnownMarketplaces`](#extraknownmarketplaces) en el mismo `managed-settings.json` para que Claude Code lo registre automáticamente, o ejecute `claude plugin marketplace add anthropics/claude-plugins-official`.

4851 4855 


4861| Settings file | Solo configuración administrada | Cualquier archivo de configuración |4865| Settings file | Solo configuración administrada | Cualquier archivo de configuración |

4862| Behavior | Bloquea adiciones no permitidas | Registra mercados faltantes |4866| Behavior | Bloquea adiciones no permitidas | Registra mercados faltantes |

4863| When enforced | Antes de operaciones de red y sistema de archivos | Inmediatamente desde configuración de usuario o administrada; después del diálogo de confianza del espacio de trabajo para archivos de un repositorio |4867| When enforced | Antes de operaciones de red y sistema de archivos | Inmediatamente desde configuración de usuario o administrada; después del diálogo de confianza del espacio de trabajo para archivos de un repositorio |

4864| Can be overridden | No, precedencia más alta | Sí, por configuración de precedencia más alta |4868| Can be overridden | No, máxima precedencia | Sí, por configuración de mayor precedencia |

4865| Source format | Objeto de fuente directo | Mercado nombrado con un objeto `source` anidado |4869| Source format | Objeto de fuente directo | Mercado nombrado con un objeto `source` anidado |

4866 4870 

4867Para restringir y preregistrar un mercado para todos los usuarios, establezca ambos en `managed-settings.json`:4871Para restringir y preregistrar un mercado para todos los usuarios, establezca ambos en `managed-settings.json`:


4879}4883}

4880```4884```

4881 4885 

4882Con solo `strictKnownMarketplaces` establecido, los usuarios aún pueden agregar un mercado permitido ellos mismos con `/plugin marketplace add`. El mercado oficial de Anthropic es el único que Claude Code registra automáticamente, y solo cuando la lista de permitidos lo permite. [Permitir solo el mercado oficial](#allow-only-the-official-marketplace) enumera las máquinas que pierde.4886Con solo `strictKnownMarketplaces` establecido, los usuarios aún pueden agregar un mercado permitido ellos mismos con `/plugin marketplace add`. El mercado oficial de Anthropic es el único que Claude Code registra automáticamente, y solo cuando la lista de permitidos lo permite. [Permitir solo el mercado oficial](#allow-only-the-official-marketplace) lista las máquinas que falla.

4883 4887 

4884<h3 id="strictpluginonlycustomization">4888<h3 id="strictpluginonlycustomization">

4885 `strictPluginOnlyCustomization`4889 `strictPluginOnlyCustomization`


4899}4903}

4900```4904```

4901 4905 

4902Las cuatro entradas de subclave a continuación enumeran lo que cada superficie bloquea y qué aún se carga. Claude Code ignora nombres de superficie que no reconoce en lugar de fallar el archivo de configuración, por lo que puede agregar nuevos nombres de superficie antes de que cada cliente se actualice.4906Las cuatro entradas de subclave a continuación listan lo que cada superficie bloquea y qué aún se carga. Claude Code ignora nombres de superficie que no reconoce en lugar de fallar el archivo de configuración, por lo que puede agregar nuevos nombres de superficie antes de que cada cliente se actualice.

4903 4907 

4904<h3 id="strictpluginonlycustomization-skills">4908<h3 id="strictpluginonlycustomization-skills">

4905 `strictPluginOnlyCustomization.skills`4909 `strictPluginOnlyCustomization.skills`

4906</h3>4910</h3>

4907 4911 

4908Bloquee la superficie `skills`. Claude Code deja de cargar skills de `~/.claude/skills/` y `.claude/skills/`, comandos personalizados de `~/.claude/commands/` y `.claude/commands/`, skills bajo directorios `--add-dir`, y skills sincronizados desde su cuenta claude.ai, y sigue cargando skills de plugins, skills incluidos y skills en el directorio de política administrada.4912Bloquee la superficie `skills`. Claude Code deja de cargar skills desde `~/.claude/skills/` y `.claude/skills/`, comandos personalizados desde `~/.claude/commands/` y `.claude/commands/`, skills y comandos bajo directorios `--add-dir`, y skills sincronizados desde su cuenta de claude.ai. Continúa cargando skills de plugins, skills incluidos y skills en el directorio de política administrada.

4909 4913 

4910* **Scope**: [`Managed`](#scopes)4914* **Scope**: [`Managed`](#scopes)

4911* **Type**: la cadena `"skills"` en la matriz [`strictPluginOnlyCustomization`](#strictpluginonlycustomization)4915* **Type**: la cadena `"skills"` en la matriz [`strictPluginOnlyCustomization`](#strictpluginonlycustomization)


4921 `strictPluginOnlyCustomization.agents`4925 `strictPluginOnlyCustomization.agents`

4922</h3>4926</h3>

4923 4927 

4924Bloquee la superficie `agents`. Claude Code deja de cargar agentes de `~/.claude/agents/` y `.claude/agents/`, y sigue cargando agentes de plugins, agentes integrados y agentes en el directorio de política administrada.4928Bloquee la superficie `agents`. Claude Code deja de cargar agentes desde `~/.claude/agents/`, `.claude/agents/` y directorios `--add-dir`. Continúa cargando agentes de plugins, agentes integrados y agentes en el directorio de política administrada.

4925 4929 

4926* **Scope**: [`Managed`](#scopes)4930* **Scope**: [`Managed`](#scopes)

4927* **Type**: la cadena `"agents"` en la matriz [`strictPluginOnlyCustomization`](#strictpluginonlycustomization)4931* **Type**: la cadena `"agents"` en la matriz [`strictPluginOnlyCustomization`](#strictpluginonlycustomization)


4937 `strictPluginOnlyCustomization.hooks`4941 `strictPluginOnlyCustomization.hooks`

4938</h3>4942</h3>

4939 4943 

4940Bloquee la superficie `hooks`. Claude Code deja de ejecutar hooks de configuración de usuario, proyecto y local `settings.json`, y sigue ejecutando hooks de plugins y hooks en configuración administrada.4944Bloquee la superficie `hooks`. Claude Code deja de ejecutar hooks de configuración de usuario, proyecto y local `settings.json`, y continúa ejecutando hooks de plugins y hooks en configuración administrada.

4941 4945 

4942* **Scope**: [`Managed`](#scopes)4946* **Scope**: [`Managed`](#scopes)

4943* **Type**: la cadena `"hooks"` en la matriz [`strictPluginOnlyCustomization`](#strictpluginonlycustomization)4947* **Type**: la cadena `"hooks"` en la matriz [`strictPluginOnlyCustomization`](#strictpluginonlycustomization)


4953 `strictPluginOnlyCustomization.mcp`4957 `strictPluginOnlyCustomization.mcp`

4954</h3>4958</h3>

4955 4959 

4956Bloquee la superficie `mcp`. Claude Code deja de cargar servidores MCP de `~/.claude.json` y `.mcp.json`, y sigue cargando servidores MCP de plugins, servidores [`managed-mcp.json`](/docs/es/managed-mcp) y servidores de [`managedMcpServers`](#managedmcpservers).4960Bloquee la superficie `mcp`. Claude Code deja de cargar servidores MCP desde `~/.claude.json` y `.mcp.json`, y continúa cargando servidores MCP de plugins, servidores [`managed-mcp.json`](/docs/es/managed-mcp) y servidores de [`managedMcpServers`](#managedmcpservers).

4957 4961 

4958* **Scope**: [`Managed`](#scopes)4962* **Scope**: [`Managed`](#scopes)

4959* **Type**: la cadena `"mcp"` en la matriz [`strictPluginOnlyCustomization`](#strictpluginonlycustomization)4963* **Type**: la cadena `"mcp"` en la matriz [`strictPluginOnlyCustomization`](#strictpluginonlycustomization)


4991 4995 

4992* **Configuración de usuario**: sus preferencias personales de plugin4996* **Configuración de usuario**: sus preferencias personales de plugin

4993* **Configuración de proyecto**: plugins compartidos con todos en el repositorio4997* **Configuración de proyecto**: plugins compartidos con todos en el repositorio

4994* **Configuración local**: anulaciones por máquina, ignoradas cuando Claude Code guarda una configuración allí4998* **Configuración local**: anulaciones por máquina, gitignored cuando Claude Code guarda una configuración allí

4995* **Configuración administrada**: política de toda la organización. Un plugin establecido en `false` aquí está bloqueado de instalación en cada scope y oculto del mercado4999* **Configuración administrada**: política de toda la organización. Un plugin establecido en `false` aquí está bloqueado de instalación en cada scope y oculto del mercado

4996 5000 

4997La configuración del proyecto tiene precedencia sobre la configuración del usuario, por lo que establecer un plugin en `false` en `~/.claude/settings.json` no deshabilita un plugin que la `.claude/settings.json` del proyecto habilita. Para optar por no participar en un plugin habilitado por proyecto en su máquina, establézcalo en `false` en `.claude/settings.local.json` en su lugar. Los plugins forzados habilitados por configuración administrada no pueden deshabilitarse de esta manera, ya que la configuración administrada anula la configuración local.5001La configuración de proyecto tiene precedencia sobre la configuración de usuario, por lo que establecer un plugin en `false` en `~/.claude/settings.json` no deshabilita un plugin que el `.claude/settings.json` del proyecto habilita. Para optar por no participar en un plugin habilitado por proyecto en su máquina, establézcalo en `false` en `.claude/settings.local.json` en su lugar. Los plugins forzados habilitados por configuración administrada no pueden deshabilitarse de esta manera, ya que la configuración administrada anula la configuración local.

4998 5002 

4999Habilitar un plugin de una fuente externa como un repositorio de GitHub o paquete npm en la `.claude/settings.json` de un proyecto no lo instala para otras personas. En cada ruta que carga plugins, Claude Code reporta el plugin como no instalado hasta que cada usuario lo [instale ellos mismos](/docs/es/plugins/org#require-plugins-per-repository).5003Habilitar un plugin de una fuente externa como un repositorio de GitHub o paquete npm en el `.claude/settings.json` de un proyecto no lo instala para otras personas. En cada ruta que carga plugins, Claude Code reporta el plugin como no instalado hasta que cada usuario lo [instale ellos mismos](/docs/es/plugins/org#require-plugins-per-repository).

5000 5004 

5001<h3 id="extraknownmarketplaces">5005<h3 id="extraknownmarketplaces">

5002 `extraKnownMarketplaces`5006 `extraKnownMarketplaces`


5004 5008 

5005Registre mercados de plugins adicionales por nombre, para que las personas que abran el repositorio, o todos los que alcance su configuración administrada, obtengan el mercado sin agregarlo ellos mismos. Claude Code registra cada mercado que aún no conoce. Si un plugin que [`enabledPlugins`](#enabledplugins) nombra desde él se instala depende de la fuente del plugin y qué archivo lo habilita; esa entrada tiene las reglas.5009Registre mercados de plugins adicionales por nombre, para que las personas que abran el repositorio, o todos los que alcance su configuración administrada, obtengan el mercado sin agregarlo ellos mismos. Claude Code registra cada mercado que aún no conoce. Si un plugin que [`enabledPlugins`](#enabledplugins) nombra desde él se instala depende de la fuente del plugin y qué archivo lo habilita; esa entrada tiene las reglas.

5006 5010 

5007* **Scope**: [`Any file`](#scopes). Claude Code respeta entradas en la `.claude/settings.json` o `.claude/settings.local.json` de un repositorio solo después de que acepte el diálogo de confianza del espacio de trabajo para esa carpeta; en una carpeta que no ha confiado, incluida una ejecución `-p` allí, las ignora sin un mensaje.5011* **Scope**: [`Any file`](#scopes). Claude Code respeta entradas en el `.claude/settings.json` o `.claude/settings.local.json` de un repositorio solo después de que acepte el diálogo de confianza del espacio de trabajo para esa carpeta; en una carpeta que no ha confiado, incluida una ejecución `-p` allí, las ignora sin un mensaje.

5008* **Type**: objeto que asigna un nombre de mercado a un objeto con un objeto `source` y un Boolean `autoUpdate` opcional5012* **Type**: objeto que asigna un nombre de mercado a un objeto con un objeto `source` y un Boolean `autoUpdate` opcional

5009* **Default**: sin establecer5013* **Default**: sin establecer

5010 5014 


5029}5033}

5030```5034```

5031 5035 

5032[Lo que se ejecuta antes de que confíe en una carpeta](/docs/es/permissions#what-runs-before-you-trust-a-folder) compara la puerta de confianza con el otro contenido que un repositorio puede suministrar. También puede escribir esta clave como `additionalMarketplaces`; consulte [Alias de clave de mercado](#marketplace-key-aliases).5036[Lo que se ejecuta antes de confiar en una carpeta](/docs/es/permissions#what-runs-before-you-trust-a-folder) compara la puerta de confianza con el otro contenido que un repositorio puede suministrar. También puede escribir esta clave como `additionalMarketplaces`; consulte [Alias de clave de mercado](#marketplace-key-aliases).

5033 5037 

5034Establezca `"autoUpdate": true` junto a `source` para hacer que Claude Code actualice ese mercado e instale sus plugins instalados en segundo plano después del inicio. Cuando se omite, `claude-plugins-official` y la mayoría de otros mercados oficiales de Anthropic tienen como predeterminado `true`, y los mercados de terceros tienen como predeterminado `false`. Consulte [Configurar actualizaciones automáticas](/docs/es/plugins/install#keep-plugins-updated).5038Establezca `"autoUpdate": true` junto a `source` para hacer que Claude Code actualice ese mercado y actualice sus plugins instalados en segundo plano después del inicio. Cuando se omite, `claude-plugins-official` y la mayoría de otros mercados oficiales de Anthropic tienen como predeterminado `true`, y los mercados de terceros tienen como predeterminado `false`. Consulte [Configurar actualizaciones automáticas](/docs/es/plugins/install#keep-plugins-updated).

5035 5039 

5036Cuando más de un archivo de configuración define una entrada de mercado bajo el mismo nombre, Claude Code usa la entrada del [archivo de precedencia más alta](/docs/es/settings#settings-precedence) completo. Esa entrada reemplaza la entrada de precedencia más baja y no hereda ninguno de sus campos, por lo que una redefinición no puede combinar `source.headers` de credencial de un archivo con una URL que otro archivo controla. Antes de v2.1.228, Claude Code fusionaba entradas del mismo nombre campo por campo, por lo que una entrada en un archivo de precedencia más alta podría heredar campos que no estableció, incluidos `headers` de otro archivo.5040Cuando más de un archivo de configuración define una entrada de mercado bajo el mismo nombre, Claude Code usa la entrada del archivo de [mayor precedencia](/docs/es/settings#settings-precedence) completo. Esa entrada reemplaza la entrada de menor precedencia y no hereda ninguno de sus campos, por lo que una redefinición no puede combinar el `source.headers` de credencial de un archivo con una URL que otro archivo controla. Antes de v2.1.228, Claude Code fusionaba entradas del mismo nombre campo por campo, por lo que una entrada en un archivo de mayor precedencia podría heredar campos que no estableció, incluidos `headers` de otro archivo.

5037 5041 

5038<h4 id="marketplace-source-types">5042<h4 id="marketplace-source-types">

5039 Tipos de fuente de mercado5043 Tipos de fuente de mercado


5043 5047 

5044* **`github`**: un repositorio de GitHub, con `repo`5048* **`github`**: un repositorio de GitHub, con `repo`

5045* **`git`**: cualquier URL de git, con `url`5049* **`git`**: cualquier URL de git, con `url`

5046* **`url`**: una URL directa a un archivo `marketplace.json`, con `url` y `headers` opcional y `headersHelper` para acceso autenticado. `headersHelper` nombra un comando que imprime encabezados cuyos valores son demasiado efímeros para enumerar en `headers`, y requiere Claude Code v2.1.238 o posterior5050* **`url`**: una URL directa a un archivo `marketplace.json`, con `url` y `headers` opcional y `headersHelper` para acceso autenticado. `headersHelper` nombra un comando que imprime encabezados cuyos valores son demasiado efímeros para listar en `headers`, y requiere Claude Code v2.1.238 o posterior

5047* **`file`**: una ruta local a un archivo `marketplace.json`, con `path`5051* **`file`**: una ruta local a un archivo `marketplace.json`, con `path`

5048* **`directory`**: una ruta del sistema de archivos local, con `path`, solo para desarrollo5052* **`directory`**: una ruta del sistema de archivos local, con `path`. Úselo para desarrollo, o para un mercado que su organización [implementa en cada máquina](/docs/es/plugins/mods/admin#install-your-organizations-mods).

5049* **`settings`**: un mercado en línea declarado directamente en el archivo de configuración sin un repositorio alojado, con `name` y `plugins`5053* **`settings`**: un mercado en línea declarado directamente en el archivo de configuración sin un repositorio alojado, con `name` y `plugins`

5050 5054 

5051El tipo de fuente `git` funciona con cualquier servicio de alojamiento de git, incluido GitLab autohospedado y Bitbucket. Claude Code clona el repositorio con la misma autenticación que `git clone` usaría en esa máquina: ayudantes de credenciales configurados o claves SSH. Un token de proveedor como `GITHUB_TOKEN` entra en vigor solo a través de un ayudante de credenciales que lo lee. Consulte [Repositorios privados](/docs/es/plugins/host-marketplace#grant-access-to-a-private-marketplace) para detalles de configuración.5055El tipo de fuente `git` funciona con cualquier servicio de alojamiento de git, incluido GitLab autohospedado y Bitbucket. Claude Code clona el repositorio con la misma autenticación que `git clone` usaría en esa máquina: ayudantes de credenciales configurados o claves SSH. Un token de proveedor como `GITHUB_TOKEN` entra en vigor a través de un ayudante de credenciales que lo lee. Consulte [Repositorios privados](/docs/es/plugins/host-marketplace#grant-access-to-a-private-marketplace) para detalles de configuración.

5052 5056 

5053Para fuentes `github` y `git`, Claude Code nunca descarga contenido de [Git LFS](https://git-lfs.com) cuando clona el repositorio de mercado para agregarlo o actualizarlo. Los archivos rastreados por LFS se extraen como archivos de puntero, y la salida de agregar o actualizar reporta cuántos.5057Para fuentes `github` y `git`, Claude Code nunca descarga contenido de [Git LFS](https://git-lfs.com) cuando clona el repositorio de mercado para agregarlo o actualizarlo. Los archivos rastreados por LFS se cierran como archivos de puntero, y la salida de agregar o actualizar reporta cuántos.

5054 5058 

5055El campo `skipLfs` dentro del objeto `source` se acepta y no tiene efecto. Antes de v2.1.274, Claude Code descargaba contenido de LFS a menos que estableciera `"skipLfs": true`.5059El campo `skipLfs` dentro del objeto `source` se acepta y no tiene efecto. Antes de v2.1.274, Claude Code descargaba contenido de LFS a menos que estableciera `"skipLfs": true`.

5056 5060 

5057Para una fuente `url`, establezca `headersHelper` dentro del objeto `source` cuando la credencial en `headers` expira y un comando tiene que producir una nueva. Requiere Claude Code v2.1.238 o posterior. Para lo que el comando debe imprimir y dónde Claude Code lo ejecuta, consulte [Escribir el comando headersHelper](/docs/es/plugins/host-marketplace#write-the-headershelper-command), y para los casos donde Claude Code no lo ejecuta, consulte [Cuándo Claude Code omite un comando headersHelper](/docs/es/plugins/host-marketplace#when-claude-code-skips-a-headershelper-command-or-drops-its-output). Una vez que establezca `headersHelper` en una URL de mercado `https://`, Claude Code ejecuta el comando en dos puntos, reutilizando la salida de una ejecución durante hasta 60 segundos:5061Para una fuente `url`, establezca `headersHelper` dentro del objeto `source` cuando la credencial en `headers` expire y un comando tenga que producir una nueva. Requiere Claude Code v2.1.238 o posterior. Para lo que el comando debe imprimir y dónde Claude Code lo ejecuta, consulte [Escribir el comando headersHelper](/docs/es/plugins/host-marketplace#write-the-headershelper-command), y para los casos donde Claude Code no lo ejecuta, consulte [Cuándo Claude Code omite un comando headersHelper](/docs/es/plugins/host-marketplace#when-claude-code-skips-a-headershelper-command-or-drops-its-output). Una vez que establezca `headersHelper` en una URL de mercado `https://`, Claude Code ejecuta el comando en dos puntos, reutilizando la salida de una ejecución durante hasta 60 segundos:

5058 5062 

5059* Antes de cada obtención del `marketplace.json` de ese mercado, incluida una actualización posterior. Claude Code envía los encabezados impresos con esa obtención.5063* Antes de cada obtención del `marketplace.json` de ese mercado, incluida una actualización posterior. Claude Code envía los encabezados impresos con esa obtención.

5060* Antes de cada descarga de archivo de plugin en el origen de la URL del mercado, lo que significa el mismo esquema, host y puerto. Claude Code envía la salida con esa descarga, y ninguna otra descarga obtiene los encabezados.5064* Antes de cada descarga de archivo de plugin en el origen de la URL del mercado, lo que significa el mismo esquema, host y puerto. Claude Code envía la salida con esa descarga, y ninguna otra descarga obtiene los encabezados.

5061 5065 

5062Claude Code ignora cualquier `headersHelper` establecido en la `.claude/settings.json` o `.claude/settings.local.json` de un directorio que agregue con [`--add-dir`](/docs/es/permissions#what-runs-before-you-trust-a-folder), en una fuente `url` y en una entrada de plugin en línea por igual, y envía solo los `headers` fijos establecidos en ese archivo. [Cómo los usuarios aceptan un comando headersHelper](/docs/es/plugins/host-marketplace#how-users-accept-a-headershelper-command) cubre los otros archivos de configuración.5066Claude Code ignora cualquier `headersHelper` establecido en el `.claude/settings.json` o `.claude/settings.local.json` de un directorio que agregue con [`--add-dir`](/docs/es/permissions#what-runs-before-you-trust-a-folder), en una fuente `url` y en una entrada de plugin en línea por igual, y envía solo los `headers` fijos establecidos en ese archivo. [Cómo los usuarios aceptan un comando headersHelper](/docs/es/plugins/host-marketplace#how-users-accept-a-headershelper-command) cubre los otros archivos de configuración.

5063 5067 

5064Los plugins enumerados en una fuente `settings` deben hacer referencia a fuentes externas como GitHub o npm, y el `name` debe coincidir con la clave de mercado. Aún habilita cada plugin por separado en `enabledPlugins`. Este ejemplo declara un plugin en línea:5068Los plugins listados en una fuente `settings` deben hacer referencia a fuentes externas como GitHub o npm, y el `name` debe coincidir con la clave de mercado. Aún habilita cada plugin por separado en `enabledPlugins`. Este ejemplo declara un plugin en línea:

5065 5069 

5066```json settings.json theme={null}5070```json settings.json theme={null}

5067{5071{


5085}5089}

5086```5090```

5087 5091 

5088Una entrada de plugin bajo `source: 'settings'` cuya propia `source` es un [`archive`](/docs/es/plugins/marketplace-reference#archive-plugin-source) puede establecer `headers` para la descarga del archivo. Si el valor que pondría en `headers` es efímero, como un token que su registro acuña bajo demanda, establezca un comando `headersHelper` en su lugar. Una entrada puede establecer ambos. Ambos campos requieren Claude Code v2.1.238 o posterior.5092Una entrada de plugin bajo `source: 'settings'` cuya propia `source` es un [`archive`](/docs/es/plugins/marketplace-reference#archive-plugin-source) puede establecer `headers` para la descarga de archivo. Si el valor que pondría en `headers` es efímero, como un token que su registro acuña bajo demanda, establezca un comando `headersHelper` en su lugar. Una entrada puede establecer ambos. Ambos campos requieren Claude Code v2.1.238 o posterior.

5089 5093 

5090Claude Code envía los `headers` de la entrada, y lo que el comando imprime, con la descarga del archivo de ese plugin y con ninguna otra descarga. Claude Code ejecuta el comando solo cuando un usuario [instala o actualiza ese único plugin por sí solo](/docs/es/plugins/host-marketplace#how-users-accept-a-headershelper-command). Tres reglas adicionales dependen de qué archivo contiene la entrada:5094Claude Code envía los `headers` de la entrada, y lo que el comando imprime, con la descarga de archivo de ese plugin y con ninguna otra descarga. Claude Code ejecuta el comando solo cuando un usuario [instala o actualiza ese plugin solo](/docs/es/plugins/host-marketplace#how-users-accept-a-headershelper-command). Tres reglas adicionales dependen de qué archivo contiene la entrada:

5091 5095 

5092* **`strict`**: a diferencia de una entrada en el `marketplace.json` de un mercado, una entrada en configuración no necesita `"strict": false`, porque un archivo de configuración no lleva campos de manifiesto para en línea. Consulte [Modo estricto](/docs/es/plugins/marketplace-reference#strict-mode).5096* **`strict`**: a diferencia de una entrada en el `marketplace.json` de un mercado, una entrada en configuración no necesita `"strict": false`, porque un archivo de configuración no lleva campos de manifiesto para en línea. Consulte [Modo estricto](/docs/es/plugins/marketplace-reference#strict-mode).

5093* **Confianza de carpeta**: para una entrada en la `.claude/settings.json` o `.claude/settings.local.json` de un proyecto, Claude Code ejecuta el comando solo después de que el usuario también haya [confiado en esa carpeta](/docs/es/permissions#what-runs-before-you-trust-a-folder).5097* **Confianza de carpeta**: para una entrada en el `.claude/settings.json` o `.claude/settings.local.json` de un proyecto, Claude Code ejecuta el comando solo después de que el usuario también haya [confiado en esa carpeta](/docs/es/permissions#what-runs-before-you-trust-a-folder).

5094* **Filtro de encabezado**: Claude Code elimina [nombres de encabezado de enrutamiento de solicitud e identidad del cliente](/docs/es/plugins/host-marketplace#when-claude-code-skips-a-headershelper-command-or-drops-its-output) de una entrada en la `.claude/settings.json` o `.claude/settings.local.json` de un proyecto, porque un repositorio puede suministrar esos archivos. Claude Code aplica el mismo filtro a una entrada de catálogo y a una entrada en la configuración de un directorio `--add-dir`, y ningún filtro a una entrada en su configuración de usuario, un archivo `--settings` o configuración administrada.5098* **Filtro de encabezado**: Claude Code elimina [nombres de encabezado de enrutamiento de solicitud e identidad del cliente](/docs/es/plugins/host-marketplace#when-claude-code-skips-a-headershelper-command-or-drops-its-output) de una entrada en el `.claude/settings.json` o `.claude/settings.local.json` de un proyecto, porque un repositorio puede suministrar esos archivos. Claude Code aplica el mismo filtro a una entrada de catálogo y a una entrada en un directorio `--add-dir`, y ningún filtro a una entrada en su configuración de usuario, un archivo `--settings` o configuración administrada.

5095 5099 

5096<h4 id="marketplace-key-aliases">5100<h4 id="marketplace-key-aliases">

5097 Alias de clave de mercado5101 Alias de clave de mercado


5128}5132}

5129```5133```

5130 5134 

5131Los plugins integrados almacenan sus opciones bajo la misma clave con un sufijo `@builtin`. Por ejemplo, la configuración [**Instrucciones del proyecto**](/docs/es/memory#choose-which-instruction-files-load) que controla si Claude Code lee archivos `AGENTS.md` es `pluginConfigs["agents-md@builtin"].options.instructionFiles`.5135Los plugins integrados almacenan sus opciones bajo la misma clave con un sufijo `@builtin`. Por ejemplo, la configuración [**Instrucciones de proyecto**](/docs/es/memory#choose-which-instruction-files-load) que controla si Claude Code lee archivos `AGENTS.md` es `pluginConfigs["agents-md@builtin"].options.instructionFiles`.

5132 5136 

5133Claude Code ignora entradas de proyecto y local porque sustituye estos valores en configuraciones de hook de plugin, MCP y LSP, y un repositorio clonado no debe poder suministrarlos. Antes de v2.1.207, la configuración de proyecto y local también se leía.5137Claude Code ignora entradas de proyecto y local porque sustituye estos valores en configuraciones de hook, MCP y LSP de plugin, y un repositorio clonado no debe poder suministrarlos. Antes de v2.1.207, la configuración de proyecto y local también se leía.

5138 

5139<h3 id="prependplugins">

5140 `prependPlugins`

5141</h3>

5142 

5143Liste los plugins administrados cuyos [mods](/docs/es/plugins/mods/overview) se ejecutan antes de cada mod que instala un usuario, en el orden listado. Cuando establece esta clave en configuración administrada, nombre `sec-default@builtin` en la lista para mantener la guardia integrada. En configuración administrada, Claude Code omite un id cuyo plugin no cuenta como el de su organización. Consulte [Instale los mods de su organización y establezca el orden](/docs/es/plugins/mods/admin#install-your-organizations-mods) para esas condiciones y cómo funcionan juntas las dos claves de ordenamiento.

5144 

5145* **Scope**: [`User or managed`](#scopes). Claude Code lee la clave de configuración administrada. Lee la clave de configuración de usuario solo en una máquina sin configuración administrada, para un usuario que no ha iniciado sesión con un plan de Team o Enterprise. Ignora la clave en configuración de proyecto y local y en un archivo `--settings`.

5146* **Type**: matriz de cadenas `plugin-name@marketplace-name`

5147* **Default**: sin establecer

5148 

5149```json managed-settings.json theme={null}

5150{

5151 "extraKnownMarketplaces": {

5152 "acme-tools": {

5153 "source": { "source": "directory", "path": "/opt/acme/claude-plugins" }

5154 }

5155 },

5156 "enabledPlugins": { "acme-guard@acme-tools": true },

5157 "prependPlugins": ["acme-guard@acme-tools", "sec-default@builtin"]

5158}

5159```

5160 

5161<h3 id="appendplugins">

5162 `appendPlugins`

5163</h3>

5164 

5165Liste los plugins administrados cuyos [mods](/docs/es/plugins/mods/overview) se ejecutan después de cada mod que instala un usuario, en el orden listado. Un id listado en ambos `prependPlugins` y `appendPlugins` se antepone. En configuración administrada, Claude Code omite un id cuyo plugin no [cuenta como el de su organización](/docs/es/plugins/mods/admin#install-your-organizations-mods).

5166 

5167* **Scope**: [`User or managed`](#scopes). Claude Code lee la clave de configuración administrada. Lee la clave de configuración de usuario solo en una máquina sin configuración administrada, para un usuario que no ha iniciado sesión con un plan de Team o Enterprise. Ignora la clave en configuración de proyecto y local y en un archivo `--settings`.

5168* **Type**: matriz de cadenas `plugin-name@marketplace-name`

5169* **Default**: sin establecer

5170 

5171```json managed-settings.json theme={null}

5172{

5173 "extraKnownMarketplaces": {

5174 "acme-tools": {

5175 "source": { "source": "directory", "path": "/opt/acme/claude-plugins" }

5176 }

5177 },

5178 "enabledPlugins": { "acme-audit@acme-tools": true },

5179 "appendPlugins": ["acme-audit@acme-tools"]

5180}

5181```

5134 5182 

5135<h2 id="mcp">5183<h2 id="mcp">

5136 MCP5184 MCP


5652 5700 

5653* **Scope**: [`Any file`](#scopes)5701* **Scope**: [`Any file`](#scopes)

5654* **Type**: Boolean5702* **Type**: Boolean

5655 * `true`: Claude Code desactiva la herramienta Artifact para cada sesión a la que se aplique el archivo, y ningún otro archivo la vuelve a activar. Antes de v2.1.242, un archivo de mayor precedencia podría anular un `true` de un archivo de menor precedencia en lugar de que la clave actúe como un bloqueo5703 * `true`: Claude Code desactiva la herramienta Artifact para cada sesión a la que se aplique el archivo, y ningún otro archivo la vuelve a activar

5656 * `false`: ignorado; para dejar la herramienta activada, elimine la clave5704 * `false`: ignorado; para dejar la herramienta activada, elimine la clave

5657* **Default**: unset, por lo que la herramienta sigue la [disponibilidad](/docs/es/artifacts#availability) de su cuenta5705* **Default**: unset, por lo que la herramienta sigue la [disponibilidad](/docs/es/artifacts#availability) de su cuenta

5658* **Per-session overrides**: [`CLAUDE_CODE_DISABLE_ARTIFACT`](/docs/es/env-vars) establecido en `1` desactiva la herramienta para una sesión5706* **Per-session overrides**: [`CLAUDE_CODE_DISABLE_ARTIFACT`](/docs/es/env-vars) establecido en `1` desactiva la herramienta para una sesión


5739}5787}

5740```5788```

5741 5789 

5742Mientras una fuente que no sea su propia configuración de usuario mantiene la herramienta desactivada, Claude Code oculta la fila **Artifacts** en `/config`, porque activarla allí no cambiaría nada. [Desactivar artefactos](/docs/es/artifacts#disable-artifacts) enumera todas las formas de desactivar la herramienta. Antes de v2.1.242, Claude Code ignoraba esta clave en la configuración de proyecto y local, y un archivo más alto en la [pila de precedencia](/docs/es/settings#settings-precedence) podría volver a activar la herramienta sobre un `false` de un archivo más bajo.5790Mientras una fuente que no sea su propia configuración de usuario mantiene la herramienta desactivada, Claude Code oculta la fila **Artifacts** en `/config`, porque activarla allí no cambiaría nada. [Desactivar artefactos](/docs/es/artifacts#disable-artifacts) enumera todas las formas de desactivar la herramienta.

5743 5791 

5744<h3 id="inputneedednotifenabled">5792<h3 id="inputneedednotifenabled">

5745 `inputNeededNotifEnabled`5793 `inputNeededNotifEnabled`


5878 5926 

5879Proporcione credenciales a través de scripts auxiliares y, para organizaciones, fuerce un método de inicio de sesión u organización. Consulte [Autenticación](/docs/es/authentication).5927Proporcione credenciales a través de scripts auxiliares y, para organizaciones, fuerce un método de inicio de sesión u organización. Consulte [Autenticación](/docs/es/authentication).

5880 5928 

5929<h3 id="allowedproviders">

5930 `allowedProviders`

5931</h3>

5932 

5933Liste los servicios a través de los cuales una máquina puede acceder a Claude, como la API de Anthropic, Amazon Bedrock, o una puerta de enlace LLM. Una sesión en un proveedor que no está listado se rechaza al inicio, al iniciar sesión, y cuando contacta a continuación con la API, por lo que cambiar a un proveedor no listado a mitad de sesión también se rechaza. El [mensaje de rechazo](/docs/es/errors#managed-settings-dont-allow-this-api-provider) nombra lo que seleccionó el proveedor y los pasos para continuar. Requiere Claude Code v2.1.285 o posterior.

5934 

5935* **Scope**: [`Managed`](#scopes). Una lista que las fuentes de administrador propias de la máquina establecen, las políticas MDM y los archivos de configuración administrada, sigue aplicándose cuando la configuración administrada por servidor también entrega una: una sesión puede entonces usar solo los proveedores en ambas listas, por lo que una lista administrada por servidor puede reducir lo que la máquina permite pero nunca ampliarlo. Cuál `allowedProviders` de la fuente de la máquina cuenta sigue [cómo Claude Code combina fuentes administradas](/docs/es/managed-settings#how-claude-code-combines-managed-sources). Una lista entregada solo a través de configuración administrada por servidor llega solo a las sesiones que [obtienen configuración administrada por servidor](/docs/es/server-managed-settings#platform-availability).

5936* **Type**: matriz de strings, cada uno de:

5937 * `"anthropic"`: la API de Anthropic en el host propio de Anthropic, a través de un inicio de sesión de claude.ai o Console o una clave de API. Emparéjelo con [`forceLoginMethod`](#forceloginmethod) o [`forceLoginOrgUUID`](#forceloginorguuid) para también restringir el inicio de sesión

5938 * `"bedrock"`: [Amazon Bedrock](/docs/es/amazon-bedrock)

5939 * `"vertex"`: [Plataforma de Agente de Google Cloud](/docs/es/google-vertex-ai), anteriormente Vertex AI

5940 * `"foundry"`: [Microsoft Foundry](/docs/es/microsoft-foundry)

5941 * `"anthropicAws"`: [Plataforma Claude en AWS](/docs/es/claude-platform-on-aws)

5942 * `"mantle"`: el punto de conexión [Mantle](/docs/es/amazon-bedrock#use-the-mantle-endpoint) de Amazon Bedrock. Una sesión que [ejecuta Mantle junto con la API de Invoke](/docs/es/amazon-bedrock#run-mantle-alongside-the-invoke-api) usa ambos proveedores, por lo que liste `"bedrock"` y `"mantle"` juntos para ella

5943 * `"customEndpoint"`: la API de Anthropic o la API de un proveedor en la nube enviada a otro host, como una [puerta de enlace LLM](/docs/es/llm-gateway) nombrada por `ANTHROPIC_BASE_URL`, una variable `ANTHROPIC_*_BASE_URL` del proveedor, o un valor `ANTHROPIC_FOUNDRY_RESOURCE` que no es un nombre de recurso simple. Claude Code lo admite solo para el valor exacto que un bloque [`env`](#env) administrado fija

5944 * `"gateway"`: un inicio de sesión de [puerta de enlace en la nube](/docs/es/claude-apps-gateway)

5945* **Default**: sin establecer, por lo que se puede usar cualquier proveedor

5946 

5947```json managed-settings.json theme={null}

5948{

5949 "allowedProviders": ["anthropic", "bedrock"]

5950}

5951```

5952 

5953La entrada de cada proveedor en la nube significa el servicio propio de ese proveedor, incluidos sus puntos de conexión regionales, FIPS y privados.

5954 

5955Una entrada que Claude Code no reconoce como un nombre de proveedor se descarta y se informa, y el resto de la lista se mantiene aplicada. Con una lista vacía, o una cuya cada entrada no es reconocida, Claude Code rechaza cada proveedor y no inicia en la máquina.

5956 

5957<h4 id="endpoints-that-need-a-pin-in-managed-env">

5958 Puntos de conexión que necesitan un fijo en `env` administrado

5959</h4>

5960 

5961Un fijo es el valor de una variable de punto de conexión establecido en un bloque [`env`](#env) administrado. Cuando una sesión envía el tráfico de un proveedor a algún lugar que no sea el servicio propio de ese proveedor, Claude Code lo admite solo si el valor de la sesión es el mismo que el fijo. Estos puntos de conexión necesitan uno:

5962 

5963* **Sesiones `"customEndpoint"`**: la variable que nombra el host, como `ANTHROPIC_BASE_URL`

5964* **Amazon Bedrock**: las variables `AWS_ENDPOINT_URL`, `AWS_ENDPOINT_URL_BEDROCK`, y `AWS_ENDPOINT_URL_BEDROCK_RUNTIME` del SDK de AWS cuando apuntan fuera del servicio propio de Bedrock. La sesión permanece bajo `"bedrock"` en lugar de `"customEndpoint"`

5965* **URL de inicio de sesión de una puerta de enlace**: la sesión permanece bajo `"gateway"`, y [`forceLoginGatewayUrl`](#forcelogingatewayurl) también cuenta como el fijo

5966 

5967Cuáles bloques `env` cuentan como fijos depende de dónde se establezca la lista:

5968 

5969* **Una fuente de administrador en la máquina establece una lista**: solo los bloques `env` de las fuentes de administrador propias de la máquina cuentan

5970* **Solo la configuración administrada por servidor establece una lista**: un valor `env` en esa configuración administrada por servidor también cuenta

5971 

5972La lista no juzga las variables de credencial y tenencia de un proveedor en la nube o la ruta de red, como `HTTPS_PROXY` y la configuración de certificados. Establezca esos para la flota en el bloque `env` administrado.

5973 

5881<h3 id="apikeyhelper">5974<h3 id="apikeyhelper">

5882 `apiKeyHelper`5975 `apiKeyHelper`

5883</h3>5976</h3>


6400| :- | :- | :- |6493| :- | :- | :- |

6401| Listas | Combina entradas de todas las fuentes | [`permissions.allow`](#permissions-allow), [`sandbox.network.allowedDomains`](#sandbox-network-alloweddomains) y otras claves de lista |6494| Listas | Combina entradas de todas las fuentes | [`permissions.allow`](#permissions-allow), [`sandbox.network.allowedDomains`](#sandbox-network-alloweddomains) y otras claves de lista |

6402| Bloqueos | Aplica el valor más estricto que establece cualquier fuente. Cuando ninguna fuente establece un valor estricto, aplica un valor más flexible solo de la fuente más alta | [`allowManagedPermissionRulesOnly`](#allowmanagedpermissionrulesonly), [`permissions.disableBypassPermissionsMode`](#permissions-disablebypasspermissionsmode) y otros bloqueos booleanos o de enumeración |6495| Bloqueos | Aplica el valor más estricto que establece cualquier fuente. Cuando ninguna fuente establece un valor estricto, aplica un valor más flexible solo de la fuente más alta | [`allowManagedPermissionRulesOnly`](#allowmanagedpermissionrulesonly), [`permissions.disableBypassPermissionsMode`](#permissions-disablebypasspermissionsmode) y otros bloqueos booleanos o de enumeración |

6403| Listas de restricciones | Toma la lista completa de la fuente más alta que la establece, sin agregar entradas de fuentes inferiores. Cuando la fuente más alta no establece una, la toma completa de la siguiente fuente hacia abajo | [`availableModels`](#availablemodels), [`allowedMcpServers`](#allowedmcpservers), [`strictKnownMarketplaces`](#strictknownmarketplaces), [`allowedChannelPlugins`](#allowedchannelplugins) y la cadena [`fallbackModel`](#fallbackmodel) |6496| Listas de restricciones | Toma la lista completa de la fuente más alta que la establece, sin agregar entradas de fuentes inferiores. Cuando la fuente más alta no establece una, la toma completa de la siguiente fuente hacia abajo | [`availableModels`](#availablemodels), [`allowedMcpServers`](#allowedmcpservers), [`allowedProviders`](#allowedproviders), [`strictKnownMarketplaces`](#strictknownmarketplaces), [`allowedChannelPlugins`](#allowedchannelplugins) y la cadena [`fallbackModel`](#fallbackmodel) |

6404| Valores tomados completos | Toma el valor completo de la fuente más alta que lo establece, sin combinar entradas o campos de fuentes inferiores. Cuando la fuente más alta no lo establece, lo toma completo de la siguiente fuente hacia abajo | [`sandbox.credentials.awsPairs`](#sandbox-credentials-awspairs), [`sandbox.ripgrep`](#sandbox-ripgrep) |6497| Valores tomados completos | Toma el valor completo de la fuente más alta que lo establece, sin combinar entradas o campos de fuentes inferiores. Cuando la fuente más alta no lo establece, lo toma completo de la siguiente fuente hacia abajo | [`sandbox.credentials.awsPairs`](#sandbox-credentials-awspairs), [`sandbox.ripgrep`](#sandbox-ripgrep) |

6405| Servidores MCP proporcionados | Combina los nombres de servidor de todas las fuentes. Cuando dos fuentes establecen el mismo nombre, aplica la entrada completa de la fuente más alta | [`managedMcpServers`](#managedmcpservers) |6498| Servidores MCP proporcionados | Combina los nombres de servidor de todas las fuentes. Cuando dos fuentes establecen el mismo nombre, aplica la entrada completa de la fuente más alta | [`managedMcpServers`](#managedmcpservers) |

6406| Leer solo de la fuente de mayor prioridad | Lee la clave solo de la fuente de mayor prioridad que lleva una clave de política, por lo que el valor de una fuente inferior se ignora incluso cuando la fuente más alta no establece ninguno | [`apiKeyHelper`](#apikeyhelper), [`awsAuthRefresh`](#awsauthrefresh), [`awsCredentialExport`](#awscredentialexport), [`gcpAuthRefresh`](#gcpauthrefresh), [`otelHeadersHelper`](#otelheadershelper), `proxyAuthHelper`, [`forceLoginOrgUUID`](#forceloginorguuid), los valores `"claudeai"` y `"console"` de [`forceLoginMethod`](#forceloginmethod), [`parentSettingsBehavior`](#parentsettingsbehavior), [`modelPicker`](#modelpicker), [`policyHelper`](#policyhelper), [`permissions.defaultMode`](#permissions-defaultmode) |6499| Leer solo de la fuente de mayor prioridad | Lee la clave solo de la fuente de mayor prioridad que lleva una clave de política, por lo que el valor de una fuente inferior se ignora incluso cuando la fuente más alta no establece ninguno | [`apiKeyHelper`](#apikeyhelper), [`awsAuthRefresh`](#awsauthrefresh), [`awsCredentialExport`](#awscredentialexport), [`gcpAuthRefresh`](#gcpauthrefresh), [`otelHeadersHelper`](#otelheadershelper), `proxyAuthHelper`, [`forceLoginOrgUUID`](#forceloginorguuid), los valores `"claudeai"` y `"console"` de [`forceLoginMethod`](#forceloginmethod), [`parentSettingsBehavior`](#parentsettingsbehavior), [`modelPicker`](#modelpicker), [`policyHelper`](#policyhelper), [`permissions.defaultMode`](#permissions-defaultmode) |


6414* **[`policyHelper`](#policyhelper)**: Claude Code la honra solo cuando la fuente más alta que lleva una clave de política es una política MDM o un archivo de configuraciones administradas, por lo que bajo configuraciones administradas por el servidor no se aplica.6507* **[`policyHelper`](#policyhelper)**: Claude Code la honra solo cuando la fuente más alta que lleva una clave de política es una política MDM o un archivo de configuraciones administradas, por lo que bajo configuraciones administradas por el servidor no se aplica.

6415* **[`modelOverrides`](#modeloverrides)**: se empareja con `availableModels`. Claude Code toma `modelOverrides` de la fuente más alta que lo establece, a menos que una fuente más alta establezca `availableModels` sin `modelOverrides`. En ese caso ignora `modelOverrides` de todas las fuentes.6508* **[`modelOverrides`](#modeloverrides)**: se empareja con `availableModels`. Claude Code toma `modelOverrides` de la fuente más alta que lo establece, a menos que una fuente más alta establezca `availableModels` sin `modelOverrides`. En ese caso ignora `modelOverrides` de todas las fuentes.

6416* **[`forceLoginGatewayUrl`](#forcelogingatewayurl), [`gatewayInternalNetworks`](#gatewayinternalnetworks) y el valor `"gateway"` de [`forceLoginMethod`](#forceloginmethod)**: Claude Code nunca los lee de configuraciones administradas por el servidor, por lo que un valor allí ni se aplica ni oculta uno establecido en una política MDM o archivo de configuraciones administradas. Entre las fuentes de administrador en la máquina, solo la de mayor rango que lleva una clave de política los suministra, independientemente de si las configuraciones administradas por el servidor también están presentes.6509* **[`forceLoginGatewayUrl`](#forcelogingatewayurl), [`gatewayInternalNetworks`](#gatewayinternalnetworks) y el valor `"gateway"` de [`forceLoginMethod`](#forceloginmethod)**: Claude Code nunca los lee de configuraciones administradas por el servidor, por lo que un valor allí ni se aplica ni oculta uno establecido en una política MDM o archivo de configuraciones administradas. Entre las fuentes de administrador en la máquina, solo la de mayor rango que lleva una clave de política los suministra, independientemente de si las configuraciones administradas por el servidor también están presentes.

6510* **[`allowedProviders`](#allowedproviders)**: después de la regla de la tabla, la lista propia de la máquina aún limita el resultado, como su nota de Alcance de entrada indica.

6417 6511 

6418Para confirmar qué fuentes se combinaron en una máquina, ejecute `/status` y [lea la línea `Setting sources`](/docs/es/managed-settings#read-the-source-in-/status).6512Para confirmar qué fuentes se combinaron en una máquina, ejecute `/status` y [lea la línea `Setting sources`](/docs/es/managed-settings#read-the-source-in-/status).

6419 6513 

skills.md +1 −1

Details

740 740 

741* **Directorio de trabajo**: Claude Code ejecuta cada comando en el directorio de trabajo actual del shell de la sesión. Ese directorio se mueve cuando Claude ejecuta `cd`. Use [`${CLAUDE_SKILL_DIR}` o `${CLAUDE_PROJECT_DIR}`](#available-string-substitutions) en rutas que deben resolverse de la misma manera cada vez.741* **Directorio de trabajo**: Claude Code ejecuta cada comando en el directorio de trabajo actual del shell de la sesión. Ese directorio se mueve cuando Claude ejecuta `cd`. Use [`${CLAUDE_SKILL_DIR}` o `${CLAUDE_PROJECT_DIR}`](#available-string-substitutions) en rutas que deben resolverse de la misma manera cada vez.

742* **stderr**: con el shell `bash` predeterminado, Claude Code fusiona stderr en stdout. Cualquier cosa que el comando escriba en stderr aparece en el texto inyectado.742* **stderr**: con el shell `bash` predeterminado, Claude Code fusiona stderr en stdout. Cualquier cosa que el comando escriba en stderr aparece en el texto inyectado.

743* **Tiempo de espera**: cada comando se ejecuta bajo el [tiempo de espera](/docs/es/tools-reference#timeout-and-output-limits) predeterminado de 2 minutos de la herramienta Bash. Cuando la herramienta Bash [mueve un comando que agotó el tiempo de espera al fondo](/docs/es/tools-reference#background-commands), la skill aún se renderiza. El texto inyectado informa el movimiento y nombra la tarea de fondo y el archivo que recopila la salida del comando. Cuando el comando es uno que la herramienta Bash nunca pone automáticamente en segundo plano, Claude Code lo mata en el tiempo de espera. Esa falla [aborta la invocación](#when-an-injected-command-fails).743* **Tiempo de espera**: cada comando se ejecuta bajo el [tiempo de espera](/docs/es/tools-reference#timeout-and-output-limits) predeterminado de 2 minutos de la herramienta Bash. Cuando la herramienta Bash [mueve un comando que agotó el tiempo de espera al fondo](/docs/es/tools-reference#foreground-commands-that-move-to-the-background), la skill aún se renderiza. El texto inyectado informa el movimiento y nombra la tarea de fondo y el archivo que recopila la salida del comando. Cuando el comando es uno que la herramienta Bash nunca pone automáticamente en segundo plano, Claude Code lo mata en el tiempo de espera. Esa falla [aborta la invocación](#when-an-injected-command-fails).

744* **Tamaño de salida**: la salida más allá del techo en línea de la herramienta Bash llega como una ruta de archivo más una vista previa corta, no texto truncado. [Output limits](/docs/es/tools-reference#output-limits) cubre el techo y cómo ajustar cada límite.744* **Tamaño de salida**: la salida más allá del techo en línea de la herramienta Bash llega como una ruta de archivo más una vista previa corta, no texto truncado. [Output limits](/docs/es/tools-reference#output-limits) cubre el techo y cómo ajustar cada límite.

745 745 

746La herramienta PowerShell aplica el mismo comportamiento de tiempo de espera, puesta en segundo plano y techo de salida a los comandos que ejecuta. Consulte la sección [herramienta PowerShell](/docs/es/tools-reference#powershell-tool) para obtener sus detalles específicos.746La herramienta PowerShell aplica el mismo comportamiento de tiempo de espera, puesta en segundo plano y techo de salida a los comandos que ejecuta. Consulte la sección [herramienta PowerShell](/docs/es/tools-reference#powershell-tool) para obtener sus detalles específicos.

statusline.md +7 −7

Details

20Aquí hay un ejemplo de una [línea de estado de múltiples líneas](#display-multiple-lines) que muestra información de git en la primera línea y una barra de contexto codificada por colores en la segunda.20Aquí hay un ejemplo de una [línea de estado de múltiples líneas](#display-multiple-lines) que muestra información de git en la primera línea y una barra de contexto codificada por colores en la segunda.

21 21 

22<Frame>22<Frame>

23 <img src="https://mintcdn.com/claude-code/nibzesLaJVh4ydOq/images/statusline-multiline.png?fit=max&auto=format&n=nibzesLaJVh4ydOq&q=85&s=60f11387658acc9ff75158ae85f2ac87" alt="Una línea de estado de múltiples líneas que muestra el nombre del modelo, directorio, rama de git en la primera línea, y una barra de progreso de uso de contexto con costo y duración en la segunda línea" width="776" height="212" data-path="images/statusline-multiline.png" />23 <img src="https://mintcdn.com/claude-code/HDAmBwgbrZVk0pOt/images/statusline-multiline.png?fit=max&auto=format&n=HDAmBwgbrZVk0pOt&q=85&s=a9d0a2fe8e446d80b1abc46da3f93270" alt="Una línea de estado de múltiples líneas que muestra el nombre del modelo, directorio, rama de git en la primera línea, y una barra de progreso de uso de contexto con costo y duración en la segunda línea" width="1224" height="262" data-path="images/statusline-multiline.png" />

24</Frame>24</Frame>

25 25 

26Esta página le guía a través de [configurar una línea de estado básica](#set-up-a-status-line), explica [cómo fluyen los datos](#how-status-lines-work) desde Claude Code a su script, enumera [todos los campos que puede mostrar](#available-data), y proporciona [ejemplos listos para usar](#examples) para patrones comunes como estado de git, seguimiento de costos y barras de progreso.26Esta página le guía a través de [configurar una línea de estado básica](#set-up-a-status-line), explica [cómo fluyen los datos](#how-status-lines-work) desde Claude Code a su script, enumera [todos los campos que puede mostrar](#available-data), y proporciona [ejemplos listos para usar](#examples) para patrones comunes como estado de git, seguimiento de costos y barras de progreso.


93Estos ejemplos usan scripts de Bash, que funcionan en macOS y Linux. En Windows, consulta [Configuración de Windows](#windows-configuration) para ejemplos de PowerShell y Git Bash.93Estos ejemplos usan scripts de Bash, que funcionan en macOS y Linux. En Windows, consulta [Configuración de Windows](#windows-configuration) para ejemplos de PowerShell y Git Bash.

94 94 

95<Frame>95<Frame>

96 <img src="https://mintcdn.com/claude-code/nibzesLaJVh4ydOq/images/statusline-quickstart.png?fit=max&auto=format&n=nibzesLaJVh4ydOq&q=85&s=696445e59ca0059213250651ad23db6b" alt="Una línea de estado que muestra el nombre del modelo, directorio y porcentaje de contexto" width="726" height="164" data-path="images/statusline-quickstart.png" />96 <img src="https://mintcdn.com/claude-code/HDAmBwgbrZVk0pOt/images/statusline-quickstart.png?fit=max&auto=format&n=HDAmBwgbrZVk0pOt&q=85&s=88a7eab9c1038dd098ee8e284d96b7e6" alt="Una línea de estado que muestra el nombre del modelo, directorio y porcentaje de contexto" width="1224" height="224" data-path="images/statusline-quickstart.png" />

97</Frame>97</Frame>

98 98 

99<Steps>99<Steps>


444Muestra el modelo actual y el uso de la ventana de contexto con una barra de progreso visual. Cada script lee JSON desde stdin, extrae el campo `used_percentage` y construye una barra de 10 caracteres donde los bloques rellenos (▓) representan el uso:444Muestra el modelo actual y el uso de la ventana de contexto con una barra de progreso visual. Cada script lee JSON desde stdin, extrae el campo `used_percentage` y construye una barra de 10 caracteres donde los bloques rellenos (▓) representan el uso:

445 445 

446<Frame>446<Frame>

447 <img src="https://mintcdn.com/claude-code/nibzesLaJVh4ydOq/images/statusline-context-window-usage.png?fit=max&auto=format&n=nibzesLaJVh4ydOq&q=85&s=15b58ab3602f036939145dde3165c6f7" alt="Una línea de estado que muestra el nombre del modelo y una barra de progreso con porcentaje" width="448" height="152" data-path="images/statusline-context-window-usage.png" />447 <img src="https://mintcdn.com/claude-code/HDAmBwgbrZVk0pOt/images/statusline-context-window-usage.png?fit=max&auto=format&n=HDAmBwgbrZVk0pOt&q=85&s=f3918a549912dc47e90f2b69e68bc847" alt="Una línea de estado que muestra el nombre del modelo y una barra de progreso con porcentaje" width="1224" height="224" data-path="images/statusline-context-window-usage.png" />

448</Frame>448</Frame>

449 449 

450<CodeGroup>450<CodeGroup>


513Muestra la rama de git con indicadores codificados por colores para archivos preparados y modificados. Este script usa [códigos de escape ANSI](https://en.wikipedia.org/wiki/ANSI_escape_code#Colors) para colores de terminal: `\033[32m` es verde, `\033[33m` es amarillo, y `\033[0m` restablece al predeterminado.513Muestra la rama de git con indicadores codificados por colores para archivos preparados y modificados. Este script usa [códigos de escape ANSI](https://en.wikipedia.org/wiki/ANSI_escape_code#Colors) para colores de terminal: `\033[32m` es verde, `\033[33m` es amarillo, y `\033[0m` restablece al predeterminado.

514 514 

515<Frame>515<Frame>

516 <img src="https://mintcdn.com/claude-code/nibzesLaJVh4ydOq/images/statusline-git-context.png?fit=max&auto=format&n=nibzesLaJVh4ydOq&q=85&s=e656f34f90d1d9a1d0e220988914345f" alt="Una línea de estado que muestra modelo, directorio, rama de git e indicadores codificados por colores para archivos preparados y modificados" width="742" height="178" data-path="images/statusline-git-context.png" />516 <img src="https://mintcdn.com/claude-code/HDAmBwgbrZVk0pOt/images/statusline-git-context.png?fit=max&auto=format&n=HDAmBwgbrZVk0pOt&q=85&s=f13c190724d9ec7188c17cd2f98b7bf4" alt="Una línea de estado que muestra modelo, directorio, rama de git e indicadores codificados por colores para archivos preparados y modificados" width="1224" height="224" data-path="images/statusline-git-context.png" />

517</Frame>517</Frame>

518 518 

519Cada script verifica si el directorio actual es un repositorio de git, cuenta archivos preparados y modificados, y muestra indicadores codificados por colores:519Cada script verifica si el directorio actual es un repositorio de git, cuenta archivos preparados y modificados, y muestra indicadores codificados por colores:


611Cada script formatea el costo como moneda y convierte milisegundos a minutos y segundos:611Cada script formatea el costo como moneda y convierte milisegundos a minutos y segundos:

612 612 

613<Frame>613<Frame>

614 <img src="https://mintcdn.com/claude-code/nibzesLaJVh4ydOq/images/statusline-cost-tracking.png?fit=max&auto=format&n=nibzesLaJVh4ydOq&q=85&s=e3444a51fe6f3440c134bd5f1f08ad29" alt="Una línea de estado que muestra el nombre del modelo, costo de sesión y duración" width="588" height="180" data-path="images/statusline-cost-tracking.png" />614 <img src="https://mintcdn.com/claude-code/HDAmBwgbrZVk0pOt/images/statusline-cost-tracking.png?fit=max&auto=format&n=HDAmBwgbrZVk0pOt&q=85&s=925f7024c3b38be0f0eca63564bfb52f" alt="Una línea de estado que muestra el nombre del modelo, costo de sesión y duración" width="1224" height="224" data-path="images/statusline-cost-tracking.png" />

615</Frame>615</Frame>

616 616 

617<CodeGroup>617<CodeGroup>


672Tu script puede generar múltiples líneas para crear una pantalla más rica.672Tu script puede generar múltiples líneas para crear una pantalla más rica.

673 673 

674<Frame>674<Frame>

675 <img src="https://mintcdn.com/claude-code/nibzesLaJVh4ydOq/images/statusline-multiline.png?fit=max&auto=format&n=nibzesLaJVh4ydOq&q=85&s=60f11387658acc9ff75158ae85f2ac87" alt="Una línea de estado de múltiples líneas que muestra el nombre del modelo, directorio, rama de git en la primera línea, y una barra de progreso de uso de contexto con costo y duración en la segunda línea" width="776" height="212" data-path="images/statusline-multiline.png" />675 <img src="https://mintcdn.com/claude-code/HDAmBwgbrZVk0pOt/images/statusline-multiline.png?fit=max&auto=format&n=HDAmBwgbrZVk0pOt&q=85&s=a9d0a2fe8e446d80b1abc46da3f93270" alt="Una línea de estado de múltiples líneas que muestra el nombre del modelo, directorio, rama de git en la primera línea, y una barra de progreso de uso de contexto con costo y duración en la segunda línea" width="1224" height="262" data-path="images/statusline-multiline.png" />

676</Frame>676</Frame>

677 677 

678Este ejemplo combina varias técnicas: colores basados en umbrales (verde por debajo del 70%, amarillo 70-89%, rojo 90%+), una barra de progreso e información de rama de git. Cada declaración `print` o `echo` crea una fila separada:678Este ejemplo combina varias técnicas: colores basados en umbrales (verde por debajo del 70%, amarillo 70-89%, rojo 90%+), una barra de progreso e información de rama de git. Cada declaración `print` o `echo` crea una fila separada:


781Este ejemplo crea un enlace clickeable a tu repositorio de GitHub. Mantén presionado Cmd (macOS) o Ctrl (Windows/Linux) y haz clic para abrir el enlace en tu navegador.781Este ejemplo crea un enlace clickeable a tu repositorio de GitHub. Mantén presionado Cmd (macOS) o Ctrl (Windows/Linux) y haz clic para abrir el enlace en tu navegador.

782 782 

783<Frame>783<Frame>

784 <img src="https://mintcdn.com/claude-code/nibzesLaJVh4ydOq/images/statusline-links.png?fit=max&auto=format&n=nibzesLaJVh4ydOq&q=85&s=4bcc6e7deb7cf52f41ab85a219b52661" alt="Una línea de estado que muestra un enlace clickeable a un repositorio de GitHub" width="726" height="198" data-path="images/statusline-links.png" />784 <img src="https://mintcdn.com/claude-code/HDAmBwgbrZVk0pOt/images/statusline-links.png?fit=max&auto=format&n=HDAmBwgbrZVk0pOt&q=85&s=4778a144a28cb498c99d5fa018bb374a" alt="Una línea de estado que muestra un enlace clickeable a un repositorio de GitHub" width="1224" height="224" data-path="images/statusline-links.png" />

785</Frame>785</Frame>

786 786 

787Cada script obtiene la URL remota de git, convierte el formato SSH a HTTPS, y envuelve el nombre del repositorio en códigos de escape OSC 8. La versión de Bash usa `printf '%b'` que interpreta escapes de barra invertida de manera más confiable que `echo -e` en diferentes shells:787Cada script obtiene la URL remota de git, convierte el formato SSH a HTTPS, y envuelve el nombre del repositorio en códigos de escape OSC 8. La versión de Bash usa `printf '%b'` que interpreta escapes de barra invertida de manera más confiable que `echo -e` en diferentes shells:

Details

253 253 

254Los equipos de seguridad pueden configurar permisos administrados para lo que Claude Code puede y no puede hacer, que no pueden ser sobrescritos por la configuración local. [Obtenga más información](/docs/es/security).254Los equipos de seguridad pueden configurar permisos administrados para lo que Claude Code puede y no puede hacer, que no pueden ser sobrescritos por la configuración local. [Obtenga más información](/docs/es/security).

255 255 

256Para limitar cuáles de estas opciones de implementación puede usar una máquina administrada, establezca [`allowedProviders`](/docs/es/settings-reference#allowedproviders) en la configuración administrada. Por ejemplo, `["bedrock"]` permite Amazon Bedrock y nada más; una flota de Bedrock que también habilita el punto final de Mantle enumera `"mantle"` también. La entrada indica qué variables de punto final también necesitan un pin de `env` administrado. Requiere Claude Code v2.1.285 o posterior.

257 

256<h3 id="leverage-mcp-for-integrations">258<h3 id="leverage-mcp-for-integrations">

257 Usar MCP para integraciones259 Usar MCP para integraciones

258</h3>260</h3>

tools-reference.md +39 −24

Details

154 Qué persiste entre comandos154 Qué persiste entre comandos

155</h3>155</h3>

156 156 

157* Cuando Claude ejecuta `cd` en la sesión principal, el nuevo directorio de trabajo se mantiene en comandos Bash posteriores siempre que permanezca dentro del directorio del proyecto o un [directorio de trabajo adicional](/docs/es/permissions#working-directories) que agregó con `--add-dir`, `/add-dir`, o `additionalDirectories` en la configuración. Esto incluye comandos que Claude ejecuta en respuesta a sus mensajes posteriores.157* Cuando Claude ejecuta `cd` en la sesión principal, el nuevo directorio de trabajo se mantiene en los comandos Bash posteriores siempre que permanezca dentro del directorio del proyecto o un [directorio de trabajo adicional](/docs/es/permissions#working-directories) que agregó con `--add-dir`, `/add-dir`, o `additionalDirectories` en la configuración. Esto incluye comandos que Claude ejecuta en respuesta a sus mensajes posteriores.

158 * Las sesiones de subagentes nunca mantienen cambios de directorio de trabajo.158 * Las sesiones de subagentes nunca mantienen cambios de directorio de trabajo.

159 * Si `cd` sale de esos directorios, Claude Code se reinicia al directorio del proyecto y añade `Shell cwd was reset to <dir>` al resultado de la herramienta.159 * Si `cd` sale de esos directorios, Claude Code se reinicia al directorio del proyecto y añade `Shell cwd was reset to <dir>` al resultado de la herramienta.

160 * Para desactivar este mantenimiento de modo que cada comando Bash comience en el directorio del proyecto, establezca `CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR=1`.160 * Para desactivar este mantenimiento de modo que cada comando Bash comience en el directorio del proyecto, establezca `CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR=1`.

161* Las variables de entorno no persisten. Un `export` en un comando no estará disponible en el siguiente.161* Las variables de entorno no persisten. Un `export` en un comando no estará disponible en el siguiente.

162* Los alias y funciones de shell definidos en su archivo de inicio de shell están disponibles. Al iniciar la sesión, Claude Code obtiene `~/.zshrc`, `~/.bashrc`, o `~/.profile` según su shell, captura los alias, funciones y opciones de shell resultantes, y los aplica a cada comando Bash.162* Los alias y funciones de shell definidos en su archivo de inicio de shell están disponibles. Al inicio de la sesión, Claude Code obtiene `~/.zshrc`, `~/.bashrc`, o `~/.profile` dependiendo de su shell, captura los alias, funciones y opciones de shell resultantes, y los aplica a cada comando Bash.

163 163 

164Active su virtualenv o entorno conda antes de lanzar Claude Code. Para hacer que las variables de entorno persistan entre comandos Bash, establezca [`CLAUDE_ENV_FILE`](/docs/es/env-vars) en un script de shell antes de lanzar Claude Code, o use un [hook SessionStart](/docs/es/hooks#persist-environment-variables) para poblarlo dinámicamente.164Active su virtualenv o entorno conda antes de lanzar Claude Code. Para hacer que las variables de entorno persistan entre comandos Bash, establezca [`CLAUDE_ENV_FILE`](/docs/es/env-vars) en un script de shell antes de lanzar Claude Code, o use un [hook SessionStart](/docs/es/hooks#persist-environment-variables) para poblarlo dinámicamente.

165 165 


167 Límites de tiempo de espera y salida167 Límites de tiempo de espera y salida

168</h3>168</h3>

169 169 

170Cada comando se ejecuta bajo un tiempo de espera, y Claude lo gestiona: cuando necesita más tiempo que el predeterminado para un comando, pasa el parámetro `timeout` con esa llamada. Usted nunca establece un tiempo de espera por comando.170Cada comando se ejecuta bajo un tiempo de espera, y Claude lo gestiona: cuando necesita más tiempo que el predeterminado para un comando, pasa el parámetro `timeout` con esa llamada. Nunca establece un tiempo de espera por comando.

171 171 

172Dos [variables de entorno](/docs/es/env-vars) controlan lo que Claude obtiene para un comando que se ejecuta en primer plano:172Dos [variables de entorno](/docs/es/env-vars) controlan lo que Claude obtiene para un comando que se ejecuta en primer plano:

173 173 

174* `BASH_DEFAULT_TIMEOUT_MS` — el predeterminado cuando Claude no pasa tiempo de espera; dos minutos de forma predeterminada174* `BASH_DEFAULT_TIMEOUT_MS` — el predeterminado cuando Claude no pasa ningún tiempo de espera; dos minutos de forma predeterminada

175* `BASH_MAX_TIMEOUT_MS` — con el predeterminado, establece el límite máximo que limita lo que Claude solicita: el límite máximo efectivo es el mayor de los dos, diez minutos de forma predeterminada175* `BASH_MAX_TIMEOUT_MS` — con el predeterminado, establece el límite máximo que limita lo que Claude solicita: el límite máximo efectivo es el mayor de los dos, diez minutos de forma predeterminada

176 176 

177Para un comando que Claude inicia en segundo plano, `timeout` en su lugar establece cuánto tiempo el comando puede ejecutarse allí, con el predeterminado y máximo separados descritos bajo [Comandos en segundo plano](#background-commands). La [herramienta PowerShell](#powershell-tool) sigue las mismas reglas de tiempo de espera y lee las mismas dos variables.177Para un comando que Claude inicia en segundo plano, `timeout` en su lugar establece cuánto tiempo puede ejecutarse el comando allí, con el predeterminado y máximo separados descritos en [Límite de tiempo para comandos en segundo plano](#time-limit-for-background-commands). La [herramienta PowerShell](#powershell-tool) sigue las mismas reglas de tiempo de espera y lee las mismas dos variables.

178 178 

179<h4 id="output-limits">179<h4 id="output-limits">

180 Límites de salida180 Límites de salida


189 189 

190Un comando que sale con código 1 cuenta como un resultado válido para la herramienta Bash solo cuando Claude Code reconoce el código de salida 1 como un resultado benigno para ese comando: `grep`, `rg`, `egrep`, `fgrep`, `find`, `diff`, `test`, y `[`, más `git diff` y `git grep`. Todos los demás comandos que salen con código 1 cuentan como un fallo, incluso cuando el código de salida 1 es un resultado informativo benigno: sin coincidencias para `pgrep` y `jq -e`, archivos que difieren para `cmp`.190Un comando que sale con código 1 cuenta como un resultado válido para la herramienta Bash solo cuando Claude Code reconoce el código de salida 1 como un resultado benigno para ese comando: `grep`, `rg`, `egrep`, `fgrep`, `find`, `diff`, `test`, y `[`, más `git diff` y `git grep`. Todos los demás comandos que salen con código 1 cuentan como un fallo, incluso cuando el código de salida 1 es un resultado informativo benigno: sin coincidencias para `pgrep` y `jq -e`, archivos que difieren para `cmp`.

191 191 

192[`BASH_MAX_OUTPUT_LENGTH`](/docs/es/env-vars) establece cuántos caracteres de salida Claude Code lee desde el archivo de trabajo hacia el resultado de un comando: 30.000 de forma predeterminada, hasta un límite máximo fijo de 150.000. Aumente esto cuando sus comandos se desborden rutinariamente de esa ventana, como una compilación detallada o un registro de suite de pruebas completo. Aumentarlo amplía la ventana de lectura, que también es la ventana desde la cual se corta el extracto de un comando fallido. No aumenta los límites en línea: un resultado válido sobre el límite en línea llega como una ruta de archivo más vista previa independientemente de esta variable.192[`BASH_MAX_OUTPUT_LENGTH`](/docs/es/env-vars) establece cuántos caracteres de salida Claude Code lee desde el archivo de trabajo hacia el resultado de un comando: 30.000 de forma predeterminada, hasta un límite máximo fijo de 150.000. Auméntelo cuando sus comandos se desborden rutinariamente de esa ventana, como una compilación detallada o un registro completo de suite de pruebas. Aumentarlo amplía la ventana de lectura, que también es la ventana de la que se corta el extracto de un comando fallido. No aumenta los límites en línea: un resultado válido sobre el límite en línea llega como una ruta de archivo más vista previa independientemente de esta variable.

193 193 

194Para cambiar cuánta salida válida recibe Claude en línea, establezca la configuración [`bashOutputMaxChars`](/docs/es/settings-reference#bashoutputmaxchars) en su lugar, hasta 128.000 caracteres. Dimensiona el límite en línea y la ventana de lectura juntos, y Claude Code ignora `BASH_MAX_OUTPUT_LENGTH`. Requiere Claude Code v2.1.261 o posterior.194Para cambiar cuánta salida válida recibe Claude en línea, establezca la configuración [`bashOutputMaxChars`](/docs/es/settings-reference#bashoutputmaxchars) en su lugar, hasta 128.000 caracteres. Dimensiona el límite en línea y la ventana de lectura juntos, y Claude Code ignora `BASH_MAX_OUTPUT_LENGTH`. Requiere Claude Code v2.1.261 o posterior.

195 195 


199 199 

200Para procesos de larga duración como servidores de desarrollo o compilaciones de vigilancia, Claude puede establecer `run_in_background: true` para iniciar el comando como una tarea en segundo plano y continuar trabajando mientras se ejecuta. Liste y detenga tareas en segundo plano con `/tasks`. Después de detener una allí, o desde un cliente conectado como la aplicación de escritorio, Claude continúa en lugar de esperar. Si un subagente inició el comando, es ese subagente el que continúa.200Para procesos de larga duración como servidores de desarrollo o compilaciones de vigilancia, Claude puede establecer `run_in_background: true` para iniciar el comando como una tarea en segundo plano y continuar trabajando mientras se ejecuta. Liste y detenga tareas en segundo plano con `/tasks`. Después de detener una allí, o desde un cliente conectado como la aplicación de escritorio, Claude continúa en lugar de esperar. Si un subagente inició el comando, es ese subagente el que continúa.

201 201 

202Un comando que un [subagente en primer plano](/docs/es/sub-agents#run-subagents-in-foreground-or-background) inició se detiene cuando ese subagente da su respuesta final, ya sea que haya terminado, fallado o fue interrumpido. Un comando que la conversación principal o un subagente en segundo plano inició sigue ejecutándose después de una respuesta final, hasta que sale, se detiene, o alcanza su límite de tiempo. En modo no interactivo con la bandera `-p`, [los comandos en segundo plano terminan poco después del resultado final de la ejecución](/docs/es/headless#background-tasks-at-exit).202<h4 id="when-a-background-command-stops">

203 Cuándo se detiene un comando en segundo plano

204</h4>

205 

206Un comando que un [subagente en primer plano](/docs/es/sub-agents#run-subagents-in-foreground-or-background) inició se detiene cuando finaliza la ejecución de ese subagente, ya sea que se haya completado, fallado o fue interrumpido. Un comando que la conversación principal o un subagente en segundo plano inició continúa ejecutándose después de una respuesta final, hasta que sale, se detiene o alcanza su [límite de tiempo](#time-limit-for-background-commands). En modo no interactivo con la bandera `-p`, [los comandos en segundo plano terminan poco después del resultado final de la ejecución](/docs/es/headless#background-tasks-at-exit).

207 

208<h4 id="time-limit-for-background-commands">

209 Límite de tiempo para comandos en segundo plano

210</h4>

203 211 

204Los comandos Bash y PowerShell en segundo plano tienen un límite de tiempo, contado desde el momento en que el comando entra en segundo plano:212Los comandos Bash y PowerShell en segundo plano tienen un límite de tiempo, contado desde el momento en que el comando entra en segundo plano:

205 213 

206* Un comando que Claude inicia en segundo plano obtiene 30 minutos, o el `timeout` que Claude pasa con `run_in_background`, hasta un máximo de 2 horas214* Un comando que Claude inicia en segundo plano obtiene 30 minutos, o el `timeout` que Claude pasa con `run_in_background`, hasta un máximo de 2 horas

207* Un comando que comienza en primer plano y luego se mueve al segundo plano, por ejemplo con `Ctrl+B` o en su tiempo de espera, obtiene 30 minutos desde el movimiento215* Un comando que comienza en primer plano y luego se mueve a segundo plano, por ejemplo con `Ctrl+B` o en su tiempo de espera, obtiene 30 minutos desde el movimiento

208 216 

209Dos [variables de entorno](/docs/es/env-vars) elevan estos límites, para comandos Bash y PowerShell por igual. Ambas toman milisegundos, y ninguna puede acortar un límite: un valor más bajo deja el predeterminado de 30 minutos y el máximo de 2 horas en su lugar.217Cuando un comando en segundo plano alcanza su límite de tiempo, Claude Code lo detiene y le dice a Claude por qué, y Claude puede iniciar el comando nuevamente con un `timeout` más largo si el trabajo aún lo necesita. El aviso de detención dice `Background command "<description>" was stopped after reaching its background time limit`.

218 

219<h4 id="raise-the-time-limit-for-background-commands">

220 Aumente el límite de tiempo para comandos en segundo plano

221</h4>

222 

223Dos [variables de entorno](/docs/es/env-vars) aumentan estos límites, para comandos Bash y PowerShell por igual. Ambas toman milisegundos, y ninguna puede acortar un límite: un valor más bajo deja el predeterminado de 30 minutos y el máximo de 2 horas en su lugar.

210 224 

211* Establezca `BASH_DEFAULT_TIMEOUT_MS` por encima de `1800000` para reemplazar el predeterminado de 30 minutos con ese valor, tanto para comandos que Claude inicia sin un `timeout` como para comandos movidos225* Establezca `BASH_DEFAULT_TIMEOUT_MS` por encima de `1800000` para reemplazar el predeterminado de 30 minutos con ese valor, tanto para comandos que Claude inicia sin un `timeout` como para comandos movidos

212* Establezca `BASH_MAX_TIMEOUT_MS` por encima de `7200000` para elevar el máximo de 2 horas a ese valor. Establecer `BASH_DEFAULT_TIMEOUT_MS` por encima de `7200000` eleva el máximo de la misma manera226* Establezca `BASH_MAX_TIMEOUT_MS` por encima de `7200000` para aumentar el máximo de 2 horas a ese valor. Establecer `BASH_DEFAULT_TIMEOUT_MS` por encima de `7200000` aumenta el máximo de la misma manera

213 227 

214Cuando un comando en segundo plano alcanza su límite de tiempo, Claude Code lo detiene y le dice a Claude por qué, y Claude puede iniciar el comando nuevamente con un `timeout` más largo si el trabajo aún lo necesita. El aviso de parada dice `Background command "<description>" was stopped after reaching its background time limit`.228<h4 id="foreground-commands-that-move-to-the-background">

229 Comandos en primer plano que se mueven a segundo plano

230</h4>

215 231 

216Cuando un comando en primer plano alcanza su tiempo de espera sin terminar, Claude Code lo mueve al segundo plano en lugar de detenerlo, a menos que el comando comience con `sleep`. El límite de tiempo de un comando movido se cuenta desde el movimiento, y el comando movido de un subagente en primer plano aún se detiene cuando ese subagente da su respuesta final.232Cuando un comando en primer plano alcanza su tiempo de espera sin terminar, Claude Code lo mueve a segundo plano en lugar de detenerlo, a menos que el comando comience con `sleep`. El [límite de tiempo](#time-limit-for-background-commands) de un comando movido se cuenta desde el movimiento, y el comando movido de un subagente en primer plano aún se detiene cuando finaliza la ejecución de ese subagente.

217 233 

218Establecer [`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS=1`](/docs/es/env-vars#variables) desactiva el segundo plano automático junto con el resto de la funcionalidad de tareas en segundo plano.234Establecer [`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS=1`](/docs/es/env-vars#variables) desactiva el auto-backgrounding junto con el resto de la funcionalidad de tareas en segundo plano.

219 235 

220El resultado de un comando movido al segundo plano indica lo que sucedió:236El resultado de un comando movido a segundo plano indica lo que sucedió:

221 237 

222* Cuando el tiempo de espera activa el movimiento, el resultado lo reporta explícitamente: `Command did not complete within its 120s timeout and was moved to the background`, con los segundos coincidiendo con el tiempo de espera que se aplicó, seguido del ID de tarea y la ruta del archivo en el que se escribe la salida.238* Cuando el tiempo de espera desencadena el movimiento, el resultado lo reporta explícitamente: `Command did not complete within its 120s timeout and was moved to the background`, con los segundos coincidiendo con el tiempo de espera que se aplicó, seguido del ID de tarea y la ruta del archivo en el que se escribe la salida.

223* Un `cd`, `pushd`, `popd`, o `chdir` dentro de un comando que se mueve al segundo plano nunca se mantiene: el resultado indica `Session cwd remains <dir>; directory changes made by the backgrounded command do not apply to subsequent commands.`, por lo que Claude no actúa sobre un cambio de directorio que no sucedió.239* Un `cd`, `pushd`, `popd`, o `chdir` dentro de un comando que se mueve a segundo plano nunca se mantiene: el resultado indica `Session cwd remains <dir>; directory changes made by the backgrounded command do not apply to subsequent commands.`, por lo que Claude no actúa sobre un cambio de directorio que no sucedió.

224 240 

225<h3 id="memory-limit-on-linux-and-wsl">241<h3 id="memory-limit-on-linux-and-wsl">

226 Límite de memoria en Linux y WSL242 Límite de memoria en Linux y WSL

227</h3>243</h3>

228 244 

229En Linux y WSL, establezca [`CLAUDE_CODE_TOOL_MEMORY_LIMIT`](/docs/es/env-vars#variables) en un tamaño como `4G` para limitar la memoria que los comandos de herramientas Bash, PowerShell y [Monitor](#monitor-tool) pueden usar, de modo que una compilación descontrolada no consuma la memoria que el resto de la sesión necesita. Requiere Claude Code v2.1.233 o posterior. Antes de v2.1.246, los comandos de herramientas Monitor se ejecutaban fuera del límite.245En Linux y WSL, establezca [`CLAUDE_CODE_TOOL_MEMORY_LIMIT`](/docs/es/env-vars#variables) en un tamaño como `4G` para limitar la memoria que los comandos de las herramientas Bash, PowerShell y [Monitor](#monitor-tool) pueden usar, de modo que una compilación descontrolada no consuma la memoria que el resto de la sesión necesita. Requiere Claude Code v2.1.233 o posterior. Antes de v2.1.246, los comandos de la herramienta Monitor se ejecutaban fuera del límite.

230 246 

231* Escriba el tamaño como un número de bytes o con un sufijo `K`, `M`, `G`, o `T`. Establezca `0`, `off`, `false`, `no`, o `none` para desactivar el límite. Claude Code ignora cualquier otro valor que no pueda leer como un tamaño, como `4e9`.247* Escriba el tamaño como un número de bytes o con un sufijo `K`, `M`, `G`, o `T`. Establezca `0`, `off`, `false`, `no`, o `none` para desactivar el límite. Claude Code ignora cualquier otro valor que no pueda leer como un tamaño, como `4e9`.

232* Claude Code cuenta todos los comandos Bash, PowerShell y Monitor de una sesión contra el límite único, no cada comando por su cuenta.248* Claude Code cuenta todos los comandos Bash, PowerShell y Monitor de una sesión contra el límite único, no cada comando por su cuenta.

233* Claude Code aplica el límite con un cgroup de memoria. Cuando no puede configurar el cgroup, los comandos se ejecutan sin límite, y el registro de depuración de `claude --debug` indica por qué.249* Claude Code aplica el límite con un cgroup de memoria. Cuando no puede configurar el cgroup, los comandos se ejecutan sin límite, y el registro de depuración de `claude --debug` dice por qué.

234* Después de que el primer proceso que Claude Code inicia ha activado el límite, o lo ha desactivado debido a un valor desactivado o una configuración de cgroup fallida, Claude Code mantiene ese resultado hasta que reinicie. Para aplicar un valor cambiado o eliminado, o una configuración corregida, lance `claude` nuevamente.250* Después de que el primer proceso que Claude Code inicia haya activado el límite, o lo haya desactivado debido a un valor off o una configuración de cgroup fallida, Claude Code mantiene ese resultado hasta que relance. Para aplicar un valor cambiado o eliminado, o una configuración fija, lance `claude` nuevamente.

235* Cuando los comandos no pueden mantenerse bajo el límite, el kernel detiene un comando, y nada en su resultado nombra el límite.251* Cuando los comandos no pueden mantenerse bajo el límite, el kernel detiene un comando, y nada en su resultado nombra el límite.

236 252 

237Claude Code también puede contar otros tipos de procesos que inicia contra el mismo límite. Establezca [`CLAUDE_CODE_TOOL_MEMORY_CGROUP_EXCLUDE`](/docs/es/env-vars#variables) en una lista separada por comas de los tipos a eximir del límite; Claude Code aplica el límite a cada tipo que no esté en su lista. Establézcalo en `none` para limitar cada tipo, o en `all-new` para limitar solo comandos de herramientas Bash, PowerShell y Monitor. Requiere Claude Code v2.1.246 o posterior. Los tipos que puede nombrar:253Claude Code también puede contar otros tipos de procesos que inicia contra el mismo límite. Establezca [`CLAUDE_CODE_TOOL_MEMORY_CGROUP_EXCLUDE`](/docs/es/env-vars#variables) en una lista separada por comas de los tipos a eximir del límite; Claude Code aplica el límite a cada tipo que no esté en su lista. Establézcalo en `none` para limitar cada tipo, o en `all-new` para limitar solo los comandos de las herramientas Bash, PowerShell y Monitor. Requiere Claude Code v2.1.246 o posterior. Los tipos que puede nombrar:

238 254 

239* `mcp`: [servidores MCP](/docs/es/mcp) locales255* `mcp`: servidores [MCP](/docs/es/mcp) locales

240* `lsp`: [servidores de lenguaje](#lsp-tool-behavior)256* `lsp`: [servidores de lenguaje](#lsp-tool-behavior)

241* `hooks`: comandos de [hook](/docs/es/hooks)257* `hooks`: comandos de [hook](/docs/es/hooks)

242* `plugin`: comandos que ejecutan [plugins](/docs/es/plugins/overview)258* `plugin`: comandos que ejecutan [plugins](/docs/es/plugins/overview)


246Sea lo que sea que liste, estas reglas se aplican:262Sea lo que sea que liste, estas reglas se aplican:

247 263 

248* **Nombres desconocidos**: Claude Code ignora nombres que no reconoce264* **Nombres desconocidos**: Claude Code ignora nombres que no reconoce

249* **Bash, PowerShell y Monitor**: Claude Code mantiene comandos de herramientas Bash, PowerShell y Monitor bajo el límite sea lo que sea que liste265* **Variable no establecida**: Claude Code toma el conjunto de otros tipos limitados de la configuración que Anthropic entrega desde el servidor, y ese conjunto puede cambiar con el tiempo, así que establezca la variable cuando necesite un conjunto que no cambie

250* **Variable no establecida**: Claude Code toma el conjunto de otros tipos limitados de la configuración que Anthropic entrega desde el servidor, y ese conjunto puede cambiar con el tiempo, por lo que establezca la variable cuando necesite un conjunto que no cambie266* **Hooks de control de permisos**: incluso con cada tipo limitado, Claude Code excluye del límite un hook que puede bloquear o cambiar el resultado de una acción, y cualquier servidor MCP que tal hook llame, de modo que el kernel matando un hook de control de permisos no puede permitir la acción que estaba bloqueando

251* **Hooks de control de permisos**: incluso con cada tipo limitado, Claude Code excluye del límite un hook que puede bloquear o cambiar el resultado de una acción, y cualquier servidor MCP que tal hook llame, por lo que el kernel matando un hook de control de permisos no puede permitir la acción que estaba bloqueando

252 267 

253<h2 id="edit-tool-behavior">268<h2 id="edit-tool-behavior">

254 Comportamiento de la herramienta Edit269 Comportamiento de la herramienta Edit

ultrareview.md +1 −1

Details

66 66 

67En modo PR, el sandbox remoto clona la solicitud de extracción directamente desde el host en lugar de agrupar su árbol de trabajo local. El modo PR funciona con repositorios en `github.com` y en instancias de [GitHub Enterprise Server](/docs/es/github-enterprise-server) que un administrador ha conectado a Claude Code.67En modo PR, el sandbox remoto clona la solicitud de extracción directamente desde el host en lugar de agrupar su árbol de trabajo local. El modo PR funciona con repositorios en `github.com` y en instancias de [GitHub Enterprise Server](/docs/es/github-enterprise-server) que un administrador ha conectado a Claude Code.

68 68 

69Para repositorios en `github.com`, el sandbox clona con la cuenta de GitHub conectada a su cuenta de Claude, por lo que la cuenta debe poder leer el repositorio del PR. Claude Code verifica esto antes de crear la sesión en la nube, a menos que haya establecido [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/es/env-vars#variables), y rechaza el lanzamiento cuando [ninguna cuenta está conectada](/docs/es/errors#no-github-account-is-connected-to-your-claude-account) o [la cuenta no puede ver el repositorio](/docs/es/errors#your-connected-github-account-cant-see-the-repository); el rechazo nombra la solución. Antes de v2.1.248, Claude Code no verificaba esto antes del lanzamiento.69Para repositorios en `github.com`, el sandbox clona con la cuenta de GitHub conectada a su cuenta de Claude, por lo que la cuenta debe poder leer el repositorio del PR.

70 70 

71Ejecute [`/web-setup`](/docs/es/web-quickstart#connect-from-your-terminal) para conectar su inicio de sesión de GitHub CLI a su cuenta de Claude.71Ejecute [`/web-setup`](/docs/es/web-quickstart#connect-from-your-terminal) para conectar su inicio de sesión de GitHub CLI a su cuenta de Claude.

72 72 

vs-code.md +25 −5

Details

58 58 

59 * **Barra de actividades**: haga clic en el icono Spark en la barra lateral izquierda para abrir la lista de sesiones. Haga clic en cualquier sesión para abrirla en su [ubicación preferida](#extension-settings), o inicie una nueva. Este icono siempre es visible en la Barra de actividades.59 * **Barra de actividades**: haga clic en el icono Spark en la barra lateral izquierda para abrir la lista de sesiones. Haga clic en cualquier sesión para abrirla en su [ubicación preferida](#extension-settings), o inicie una nueva. Este icono siempre es visible en la Barra de actividades.

60 * **Paleta de comandos**: `Cmd+Shift+P` (Mac) o `Ctrl+Shift+P` (Windows/Linux), escriba "Claude Code" y seleccione una opción como "Open in New Tab"60 * **Paleta de comandos**: `Cmd+Shift+P` (Mac) o `Ctrl+Shift+P` (Windows/Linux), escriba "Claude Code" y seleccione una opción como "Open in New Tab"

61 * **Barra de estado**: si ha establecido [`preferredLocation`](#extension-settings) en `sidebar`, o abrió Claude con **Claude Code: Open in Side Bar**, haga clic en **✻ Claude Code** en la esquina inferior derecha de la ventana. Esto funciona incluso cuando no hay ningún archivo abierto.61 * **Barra de estado**: haga clic en **✻ Claude Code** en la esquina inferior derecha de la ventana. Esto funciona incluso cuando no hay ningún archivo abierto.

62 62 

63 Puede arrastrar el panel de Claude para reposicionarlo en cualquier lugar de VS Code. Consulte [Personalizar su flujo de trabajo](#customize-your-workflow) para obtener más detalles.63 Puede arrastrar el panel de Claude para reposicionarlo en cualquier lugar de VS Code. Consulte [Personalizar su flujo de trabajo](#customize-your-workflow) para obtener más detalles.

64 </Step>64 </Step>


362 362 

363En la pestaña Plugins:363En la pestaña Plugins:

364 364 

365* Los **plugins instalados** aparecen en la parte superior con interruptores de alternancia para habilitarlos o deshabilitarlos365* Los **plugins instalados** aparecen en la parte superior con interruptores de alternancia para habilitarlos o deshabilitarlos.

366 * Si desactiva un plugin que el archivo `.claude/settings.json` compartido de su proyecto activa, la extensión pregunta primero: **Disable for me** lo desactiva solo para usted, mientras que **Disable for everyone** cambia el archivo compartido.

366* Los **plugins disponibles** de sus marketplaces configurados aparecen a continuación367* Los **plugins disponibles** de sus marketplaces configurados aparecen a continuación

367* Busque para filtrar plugins por nombre o descripción368* Busque para filtrar plugins por nombre o descripción

368* Haga clic en **Instalar** en cualquier plugin disponible369* Haga clic en **Instalar** en cualquier plugin disponible


373* **Instalar para este proyecto**: compartido con colaboradores del proyecto (alcance de proyecto)374* **Instalar para este proyecto**: compartido con colaboradores del proyecto (alcance de proyecto)

374* **Instalar localmente**: solo para usted, solo en este repositorio (alcance local)375* **Instalar localmente**: solo para usted, solo en este repositorio (alcance local)

375 376 

377Una vez que la instalación finaliza, un formulario solicita cualquiera de las [opciones de configuración](/docs/es/plugins/components#user-configuration) del plugin que aún no estén configuradas. Para revisar o cambiar las opciones más tarde, haga clic en el icono de engranaje en la fila del plugin.

378 

379Los campos de texto sensibles están enmascarados, y un secreto que guardó anteriormente muestra **(sin cambios)**. Deje el campo en blanco para mantener el valor guardado.

380 

381Después de guardar los cambios, las sesiones abiertas recargan sus plugins y el diálogo muestra **Restart Claude to apply plugin changes**.

382 

383<h3 id="uninstall-plugins">

384 Desinstalar plugins

385</h3>

386 

387Cada fila instalada nombra el [alcance](/docs/es/plugins/install#choose-an-install-scope) en el que está instalada. Para desinstalar esa instalación, haga clic en el icono de papelera de la fila. Un icono de papelera atenuado marca una fila que no puede desinstalar desde este espacio de trabajo, como un plugin que su organización gestiona o uno instalado para otro proyecto.

388 

389La extensión pregunta primero en dos casos:

390 

391* **Un plugin que el archivo `.claude/settings.json` compartido de su proyecto activa**: elija **Disable for me**, que mantiene el plugin instalado para sus colaboradores, o **Uninstall for everyone**, que elimina la instalación del proyecto con [`--keep-data`](/docs/es/plugins/cli-reference#what-an-uninstall-deletes-and-keeps), por lo que el directorio de datos guardados del plugin permanece. Si ya desactivó el plugin para usted mismo, el icono de papelera elimina su propia instalación sin la pregunta.

392* **De lo contrario, la última instalación de un plugin con datos guardados**: elija si desea mantener o eliminar los datos; **Keep** es el predeterminado

393 

376<h3 id="share-a-plugin-install-link">394<h3 id="share-a-plugin-install-link">

377 Compartir un enlace de instalación de plugin395 Compartir un enlace de instalación de plugin

378</h3>396</h3>


407 425 

408* Ingrese un repositorio de GitHub, URL o ruta local para agregar un nuevo marketplace426* Ingrese un repositorio de GitHub, URL o ruta local para agregar un nuevo marketplace

409* Haga clic en el icono de actualización para actualizar la lista de plugins de un marketplace427* Haga clic en el icono de actualización para actualizar la lista de plugins de un marketplace

410* Haga clic en el icono de papelera para eliminar un marketplace428* Haga clic en el icono de papelera para eliminar un marketplace. Eliminarlo [desinstala cada plugin que instaló desde él](/docs/es/plugins/install#manage-marketplaces), por lo que una confirmación nombra esos plugins primero

429 

430Los cambios de plugins que realiza en el diálogo se aplican inmediatamente a las sesiones de Claude Code abiertas en esa ventana de VS Code.

411 431 

412Los cambios de plugins que realiza en el diálogo se aplican inmediatamente a las sesiones de Claude Code abiertas en esa ventana de VS Code. Si la sesión desde la que abrió el diálogo no puede recargar sus plugins, el diálogo le ofrece intentar de nuevo o reiniciar Claude en esa sesión.432Si la sesión desde la que abrió el diálogo no puede recargar sus plugins, el diálogo le ofrece intentar de nuevo o reiniciar Claude en esa sesión.

413 433 

414<Note>434<Note>

415 La gestión de plugins en VS Code utiliza los mismos comandos CLI bajo el capó. Los plugins y marketplaces que configure en la extensión también están disponibles en la CLI, y viceversa.435 La gestión de plugins en VS Code utiliza los mismos comandos CLI bajo el capó. Los plugins y marketplaces que configure en la extensión también están disponibles en la CLI, y viceversa.


7904. **Desactive extensiones conflictivas**: Desactive temporalmente otras extensiones de IA (Cline, Continue, etc.)8104. **Desactive extensiones conflictivas**: Desactive temporalmente otras extensiones de IA (Cline, Continue, etc.)

7915. **Verifique la confianza del espacio de trabajo**: La extensión no funciona en Modo restringido8115. **Verifique la confianza del espacio de trabajo**: La extensión no funciona en Modo restringido

792 812 

793Alternativamente, si ha establecido [`preferredLocation`](#extension-settings) en `sidebar`, o ha abierto Claude con **Claude Code: Open in Side Bar**, haga clic en "✻ Claude Code" en la **Barra de estado** (esquina inferior derecha). Esto funciona incluso sin un archivo abierto. También puede usar la **Paleta de comandos** (`Cmd+Shift+P` / `Ctrl+Shift+P`) y escribir "Claude Code".813Alternativamente, haga clic en **✻ Claude Code** en la **Barra de estado** en la esquina inferior derecha de la ventana. Esto funciona incluso sin un archivo abierto. También puede usar la **Paleta de comandos** (`Cmd+Shift+P` / `Ctrl+Shift+P`) y escribir "Claude Code".

794 814 

795<h3 id="cmd-esc-does-nothing-on-macos">815<h3 id="cmd-esc-does-nothing-on-macos">

796 Cmd+Esc no hace nada en macOS816 Cmd+Esc no hace nada en macOS

worktrees.md +1 −1

Details

145* El worktree pertenece a una sesión `--worktree` que no ha enviado al fondo, sin importar su antigüedad.145* El worktree pertenece a una sesión `--worktree` que no ha enviado al fondo, sin importar su antigüedad.

146* Creó el worktree usted mismo con `git worktree add`, incluso si luego ejecutó una sesión `--worktree <name>` en él y envió esa sesión al fondo.146* Creó el worktree usted mismo con `git worktree add`, incluso si luego ejecutó una sesión `--worktree <name>` en él y envió esa sesión al fondo.

147 147 

148Claude Code escribe un marcador en los metadatos de git de cada worktree que crea con git, y el barrido mantiene cualquier worktree sin uno, incluido un worktree que un [hook `WorktreeCreate`](#non-git-version-control) creó. Antes de v2.1.246, el barrido no verificaba el marcador, y podría eliminar un worktree que creó usted mismo cuando un registro de sesión en segundo plano antiguo apuntaba a él.148Claude Code escribe un marcador en los metadatos de git de cada worktree que crea con git, y el barrido mantiene cualquier worktree sin uno, incluido un worktree que un [hook `WorktreeCreate`](#non-git-version-control) creó.

149 149 

150Mientras un agente se está ejecutando, Claude Code mantiene un `git worktree lock` en su worktree para que la limpieza concurrente no pueda eliminarlo, y libera el bloqueo cuando el agente termina. Claude Code mantiene el mismo bloqueo en el worktree que creó para una sesión enviada al fondo mientras la sesión se ejecuta, por lo que el barrido deja el worktree en su lugar y `git worktree remove` se niega a eliminarlo.150Mientras un agente se está ejecutando, Claude Code mantiene un `git worktree lock` en su worktree para que la limpieza concurrente no pueda eliminarlo, y libera el bloqueo cuando el agente termina. Claude Code mantiene el mismo bloqueo en el worktree que creó para una sesión enviada al fondo mientras la sesión se ejecuta, por lo que el barrido deja el worktree en su lugar y `git worktree remove` se niega a eliminarlo.

151 151