SpyBara
Go Premium

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

50 files changed +785 −363. View all changes and history on the product overview
2026
Thu 1 16: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 +207 −68

Details

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

617</h4>617</h4>

618 618 

619`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()`.

620 

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

620import asyncio622import asyncio

621from claude_agent_sdk import ClaudeSDKClient623from claude_agent_sdk import ClaudeSDKClient

622 624 

623 625 

624async def message_stream():626async def message_stream():

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

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

627 "type": "user",629 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 {630 yield {

637 "type": "user",631 "type": "user",

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

633 "role": "user",

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

635 },

639 }636 }

640 637 

641 638 


2712 2709 

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.2710Documentació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 2711 

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

2713 

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

2716 Agent2715 Agent

2717</h3>2716</h3>


2885 2884 

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

2887 2886 

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).2887Para 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 2888 

2890**Entrada:**2889**Entrada:**

2891 2890 


2962 2961 

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

2964{2963{

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

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

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

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

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

2969 {

2970 "oldStart": int,

2971 "oldLines": int,

2972 "newStart": int,

2973 "newLines": int,

2974 "lines": list[str],

2975 }

2976 ],

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

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

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

2980 "filename": str,

2981 "status": "modified" | "added",

2982 "additions": int,

2983 "deletions": int,

2984 "changes": int,

2985 "patch": str,

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

2987 } | None,

2968}2988}

2969```2989```

2970 2990 


2984}3004}

2985```3005```

2986 3006 

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

3008 

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

2988 3010 

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

2990{3012{

2991 "content": str, # File contents with line numbers3013 "type": "text",

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

2993 "lines_returned": int, # Lines actually returned3015 "filePath": str, # The file that was read

3016 "content": str, # The returned content

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

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

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

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

3021 },

2994}3022}

2995```3023```

2996 3024 

2997**Salida (imágenes):**3025**Salida (tipo: `"image"`):**

2998 3026 

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

3000{3028{

3001 "image": str, # Base64 encoded image data3029 "type": "image",

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

3003 "file_size": int, # File size in bytes3031 "base64": str, # Base64-encoded image data

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

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

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

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

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

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

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

3039 } | None,

3040 },

3041}

3042```

3043 

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

3045 

3046```python theme={null}

3047{

3048 "type": "notebook",

3049 "file": {

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

3051 "cells": list, # Notebook cells

3052 },

3053}

3054```

3055 

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

3057 

3058```python theme={null}

3059{

3060 "type": "pdf",

3061 "file": {

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

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

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

3065 },

3066}

3067```

3068 

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

3070 

3071```python theme={null}

3072{

3073 "type": "parts",

3074 "file": {

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

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

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

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

3079 },

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

3081}

3082```

3083 

3084**Salida (tipo: `"file_unchanged"`):**

3085 

3086```python theme={null}

3087{

3088 "type": "file_unchanged", # The file is unchanged since Claude last read it in this session, so the content isn't repeated

3089 "file": {

3090 "filePath": str,

3091 },

3092 "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}3093}

3005```3094```

3006 3095 


3023 3112 

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

3025{3114{

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

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

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

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

3119 {

3120 "oldStart": int,

3121 "oldLines": int,

3122 "newStart": int,

3123 "newLines": int,

3124 "lines": list[str],

3125 }

3126 ],

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

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

3129 "filename": str,

3130 "status": "modified" | "added",

3131 "additions": int,

3132 "deletions": int,

3133 "changes": int,

3134 "patch": str,

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

3136 } | None,

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

3029}3138}

3030```3139```

3031 3140 


3048 3157 

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

3050{3159{

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

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

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

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

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

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

3054}3166}

3055```3167```

3056 3168 

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

3170 

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

3058 Grep3172 Grep

3059</h3>3173</h3>


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

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

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

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

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

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

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

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

3079}3196}

3080```3197```

3081 3198 

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

3083 3200 

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

3085{3202{

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

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

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

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

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

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

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

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

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

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

3096}3213}

3097```3214```

3098 3215 

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

3100 3217 

3101```python theme={null}3218`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 3219 

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

3109 NotebookEdit3221 NotebookEdit


3127 3239 

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

3129{3241{

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

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

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

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

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

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

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

3249 "notebook_path": str, # The notebook file

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

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

3134}3252}

3135```3253```

3136 3254 


3228 3346 

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

3230{3348{

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

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

3351 "content": str,

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

3353 "activeForm": str,

3354 }

3355 ],

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

3357 {

3358 "content": str,

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

3360 "activeForm": str,

3361 }

3362 ],

3233}3363}

3234```3364```

3235 3365 


3401 3531 

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

3403{3533{

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

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

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

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

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

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

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

3406}3541}

3407```3542```

3408 3543 


3420}3555}

3421```3556```

3422 3557 

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

3559 

3423**Salida:**3560**Salida:**

3424 3561 

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

3426{3563[ # One entry per resource

3427 "resources": [

3428 {3564 {

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

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

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

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

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

3434 }3570 }

3435 ],3571]

3436 "total": int,

3437}

3438```3572```

3439 3573 

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


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

3458{3592{

3459 "contents": [3593 "contents": [

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

3595 "uri": str, # Resource URI

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

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

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

3599 }

3461 ],3600 ],

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

3463}3602}

3464```3603```

3465 3604 

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 |


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 |


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

1850type SDKStartupFailureReason =1850type SDKStartupFailureReason =

1851 | "org_pin_api_key_conflict"1851 | "org_pin_api_key_conflict"

1852 | "provider_not_allowed"

1852 | "org_verify_failed"1853 | "org_verify_failed"

1853 | "org_pin_mismatch"1854 | "org_pin_mismatch"

1854 | "managed_settings_invalid"1855 | "managed_settings_invalid"


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

1872| :- | :- |1873| :- | :- |

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 |1874| `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 |

1875| `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 |1876| `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 |1877| `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 |1878| `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 |


3236};3238};

3237```3239```

3238 3240 

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).3241Ejecuta 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 3242 

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

3242 Monitor3244 Monitor


4140 4142 

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.4143`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 4144 

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.4145Cuando 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 4146 

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.4147Claude 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 4148 

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

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:

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 +51 −53

Details

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

250 250 

251<Note>251<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.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 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>253</Note>

254 254 

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

256 Ubicaciones de hooks256 Ubicaciones de hooks

257</h3>257</h3>

258 258 

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

260 260 

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

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

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

264| `.claude/settings.json` | Proyecto único | Sí, puede confirmarse en el repositorio |264| `.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 |265| `.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 |266| 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 |267| [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 |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 |

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

270 270 

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

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

274 274 

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

276 276 

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

278 278 

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 exentos279* 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 administrada280* 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 posterior281* 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 declare282* 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 283 

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

285 285 


294 Patrones de matcher294 Patrones de matcher

295</h3>295</h3>

296 296 

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

298 298 

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

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

301| `"*"`, `""` u omitido | Coincidir con todo | se activa en cada ocurrencia del evento |301| `"*"`, `""` 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 |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 |

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` |303| 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 304 

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

306 306 


334 334 

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

336 336 

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.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) enumera el conjunto completo de valores de matcher y el esquema de entrada para ese evento.

338 338 

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

340 340 


358 358 

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

360 360 

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

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

364 Coincidir herramientas MCP364 Coincidir herramientas MCP

365</h4>365</h4>

366 366 

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.367Las 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 368 

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

370 370 

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

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

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

374 374 

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.375Para 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 376 

377* `mcp__memory__.*` coincide con todas las herramientas del servidor `memory`377* `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ón378* `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 servidor379* `mcp__.*__write.*` coincide con cualquier herramienta cuyo nombre comienza con `write` de cualquier servidor

380 380 

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.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`, 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 382 

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

384 384 


413 Campos de manejador de hook413 Campos de manejador de hook

414</h3>414</h3>

415 415 

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:416Cada 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 417 

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

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

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


425 425 

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

427 427 

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.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 [Remote Control](/docs/es/remote-control) mientras la sesión local tiene una conexión activa de Remote Control.

429 429 

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

431 Campos comunes431 Campos comunes


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

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

438| `type` | sí | `"command"`, `"http"`, `"mcp_tool"`, `"prompt"` o `"agent"` |438| `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) |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 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 |440| `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 |441| `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 |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, 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 443 

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

445 445 

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

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

449 449 

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

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

452| `Bash(git *)` | `FOO=bar git push` | sí | las asignaciones iniciales se eliminan; `git push` coincide |452| `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 |453| `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 |454| `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 *` |455| `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` |456| `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 457 

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.458Cuando 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 459 

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

463 Campos de hook de comando461 Campos de hook de comando


467 465 

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

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

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) |468| `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) |469| `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) |470| `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 |471| `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 shell477 Forma exec y forma shell

480</h5>478</h5>

481 479 

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.480Un 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 481 

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.482**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 483 

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.484**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 485 

488<Note>486<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.487 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}506}

509```507```

510 508 

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.509Ambas 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 510 

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.511Los 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 512 

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.*}`.513Un 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 514 

517<Note>515<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.516 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>517</Note>

520 518 

521<h4 id="http-hook-fields">519<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` |528| `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 |529| `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 530 

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.531Claude 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 532 

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

536 534 


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

604</h5>602</h5>

605 603 

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.604En 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 605 

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.606Un 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 607 

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

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

612</h5>610</h5>

613 611 

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.612`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 613 

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

617 Campos de hook de prompt y agente615 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) |623| `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 624 

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

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

629</h3>627</h3>

630 628 

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:629Utiliza 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 630 

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.631* `${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.632* `${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.633* `${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 634 

637<Note>635<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:636 **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 637 

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.638 * **`${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.639 * **`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>640</Note>

643 641 


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:702Ademá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 703 

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.704* **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.705* **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 706 

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

710 708 


723 721 

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

725 723 

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.724Los 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 725 

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.726Los 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 727 

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

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

732</h3>730</h3>

733 731 

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.732Escribe `/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 733 

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ó:734El 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 735 

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

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


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

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

743 741 

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.742Seleccionar 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 743 

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

747 Deshabilitar o eliminar hooks745 Deshabilitar o eliminar hooks

748</h3>746</h3>

749 747 

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

751 749 

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.750Para 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 751 

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).752La 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 753 

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

757 755 

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

759 Entrada y salida de hooks757 Entrada y salida de hooks


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

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 |1937| `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 |1938| `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 |1939| `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) |1940| `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 1941 

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

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 la tabla de esa sección enumera. 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 


554 <Accordion title="Costo y latencia">554 <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.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.

556 556 

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

558 558 

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

560 560 

permissions.md +2 −2

Details

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

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

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

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

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 |768| 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 769 

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

771 771 

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

868 868 

869El servidor toma su nombre del `name` en el manifiesto del paquete.869El servidor toma su nombre del `name` en el manifiesto del paquete.

870 870 

871Un 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`.

872 

873Los usuarios proporcionan los valores de una de dos maneras:

874 

875* **En `/plugin`**: seleccione el plugin en la pestaña **Installed** y elija **Configure**

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

877 

871Para transportes y autenticación, consulte [MCP](/docs/es/mcp#plugin-provided-mcp-servers).878Para transportes y autenticación, consulte [MCP](/docs/es/mcp#plugin-provided-mcp-servers).

872 879 

873<h3 id="lsp-servers">880<h3 id="lsp-servers">


1071 Cuándo aparece el diálogo de configuración1078 Cuándo aparece el diálogo de configuración

1072</h3>1079</h3>

1073 1080 

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:1081El 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 1082 

1076* Instala el plugin en `/plugin`1083* Instala el plugin en `/plugin`

1077* Ejecuta `/plugin install <plugin>@<marketplace>` dentro de una sesión1084* Ejecuta `/plugin install <plugin>@<marketplace>` dentro de una sesión


1079 1086 

1080Para abrir el mismo diálogo en cualquier momento, el usuario ejecuta `/plugin configure <plugin>@<marketplace>`.1087Para abrir el mismo diálogo en cualquier momento, el usuario ejecuta `/plugin configure <plugin>@<marketplace>`.

1081 1088 

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

1090 

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

1092 

1093Cuando 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 1094 

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).1095Para 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 1096 

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

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>

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 |


3675 `spinnerTipsOverride`3676 `spinnerTipsOverride`

3676</h3>3677</h3>

3677 3678 

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.3679Agrega 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 3680 

3680Si estableces [`spinnerTipsEnabled`](#spinnertipsenabled) a `false`, Claude Code oculta todos los consejos, incluyendo los tuyos.3681Si estableces [`spinnerTipsEnabled`](#spinnertipsenabled) a `false`, Claude Code oculta todos los consejos, incluyendo los tuyos.

3681 3682 


3683* **Type**: objeto con campos `tips`, `tipsFile`, `label`, y `excludeDefault`, cada uno opcional3684* **Type**: objeto con campos `tips`, `tipsFile`, `label`, y `excludeDefault`, cada uno opcional

3684* **Default**: unset, por lo que Claude Code muestra solo los consejos integrados3685* **Default**: unset, por lo que Claude Code muestra solo los consejos integrados

3685 3686 

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.3687Objetos 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 3688 

3688Cada entrada `tips` es un string plano u objeto con estos campos:3689Cada entrada `tips` es un string plano u objeto con estos campos:

3689 3690 


5652 5653 

5653* **Scope**: [`Any file`](#scopes)5654* **Scope**: [`Any file`](#scopes)

5654* **Type**: Boolean5655* **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 bloqueo5656 * `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 clave5657 * `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 cuenta5658* **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ón5659* **Per-session overrides**: [`CLAUDE_CODE_DISABLE_ARTIFACT`](/docs/es/env-vars) establecido en `1` desactiva la herramienta para una sesión


5739}5740}

5740```5741```

5741 5742 

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.5743Mientras 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 5744 

5744<h3 id="inputneedednotifenabled">5745<h3 id="inputneedednotifenabled">

5745 `inputNeededNotifEnabled`5746 `inputNeededNotifEnabled`


5878 5879 

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).5880Proporcione 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 5881 

5882<h3 id="allowedproviders">

5883 `allowedProviders`

5884</h3>

5885 

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

5887 

5888* **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).

5889* **Type**: matriz de strings, cada uno de:

5890 * `"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

5891 * `"bedrock"`: [Amazon Bedrock](/docs/es/amazon-bedrock)

5892 * `"vertex"`: [Plataforma de Agente de Google Cloud](/docs/es/google-vertex-ai), anteriormente Vertex AI

5893 * `"foundry"`: [Microsoft Foundry](/docs/es/microsoft-foundry)

5894 * `"anthropicAws"`: [Plataforma Claude en AWS](/docs/es/claude-platform-on-aws)

5895 * `"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

5896 * `"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

5897 * `"gateway"`: un inicio de sesión de [puerta de enlace en la nube](/docs/es/claude-apps-gateway)

5898* **Default**: sin establecer, por lo que se puede usar cualquier proveedor

5899 

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

5901{

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

5903}

5904```

5905 

5906La entrada de cada proveedor en la nube significa el servicio propio de ese proveedor, incluidos sus puntos de conexión regionales, FIPS y privados.

5907 

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

5909 

5910<h4 id="endpoints-that-need-a-pin-in-managed-env">

5911 Puntos de conexión que necesitan un fijo en `env` administrado

5912</h4>

5913 

5914Un 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:

5915 

5916* **Sesiones `"customEndpoint"`**: la variable que nombra el host, como `ANTHROPIC_BASE_URL`

5917* **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"`

5918* **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

5919 

5920Cuáles bloques `env` cuentan como fijos depende de dónde se establezca la lista:

5921 

5922* **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

5923* **Solo la configuración administrada por servidor establece una lista**: un valor `env` en esa configuración administrada por servidor también cuenta

5924 

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

5926 

5881<h3 id="apikeyhelper">5927<h3 id="apikeyhelper">

5882 `apiKeyHelper`5928 `apiKeyHelper`

5883</h3>5929</h3>


6400| :- | :- | :- |6446| :- | :- | :- |

6401| Listas | Combina entradas de todas las fuentes | [`permissions.allow`](#permissions-allow), [`sandbox.network.allowedDomains`](#sandbox-network-alloweddomains) y otras claves de lista |6447| 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 |6448| 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) |6449| 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) |6450| 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) |6451| 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) |6452| 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.6460* **[`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.6461* **[`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.6462* **[`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.

6463* **[`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 6464 

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).6465Para 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 6466 

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