SpyBara
Go Premium

Documentation 2026-10-01 23:59 UTC to 2026-10-02 02:02 UTC

35 files changed +1,504 −1,272. View all changes and history on the product overview
2026
Fri 2 03:00 Thu 1 23:59

accessibility.md +11 −5

Details

44| [`CLAUDE_AX_SCREEN_READER`](/docs/es/env-vars#variables) | Variable de entorno | Modo lector de pantalla para sesiones iniciadas desde el shell donde la establece. |44| [`CLAUDE_AX_SCREEN_READER`](/docs/es/env-vars#variables) | Variable de entorno | Modo lector de pantalla para sesiones iniciadas desde el shell donde la establece. |

45| [`axScreenReader`](/docs/es/settings-reference#axscreenreader) | Configuración | Modo lector de pantalla para cada sesión cuando es `true`. |45| [`axScreenReader`](/docs/es/settings-reference#axscreenreader) | Configuración | Modo lector de pantalla para cada sesión cuando es `true`. |

46| [`CLAUDE_AX_STARTUP_QUIET_MS`](/docs/es/env-vars#variables) | Variable de entorno | Cuánto tiempo espera Claude Code después de la línea de confirmación antes de dibujar la primera solicitud en modo lector de pantalla. Requiere Claude Code v2.1.217 o posterior. |46| [`CLAUDE_AX_STARTUP_QUIET_MS`](/docs/es/env-vars#variables) | Variable de entorno | Cuánto tiempo espera Claude Code después de la línea de confirmación antes de dibujar la primera solicitud en modo lector de pantalla. Requiere Claude Code v2.1.217 o posterior. |

47| [`CLAUDE_AX_PREPARK_MS`](/docs/es/env-vars#variables) | Variable de entorno | Cuánto tiempo espera Claude Code, con el cursor al inicio de la línea, antes de escribir una línea nueva o modificada en modo lector de pantalla. Requiere Claude Code v2.1.233 o posterior. |47| [`CLAUDE_AX_PREPARK_MS`](/docs/es/env-vars#variables) | Variable de entorno | Cuando la estableces, cuántos milisegundos mantiene Claude Code el cursor de la terminal al inicio de la línea actual antes de escribir una línea nueva o modificada en modo lector de pantalla. Requiere Claude Code v2.1.233 o posterior. |

48| [`CLAUDE_CODE_ACCESSIBILITY`](/docs/es/env-vars#variables) | Variable de entorno | Un cursor de terminal que permanece visible para ampliadores de pantalla como macOS Zoom cuando lo establece en `1`. El cursor sigue el acento de entrada y, en Claude Code v2.1.218 o posterior, la fila resaltada en menús y paneles como `/config` y `/plugin`. |48| [`CLAUDE_CODE_ACCESSIBILITY`](/docs/es/env-vars#variables) | Variable de entorno | Un cursor de terminal que permanece visible para ampliadores de pantalla como macOS Zoom cuando lo establece en `1`. El cursor sigue el acento de entrada y, en Claude Code v2.1.218 o posterior, la fila resaltada en menús y paneles como `/config` y `/plugin`. |

49| [`prefersReducedMotion`](/docs/es/settings-reference#prefersreducedmotion) | Configuración | Spinners reducidos o sin spinners, shimmer y otras animaciones cuando es `true`. |49| [`prefersReducedMotion`](/docs/es/settings-reference#prefersreducedmotion) | Configuración | Spinners reducidos o sin spinners, shimmer y otras animaciones cuando es `true`. |

50| [`theme`](/docs/es/settings-reference#theme) | Configuración | Los colores de la interfaz, incluidos los temas amigables para daltónicos `dark-daltonized` y `light-daltonized`. También puede elegir uno con [`/theme`](/docs/es/commands#all-commands). |50| [`theme`](/docs/es/settings-reference#theme) | Configuración | Los colores de la interfaz, incluidos los temas amigables para daltónicos `dark-daltonized` y `light-daltonized`. También puede elegir uno con [`/theme`](/docs/es/commands#all-commands). |


60* Sin señales que dependan solo del color60* Sin señales que dependan solo del color

61* Sin redibujos de contenido que no ha cambiado. Los indicadores de progreso se renderizan como texto estático61* Sin redibujos de contenido que no ha cambiado. Los indicadores de progreso se renderizan como texto estático

62* Las tablas en las respuestas de Claude se leen como oraciones `Encabezado: valor` en lugar de una cuadrícula con caracteres de cuadro62* Las tablas en las respuestas de Claude se leen como oraciones `Encabezado: valor` en lugar de una cuadrícula con caracteres de cuadro

63* Los diffs se leen como texto plano, línea por línea, con `+` y `-` marcando las líneas agregadas y eliminadas, para que puedas escuchar el cambio propuesto en una solicitud de aprobación de edición de archivo antes de responderla

63 64 

64Claude Code deja todo lo que imprime en el historial de desplazamiento de su terminal, para que pueda releer turnos anteriores con los comandos de revisión de su lector de pantalla o la búsqueda de su terminal. Claude Code ignora la [configuración `tui`](/docs/es/settings-reference#tui) en modo lector de pantalla. Aparte de las sesiones de fondo adjuntas enumeradas en [Limitaciones conocidas](#known-limitations), imprime texto de desplazamiento en lugar de [renderizado a pantalla completa](/docs/es/fullscreen).65Claude Code deja todo lo que imprime en el historial de desplazamiento de su terminal, para que pueda releer turnos anteriores con los comandos de revisión de su lector de pantalla o la búsqueda de su terminal. Claude Code ignora la [configuración `tui`](/docs/es/settings-reference#tui) en modo lector de pantalla. Aparte de las sesiones de fondo adjuntas enumeradas en [Limitaciones conocidas](#known-limitations), imprime texto de desplazamiento en lugar de [renderizado a pantalla completa](/docs/es/fullscreen).

65 66 

66Claude Code también espera en dos puntos para que su lector de pantalla pueda mantenerse al día:67Después de que Claude Code imprime la [línea de confirmación](#turn-on-screen-reader-mode) al iniciar, espera 3 segundos antes de dibujar el prompt, para que tu lector de pantalla pueda terminar la línea. Presiona cualquier tecla para finalizar la espera. Para cambiar la duración de la espera, establece [`CLAUDE_AX_STARTUP_QUIET_MS`](/docs/es/env-vars#variables).

67 

68* Después de que Claude Code imprime la línea de confirmación, espera 3 segundos antes de dibujar el indicador, para que su lector de pantalla pueda terminar la línea. Presione cualquier tecla para finalizar la espera. Para cambiar la duración de la espera, establezca [`CLAUDE_AX_STARTUP_QUIET_MS`](/docs/es/env-vars#variables).

69* Antes de que Claude Code escriba una línea nueva o modificada, como una sugerencia o más de la respuesta de Claude, mueve el cursor al inicio de la línea y espera 50 milisegundos. Su lector de pantalla luego lee la línea desde su primer carácter. Los caracteres que escribe o elimina al final de la línea de entrada aparecen inmediatamente. Para cambiar la duración de la espera, establezca [`CLAUDE_AX_PREPARK_MS`](/docs/es/env-vars#variables).

70 68 

71Cada mensaje en la transcripción comienza con una etiqueta que su lector de pantalla anuncia, nombrando qué es: sus mensajes, las respuestas y el pensamiento de Claude, la actividad de herramientas, errores y advertencias, e indicadores. Las etiquetas también se pueden buscar, para que pueda saltar entre secciones de la transcripción buscando en el historial de desplazamiento de su terminal:69Cada mensaje en la transcripción comienza con una etiqueta que su lector de pantalla anuncia, nombrando qué es: sus mensajes, las respuestas y el pensamiento de Claude, la actividad de herramientas, errores y advertencias, e indicadores. Las etiquetas también se pueden buscar, para que pueda saltar entre secciones de la transcripción buscando en el historial de desplazamiento de su terminal:

72 70 


94 92 

95Cuando alterna [modos de permiso](/docs/es/permission-modes) con `Shift+Tab`, Claude Code anuncia el modo de permiso en el que aterriza, como `[plan mode on]` o `[accept edits on]`. Claude Code imprime el anuncio una vez y no lo repite en redibujos posteriores.93Cuando alterna [modos de permiso](/docs/es/permission-modes) con `Shift+Tab`, Claude Code anuncia el modo de permiso en el que aterriza, como `[plan mode on]` o `[accept edits on]`. Claude Code imprime el anuncio una vez y no lo repite en redibujos posteriores.

96 94 

95<h3 id="read-earlier-output-without-losing-your-place">

96 Leer la salida anterior sin perder tu lugar

97</h3>

98 

99Si tu lector de pantalla salta de vuelta al prompt mientras lees la salida anterior, está siguiendo el cursor de la terminal. Claude Code mueve el cursor de la terminal de vuelta al prompt cada vez que escribe texto nuevo.

100 

101Para mantener tu lugar mientras lees, evita que tu lector de pantalla siga el cursor de la terminal. En NVDA, presiona `NVDA+6` para que el cursor de revisión deje de seguir el cursor de la terminal. Presiona `NVDA+6` de nuevo para volver a activar el seguimiento.

102 

97<h3 id="jump-between-turns">103<h3 id="jump-between-turns">

98 Saltar entre turnos104 Saltar entre turnos

99</h3>105</h3>

Details

325 325 

326Algunas estrategias para agentes de larga duración:326Algunas estrategias para agentes de larga duración:

327 327 

328* **Use subagentes para subtareas.** Cada subagente comienza con una conversación nueva (sin historial de mensajes anterior, aunque carga su propio prompt del sistema y contexto a nivel de proyecto como CLAUDE.md). No ve los turnos del padre, y solo su respuesta final regresa al padre como resultado de herramienta. El contexto del agente principal crece por ese resumen, no por la transcripción completa de subtarea. Vea [Qué heredan los subagentes](/docs/es/agent-sdk/subagents#what-subagents-inherit) para detalles.328* **Usa subagentes para subtareas.** Cada subagente comienza con una conversación nueva (sin historial de mensajes anterior, aunque carga su propio prompt del sistema y contexto a nivel de proyecto como CLAUDE.md). No ve los turnos del padre, y solo su respuesta final regresa al padre. El contexto del agente principal crece por ese resumen, no por la transcripción completa de la subtarea. Consulta [Qué heredan los subagentes](/docs/es/agent-sdk/subagents#what-subagents-inherit) para más detalles.

329* **Sea selectivo con herramientas.** Cada definición de herramienta toma espacio de contexto. Use el campo `tools` en [`AgentDefinition`](/docs/es/agent-sdk/subagents#agentdefinition-configuration) para limitar subagentes al conjunto mínimo que necesitan.329* **Sea selectivo con herramientas.** Cada definición de herramienta toma espacio de contexto. Use el campo `tools` en [`AgentDefinition`](/docs/es/agent-sdk/subagents#agentdefinition-configuration) para limitar subagentes al conjunto mínimo que necesitan.

330* **Observe costos de servidor MCP.** [Búsqueda de herramientas MCP](/docs/es/agent-sdk/mcp#mcp-tool-search) difiere esquemas de herramientas MCP por defecto y los carga bajo demanda. Cuando la búsqueda de herramientas está desactivada o ha retrocedido a carga anticipada, cada servidor MCP agrega todos sus esquemas de herramientas a cada solicitud, así que algunos servidores con muchas herramientas pueden consumir contexto significativo antes de que el agente haga ningún trabajo. Vea [Configurar búsqueda de herramientas](/docs/es/agent-sdk/tool-search#configure-tool-search) para las configuraciones donde se aplica el retroceso.330* **Observe costos de servidor MCP.** [Búsqueda de herramientas MCP](/docs/es/agent-sdk/mcp#mcp-tool-search) difiere esquemas de herramientas MCP por defecto y los carga bajo demanda. Cuando la búsqueda de herramientas está desactivada o ha retrocedido a carga anticipada, cada servidor MCP agrega todos sus esquemas de herramientas a cada solicitud, así que algunos servidores con muchas herramientas pueden consumir contexto significativo antes de que el agente haga ningún trabajo. Vea [Configurar búsqueda de herramientas](/docs/es/agent-sdk/tool-search#configure-tool-search) para las configuraciones donde se aplica el retroceso.

331* **Use esfuerzo más bajo para tareas rutinarias.** Establezca [esfuerzo](#effort-level) a `"low"` para agentes que solo necesitan leer archivos o listar directorios. Esto reduce el uso de tokens y el costo.331* **Use esfuerzo más bajo para tareas rutinarias.** Establezca [esfuerzo](#effort-level) a `"low"` para agentes que solo necesitan leer archivos o listar directorios. Esto reduce el uso de tokens y el costo.

Details

1488Utilice con el campo `betas` en `ClaudeAgentOptions` para habilitar características beta.1488Utilice con el campo `betas` en `ClaudeAgentOptions` para habilitar características beta.

1489 1489 

1490<Warning>1490<Warning>

1491 La beta `context-1m-2025-08-07` se retiró a partir del 30 de abril de 2026. Pasar este encabezado con Claude Sonnet 4.5 o Sonnet 4 no tiene efecto, y las solicitudes que exceden la ventana de contexto estándar de 200k tokens devuelven un error. Para usar una ventana de contexto de 1M tokens, migre a [Claude Opus 5.5, Claude Opus 5, Claude Sonnet 5, Claude Sonnet 4.6, Claude Opus 4.6, Claude Opus 4.7, o Claude Opus 4.8](https://platform.claude.com/docs/en/about-claude/models/overview), que incluyen contexto de 1M a precios estándar sin encabezado beta requerido.1491 En la Claude API, la beta `context-1m-2025-08-07` está retirada para Claude Sonnet 4.5 y Claude Sonnet 4. Si todavía la pasas con cualquiera de esos modelos, las solicitudes que superan la ventana de contexto estándar de 200K tokens devuelven un error, así que elimínala de `betas`. Para ejecutar una sesión con una ventana de contexto de 1M tokens, establece `model` en un modelo que [se ejecute con la ventana de 1M de forma predeterminada](/docs/es/model-config#extended-context), como `claude-sonnet-5-5` o `claude-opus-5-5`. Para un modelo que alcanza 1M solo mediante su variante `[1m]`, agrega el sufijo al ID del modelo, como en `claude-opus-4-6[1m]`.

1492</Warning>1492</Warning>

1493 1493 

1494<h3 id="mcpsdkserverconfig">1494<h3 id="mcpsdkserverconfig">

Details

166 166 

167Cuando ejecuta el ejemplo, la versión de TypeScript imprime cada respuesta a medida que se completa. El bucle `receive_response()` de la versión de Python termina en el primer mensaje de resultado, por lo que imprime el análisis de seguridad; para leer ambas respuestas, use un par `query()` y `receive_response()` por mensaje como se muestra en el [ejemplo de referencia de Python sobre cómo continuar una conversación](/docs/es/agent-sdk/python#example-continuing-a-conversation).167Cuando ejecuta el ejemplo, la versión de TypeScript imprime cada respuesta a medida que se completa. El bucle `receive_response()` de la versión de Python termina en el primer mensaje de resultado, por lo que imprime el análisis de seguridad; para leer ambas respuestas, use un par `query()` y `receive_response()` por mensaje como se muestra en el [ejemplo de referencia de Python sobre cómo continuar una conversación](/docs/es/agent-sdk/python#example-continuing-a-conversation).

168 168 

169Si falta el `source` de un bloque de imagen o no es un objeto, el SDK no reporta un error. Claude Code envía a Claude una nota de texto en lugar de la imagen, como `[Image could not be processed: image block has no source object]`, y la sesión continúa.

170 

169<Note>171<Note>

170 En el SDK de TypeScript, si su generador de mensajes lanza una excepción, por ejemplo cuando falta un archivo que lee, la secuencia termina con un error que dice `Claude Code process aborted by user` en lugar del error original, así que verifique el código dentro de su generador primero cuando vea ese mensaje. El error también puede estar precedido por una línea minificada larga del código fuente del SDK agrupado, así que lea hasta el final de la salida para encontrar el texto del error.172 En el SDK de TypeScript, si su generador de mensajes lanza una excepción, por ejemplo cuando falta un archivo que lee, la secuencia termina con un error que dice `Claude Code process aborted by user` en lugar del error original, así que verifique el código dentro de su generador primero cuando vea ese mensaje. El error también puede estar precedido por una línea minificada larga del código fuente del SDK agrupado, así que lea hasta el final de la salida para encontrar el texto del error.

171 173 

Details

204| Definiciones de herramientas (heredadas del padre o el subconjunto en `tools`, [filtrado para ejecuciones en segundo plano](/docs/es/sub-agents#available-tools)) | El prompt del sistema del padre |204| Definiciones de herramientas (heredadas del padre o el subconjunto en `tools`, [filtrado para ejecuciones en segundo plano](/docs/es/sub-agents#available-tools)) | El prompt del sistema del padre |

205 205 

206<Note>206<Note>

207 El padre recibe el mensaje final del subagente como resultado de la herramienta Agent, pero puede resumirlo en su propia respuesta. Para preservar la salida del subagente textualmente en la respuesta visible para el usuario, incluya una instrucción para hacerlo en el prompt u opción `systemPrompt` que pase a la llamada principal `query()`.207 El padre recibe el informe final del subagente, pero puede resumirlo en su propia respuesta. Para preservar la salida del subagente textualmente en la respuesta visible para el usuario, incluye una instrucción para hacerlo en el prompt u opción `systemPrompt` que pases a la llamada principal `query()`.

208 208 

209 En v2.1.210 y posteriores, Claude Code [escanea el mensaje final en busca de patrones con forma de instrucción](/docs/es/sub-agents#subagent-output-scanning) antes de que el padre lo lea. El escaneo trata tres tipos de patrón de manera diferente:209 En v2.1.210 y posteriores, Claude Code [escanea el mensaje final en busca de patrones con forma de instrucción](/docs/es/sub-agents#subagent-output-scanning) antes de que el padre lo lea. El escaneo trata tres tipos de patrón de manera diferente:

210 210 

Details

1596 1596 

1597En un mensaje que lleva un bloque `tool_result`, `tool_use_result` es el objeto de salida estructurado de la herramienta en lugar del texto enviado al modelo. Su forma depende de la herramienta nombrada por el bloque `tool_use` coincidente, así que el campo se escribe `unknown`; las formas integradas se enumeran en [Tipos de Salida de Herramientas](#tool-output-types).1597En un mensaje que lleva un bloque `tool_result`, `tool_use_result` es el objeto de salida estructurado de la herramienta en lugar del texto enviado al modelo. Su forma depende de la herramienta nombrada por el bloque `tool_use` coincidente, así que el campo se escribe `unknown`; las formas integradas se enumeran en [Tipos de Salida de Herramientas](#tool-output-types).

1598 1598 

1599Para la herramienta `Agent`, `tool_use_result` es [`AgentOutput`](#agent-2). En un resultado `completed`, `content` contiene el informe del subagente sin el ID del agente y el tráiler de uso que Claude Code añade al texto `tool_result`, así que renderice desde `tool_use_result` en lugar de analizar ese texto.1599Para la herramienta `Agent`, `tool_use_result` es [`AgentOutput`](#agent-2). Renderiza a partir de él en lugar de analizar el texto de `tool_result`. El `content` de un resultado `completed` contiene el informe del subagente o, para un subagente cuyo informe pasa por una llamada a la herramienta `SubagentHandback`, una nota breve sobre esa entrega en lugar del informe. En [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode) en Claude Code v2.1.271 o posterior, todo subagente que produce un resultado `completed` informa de esa manera a menos que sea una [bifurcación](/docs/es/sub-agents#fork-the-current-conversation), y Claude recibe el informe como un mensaje separado del subagente.

1600 1600 

1601Para una herramienta MCP cuyo resultado contiene bloques `resource_link`, `tool_use_result` es un objeto con una matriz `resourceLinks` de entradas [`SDKMcpResourceLink`](#sdkmcpresourcelink). Claude recibe cada enlace como una línea de texto en el bloque `tool_result`, así que lea `resourceLinks` para renderizar los archivos que el servidor devolvió en lugar de analizar ese texto. Claude Code omite `resourceLinks` cuando el resultado no tiene enlaces y en resultados de subagentes, mantiene como máximo 50 enlaces por resultado, y deja de añadir enlaces una vez que la matriz alcanza 64 KiB de JSON serializado. `resourceLinks` requiere Agent SDK v0.3.257 o posterior.1601Para una herramienta MCP cuyo resultado contiene bloques `resource_link`, `tool_use_result` es un objeto con una matriz `resourceLinks` de entradas [`SDKMcpResourceLink`](#sdkmcpresourcelink). Claude recibe cada enlace como una línea de texto en el bloque `tool_result`, así que lea `resourceLinks` para renderizar los archivos que el servidor devolvió en lugar de analizar ese texto. Claude Code omite `resourceLinks` cuando el resultado no tiene enlaces y en resultados de subagentes, mantiene como máximo 50 enlaces por resultado, y deja de añadir enlaces una vez que la matriz alcanza 64 KiB de JSON serializado. `resourceLinks` requiere Agent SDK v0.3.257 o posterior.

1602 1602 


5099```5099```

5100 5100 

5101<h2 id="other-types">5101<h2 id="other-types">

5102 Otros Tipos5102 Otros tipos

5103</h2>5103</h2>

5104 5104 

5105<h3 id="apikeysource">5105<h3 id="apikeysource">

5106 `ApiKeySource`5106 `ApiKeySource`

5107</h3>5107</h3>

5108 5108 

5109De dónde provino la clave API para las solicitudes de la sesión, reportada como `apiKeySource` en el mensaje de inicialización [`SDKSystemMessage`](#sdksystemmessage).5109De dónde provino la clave de API para las solicitudes de la sesión, reportada como `apiKeySource` en el mensaje de inicialización [`SDKSystemMessage`](#sdksystemmessage).

5110 5110 

5111```typescript theme={null}5111```typescript theme={null}

5112type ApiKeySource =5112type ApiKeySource =


5126| Valor | Clave en uso |5126| Valor | Clave en uso |

5127| - | - |5127| - | - |

5128| `ANTHROPIC_API_KEY` | La clave en la variable de entorno `ANTHROPIC_API_KEY` |5128| `ANTHROPIC_API_KEY` | La clave en la variable de entorno `ANTHROPIC_API_KEY` |

5129| `apiKeyHelper` | La clave devuelta por su comando [`apiKeyHelper`](/docs/es/settings-reference#apikeyhelper) |5129| `apiKeyHelper` | La clave devuelta por tu comando [`apiKeyHelper`](/docs/es/settings-reference#apikeyhelper) |

5130| `/login managed key` | La clave que Claude Code almacenó cuando inició sesión con una [cuenta de Claude Console](/docs/es/authentication#claude-console-authentication) |5130| `/login managed key` | La clave que Claude Code almacenó cuando iniciaste sesión con una [cuenta de Claude Console](/docs/es/authentication#claude-console-authentication) |

5131| `none` | Sin clave API. La sesión se autentica de otra manera, como un inicio de sesión en claude.ai, un token portador o un proveedor de nube |5131| `none` | Sin clave de API. La sesión se autentica de otra manera, como un inicio de sesión en claude.ai, un token portador o un proveedor de nube |

5132 5132 

5133Agent SDK v0.3.234 y posterior enumeran estos cuatro valores en el tipo. El tipo también mantiene `user`, `project`, `org`, `temporary` y `oauth` para que el código más antiguo siga compilándose, y Claude Code no los reporta.5133Agent SDK v0.3.234 y posterior enumeran estos cuatro valores en el tipo. El tipo también mantiene `user`, `project`, `org`, `temporary` y `oauth` para que el código más antiguo siga compilándose, y Claude Code no los reporta.

5134 5134 


5136 `SdkBeta`5136 `SdkBeta`

5137</h3>5137</h3>

5138 5138 

5139Características beta disponibles que se pueden habilitar a través de la opción `betas`. Vea [Encabezados Beta](https://platform.claude.com/docs/en/api/beta-headers) para más información.5139Características beta disponibles que se pueden habilitar a través de la opción `betas`. Consulta [Encabezados beta](https://platform.claude.com/docs/en/api/beta-headers) para más información.

5140 5140 

5141```typescript theme={null}5141```typescript theme={null}

5142type SdkBeta = "context-1m-2025-08-07";5142type SdkBeta = "context-1m-2025-08-07";

5143```5143```

5144 5144 

5145<Warning>5145<Warning>

5146 La beta `context-1m-2025-08-07` se retiró a partir del 30 de abril de 2026. Pasar este valor con Claude Sonnet 4.5 o Sonnet 4 no tiene efecto, y las solicitudes que excedan la ventana de contexto estándar de 200k tokens devuelven un error. Para usar una ventana de contexto de 1M tokens, migre a [Claude Opus 5.5, Claude Opus 5, Claude Sonnet 5, Claude Sonnet 4.6, Claude Opus 4.6, Claude Opus 4.7 u Claude Opus 4.8](https://platform.claude.com/docs/en/about-claude/models/overview), que incluyen contexto de 1M a precios estándar sin encabezado beta requerido.5146 En la Claude API, la beta `context-1m-2025-08-07` está retirada para Claude Sonnet 4.5 y Claude Sonnet 4. Si todavía la pasas con cualquiera de esos modelos, las solicitudes que excedan la ventana de contexto estándar de 200K tokens devuelven un error, así que quítala de `betas`. Para ejecutar una sesión con una ventana de contexto de 1M tokens, establece `model` en un modelo que [se ejecute con la ventana de 1M de forma predeterminada](/docs/es/model-config#extended-context), como `claude-sonnet-5-5` o `claude-opus-5-5`. Para un modelo que alcanza 1M solo a través de su variante `[1m]`, agrega el sufijo al ID del modelo, como en `claude-opus-4-6[1m]`.

5147</Warning>5147</Warning>

5148 5148 

5149<h3 id="slashcommand">5149<h3 id="slashcommand">


5162};5162};

5163```5163```

5164 5164 

5165`builtin` es `true` en una fila cuando el comando es propio de Claude Code y escribir `/name` lo ejecuta. Está ausente para un comando definido por un usuario, proyecto, plugin o servidor MCP, y para un comando agrupado que uno de esos [reemplaza por nombre](/docs/es/skills#resolve-skills-that-share-a-name). Requiere Agent SDK v0.3.277 o posterior.5165`builtin` es `true` en una fila cuando el comando es propio de Claude Code y escribir `/name` lo ejecuta. Está ausente para un comando definido por un usuario, proyecto, plugin o servidor MCP, y para un comando incluido que uno de esos [reemplaza por nombre](/docs/es/skills#resolve-skills-that-share-a-name). Requiere Agent SDK v0.3.277 o posterior.

5166 5166 

5167<h3 id="modelinfo">5167<h3 id="modelinfo">

5168 `ModelInfo`5168 `ModelInfo`


5186 5186 

5187| Campo | Tipo | Descripción |5187| Campo | Tipo | Descripción |

5188| :- | :- | :- |5188| :- | :- | :- |

5189| `value` | `string` | Identificador de modelo para pasar en llamadas API |5189| `value` | `string` | Identificador de modelo para pasar en llamadas a la API |

5190| `resolvedModel` | `string \| undefined` | ID de modelo canónico que el `value` de esta entrada se resuelve a. Una entrada de alias como `sonnet` se resuelve a un ID de modelo explícito como `claude-sonnet-5`, por lo que un host puede coincidir un ID de modelo explícito almacenado contra la entrada de alias que lo cubre. Requiere Claude Code v2.1.197 o posterior. |5190| `resolvedModel` | `string \| undefined` | El ID de modelo al que se resuelve el `value` de esta entrada, como `claude-sonnet-5-5` para la entrada del alias `sonnet`. Requiere Claude Code v2.1.197 o posterior. |

5191| `displayName` | `string` | Nombre de visualización legible para humanos |5191| `displayName` | `string` | Nombre de visualización legible para humanos |

5192| `description` | `string` | Descripción de las capacidades del modelo |5192| `description` | `string` | Descripción de las capacidades del modelo |

5193| `supportsEffort` | `boolean \| undefined` | Si este modelo admite niveles de esfuerzo |5193| `supportsEffort` | `boolean \| undefined` | Si este modelo admite niveles de esfuerzo |


5234| `name` | `string` | El nombre bajo el cual está registrado el servidor, el mismo valor que [`mcpServerStatus()`](#query-object) reporta para él |5234| `name` | `string` | El nombre bajo el cual está registrado el servidor, el mismo valor que [`mcpServerStatus()`](#query-object) reporta para él |

5235| `source` | `string` | De dónde provino la definición del servidor: `sdk`, `plugin` o un alcance de configuración |5235| `source` | `string` | De dónde provino la definición del servidor: `sdk`, `plugin` o un alcance de configuración |

5236 5236 

5237`source` toma uno de los siguientes valores. El conjunto está abierto, así que trate un valor que no reconozca como una fuente configurada, nunca como `sdk`:5237`source` toma uno de los siguientes valores. El conjunto está abierto, así que trata un valor que no reconozcas como una fuente configurada, nunca como `sdk`:

5238 5238 

5239* **`sdk`**: un servidor en proceso que su aplicación registró. Solo la aplicación host del SDK puede registrar uno, así que un servidor configurado nunca reporta `sdk`, sea cual sea su nombre.5239* **`sdk`**: un servidor en proceso que tu aplicación registró. Solo la aplicación host del SDK puede registrar uno, así que un servidor configurado nunca reporta `sdk`, sea cual sea su nombre.

5240* **`plugin`**: un servidor que proporciona un [plugin](/docs/es/agent-sdk/plugins). Su `name` es la forma con alcance `plugin:<plugin-name>:<server-name>` descrita bajo [servidores MCP proporcionados por plugins](/docs/es/mcp#plugin-provided-mcp-servers).5240* **`plugin`**: un servidor que proporciona un [plugin](/docs/es/agent-sdk/plugins). Su `name` es la forma con alcance `plugin:<plugin-name>:<server-name>` descrita en [servidores MCP proporcionados por plugins](/docs/es/mcp#plugin-provided-mcp-servers).

5241* **Un alcance de configuración**: `user`, `project`, `local`, `dynamic`, `managed`, `enterprise`, `claudeai` o `agent`. Un servidor `.mcp.json` reporta `project`, y [alcances de instalación MCP](/docs/es/mcp#mcp-installation-scopes) define `local`, `project` y `user`. Los servidores que su aplicación pasa en la opción [`mcpServers`](#options), que no sean servidores SDK en proceso, reportan `dynamic`.5241* **Un alcance de configuración**: `user`, `project`, `local`, `dynamic`, `managed`, `enterprise`, `claudeai` o `agent`. Un servidor de `.mcp.json` reporta `project`, y [alcances de instalación de MCP](/docs/es/mcp#mcp-installation-scopes) define `local`, `project` y `user`. Los servidores que tu aplicación pasa en la [opción `mcpServers`](#options), salvo los servidores SDK en proceso, reportan `dynamic`.

5242 5242 

5243Base las decisiones de confianza en `source`, no en `name` o el prefijo de nombre de herramienta `mcp__<server>__`. Para cualquier fuente que no sea `sdk`, `name` es texto no confiable: escápelo antes de mostrarlo.5243Basa las decisiones de confianza en `source`, no en `name` ni en el prefijo de nombre de herramienta `mcp__<server>__`. Para cualquier fuente que no sea `sdk`, `name` es texto no confiable: escápalo antes de mostrarlo.

5244 5244 

5245`McpServerProvenance` y los campos que la llevan requieren Agent SDK v0.3.274 o posterior.5245`McpServerProvenance` y los campos que la llevan requieren Agent SDK v0.3.274 o posterior.

5246 5246 


5275};5275};

5276```5276```

5277 5277 

5278`source` dice de dónde provino la definición del servidor, con los mismos valores y regla de confianza que el `source` de [`McpServerProvenance`](#mcpserverprovenance). El campo requiere Agent SDK v0.3.274 o posterior y está ausente en versiones anteriores.5278`source` indica de dónde provino la definición del servidor, con los mismos valores y regla de confianza que el `source` de [`McpServerProvenance`](#mcpserverprovenance). El campo requiere Agent SDK v0.3.274 o posterior y está ausente en versiones anteriores.

5279 5279 

5280`_meta` en una entrada `tools` lleva los miembros de MCP Apps de `_meta` de esa herramienta, por lo que su aplicación puede encontrar el recurso `ui://` para renderizar con [`readMcpResource()`](#query-object). Claude Code pasa el objeto `ui` y la cadena `ui/resourceUri` plana deprecada, y retiene todas las otras claves. Dentro de `ui`, `resourceUri` es una cadena `ui://` y `visibility` es una matriz de `"model"` y `"app"` cuando el servidor los establece, y cualquier otro miembro pasa sin cambios. Claude Code descarta cualquier clave cuando el valor está mal formado, y omite `_meta` de una herramienta que no declara ninguno. El campo está presente solo cuando las [`capabilities`](#sdksystemmessage) del mensaje de inicialización incluyen `mcp_tool_ui_meta_v1`, y requiere TypeScript Agent SDK v0.3.280 o posterior.5280`_meta` en una entrada de `tools` lleva los miembros de MCP Apps del `_meta` de esa herramienta, para que tu aplicación pueda encontrar el recurso `ui://` que debe renderizar con [`readMcpResource()`](#query-object). Claude Code transmite el objeto `ui` y la cadena plana obsoleta `ui/resourceUri`, y retiene todas las demás claves. Dentro de `ui`, `resourceUri` es una cadena `ui://` y `visibility` un array de `"model"` y `"app"` cuando el servidor los establece, y cualquier otro miembro pasa sin cambios. Claude Code descarta cualquiera de las dos claves cuando el valor está mal formado, y omite `_meta` de una herramienta que no declara ninguna. El campo está presente solo cuando las [`capabilities`](#sdksystemmessage) del mensaje de inicialización incluyen `mcp_tool_ui_meta_v1`, y requiere TypeScript Agent SDK v0.3.280 o posterior.

5281 5281 

5282<h3 id="mcpserverstatusconfig">5282<h3 id="mcpserverstatusconfig">

5283 `McpServerStatusConfig`5283 `McpServerStatusConfig`

5284</h3>5284</h3>

5285 5285 

5286La configuración de un servidor MCP como se reporta por `mcpServerStatus()`. Esta es la unión de todos los tipos de transporte de servidor MCP.5286La configuración de un servidor MCP tal como la reporta `mcpServerStatus()`. Esta es la unión de todos los tipos de transporte de servidor MCP.

5287 5287 

5288```typescript theme={null}5288```typescript theme={null}

5289type McpServerStatusConfig =5289type McpServerStatusConfig =


5294 | McpClaudeAIProxyServerConfig;5294 | McpClaudeAIProxyServerConfig;

5295```5295```

5296 5296 

5297Vea [`McpServerConfig`](#mcpserverconfig) para detalles sobre cada tipo de transporte.5297Consulta [`McpServerConfig`](#mcpserverconfig) para ver detalles sobre cada tipo de transporte.

5298 5298 

5299<h3 id="accountinfo">5299<h3 id="accountinfo">

5300 `AccountInfo`5300 `AccountInfo`

5301</h3>5301</h3>

5302 5302 

5303Información de cuenta para el usuario autenticado.5303Información de cuenta del usuario autenticado.

5304 5304 

5305```typescript theme={null}5305```typescript theme={null}

5306type AccountInfo = {5306type AccountInfo = {


5316 `ModelUsage`5316 `ModelUsage`

5317</h3>5317</h3>

5318 5318 

5319Estadísticas de uso por modelo devueltas en mensajes de resultado. El valor `costUSD` es una estimación del lado del cliente. Vea [Rastrear costo y uso](/docs/es/agent-sdk/cost-tracking) para advertencias de facturación.5319Estadísticas de uso por modelo devueltas en mensajes de resultado. El valor `costUSD` es una estimación del lado del cliente. Consulta [Rastrear costo y uso](/docs/es/agent-sdk/cost-tracking) para ver advertencias sobre facturación.

5320 5320 

5321```typescript theme={null}5321```typescript theme={null}

5322type ModelUsage = {5322type ModelUsage = {


5335};5335};

5336```5336```

5337 5337 

5338`thinkingTokens` cuenta los tokens de pensamiento que este modelo generó. `outputTokens` ya los incluye, así que no sume los dos juntos. El campo está ausente hasta que un turno se ejecuta en una versión de Claude Code que lo registra, por lo que una sesión reanudada que comenzó en una versión anterior reporta un recuento parcial. `thinkingTokens` requiere Agent SDK v0.3.257 o posterior.5338`thinkingTokens` cuenta los tokens de pensamiento que generó este modelo. `outputTokens` ya los incluye, así que no sumes los dos. El campo está ausente hasta que un turno se ejecuta en una versión de Claude Code que lo registra, por lo que una sesión reanudada que comenzó en una versión anterior reporta un recuento parcial. `thinkingTokens` requiere Agent SDK v0.3.257 o posterior.

5339 5339 

5340Los campos `canonicalModel` y `provider` requieren Claude Code v2.1.218 o posterior. `canonicalModel` es el ID de modelo canónico que la búsqueda de precios utiliza; puede diferir de la cadena de modelo sin procesar que clave la entrada, por ejemplo cuando esa cadena es un ID específico del proveedor o un alias.5340Los campos `canonicalModel` y `provider` requieren Claude Code v2.1.218 o posterior. `canonicalModel` es el ID de modelo canónico que usa la búsqueda de precios; puede diferir de la cadena de modelo sin procesar que sirve de clave a la entrada, por ejemplo cuando esa cadena es un ID específico del proveedor o un alias.

5341 5341 

5342`provider` nombra el backend de API que sirvió el modelo, como `firstParty`, `bedrock`, `vertex`, `foundry`, `anthropicAws`, `mantle` o `gateway`.5342`provider` nombra el backend de API que sirvió el modelo, como `firstParty`, `bedrock`, `vertex`, `foundry`, `anthropicAws`, `mantle` o `gateway`.

5343 5343 

5344`costBasis` nombra la tabla de precios que fijó el precio de la solicitud más reciente del modelo: `list` para precio de lista, `managed` para una tabla [`modelPricing`](/docs/es/settings-reference#modelpricing), o `unknown` cuando ninguno coincidió con el ID del modelo. El campo requiere Claude Code v2.1.246 o posterior.5344`costBasis` nombra la tabla de precios que fijó el precio de la solicitud más reciente del modelo: `list` para precio de lista, `managed` para una tabla [`modelPricing`](/docs/es/settings-reference#modelpricing), o `unknown` cuando ninguna coincidió con el ID del modelo. El campo requiere Claude Code v2.1.246 o posterior.

5345 5345 

5346<h3 id="configscope">5346<h3 id="configscope">

5347 `ConfigScope`5347 `ConfigScope`


5355 `NonNullableUsage`5355 `NonNullableUsage`

5356</h3>5356</h3>

5357 5357 

5358Una versión de [`Usage`](#usage) con todos los campos anulables hechos no anulables.5358Una versión de [`Usage`](#usage) con todos los campos anulables convertidos en no anulables.

5359 5359 

5360```typescript theme={null}5360```typescript theme={null}

5361type NonNullableUsage = {5361type NonNullableUsage = {


5390 5390 

5391`BetaServerToolUsage`, `BetaIterationsUsage` y `BetaOutputTokensDetails` se definen en `@anthropic-ai/sdk`.5391`BetaServerToolUsage`, `BetaIterationsUsage` y `BetaOutputTokensDetails` se definen en `@anthropic-ai/sdk`.

5392 5392 

5393`output_tokens_details` desglosa la salida facturada por categoría. Actualmente lleva un campo, `thinking_tokens: number`, contando los tokens de salida que el modelo generó como razonamiento interno, incluyendo los delimitadores de bloque de pensamiento. El campo `output_tokens_details` requiere TypeScript SDK v0.3.228 o posterior, que agrupa Claude Code v2.1.228.5393`output_tokens_details` desglosa la salida facturada por categoría. Actualmente lleva un campo, `thinking_tokens: number`, que cuenta los tokens de salida que el modelo generó como razonamiento interno, incluidos los delimitadores de bloque de pensamiento. El campo `output_tokens_details` requiere TypeScript SDK v0.3.228 o posterior, que incluye Claude Code v2.1.228.

5394 5394 

5395* **Facturación**: lea el desglose para observabilidad, no para facturación. `output_tokens` sigue siendo el total autorizado, y `output_tokens - thinking_tokens` aproxima la salida sin razonamiento.5395* **Facturación**: lee el desglose para observabilidad, no para facturación. `output_tokens` sigue siendo el total de referencia, y `output_tokens - thinking_tokens` aproxima la salida sin razonamiento.

5396* **Qué cubre el recuento**: el razonamiento sin procesar que el modelo produjo, que puede ser más largo que el texto de pensamiento devuelto en el cuerpo de la respuesta. La API lo calcula volviendo a tokenizar ese texto sin procesar, por lo que puede diferir del recuento de generación exacto del modelo en algunos tokens.5396* **Qué cubre el recuento**: el razonamiento sin procesar que produjo el modelo, que puede ser más largo que el texto de pensamiento devuelto en el cuerpo de la respuesta. La API lo calcula volviendo a tokenizar ese texto sin procesar, por lo que puede diferir en algunos tokens del recuento exacto de generación del modelo.

5397* **Streaming**: en mensajes de asistente transmitidos este desglose, como `output_tokens`, es un marcador de posición `message_start` y no lleva un recuento real, así que léalo del mensaje de resultado `usage` como [Leer tokens de salida del mensaje de resultado](/docs/es/agent-sdk/cost-tracking#read-output-tokens-from-the-result-message) describe. En el mensaje de resultado, `thinking_tokens` lee `0` cuando el modelo o proveedor no reporta desglose.5397* **Streaming**: en los mensajes de asistente enviados en streaming, este desglose, al igual que `output_tokens`, es un marcador de posición de `message_start` y no lleva un recuento real, así que léelo del `usage` del mensaje de resultado como se describe en [Leer tokens de salida del mensaje de resultado](/docs/es/agent-sdk/cost-tracking#read-output-tokens-from-the-result-message). En el mensaje de resultado, `thinking_tokens` vale `0` cuando el modelo o el proveedor no reporta desglose.

5398* **Casos `null`**: `output_tokens_details` en sí es `null` en mensajes de asistente que Claude Code sintetiza, como mensajes de error de API.5398* **Casos `null`**: `output_tokens_details` en sí es `null` en mensajes de asistente que Claude Code sintetiza, como los mensajes de error de la API.

5399 5399 

5400<h3 id="calltoolresult">5400<h3 id="calltoolresult">

5401 `CallToolResult`5401 `CallToolResult`

5402</h3>5402</h3>

5403 5403 

5404Tipo de resultado de herramienta MCP (desde `@modelcontextprotocol/sdk/types.js`). `structuredContent` es un objeto JSON que se puede devolver junto con `content`, incluyendo bloques de imagen. Vea [Devolver datos estructurados](/docs/es/agent-sdk/custom-tools#return-structured-data).5404Tipo de resultado de herramienta MCP (de `@modelcontextprotocol/sdk/types.js`). `structuredContent` es un objeto JSON que se puede devolver junto con `content`, incluidos bloques de imagen. Consulta [Devolver datos estructurados](/docs/es/agent-sdk/custom-tools#return-structured-data).

5405 5405 

5406```typescript theme={null}5406```typescript theme={null}

5407type CallToolResult = {5407type CallToolResult = {


5418 `SDKMcpResourceLink`5418 `SDKMcpResourceLink`

5419</h3>5419</h3>

5420 5420 

5421Un archivo que una herramienta MCP devolvió por referencia. Claude Code construye cada entrada desde un bloque `resource_link` en el resultado de la herramienta y entrega la lista como `resourceLinks` en [`SDKUserMessage.tool_use_result`](#sdkusermessage), o como `resource_links` en [`SDKTaskNotificationMessage`](#sdktasknotificationmessage) cuando la llamada terminó en segundo plano. Requiere Agent SDK v0.3.257 o posterior.5421Un archivo que una herramienta MCP devolvió por referencia. Claude Code crea cada entrada a partir de un bloque `resource_link` en el resultado de la herramienta y entrega la lista como `resourceLinks` en [`SDKUserMessage.tool_use_result`](#sdkusermessage), o como `resource_links` en [`SDKTaskNotificationMessage`](#sdktasknotificationmessage) cuando la llamada terminó en segundo plano. Requiere Agent SDK v0.3.257 o posterior.

5422 5422 

5423```typescript theme={null}5423```typescript theme={null}

5424type SDKMcpResourceLink = {5424type SDKMcpResourceLink = {


5432};5432};

5433```5433```

5434 5434 

5435Claude Code descarta un bloque cuyo `uri` o `name` no sea una cadena, y omite un campo opcional cuyo valor no sea del tipo listado.5435Claude Code descarta un bloque cuyo `uri` o `name` no sea una cadena, y omite un campo opcional cuyo valor no sea del tipo indicado.

5436 5436 

5437| Campo | Tipo | Descripción |5437| Campo | Tipo | Descripción |

5438| :- | :- | :- |5438| :- | :- | :- |

5439| `uri` | `string` | URI del recurso, como lo devolvió el servidor |5439| `uri` | `string` | URI del recurso, tal como lo devolvió el servidor |

5440| `name` | `string` | Nombre que el servidor le dio al recurso |5440| `name` | `string` | Nombre que el servidor le dio al recurso |

5441| `title` | `string \| undefined` | Título de visualización, cuando el servidor estableció uno |5441| `title` | `string \| undefined` | Título de visualización, cuando el servidor estableció uno |

5442| `description` | `string \| undefined` | Descripción, cuando el servidor estableció una |5442| `description` | `string \| undefined` | Descripción, cuando el servidor estableció una |


5448 `ThinkingConfig`5448 `ThinkingConfig`

5449</h3>5449</h3>

5450 5450 

5451Controla el comportamiento de pensamiento/razonamiento de Claude. Tiene precedencia sobre el `maxThinkingTokens` deprecado.5451Controla el comportamiento de pensamiento/razonamiento de Claude. Tiene precedencia sobre el obsoleto `maxThinkingTokens`.

5452 5452 

5453```typescript theme={null}5453```typescript theme={null}

5454type ThinkingDisplay = "summarized" | "omitted";5454type ThinkingDisplay = "summarized" | "omitted";

5455 5455 

5456type ThinkingConfig =5456type ThinkingConfig =

5457 | { type: "adaptive"; display?: ThinkingDisplay } // El modelo determina cuándo y cuánto razonar (Opus 4.6+)5457 | { type: "adaptive"; display?: ThinkingDisplay } // El modelo determina cuándo y cuánto razonar (Opus 4.6+)

5458 | { type: "enabled"; budgetTokens?: number; display?: ThinkingDisplay } // Presupuesto de token de pensamiento fijo5458 | { type: "enabled"; budgetTokens?: number; display?: ThinkingDisplay } // Presupuesto fijo de tokens de pensamiento

5459 | { type: "disabled" }; // Sin pensamiento extendido5459 | { type: "disabled" }; // Sin pensamiento extendido

5460```5460```

5461 5461 

5462El campo `display` opcional controla si el texto de pensamiento se devuelve `"summarized"` u `"omitted"`. En Claude Opus 4.7 y posterior, el valor predeterminado de la API es `"omitted"`, así que establezca `"summarized"` para recibir contenido de pensamiento en bloques `thinking`. Claude Code no envía `display` a Amazon Bedrock o a la Plataforma de Agentes de Google Cloud, por lo que en esos proveedores Opus 4.7 y posterior devuelven bloques `thinking` vacíos incluso cuando establece `display` en `"summarized"`.5462El campo opcional `display` controla si el texto de pensamiento se devuelve `"summarized"` u `"omitted"`. En Claude Opus 4.7 y posterior, el valor predeterminado de la API es `"omitted"`, así que establece `"summarized"` para recibir contenido de pensamiento en bloques `thinking`. Claude Code no envía `display` a Amazon Bedrock ni a Agent Platform de Google Cloud, por lo que en esos proveedores Opus 4.7 y posterior devuelven bloques `thinking` vacíos incluso cuando estableces `display` en `"summarized"`.

5463 5463 

5464<h3 id="spawnedprocess">5464<h3 id="spawnedprocess">

5465 `SpawnedProcess`5465 `SpawnedProcess`

5466</h3>5466</h3>

5467 5467 

5468Interfaz para generación de proceso personalizado (usada con la opción `spawnClaudeCodeProcess`). `ChildProcess` ya satisface esta interfaz.5468Interfaz para la creación personalizada de procesos (se usa con la opción `spawnClaudeCodeProcess`). `ChildProcess` ya satisface esta interfaz.

5469 5469 

5470```typescript theme={null}5470```typescript theme={null}

5471interface SpawnedProcess {5471interface SpawnedProcess {


5496 `SpawnOptions`5496 `SpawnOptions`

5497</h3>5497</h3>

5498 5498 

5499Opciones pasadas a la función de generación personalizada.5499Opciones que se pasan a la función de creación personalizada.

5500 5500 

5501```typescript theme={null}5501```typescript theme={null}

5502interface SpawnOptions {5502interface SpawnOptions {


5509```5509```

5510 5510 

5511<Note>5511<Note>

5512 El campo `signal` le indica a su función de generación cuándo desmantelar el proceso. Páselo como la opción `signal` al `spawn()` de Node, o páselo a su controlador de desmontaje de VM o contenedor.5512 El campo `signal` le indica a tu función de creación cuándo desmontar el proceso. Pásalo como la opción `signal` al `spawn()` de Node, o pásalo a tu controlador de desmontaje de VM o contenedor.

5513 5513 

5514 Esta señal no se activa en el instante en que [`Options.abortController`](#options) se aborta. El SDK primero cierra la entrada estándar del proceso y espera aproximadamente dos segundos para que la CLI se apague limpiamente, luego aborta esta señal. Para reaccionar en el momento en que la persona que llama aborta, en su lugar escuche en su propio `Options.abortController.signal`, que su función de generación puede referenciar desde su alcance envolvente.5514 Esta señal no se activa en el instante en que [`Options.abortController`](#options) aborta. El SDK primero cierra el stdin del proceso y espera unos dos segundos para que la CLI se cierre limpiamente, y luego aborta esta señal. Para reaccionar en cambio en el momento en que el llamador aborta, escucha tu propio `Options.abortController.signal`, al que tu función de creación puede hacer referencia desde su alcance envolvente.

5515</Note>5515</Note>

5516 5516 

5517<h3 id="mcpsetserversresult">5517<h3 id="mcpsetserversresult">


5528};5528};

5529```5529```

5530 5530 

5531Cuando llama a `setMcpServers()`, Claude Code aplica estas reglas:5531Cuando llamas a `setMcpServers()`, Claude Code aplica estas reglas:

5532 5532 

5533* **Servidores que la llamada no nombra**: Claude Code mantiene los servidores proporcionados por plugins en ejecución. Requiere Agent SDK v0.3.210 o posterior.5533* **Servidores que la llamada no nombra**: Claude Code mantiene en ejecución los servidores proporcionados por plugins. Requiere Agent SDK v0.3.210 o posterior.

5534* **Servidores que la llamada nombra**: excepto para servidores integrados que la CLI inició al inicio, Claude Code reemplaza un servidor en ejecución solo cuando su configuración difiere de la que pasó.5534* **Servidores que la llamada nombra**: salvo los servidores integrados que la CLI inició al arrancar, Claude Code reemplaza un servidor en ejecución solo cuando su configuración difiere de la que pasaste.

5535* **Servidores integrados que la CLI inició al inicio**: si la llamada nombra uno, Claude Code descarta esa entrada y la reporta en `errors`.5535* **Servidores integrados que la CLI inició al arrancar**: si la llamada nombra uno, Claude Code descarta esa entrada y la reporta en `errors`.

5536 5536 

5537La promesa se resuelve después de que los servidores stdio, HTTP y SSE recién agregados se conecten o fallen, por lo que las herramientas de servidores que se conectaron están disponibles en el siguiente turno.5537La promesa se resuelve después de que los servidores stdio, HTTP y SSE recién agregados se conecten o fallen, por lo que las herramientas de los servidores que se conectaron están disponibles en el siguiente turno.

5538 5538 

5539`added` enumera los servidores que Claude Code agregó o reemplazó, independientemente de si se conectaron. Un servidor que no se conectó aparece en `added` y `errors`, con el texto de falla bajo `errors` y una fila `failed` en [`mcpServerStatus()`](#methods). Antes de Claude Code v2.1.257, un servidor cuyo intento de conexión lanzó una excepción se reportaba solo bajo `errors`.5539`added` enumera los servidores que Claude Code agregó o reemplazó, se hayan conectado o no. Un servidor que no logró conectarse aparece tanto en `added` como en `errors`, con el texto del error en `errors` y una fila `failed` en [`mcpServerStatus()`](#methods). Antes de Claude Code v2.1.257, un servidor cuyo intento de conexión lanzó una excepción se reportaba solo en `errors`.

5540 5540 

5541<h3 id="rewindfilesresult">5541<h3 id="rewindfilesresult">

5542 `RewindFilesResult`5542 `RewindFilesResult`


5555};5555};

5556```5556```

5557 5557 

5558`skippedLinks` cuenta las rutas rastreadas que el rebobinado se negó a restaurar o eliminar por seguridad de enlace: un enlace simbólico, enlace duro u otro archivo no regular en la ruta rastreada, un directorio padre que ya no se resuelve a donde apuntaba cuando se tomó el punto de control, o una copia de seguridad que no se pudo leer de forma segura. El campo requiere Claude Code v2.1.216 o posterior. Una llamada de vista previa con `rewindFiles(userMessageId, { dryRun: true })` nunca lo establece.5558`skippedLinks` cuenta las rutas rastreadas que el rebobinado se negó a restaurar o eliminar por seguridad de enlaces: un enlace simbólico, un enlace duro u otro archivo no regular en la ruta rastreada, un directorio padre que ya no se resuelve a donde apuntaba cuando se tomó el checkpoint, o una copia de seguridad que no se pudo leer de forma segura. El campo requiere Claude Code v2.1.216 o posterior. Una llamada de vista previa con `rewindFiles(userMessageId, { dryRun: true })` nunca lo establece.

5559 5559 

5560<h3 id="sdkstatusmessage">5560<h3 id="sdkstatusmessage">

5561 `SDKStatusMessage`5561 `SDKStatusMessage`


5578 `SDKTaskNotificationMessage`5578 `SDKTaskNotificationMessage`

5579</h3>5579</h3>

5580 5580 

5581Notificación cuando una tarea de fondo se completa, falla o se detiene. Las tareas de fondo incluyen comandos Bash `run_in_background`, vigilancias [Monitor](#monitor) y subagentes de fondo. Para el campo `ambient`, vea [`SDKTaskStartedMessage`](#sdktaskstartedmessage), que lo define y su requisito de versión.5581Notificación cuando una tarea en segundo plano se completa, falla o se detiene. Las tareas en segundo plano incluyen comandos Bash con `run_in_background`, vigilancias de [Monitor](#monitor) y subagentes en segundo plano. Para el campo `ambient`, consulta [`SDKTaskStartedMessage`](#sdktaskstartedmessage), que lo define junto con su requisito de versión.

5582 5582 

5583```typescript theme={null}5583```typescript theme={null}

5584type SDKTaskNotificationMessage = {5584type SDKTaskNotificationMessage = {


5601};5601};

5602```5602```

5603 5603 

5604Cuando Claude Code [mueve una llamada de herramienta MCP larga al fondo](/docs/es/mcp#automatic-backgrounding-of-long-tool-calls), el bloque `tool_result` para esa llamada contiene solo un marcador de posición y el resultado real de la llamada llega en esta notificación. Haga coincidir la notificación con la llamada usando `tool_use_id`. En una notificación `completed`, `resource_links` enumera los archivos que la herramienta devolvió por referencia como entradas [`SDKMcpResourceLink`](#sdkmcpresourcelink), con los mismos límites de 50 enlaces y 64 KiB que [`tool_use_result.resourceLinks`](#sdkusermessage). Claude Code omite `resource_links` cuando el resultado no tenía enlaces y en notificaciones para tareas que no son llamadas de herramienta MCP. `resource_links` requiere Agent SDK v0.3.257 o posterior.5604Cuando Claude Code [mueve una llamada a herramienta MCP larga a segundo plano](/docs/es/mcp#automatic-backgrounding-of-long-tool-calls), el bloque `tool_result` de esa llamada contiene solo un marcador de posición y el resultado real de la llamada llega en esta notificación. Asocia la notificación con la llamada mediante `tool_use_id`. En una notificación `completed`, `resource_links` enumera los archivos que la herramienta devolvió por referencia como entradas [`SDKMcpResourceLink`](#sdkmcpresourcelink), con los mismos límites de 50 enlaces y 64 KiB que [`tool_use_result.resourceLinks`](#sdkusermessage). Claude Code omite `resource_links` cuando el resultado no tenía enlaces y en notificaciones de tareas que no son llamadas a herramientas MCP. `resource_links` requiere Agent SDK v0.3.257 o posterior.

5605 5605 

5606Claude Code antepone un aviso a cada notificación de tarea que envía al modelo, excepto entregas marcadas con la [subclase `scheduled-trigger`](#task-notification-subkinds), que llevan un marco de tarea asignada en su lugar. El aviso establece que no ha ocurrido entrada humana, por lo que el modelo no trata la notificación como una instrucción o aprobación del usuario.5606Claude Code antepone un aviso a cada notificación de tarea que envía al modelo, excepto en las entregas marcadas con el [subtipo `scheduled-trigger`](#task-notification-subkinds), que en su lugar llevan un encuadre de tarea asignada. El aviso indica que no ha habido ninguna entrada humana, para que el modelo no trate la notificación como una instrucción o aprobación del usuario.

5607 5607 

5608Para detectar un turno de notificación de tarea, verifique `origin.kind === "task-notification"` en [`SDKUserMessage`](#sdkusermessage) o [`SDKResultMessage`](#sdkresultmessage) en lugar de hacer coincidir el texto del aviso. Lea `subkind` del mismo campo si necesita saber qué lo generó. Antes de v2.1.205, Claude Code dejaba el aviso fuera de las notificaciones que llegaban mientras la sesión estaba inactiva.5608Para detectar un turno de notificación de tarea, comprueba `origin.kind === "task-notification"` en el [`SDKUserMessage`](#sdkusermessage) o el [`SDKResultMessage`](#sdkresultmessage) en lugar de buscar coincidencias con el texto del aviso. Lee `subkind` del mismo campo si necesitas saber qué lo originó. Antes de v2.1.205, Claude Code no incluía el aviso en las notificaciones que llegaban mientras la sesión estaba inactiva.

5609 5609 

5610<h3 id="sdktoolusesummarymessage">5610<h3 id="sdktoolusesummarymessage">

5611 `SDKToolUseSummaryMessage`5611 `SDKToolUseSummaryMessage`


5629 5629 

5630Se emite cuando un hook comienza a ejecutarse.5630Se emite cuando un hook comienza a ejecutarse.

5631 5631 

5632Claude Code entrega este mensaje, [`SDKHookProgressMessage`](#sdkhookprogressmessage) y [`SDKHookResponseMessage`](#sdkhookresponsemessage) al flujo de mensajes inmediatamente, incluso mientras un hook `SessionStart` o `Setup` aún se está ejecutando durante el inicio de sesión. Claude Code v2.1.169 a v2.1.203 entregó estos mensajes en un lote después de que un hook `SessionStart` o `Setup` se completó; v2.1.204 restauró la entrega en vivo.5632Claude Code entrega este mensaje, [`SDKHookProgressMessage`](#sdkhookprogressmessage) y [`SDKHookResponseMessage`](#sdkhookresponsemessage) al flujo de mensajes de inmediato, incluso mientras un hook `SessionStart` o `Setup` todavía se está ejecutando durante el inicio de la sesión. Claude Code v2.1.169 a v2.1.203 entregaba estos mensajes en un solo lote después de que un hook `SessionStart` o `Setup` se completaba; v2.1.204 restauró la entrega en vivo.

5633 5633 

5634```typescript theme={null}5634```typescript theme={null}

5635type SDKHookStartedMessage = {5635type SDKHookStartedMessage = {


5647 `SDKHookProgressMessage`5647 `SDKHookProgressMessage`

5648</h3>5648</h3>

5649 5649 

5650Se emite mientras un hook se está ejecutando, con salida de stdout/stderr.5650Se emite mientras un hook se está ejecutando, con la salida de stdout/stderr.

5651 5651 

5652```typescript theme={null}5652```typescript theme={null}

5653type SDKHookProgressMessage = {5653type SDKHookProgressMessage = {


5691 `SDKToolProgressMessage`5691 `SDKToolProgressMessage`

5692</h3>5692</h3>

5693 5693 

5694Se emite periódicamente mientras se ejecuta una herramienta para indicar progreso.5694Se emite periódicamente mientras se ejecuta una herramienta para indicar el progreso.

5695 5695 

5696```typescript theme={null}5696```typescript theme={null}

5697type SDKToolProgressMessage = {5697type SDKToolProgressMessage = {


5716};5716};

5717```5717```

5718 5718 

5719Mientras una llamada de herramienta se ejecuta en la conversación principal, Claude Code emite un mensaje `tool_progress` cada 30 segundos con `heartbeat: true`. Cada latido lleva el nombre de la herramienta y segundos transcurridos, por lo que puede distinguir una llamada de larga duración de una sesión estancada. Claude Code no emite latidos para llamadas de herramienta dentro de un subagente. El campo `heartbeat` requiere Agent SDK v0.3.214 o posterior. Antes de v2.1.257, Claude Code tampoco emitía latidos para una llamada de herramienta Agent en primer plano.5719Mientras una llamada a herramienta se ejecuta en la conversación principal, Claude Code emite un mensaje `tool_progress` cada 30 segundos con `heartbeat: true`. Cada latido lleva el nombre de la herramienta y los segundos transcurridos, para que puedas distinguir una llamada de larga duración de una sesión estancada. Claude Code no emite latidos para llamadas a herramientas dentro de un subagente. El campo `heartbeat` requiere Agent SDK v0.3.214 o posterior. Antes de v2.1.257, Claude Code tampoco emitía latidos para una llamada a la herramienta Agent en primer plano.

5720 5720 

5721En mensajes `tool_progress` para la herramienta Agent que no sean latidos, `subagent_type` nombra el tipo de subagente en ejecución, como `general-purpose`. `subagent_retry` está presente mientras ese subagente espera un retroceso de error de API, como un límite de velocidad o sobrecarga, con un mensaje por intento de reintento. Ambos campos requieren Agent SDK v0.3.214 o posterior.5721En los mensajes `tool_progress` de la herramienta Agent que no son latidos, `subagent_type` nombra el tipo de subagente en ejecución, como `general-purpose`. `subagent_retry` está presente mientras ese subagente espera el retroceso tras un error de API, como un rate limit o una sobrecarga, con un mensaje por intento de reintento. Ambos campos requieren Agent SDK v0.3.214 o posterior.

5722 5722 

5723Para renderizar un indicador de reintento desde `subagent_retry`:5723Para renderizar un indicador de reintento a partir de `subagent_retry`:

5724 5724 

5725* Rastrear el indicador por `parent_tool_use_id`, que es único por subagente. `tool_use_id` se comparte entre subagentes paralelos de un turno de asistente, por lo que rastrear por él permitiría que la actualización de un subagente borre el indicador de otro.5725* Rastrea el indicador por `parent_tool_use_id`, que es único por subagente. `tool_use_id` lo comparten los subagentes paralelos de un mismo turno de asistente, así que rastrear por él permitiría que la actualización de un subagente borre el indicador de otro.

5726* Borrar el indicador cuando un `tool_progress` posterior para el mismo `parent_tool_use_id` llega sin `subagent_retry` ni `heartbeat: true`, o cuando llega el mensaje de resultado de la herramienta. Los fotogramas con `heartbeat: true` reportan solo vivacidad, así que mantenga el indicador cuando uno llega. `attempt` puede exceder `max_retries` bajo reintento persistente, así que no derive el borrado de los contadores.5726* Borra el indicador cuando llegue un `tool_progress` posterior para el mismo `parent_tool_use_id` sin `subagent_retry` ni `heartbeat: true`, o cuando llegue el mensaje de resultado de la herramienta. Los frames con `heartbeat: true` solo informan que el proceso sigue activo, así que conserva el indicador cuando llegue uno. `attempt` puede superar `max_retries` con reintento persistente, así que no determines el borrado a partir de los contadores.

5727* Tratar `error_category` como un token para elegir su propio texto de mensaje, no como texto de visualización. Los valores son `rate_limit`, `overloaded`, `authentication_failed`, `server_error`, `cloud_credential_error` e `unknown`. Maneje un valor que no reconozca de la manera que maneja `unknown`, porque versiones posteriores pueden agregar valores.5727* Trata `error_category` como un token para elegir tu propio texto de mensaje, no como texto para mostrar. Los valores son `rate_limit`, `overloaded`, `authentication_failed`, `server_error`, `cloud_credential_error` y `unknown`. Maneja un valor que no reconozcas igual que `unknown`, porque versiones posteriores pueden agregar valores.

5728 5728 

5729<h3 id="sdkauthstatusmessage">5729<h3 id="sdkauthstatusmessage">

5730 `SDKAuthStatusMessage`5730 `SDKAuthStatusMessage`

5731</h3>5731</h3>

5732 5732 

5733Se emite durante flujos de autenticación.5733Se emite durante los flujos de autenticación.

5734 5734 

5735```typescript theme={null}5735```typescript theme={null}

5736type SDKAuthStatusMessage = {5736type SDKAuthStatusMessage = {


5747 `SDKTaskStartedMessage`5747 `SDKTaskStartedMessage`

5748</h3>5748</h3>

5749 5749 

5750Se emite cuando comienza una tarea. El campo `task_type` es `"local_bash"` para comandos Bash y vigilancias [Monitor](#monitor), `"local_agent"` para subagentes, o `"remote_agent"`.5750Se emite cuando comienza una tarea. El campo `task_type` es `"local_bash"` para comandos Bash y vigilancias de [Monitor](#monitor), `"local_agent"` para subagentes, o `"remote_agent"`.

5751 5751 

5752```typescript theme={null}5752```typescript theme={null}

5753type SDKTaskStartedMessage = {5753type SDKTaskStartedMessage = {


5765};5765};

5766```5766```

5767 5767 

5768`ambient` es `true` para tareas que no son parte del trabajo de la sesión, como tareas que Claude Code ejecuta para su propia operación. Los vigilantes de actualización en vivo también son ambientes, incluyendo vigilantes que el usuario pidió. Excluya tareas ambientes de indicadores de actividad. El campo requiere Agent SDK v0.3.247 o posterior.5768`ambient` es `true` para tareas que no forman parte del trabajo de la sesión, como las tareas que Claude Code ejecuta para su propio funcionamiento. Los vigilantes de actualización en vivo también son ambientales, incluidos los que pidió el usuario. Excluye las tareas ambientales de los indicadores de actividad. El campo requiere Agent SDK v0.3.247 o posterior.

5769 5769 

5770`ambient` también aparece en [`SDKTaskNotificationMessage`](#sdktasknotificationmessage) y en entradas [`SDKBackgroundTasksChangedMessage`](#sdkbackgroundtaskschangedmessage).5770`ambient` también aparece en [`SDKTaskNotificationMessage`](#sdktasknotificationmessage) y en las entradas de [`SDKBackgroundTasksChangedMessage`](#sdkbackgroundtaskschangedmessage).

5771 5771 

5772`is_backgrounded` y `spawn_depth` describen cómo Claude Code inició la tarea. Ambos campos requieren Agent SDK v0.3.238 o posterior.5772`is_backgrounded` y `spawn_depth` describen cómo Claude Code inició la tarea. Ambos campos requieren Agent SDK v0.3.238 o posterior.

5773 5773 

5774* `is_backgrounded`: Claude Code lo establece en tareas `"local_agent"` y `"local_bash"`. `true` significa que la tarea se ejecuta en segundo plano. `false` significa que la tarea se ejecuta en primer plano, y la llamada de herramienta que la inició permanece bloqueada hasta que la tarea se complete o se mueva al fondo.5774* `is_backgrounded`: Claude Code lo establece en tareas `"local_agent"` y `"local_bash"`. `true` significa que la tarea se ejecuta en segundo plano. `false` significa que la tarea se ejecuta en primer plano, y la llamada a herramienta que la inició permanece bloqueada hasta que la tarea termine o pase a segundo plano.

5775* `spawn_depth`: Claude Code lo establece solo en tareas `"local_agent"`. Un subagente que el hilo principal generó tiene profundidad `1`. Un subagente que un subagente de profundidad `1` generó tiene profundidad `2`, y así sucesivamente.5775* `spawn_depth`: Claude Code lo establece solo en tareas `"local_agent"`. Un subagente creado por el hilo principal tiene profundidad `1`. Un subagente creado por un subagente de profundidad `1` tiene profundidad `2`, y así sucesivamente.

5776 5776 

5777Un [subagente reanudado](/docs/es/agent-sdk/subagents#resume-subagents) siempre reporta `is_backgrounded: true`, porque Claude Code ejecuta cada subagente reanudado en segundo plano. Cuando una tarea en primer plano se mueve al fondo más tarde, Claude Code reporta el nuevo valor `is_backgrounded` en un mensaje [`task_updated`](#sdktaskupdatedmessage) en lugar de enviar un segundo `task_started`.5777Un [subagente reanudado](/docs/es/agent-sdk/subagents#resume-subagents) siempre reporta `is_backgrounded: true`, porque Claude Code ejecuta todos los subagentes reanudados en segundo plano. Cuando una tarea en primer plano pasa más tarde a segundo plano, Claude Code reporta el nuevo valor de `is_backgrounded` en un mensaje [`task_updated`](#sdktaskupdatedmessage) en lugar de enviar un segundo `task_started`.

5778 5778 

5779<h3 id="sdktaskprogressmessage">5779<h3 id="sdktaskprogressmessage">

5780 `SDKTaskProgressMessage`5780 `SDKTaskProgressMessage`

5781</h3>5781</h3>

5782 5782 

5783Se emite periódicamente mientras se ejecuta un subagente o tarea de fondo.5783Se emite periódicamente mientras se ejecuta un subagente o una tarea en segundo plano.

5784 5784 

5785Para una tarea de subagente, el campo `summary` lleva un resumen de progreso generado por modelo y se completa solo cuando [`agentProgressSummaries`](#options) está habilitado. Para una [llamada de herramienta MCP en segundo plano](/docs/es/mcp#automatic-backgrounding-of-long-tool-calls), `summary` lleva el progreso más reciente reportado por el servidor MCP y no depende de esa opción.5785Para una tarea de subagente, el campo `summary` lleva un resumen de progreso generado por el modelo y solo se completa cuando [`agentProgressSummaries`](#options) está habilitado. Para una [llamada a herramienta MCP en segundo plano](/docs/es/mcp#automatic-backgrounding-of-long-tool-calls), `summary` lleva el progreso más reciente reportado por el servidor MCP y no depende de esa opción.

5786 5786 

5787```typescript theme={null}5787```typescript theme={null}

5788type SDKTaskProgressMessage = {5788type SDKTaskProgressMessage = {


5808 `SDKTaskUpdatedMessage`5808 `SDKTaskUpdatedMessage`

5809</h3>5809</h3>

5810 5810 

5811Se emite cuando el estado de una tarea de fondo cambia, como cuando transiciona de `running` a `completed`. Combine `patch` en su mapa de tareas local con clave `task_id`. El campo `end_time` es una marca de tiempo de época Unix en milisegundos, comparable con `Date.now()`.5811Se emite cuando cambia el estado de una tarea en segundo plano, por ejemplo cuando pasa de `running` a `completed`. Combina `patch` en tu mapa local de tareas indexado por `task_id`. El campo `end_time` es una marca de tiempo de época Unix en milisegundos, comparable con `Date.now()`.

5812 5812 

5813```typescript theme={null}5813```typescript theme={null}

5814type SDKTaskUpdatedMessage = {5814type SDKTaskUpdatedMessage = {


5832 `SDKBackgroundTasksChangedMessage`5832 `SDKBackgroundTasksChangedMessage`

5833</h3>5833</h3>

5834 5834 

5835Se emite siempre que el conjunto de tareas de fondo activas cambia: una tarea comienza, se completa, se mata, un agente en primer plano se pone en segundo plano, o el campo `description` o `ambient` de una tarea cambia.5835Se emite siempre que cambia el conjunto de tareas en segundo plano activas: una tarea comienza, se completa o se termina, un agente en primer plano pasa a segundo plano, o cambia el campo `description` o `ambient` de una tarea.

5836 5836 

5837El array `tasks` es el conjunto completo activo. Reemplace cualquier conjunto en caché con cada carga útil en lugar de emparejar eventos `task_started` y `task_notification`, para que el siguiente cambio de membresía corrija cualquier evento que haya perdido.5837El array `tasks` es el conjunto activo completo. Reemplaza cualquier conjunto en caché con cada payload en lugar de emparejar eventos `task_started` y `task_notification`, para que el siguiente cambio de membresía corrija cualquier evento que te hayas perdido.

5838 5838 

5839El orden relativo a esos eventos por tarea no está especificado, así que no correlacione los dos flujos.5839El orden relativo a esos eventos por tarea no está especificado, así que no correlaciones los dos flujos.

5840 5840 

5841Nada se emite al inicio. Reinicie a un conjunto vacío siempre que el proceso CLI de la sesión comience o se reinicie y deje que el siguiente cambio de membresía lo repuele.5841No se emite nada al inicio. Restablece a un conjunto vacío cada vez que el proceso de CLI de la sesión se inicie o reinicie, y deja que el siguiente cambio de membresía lo vuelva a llenar.

5842 5842 

5843Cuando envía una solicitud de control `initialize` repetida a una sesión en ejecución, como con [`reinitialize()`](#query-object) después de una brecha de transporte, Claude Code sigue la respuesta con una instantánea del conjunto activo actual, incluso cuando está vacío. Un host que se reconecta por lo tanto aprende qué se está ejecutando sin esperar al siguiente cambio de membresía. Antes de Agent SDK v0.3.239, Claude Code no envió instantánea después de un `initialize` repetido.5843Cuando envías una solicitud de control `initialize` repetida a una sesión en ejecución, como con [`reinitialize()`](#query-object) después de una interrupción del transporte, Claude Code envía tras la respuesta una instantánea del conjunto activo actual, incluso cuando está vacío. Así, un host que se reconecta sabe qué se está ejecutando sin esperar al siguiente cambio de membresía. Antes de Agent SDK v0.3.239, Claude Code no enviaba ninguna instantánea después de un `initialize` repetido.

5844 5844 

5845Requiere Claude Code v2.1.203 o posterior.5845Requiere Claude Code v2.1.203 o posterior.

5846 5846 


5863 `SDKThinkingTokensMessage`5863 `SDKThinkingTokensMessage`

5864</h3>5864</h3>

5865 5865 

5866Se emite mientras Claude está produciendo un bloque de pensamiento, incluyendo uno redactado. `estimated_tokens` es una estimación en ejecución de los tokens de pensamiento generados hasta ahora en el bloque actual, y `estimated_tokens_delta` es el incremento llevado por este fotograma. Use estas estimaciones para visualización de progreso.5866Se emite mientras Claude produce un bloque de pensamiento, incluido uno redactado. `estimated_tokens` es una estimación acumulada de los tokens de pensamiento generados hasta el momento en el bloque actual, y `estimated_tokens_delta` es el incremento que lleva este frame. Usa estas estimaciones para mostrar el progreso.

5867 5867 

5868Cuando el modelo o proveedor reporta un desglose, el recuento final para el bucle de agente de nivel superior es el [`usage.output_tokens_details.thinking_tokens`](#usage) del mensaje de resultado, que [no incluye tokens de subagente](/docs/es/agent-sdk/cost-tracking#get-the-total-cost-of-a-query).5868Cuando el modelo o el proveedor reporta un desglose, el recuento final del bucle de agente de nivel superior es el [`usage.output_tokens_details.thinking_tokens`](#usage) del mensaje de resultado, que [no incluye tokens de subagentes](/docs/es/agent-sdk/cost-tracking#get-the-total-cost-of-a-query).

5869 5869 

5870Requiere Claude Code v2.1.153 o posterior.5870Requiere Claude Code v2.1.153 o posterior.

5871 5871 


5885 `SDKFilesPersistedEvent`5885 `SDKFilesPersistedEvent`

5886</h3>5886</h3>

5887 5887 

5888Se emite cuando los puntos de control de archivo se persisten en el disco.5888Se emite cuando los checkpoints de archivos se guardan en el disco.

5889 5889 

5890```typescript theme={null}5890```typescript theme={null}

5891type SDKFilesPersistedEvent = {5891type SDKFilesPersistedEvent = {


5903 `SDKRateLimitEvent`5903 `SDKRateLimitEvent`

5904</h3>5904</h3>

5905 5905 

5906Se emite cuando la sesión encuentra un límite de velocidad.5906Se emite cuando la sesión encuentra un rate limit.

5907 5907 

5908```typescript theme={null}5908```typescript theme={null}

5909type SDKRateLimitEvent = {5909type SDKRateLimitEvent = {


5921};5921};

5922```5922```

5923 5923 

5924Cuando `errorCode` es `"credits_required"`, el rechazo proviene de una suscripción de claude.ai cuyo uso incluido se ha agotado, y la sesión no puede continuar hasta que el usuario compre créditos de uso. `canUserPurchaseCredits` indica si el usuario autenticado puede comprar créditos para la cuenta, y `hasChargeableSavedPaymentMethod` indica si hay un método de pago guardado en el archivo. Los tres campos están ausentes en eventos de límite de velocidad que no son rechazos de créditos requeridos. Requiere Claude Code v2.1.181 o posterior.5924Cuando `errorCode` es `"credits_required"`, el rechazo proviene de una suscripción de claude.ai cuyo uso incluido se ha agotado, y la sesión no puede continuar hasta que el usuario compre créditos de uso. `canUserPurchaseCredits` indica si el usuario autenticado puede comprar créditos para la cuenta, y `hasChargeableSavedPaymentMethod` indica si hay un método de pago guardado registrado. Los tres campos están ausentes en los eventos de rate limit que no son rechazos por créditos requeridos. Requiere Claude Code v2.1.181 o posterior.

5925 5925 

5926<h3 id="sdklocalcommandoutputmessage">5926<h3 id="sdklocalcommandoutputmessage">

5927 `SDKLocalCommandOutputMessage`5927 `SDKLocalCommandOutputMessage`

5928</h3>5928</h3>

5929 5929 

5930Claude Code no emite este tipo de mensaje. Cuando envía un comando como `/context` o `/usage` como un mensaje, su salida llega como un [`SDKAssistantMessage`](#sdkassistantmessage).5930Claude Code no emite este tipo de mensaje. Cuando envías un comando como `/context` o `/usage` como prompt, su salida llega como un [`SDKAssistantMessage`](#sdkassistantmessage).

5931 5931 

5932```typescript theme={null}5932```typescript theme={null}

5933type SDKLocalCommandOutputMessage = {5933type SDKLocalCommandOutputMessage = {


5943 `SDKCommandsChangedMessage`5943 `SDKCommandsChangedMessage`

5944</h3>5944</h3>

5945 5945 

5946Se emite cuando el conjunto de comandos disponibles cambia a mitad de sesión, como cuando Claude Code descubre skills al entrar en un subdirectorio. El array `commands` es la lista completa actualizada, así que reemplace cualquier lista de comandos en caché con esta carga útil. Llamar a [`supportedCommands()`](#query-object) después de este mensaje devuelve la misma lista actualizada, porque el método rastrea el último push; esto requiere Agent SDK v0.3.216 o posterior. En versiones anteriores del SDK, `supportedCommands()` devuelve la instantánea capturada en la inicialización y nunca refleja cambios a mitad de sesión.5946Se emite cuando el conjunto de comandos disponibles cambia a mitad de la sesión, por ejemplo cuando Claude Code descubre skills a medida que el agente entra en un subdirectorio. El array `commands` es la lista completa actualizada, así que reemplaza cualquier lista de comandos en caché con este payload. Llamar a [`supportedCommands()`](#query-object) después de este mensaje devuelve la misma lista actualizada, porque el método sigue el envío más reciente; esto requiere Agent SDK v0.3.216 o posterior. En versiones anteriores del SDK, `supportedCommands()` devuelve la instantánea capturada en la inicialización y nunca refleja los cambios a mitad de la sesión.

5947 5947 

5948Claude Code también emite este mensaje cuando los [prompts](/docs/es/mcp#use-mcp-prompts-as-commands) de un servidor MCP se unen o salen de la lista, por ejemplo cuando un servidor termina de conectarse después de que la sesión comienza. Esto requiere Claude Code v2.1.281 o posterior.5948Claude Code también emite este mensaje cuando los [prompts](/docs/es/mcp#use-mcp-prompts-as-commands) de un servidor MCP entran o salen de la lista, por ejemplo cuando un servidor termina de conectarse después de que comienza la sesión. Esto requiere Claude Code v2.1.281 o posterior.

5949 5949 

5950```typescript theme={null}5950```typescript theme={null}

5951type SDKCommandsChangedMessage = {5951type SDKCommandsChangedMessage = {


5961 `SDKPromptSuggestionMessage`5961 `SDKPromptSuggestionMessage`

5962</h3>5962</h3>

5963 5963 

5964Se emite después de un turno cuando [`promptSuggestions`](#options) está habilitado y Claude Code generó una sugerencia para ese turno. Contiene el siguiente mensaje de usuario predicho. Para los turnos que no obtienen ninguno, vea [Cuándo Claude Code omite sugerencias](/docs/es/interactive-mode#when-claude-code-skips-suggestions).5964Se emite después de un turno cuando [`promptSuggestions`](#options) está habilitado y Claude Code generó una sugerencia para ese turno. Contiene el siguiente prompt del usuario previsto. Para los turnos que no reciben ninguna, consulta [Cuándo Claude Code omite sugerencias](/docs/es/interactive-mode#when-claude-code-skips-suggestions).

5965 5965 

5966```typescript theme={null}5966```typescript theme={null}

5967type SDKPromptSuggestionMessage = {5967type SDKPromptSuggestionMessage = {


5976 `SDKConversationResetMessage`5976 `SDKConversationResetMessage`

5977</h3>5977</h3>

5978 5978 

5979Se emite cuando la conversación de la sesión se reemplaza sin terminar la sesión. En una llamada `query()`, solo `/clear` y sus alias producen este mensaje. Monte una transcripción vacía bajo `new_conversation_id` y descarte cualquier título de sesión en caché.5979Se emite cuando la conversación de la sesión se reemplaza sin terminar la sesión. En una llamada a `query()`, solo `/clear` y sus alias producen este mensaje. Monta una transcripción vacía bajo `new_conversation_id` y descarta cualquier título de sesión en caché.

5980 5980 

5981```typescript theme={null}5981```typescript theme={null}

5982type SDKConversationResetMessage = {5982type SDKConversationResetMessage = {


5992 5992 

5993Los campos opcionales describen el reinicio:5993Los campos opcionales describen el reinicio:

5994 5994 

5995* `trigger`: qué descartó la conversación. Reinicie su transcripción en cada mensaje `conversation_reset`, incluyendo uno donde este campo está ausente o lleva un valor que no reconoce.5995* `trigger`: qué descartó la conversación. Reinicia tu transcripción en cada mensaje `conversation_reset`, incluido uno en el que este campo esté ausente o lleve un valor que no reconozcas.

5996* `user_message_uuid`: el `uuid` del mensaje de usuario que llevaba el `/clear`. Úselo para hacer coincidir el reinicio con ese mensaje.5996* `user_message_uuid`: el `uuid` del mensaje de usuario que llevaba el `/clear`. Úsalo para asociar el reinicio con ese mensaje.

5997* `timestamp`: cuándo sucedió el reinicio, como una cadena ISO 8601 en UTC. Úselo para visualización, no para ordenar mensajes.5997* `timestamp`: cuándo ocurrió el reinicio, como una cadena ISO 8601 en UTC. Úsalo para mostrarlo, no para ordenar mensajes.

5998 5998 

5999Los campos `trigger`, `user_message_uuid` y `timestamp` requieren Claude Code v2.1.281 o posterior.5999Los campos `trigger`, `user_message_uuid` y `timestamp` requieren Claude Code v2.1.281 o posterior.

6000 6000 

6001Las tipificaciones publicadas del SDK declaran `SDKConversationResetMessage` en Claude Code v2.1.203 y posterior. Antes de v2.1.203, `SDKMessage` hacía referencia al tipo sin declararlo, por lo que el estrechamiento en `type === "conversation_reset"` no pasaba la verificación de tipos cuando `skipLibCheck` estaba deshabilitado.6001Las definiciones de tipos publicadas del SDK declaran `SDKConversationResetMessage` en Claude Code v2.1.203 y posterior. Antes de v2.1.203, `SDKMessage` hacía referencia al tipo sin declararlo, por lo que el estrechamiento con `type === "conversation_reset"` no pasaba la verificación de tipos cuando `skipLibCheck` estaba deshabilitado.

6002 6002 

6003<h3 id="aborterror">6003<h3 id="aborterror">

6004 `AbortError`6004 `AbortError`

6005</h3>6005</h3>

6006 6006 

6007Clase de error personalizado para operaciones de aborto.6007Clase de error personalizada para operaciones de aborto.

6008 6008 

6009```typescript theme={null}6009```typescript theme={null}

6010class AbortError extends Error {}6010class AbortError extends Error {}

6011```6011```

6012 6012 

6013`AbortError` es la única clase de error en la API tipificada del SDK. Otros fallos, como el proceso de Claude Code saliendo o no pudiendo iniciarse, rechazan la iteración de mensajes con errores que no llevan clase SDK para hacer coincidir. [Troubleshooting](/docs/es/agent-sdk/troubleshooting) clave esos errores por mensaje, con la causa y solución para cada uno.6013`AbortError` es la única clase de error en la API tipada del SDK. Otros fallos, como que el proceso de Claude Code termine o no logre iniciarse, rechazan la iteración de mensajes con errores que no tienen ninguna clase del SDK con la que comparar. [Solución de problemas](/docs/es/agent-sdk/troubleshooting) organiza esos errores por mensaje, con la causa y la solución de cada uno.

6014 6014 

6015<h2 id="sandbox-configuration">6015<h2 id="sandbox-configuration">

6016 Configuración de Sandbox6016 Configuración de Sandbox

Details

526 526 

527Si su organización entrega los encabezados de guardrail a través de una política de [puerta de enlace de aplicaciones Claude](/docs/es/claude-apps-gateway) en su lugar, cuentan como [configuración que necesita aprobación](/docs/es/server-managed-settings#environment-variables-and-the-approval-dialog).527Si su organización entrega los encabezados de guardrail a través de una política de [puerta de enlace de aplicaciones Claude](/docs/es/claude-apps-gateway) en su lugar, cuentan como [configuración que necesita aprobación](/docs/es/server-managed-settings#environment-variables-and-the-approval-dialog).

528 528 

529Cuando el guardrail bloquea una respuesta a mitad de camino, el texto transmitido hasta ese momento se conserva y la respuesta termina con el mensaje configurado en el guardrail para las respuestas bloqueadas.

530 

529<h2 id="use-the-mantle-endpoint">531<h2 id="use-the-mantle-endpoint">

530 Usar el punto final de Mantle532 Usar el punto final de Mantle

531</h2>533</h2>

Details

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.3> Use this file to discover all available pages before exploring further.

4 4 

5# Implementar Claude apps gateway en Google Cloud5# Desplegar Claude apps gateway en Google Cloud

6 6 

7> Un ejemplo práctico de ejecutar Claude apps gateway en Google Cloud: Cloud Run o GKE, Cloud SQL para PostgreSQL, Secret Manager y autenticación de cuenta de servicio en Agent Platform de Google Cloud.7> Un ejemplo práctico de ejecutar Claude apps gateway en Google Cloud: Cloud Run o GKE, Cloud SQL para PostgreSQL, Secret Manager y autenticación de cuenta de servicio en Agent Platform de Google Cloud.

8 8 


20 <img src="https://mintcdn.com/claude-code/-uq-4JE0W_JO5Er5/images/claude-gateway-gcp-architecture.svg?fit=max&auto=format&n=-uq-4JE0W_JO5Er5&q=85&s=cb705151c69128ac0da235852d5600ab" alt="Diagrama de Claude apps gateway en Google Cloud: los clientes de Claude Code se conectan a través de HTTPS a la puerta de enlace (Cloud Run o GKE), que se ejecuta dentro de una VPC junto a una base de datos Cloud SQL de IP privada para el estado de la sesión. La puerta de enlace inicia sesión de usuarios a través de OIDC contra Google Workspace, lee la configuración y los secretos de Secret Manager, reenvía solicitudes de modelo a Agent Platform y extrae su imagen de Artifact Registry en la implementación." width="760" height="400" data-path="images/claude-gateway-gcp-architecture.svg" />20 <img src="https://mintcdn.com/claude-code/-uq-4JE0W_JO5Er5/images/claude-gateway-gcp-architecture.svg?fit=max&auto=format&n=-uq-4JE0W_JO5Er5&q=85&s=cb705151c69128ac0da235852d5600ab" alt="Diagrama de Claude apps gateway en Google Cloud: los clientes de Claude Code se conectan a través de HTTPS a la puerta de enlace (Cloud Run o GKE), que se ejecuta dentro de una VPC junto a una base de datos Cloud SQL de IP privada para el estado de la sesión. La puerta de enlace inicia sesión de usuarios a través de OIDC contra Google Workspace, lee la configuración y los secretos de Secret Manager, reenvía solicitudes de modelo a Agent Platform y extrae su imagen de Artifact Registry en la implementación." width="760" height="400" data-path="images/claude-gateway-gcp-architecture.svg" />

21</Frame>21</Frame>

22 22 

23La configuración de referencia aprovisiona:23El despliegue consta de:

24 24 

25* Servicio **Cloud Run** o **GKE** Deployment ejecutando el contenedor de la puerta de enlace25* Servicio **Cloud Run** o **GKE** Deployment ejecutando el contenedor de la puerta de enlace

26* Repositorio de **Artifact Registry** para la imagen de la puerta de enlace26* Repositorio de **Artifact Registry** para la imagen de la puerta de enlace

27* Instancia de **Cloud SQL para PostgreSQL**, solo IP privada, para el [store](/docs/es/claude-apps-gateway-config#store) de la puerta de enlace27* Instancia de **Cloud SQL para PostgreSQL**, solo IP privada, para el [store](/docs/es/claude-apps-gateway-config#store) de la puerta de enlace

28* Secretos de **Secret Manager** para `gateway.yaml`, la clave de firma JWT, el secreto del cliente OIDC y la URL de Postgres28* Secretos de **Secret Manager** para `gateway.yaml`, la clave de firma JWT, el secreto del cliente OIDC y la URL de Postgres

29* **Cuenta de servicio** con `roles/aiplatform.user`, adjunta directamente en Cloud Run o vinculada a través de Workload Identity en GKE29* **Cuenta de servicio** con `roles/aiplatform.user`, adjunta directamente en Cloud Run o vinculada a través de Workload Identity en GKE

30* **Equilibrador de carga de aplicaciones interno** en Cloud Run, o un **GKE Ingress** interno de clase `gce-internal` en GKE, para HTTPS30* **Front end HTTPS** que tú proporcionas: un equilibrador de carga de aplicaciones interno delante de Cloud Run, para el cual esta guía configura el gateway pero que no crea, o un **GKE Ingress** interno de clase `gce-internal` en GKE

31 31 

32<h2 id="prerequisites">32<h2 id="prerequisites">

33 Requisitos previos33 Requisitos previos


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

144 El bloque `upstreams` apunta a Agent Platform con `auth: {}`, por lo que la puerta de enlace se autentica a través de Application Default Credentials desde la cuenta de servicio del tiempo de ejecución. Consulte la [referencia de configuración](/docs/es/claude-apps-gateway-config) para cada campo.144 El bloque `upstreams` apunta a Agent Platform con `auth: {}`, por lo que la puerta de enlace se autentica a través de Application Default Credentials desde la cuenta de servicio del tiempo de ejecución. Consulte la [referencia de configuración](/docs/es/claude-apps-gateway-config) para cada campo.

145 145 

146 Dos campos `listen` dependen de lo que está frente a la puerta de enlace:146 Dos campos de `listen` describen lo que está delante del gateway:

147 147 

148 * `public_url`: requerido detrás de Cloud Run o un GKE Ingress. La puerta de enlace construye el `redirect_uri` del IdP y su documento de descubrimiento solo a partir de este valor, nunca a partir de encabezados `X-Forwarded-*`.148 * `public_url`: el origen `https://` externo, obligatorio para cualquier enlace que no sea de loopback; consulta la [referencia de `listen`](/docs/es/claude-apps-gateway-config#listen). El gateway construye el `redirect_uri` del IdP y su documento de descubrimiento solo a partir de este valor, nunca a partir de encabezados `X-Forwarded-*`.

149 * `trusted_proxies`: los rangos de origen del front end. La puerta de enlace honra `X-Forwarded-For` solo cuando el par TCP está en esta lista, luego camina la cadena pasando saltos confiables, por lo que los límites de velocidad de inicio de sesión por IP y los eventos de auditoría registran las IP de los desarrolladores en lugar de la del equilibrador de carga.149 * `trusted_proxies`: los rangos de origen del front end. El gateway respeta `X-Forwarded-For` solo cuando el par TCP está en esta lista, y luego recorre la cadena más allá de los saltos de confianza, de modo que los rate limits de inicio de sesión por IP y los eventos de auditoría registran las IP de los desarrolladores en lugar de la del balanceador de carga.

150 150 

151 Establezca `trusted_proxies` para que coincida con su front end. Un GKE Ingress externo de clase `gce` no está listado: aprovisiona una dirección de regla de reenvío público, que la [verificación de red privada](/docs/es/claude-apps-gateway#prerequisites) de `/login` rechaza.151 Establezca `trusted_proxies` para que coincida con su front end. Un GKE Ingress externo de clase `gce` no está listado: aprovisiona una dirección de regla de reenvío público, que la [verificación de red privada](/docs/es/claude-apps-gateway#prerequisites) de `/login` rechaza.

152 152 


179 179 

180 store:180 store:

181 postgres_url: ${GATEWAY_POSTGRES_URL} # GKE: ${file:/secrets/postgres-url}181 postgres_url: ${GATEWAY_POSTGRES_URL} # GKE: ${file:/secrets/postgres-url}

182 # readiness_grace_seconds: 300 # keep passing the readiness probe

183 # through a Cloud SQL failover

182 184 

183 upstreams:185 upstreams:

184 - provider: vertex186 - provider: vertex


219 --region="$REGION" \221 --region="$REGION" \

220 --service-account="claude-gateway@${PROJECT_ID}.iam.gserviceaccount.com" \222 --service-account="claude-gateway@${PROJECT_ID}.iam.gserviceaccount.com" \

221 --min-instances=1 \223 --min-instances=1 \

224 --max-instances=8 \

222 --timeout=3600 \225 --timeout=3600 \

223 --ingress=internal-and-cloud-load-balancing \226 --ingress=internal \

224 --network="$VPC" --subnet=cc-gateway-subnet --vpc-egress=private-ranges-only \227 --network="$VPC" --subnet=cc-gateway-subnet --vpc-egress=private-ranges-only \

225 --set-secrets=/etc/claude/gateway.yaml=gateway-config:latest,GATEWAY_JWT_SECRET=gateway-jwt-secret:latest,OIDC_CLIENT_SECRET=gateway-oidc-client-secret:latest,GATEWAY_POSTGRES_URL=gateway-postgres-url:latest \228 --set-secrets=/etc/claude/gateway.yaml=gateway-config:latest,GATEWAY_JWT_SECRET=gateway-jwt-secret:latest,OIDC_CLIENT_SECRET=gateway-oidc-client-secret:latest,GATEWAY_POSTGRES_URL=gateway-postgres-url:latest \

226 --no-invoker-iam-check229 --no-invoker-iam-check

227 ```230 ```

228 231 

229 La salida directa de VPC, a través de `--network`, `--subnet` y `--vpc-egress=private-ranges-only`, permite que el servicio alcance la IP privada de Cloud SQL directamente. La salida pública a los puntos finales de Agent Platform y `accounts.google.com` va directamente a Internet en lugar de a través de la VPC, por lo que no se necesita Cloud NAT.232 La salida directa de VPC, mediante `--network`, `--subnet` y `--vpc-egress=private-ranges-only`, permite que el servicio acceda directamente a la IP privada de Cloud SQL. Cada instancia mantiene hasta [`store.max_connections`](/docs/es/claude-apps-gateway-config#store) conexiones de Postgres, cinco por defecto, así que mantén el número máximo de instancias × `store.max_connections` por debajo del límite de conexiones de tu nivel de Cloud SQL; por este motivo, los [recursos de referencia](#terraform-reference) limitan las instancias a 8 para el nivel `db-g1-small`. La salida pública hacia los endpoints de Agent Platform de Google Cloud y `accounts.google.com` va directamente a Internet en lugar de pasar por la VPC, por lo que no se necesita Cloud NAT.

230 233 

231 La verificación de IAM del invocador debe estar abierta o deshabilitada. La puerta de enlace ejecuta su propio OIDC y sus clientes no llevan ningún token de GCP, por lo que la verificación del invocador de Cloud Run tiene que admitir solicitudes no autenticadas. La autenticación OIDC de la puerta de enlace autentica la solicitud una vez que llega al contenedor, con `allowed_email_domains` controlando qué dominios pueden iniciar sesión.234 La verificación de IAM del invocador debe estar abierta o deshabilitada. La puerta de enlace ejecuta su propio OIDC y sus clientes no llevan ningún token de GCP, por lo que la verificación del invocador de Cloud Run tiene que admitir solicitudes no autenticadas. La autenticación OIDC de la puerta de enlace autentica la solicitud una vez que llega al contenedor, con `allowed_email_domains` controlando qué dominios pueden iniciar sesión.

232 235 


239 242 

240 Por defecto, la URL de Cloud Run `*.run.app` se resuelve a una dirección pública, que la [verificación de red privada](/docs/es/claude-apps-gateway#prerequisites) de `/login` rechaza. Dos topologías dan a los desarrolladores un nombre de host resolvible de forma privada, y Cloud Run no aprovisiona ninguno para usted:243 Por defecto, la URL de Cloud Run `*.run.app` se resuelve a una dirección pública, que la [verificación de red privada](/docs/es/claude-apps-gateway#prerequisites) de `/login` rechaza. Dos topologías dan a los desarrolladores un nombre de host resolvible de forma privada, y Cloud Run no aprovisiona ninguno para usted:

241 244 

242 * **Equilibrador de carga de aplicaciones interno**, la topología que el comando de implementación anterior asume: implemente con `--ingress=internal-and-cloud-load-balancing`, aprovisione un equilibrador de carga de aplicaciones interno frente al servicio con un nombre DNS interno y certificado, y establezca `listen.public_url` en ese nombre de host.245 * **Balanceador de carga de aplicaciones interno**, la topología que asume el `gateway.yaml` de esta página: aprovisiona un balanceador de carga de aplicaciones interno delante del servicio con un nombre DNS interno y un certificado, y establece `listen.public_url` en ese nombre de host. El ajuste de ingreso `internal` ya admite tráfico de balanceadores de carga de aplicaciones internos; `internal-and-cloud-load-balancing` admite además balanceadores de carga de aplicaciones externos, cuyas direcciones públicas rechaza la verificación de red privada de `/login`, por lo que ninguna topología de esta página lo necesita.

243 * **Ingreso solo interno sin equilibrador de carga**: implemente con `--ingress=internal` y deje `listen.public_url` como la URL `*.run.app`, el valor predeterminado en los [activos de referencia](#terraform-reference) a continuación. Para que `*.run.app` se resuelva de forma privada, su equipo de red debe operar un punto final de Private Service Connect para las API de Google, una zona privada de Cloud DNS que resuelva `*.run.app` a él, y enrutamiento local a ese punto final.246 * **Ingreso solo interno sin balanceador de carga**: mantén el comando de despliegue tal como está y deja `listen.public_url` como la URL `*.run.app`, el valor predeterminado en los [recursos de referencia](#terraform-reference) a continuación. Para que `*.run.app` se resuelva de forma privada, tu equipo de red ya debe operar un endpoint de Private Service Connect para las API de Google, una zona privada de Cloud DNS que resuelva `*.run.app` en él y enrutamiento local hacia ese endpoint.

244 247 

245 La [guía de redes privadas de Google para Cloud Run](https://cloud.google.com/run/docs/securing/private-networking) cubre la infraestructura que ambas opciones necesitan. Verifique el inicio de sesión una vez que la puerta de enlace esté sirviendo en un nombre de host privado; hasta entonces, confirme que el contenedor se inició desde sus registros en Cloud Run.248 La [guía de redes privadas de Google para Cloud Run](https://cloud.google.com/run/docs/securing/private-networking) cubre la infraestructura que ambas opciones necesitan. Verifique el inicio de sesión una vez que la puerta de enlace esté sirviendo en un nombre de host privado; hasta entonces, confirme que el contenedor se inició desde sus registros en Cloud Run.

246 249 


287 </Tabs>290 </Tabs>

288 </Step>291 </Step>

289 292 

290 <Step title="Insertar la URL de la puerta de enlace en máquinas de desarrolladores">293 <Step title="Enviar la URL del gateway a las máquinas de los desarrolladores">

291 La puerta de enlace ahora se está ejecutando, pero los desarrolladores no pueden alcanzarla desde `/login` hasta que la URL de la puerta de enlace esté en sus máquinas. Establezca `forceLoginMethod` y `forceLoginGatewayUrl` en el [archivo de configuración administrada](/docs/es/claude-apps-gateway#set-the-gateway-url) que implementa en cada dispositivo a través de MDM. No hay opción de puerta de enlace en el selector de inicio de sesión para que un desarrollador seleccione manualmente.294 El gateway ya se está ejecutando, pero los desarrolladores no pueden acceder a él desde `/login` hasta que la URL del gateway esté en sus máquinas. Despliega el [fragmento completo de configuración administrada](/docs/es/claude-apps-gateway#set-the-gateway-url), con `forceLoginMethod`, `forceLoginGatewayUrl` y la opción `parentSettingsBehavior: "merge"`, en cada dispositivo mediante MDM. No hay ninguna opción de gateway en el selector de inicio de sesión que un desarrollador pueda seleccionar manualmente.

292 </Step>295 </Step>

293</Steps>296</Steps>

294 297 


302* `terraform/`: la misma implementación como infraestructura como código, para una implementación de campo virgen: una aplicación dirigida para crear el repositorio de Artifact Registry, luego construir e insertar la imagen, luego una aplicación completa305* `terraform/`: la misma implementación como infraestructura como código, para una implementación de campo virgen: una aplicación dirigida para crear el repositorio de Artifact Registry, luego construir e insertar la imagen, luego una aplicación completa

303* `gateway.yaml.example` y un `Dockerfile` para la imagen de tiempo de ejecución sin distro306* `gateway.yaml.example` y un `Dockerfile` para la imagen de tiempo de ejecución sin distro

304 307 

305Los artefactos establecen por defecto el ingreso de Cloud Run a `internal`, por lo que no se requiere equilibrador de carga. Para que coincida con la implementación de producción detrás de un ALB de esta página, ejecute `setup.sh` con `INGRESS=internal-and-cloud-load-balancing`, o establezca la variable de Terraform `ingress` a `INGRESS_TRAFFIC_INTERNAL_LOAD_BALANCER`. Los artefactos también establecen por defecto la capa del invocador a una concesión `run.invoker` de `allUsers` en lugar de `--no-invoker-iam-check`, lo inverso del tutorial de esta página; cualquiera funciona, y la elección depende de las restricciones de política de su organización.308Los artefactos establecen por defecto el ingreso de Cloud Run a `internal`, lo que coincide con el comando de despliegue de esta página; ese ajuste funciona con o sin un Application Load Balancer interno delante del servicio, y los artefactos tampoco crean el equilibrador de carga. Los artefactos también establecen por defecto la capa del invocador a una concesión `run.invoker` de `allUsers` en lugar de `--no-invoker-iam-check`, lo inverso del tutorial de esta página; cualquiera funciona, y la elección depende de las restricciones de política de tu organización.

306 309 

307Los activos se proporcionan como ejemplos funcionales, no como un artefacto de producción compatible; revíselos y adáptelos a su entorno.310Los activos se proporcionan como ejemplos funcionales, no como un artefacto de producción compatible; revíselos y adáptelos a su entorno.

308 311 


317| Cloud Run devuelve `403 Forbidden` antes de alcanzar el contenedor | La verificación de IAM del invocador aún está habilitada | Implemente con `--no-invoker-iam-check`, o otorgue a `allUsers` el rol `run.invoker` con `--allow-unauthenticated` |320| Cloud Run devuelve `403 Forbidden` antes de alcanzar el contenedor | La verificación de IAM del invocador aún está habilitada | Implemente con `--no-invoker-iam-check`, o otorgue a `allUsers` el rol `run.invoker` con `--allow-unauthenticated` |

318| `--no-invoker-iam-check` rechazado con `invoker_iam_disabled is not currently available` | Bloqueado por `constraints/run.managed.requireInvokerIam` | Use `--allow-unauthenticated`. Si Domain Restricted Sharing a través de `constraints/iam.allowedPolicyMemberDomains` también bloquea eso, use la ruta de GKE, que expone la puerta de enlace en la capa de red sin ningún enlace `allUsers`. |321| `--no-invoker-iam-check` rechazado con `invoker_iam_disabled is not currently available` | Bloqueado por `constraints/run.managed.requireInvokerIam` | Use `--allow-unauthenticated`. Si Domain Restricted Sharing a través de `constraints/iam.allowedPolicyMemberDomains` también bloquea eso, use la ruta de GKE, que expone la puerta de enlace en la capa de red sin ningún enlace `allUsers`. |

319| `Container manifest type … must support amd64/linux` en la implementación | La imagen se construyó en un host que no es amd64, o buildx emitió un índice de imagen OCI | Construya con `--platform=linux/amd64 --provenance=false` |322| `Container manifest type … must support amd64/linux` en la implementación | La imagen se construyó en un host que no es amd64, o buildx emitió un índice de imagen OCI | Construya con `--platform=linux/amd64 --provenance=false` |

320| El arranque de la puerta de enlace sale con un error de tiempo de espera de conexión de Postgres en Cloud Run | El servicio no está adjunto a la VPC, o Cloud SQL no tiene IP privada en esa VPC; el almacén deja de esperar después de 5 segundos | Implemente con `--network` y `--subnet` para salida directa de VPC, y cree la instancia de Cloud SQL con `--no-assign-ip` y `--network` apuntando a la misma VPC |323| El arranque del gateway sale con un error de tiempo de espera de conexión de Postgres en Cloud Run | El servicio no está adjunto a la VPC, o Cloud SQL no tiene IP privada en esa VPC | Implementa con `--network` y `--subnet` para salida directa de VPC, y crea la instancia de Cloud SQL con `--no-assign-ip` y `--network` apuntando a la misma VPC |

321| Las solicitudes de Agent Platform devuelven `403 PERMISSION_DENIED` | El tiempo de ejecución no está utilizando la cuenta de servicio `claude-gateway`, o el modelo no está habilitado en Model Garden para el proyecto | Establezca `--service-account` en Cloud Run o vincule Workload Identity en GKE, y habilite cada modelo de Claude en Model Garden para la región de destino |324| Las solicitudes de Agent Platform devuelven `403 PERMISSION_DENIED` | El tiempo de ejecución no está utilizando la cuenta de servicio `claude-gateway`, o el modelo no está habilitado en Model Garden para el proyecto | Establezca `--service-account` en Cloud Run o vincule Workload Identity en GKE, y habilite cada modelo de Claude en Model Garden para la región de destino |

322| Las respuestas de transmisión se cortan después de una duración fija | Tiempo de espera de solicitud del front end: el servicio backend del equilibrador de carga detrás de GKE Ingress tiene un tiempo de espera predeterminado de 30 segundos y Cloud Run de 300 segundos | Adjunte un BackendConfig con un `timeoutSec` elevado en GKE, o implemente con `--timeout=3600` en Cloud Run |325| Las respuestas de transmisión se cortan después de una duración fija | Tiempo de espera de solicitud del front end: el servicio backend del equilibrador de carga detrás de GKE Ingress tiene un tiempo de espera predeterminado de 30 segundos y Cloud Run de 300 segundos | Adjunte un BackendConfig con un `timeoutSec` elevado en GKE, o implemente con `--timeout=3600` en Cloud Run |

323 326 

cli-reference.md +41 −33

Details

10 Comandos CLI10 Comandos CLI

11</h2>11</h2>

12 12 

13Puede iniciar sesiones, canalizar contenido, reanudar conversaciones y administrar actualizaciones con estos comandos:13Puedes iniciar sesiones, canalizar contenido, reanudar conversaciones y administrar actualizaciones con estos comandos:

14 14 

15| Comando | Descripción | Ejemplo |15| Comando | Descripción | Ejemplo |

16| :- | :- | :- |16| :- | :- | :- |

17| `claude` | Iniciar sesión interactiva | `claude` |17| `claude` | Iniciar sesión interactiva | `claude` |

18| `claude "query"` | Iniciar sesión interactiva con indicación inicial | `claude "explain this project"` |18| `claude "query"` | Iniciar sesión interactiva con prompt inicial | `claude "explain this project"` |

19| `claude -p "query"` | Consultar a través de SDK, luego salir | `claude -p "explain this function"` |19| `claude -p "query"` | Consultar a través de SDK, luego salir | `claude -p "explain this function"` |

20| `cat file \| claude -p "query"` | Procesar contenido canalizado | `cat logs.txt \| claude -p "explain"` |20| `cat file \| claude -p "query"` | Procesar contenido canalizado | `cat logs.txt \| claude -p "explain"` |

21| `claude -c` | Continuar la conversación más reciente en el directorio actual | `claude -c` |21| `claude -c` | Continuar la conversación más reciente en el directorio actual | `claude -c` |

22| `claude -c -p "query"` | Continuar a través de SDK | `claude -c -p "Check for type errors"` |22| `claude -c -p "query"` | Continuar a través de SDK | `claude -c -p "Check for type errors"` |

23| `claude -r "<session>" "query"` | Reanudar sesión por ID o nombre | `claude -r "auth-refactor" "Finish this PR"` |23| `claude -r "<session>" "query"` | Reanudar sesión por ID o nombre | `claude -r "auth-refactor" "Finish this PR"` |

24| `claude update` | Actualizar a la versión más reciente | `claude update` |24| `claude update` | Actualizar a la versión más reciente | `claude update` |

25| `claude gateway` | Iniciar el servidor de [puerta de enlace de aplicaciones Claude](/docs/es/claude-apps-gateway) autohospedado, para administradores que implementan SSO y política frente a Claude Code en Amazon Bedrock, Google Cloud's Agent Platform o Microsoft Foundry. Requiere `--config` apuntando a un [`gateway.yaml`](/docs/es/claude-apps-gateway-config). | `claude gateway --config gateway.yaml` |25| `claude gateway` | Iniciar el servidor autohospedado del [gateway de aplicaciones de Claude](/docs/es/claude-apps-gateway), para administradores que implementan SSO y políticas frente a Claude Code en Amazon Bedrock, Google Cloud's Agent Platform o Microsoft Foundry. Requiere `--config` apuntando a un [`gateway.yaml`](/docs/es/claude-apps-gateway-config). | `claude gateway --config gateway.yaml` |

26| `claude install [version]` | Instalar o reinstalar el binario nativo. Acepta una versión como `2.1.118`, o `stable` o `latest`. Consulte [Instalar una versión específica](/docs/es/setup#install-a-specific-version) | `claude install stable` |26| `claude install [version]` | Instalar o reinstalar el binario nativo. Acepta una versión como `2.1.118`, o `stable` o `latest`. Consulta [Instalar una versión específica](/docs/es/setup#install-a-specific-version) | `claude install stable` |

27| `claude auth login` | Inicie sesión en su cuenta de Anthropic. Use `--email` para rellenar previamente su dirección de correo electrónico, `--sso` para forzar la autenticación SSO y `--console` para iniciar sesión con Anthropic Console para facturación de uso de API en lugar de una suscripción a Claude | `claude auth login --console` |27| `claude auth login` | Inicia sesión en tu cuenta de Anthropic. Usa `--email` para rellenar previamente tu dirección de correo electrónico, `--sso` para forzar la autenticación SSO y `--console` para iniciar sesión con Anthropic Console para facturación de uso de API en lugar de una suscripción a Claude | `claude auth login --console` |

28| `claude auth logout` | Cerrar sesión en su cuenta de Anthropic | `claude auth logout` |28| `claude auth logout` | Cerrar sesión en tu cuenta de Anthropic | `claude auth logout` |

29| `claude auth status` | Mostrar estado de autenticación como JSON. Use `--text` para salida legible por humanos. Sale con código 0 si ha iniciado sesión, 1 si no. El JSON incluye un campo `configDirectory` que nombra el [directorio de configuración](/docs/es/claude-directory) que utiliza la CLI. El campo requiere Claude Code v2.1.268 o posterior | `claude auth status` |29| `claude auth status` | Mostrar el estado de autenticación como JSON. Usa `--text` para salida legible por humanos. Sale con código 0 si has iniciado sesión, 1 si no. El JSON incluye un campo `configDirectory` que indica el [directorio de configuración](/docs/es/claude-directory) que utiliza la CLI. El campo requiere Claude Code v2.1.268 o posterior. El campo `authMethod` del JSON es uno de `none`, `claude.ai`, `oauth_token`, `api_key`, `api_key_helper` o `third_party` | `claude auth status` |

30| `claude agents` | Abrir [vista de agentes](/docs/es/agent-view) para monitorear y enviar sesiones de fondo paralelas. Use `--cwd <path>` para mostrar solo sesiones iniciadas en ese directorio, o `--json` para imprimir sesiones activas como una matriz JSON para scripts (`--json --all` también incluye sesiones de fondo completadas). Pase `--permission-mode`, `--model`, `--effort` o `--agent` para establecer [valores predeterminados para sesiones enviadas](/docs/es/agent-view#permission-mode-model-and-effort). Acepta `--settings`, `--add-dir`, `--plugin-dir` y `--mcp-config` como el comando `claude` de nivel superior. Abrir la vista de agentes requiere una terminal interactiva | `claude agents --json` |30| `claude agents` | Abrir la [vista de agentes](/docs/es/agent-view) para monitorear y enviar sesiones en segundo plano paralelas. Usa `--cwd <path>` para mostrar solo las sesiones iniciadas en ese directorio, o `--json` para imprimir las sesiones activas como una matriz JSON para scripts (`--json --all` también incluye las sesiones en segundo plano completadas). Pasa `--permission-mode`, `--model`, `--effort` o `--agent` para establecer [valores predeterminados para las sesiones enviadas](/docs/es/agent-view#permission-mode-model-and-effort). Acepta `--settings`, `--add-dir`, `--plugin-dir` y `--mcp-config` como el comando `claude` de nivel superior. Abrir la vista de agentes requiere una terminal interactiva | `claude agents --json` |

31| `claude attach <id>` | Adjuntar a una [sesión de fondo](/docs/es/agent-view#manage-sessions-from-the-shell) en esta terminal | `claude attach 7c5dcf5d` |31| `claude attach <id>` | Adjuntarse a una [sesión en segundo plano](/docs/es/agent-view#manage-sessions-from-the-shell) en esta terminal | `claude attach 7c5dcf5d` |

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

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

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

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

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

37| `claude import [source]` | Iniciar una sesión interactiva que ejecuta [`/import`](/docs/es/commands#all-commands) para traer configuración de otros agentes de codificación a Claude Code. Acepta las mismas opciones `--dry-run` y `--yes` que el comando. No disponible en Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry o Claude Platform en AWS. También no disponible cuando desactiva [obtención de banderas de características](/docs/es/env-vars#features-that-need-feature-flag-fetching). Requiere Claude Code v2.1.213 o posterior | `claude import codex --dry-run` |37| `claude import [source]` | Iniciar una sesión interactiva que ejecuta [`/import`](/docs/es/commands#all-commands) para traer configuración de otros agentes de codificación a Claude Code. Acepta las mismas opciones `--dry-run` y `--yes` que el comando. No disponible en Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry ni Claude Platform en AWS. Tampoco está disponible cuando desactivas la [obtención de feature flags](/docs/es/env-vars#features-that-need-feature-flag-fetching). Requiere Claude Code v2.1.213 o posterior | `claude import codex --dry-run` |

38| `claude logs <id>` | Imprimir salida reciente de una [sesión de fondo](/docs/es/agent-view#manage-sessions-from-the-shell) | `claude logs 7c5dcf5d` |38| `claude logs <id>` | Imprimir la salida reciente de una [sesión en segundo plano](/docs/es/agent-view#manage-sessions-from-the-shell) | `claude logs 7c5dcf5d` |

39| `claude mcp` | Configurar servidores Model Context Protocol (MCP) | Consulte la [documentación de Claude Code MCP](/docs/es/mcp). |39| `claude mcp` | Configurar servidores Model Context Protocol (MCP) | Consulta la [documentación de MCP de Claude Code](/docs/es/mcp). |

40| `claude mcp login <name>` | Ejecutar el flujo OAuth de un servidor MCP configurado sin abrir el panel interactivo `/mcp`. Funciona para servidores HTTP, SSE y conectores de claude.ai. Agregue `--no-browser` sobre SSH para imprimir la URL de autorización en lugar de abrir un navegador, luego pegue la URL de redirección nuevamente en el indicador. Consulte [Autenticar desde la línea de comandos](/docs/es/mcp#authenticate-from-the-command-line) | `claude mcp login sentry` |40| `claude mcp login <name>` | Ejecutar el flujo OAuth de un servidor MCP configurado sin abrir el panel interactivo `/mcp`. Funciona con servidores HTTP, SSE y conectores de claude.ai. Agrega `--no-browser` sobre SSH para imprimir la URL de autorización en lugar de abrir un navegador y luego pega la URL de redirección en el prompt. Consulta [Autenticar desde la línea de comandos](/docs/es/mcp#authenticate-from-the-command-line) | `claude mcp login sentry` |

41| `claude mcp logout <name>` | Borrar credenciales OAuth almacenadas para un servidor MCP | `claude mcp logout sentry` |41| `claude mcp logout <name>` | Borrar las credenciales OAuth almacenadas de un servidor MCP | `claude mcp logout sentry` |

42| `claude plugin` | Administrar Claude Code [plugins](/docs/es/plugins/overview). Alias: `claude plugins`. Consulte [referencia de plugins](/docs/es/plugins/cli-reference#claude-plugin-commands) para subcomandos | `claude plugin install code-review@claude-plugins-official` |42| `claude plugin` | Administrar [plugins](/docs/es/plugins/overview) de Claude Code. Alias: `claude plugins`. Consulta la [referencia de plugins](/docs/es/plugins/cli-reference#claude-plugin-commands) para ver los subcomandos | `claude plugin install code-review@claude-plugins-official` |

43| `claude project purge [path]` | Eliminar todo el estado local de Claude Code para un proyecto: transcripciones, listas de tareas, registros de depuración, historial de edición de archivos, líneas de historial de indicaciones y la entrada del proyecto en `~/.claude.json`. Omita `[path]` para elegir de una lista interactiva. Banderas: `--dry-run` para vista previa, `-y`/`--yes` para omitir confirmación, `-i`/`--interactive` para confirmar cada elemento, `--all` para cada proyecto. Consulte [Borrar datos locales](/docs/es/claude-directory#clear-local-data) | `claude project purge ~/work/repo --dry-run` |43| `claude project purge [path]` | Eliminar todo el estado local de Claude Code de un proyecto: transcripciones, listas de tareas, registros de depuración, historial de edición de archivos, líneas del historial de prompts y la entrada del proyecto en `~/.claude.json`. Omite `[path]` para elegir de una lista interactiva. Flags: `--dry-run` para obtener una vista previa, `-y`/`--yes` para omitir la confirmación, `-i`/`--interactive` para confirmar cada elemento, `--all` para todos los proyectos. Consulta [Borrar datos locales](/docs/es/claude-directory#clear-local-data) | `claude project purge ~/work/repo --dry-run` |

44| `claude remote-control` | Iniciar un servidor de [Remote Control](/docs/es/remote-control) para controlar Claude Code desde Claude.ai o la aplicación Claude. Se ejecuta en modo servidor (sin sesión interactiva local). Consulte [Banderas de modo servidor](/docs/es/remote-control#start-a-remote-control-session). Después de detener el servidor, puede recuperar las sesiones que estaba sirviendo. Consulte [Reanudar sesiones después de detener el servidor](/docs/es/remote-control#resume-sessions-after-stopping-the-server) | `claude remote-control --name "My Project"` |44| `claude remote-control` | Iniciar un servidor de [Remote Control](/docs/es/remote-control) para controlar Claude Code desde Claude.ai o la aplicación Claude. Se ejecuta en modo servidor (sin sesión interactiva local). Consulta [Flags del modo servidor](/docs/es/remote-control#start-a-remote-control-session). Después de detener el servidor, puedes recuperar las sesiones que estaba sirviendo. Consulta [Reanudar sesiones después de detener el servidor](/docs/es/remote-control#resume-sessions-after-stopping-the-server) | `claude remote-control --name "My Project"` |

45| `claude respawn <id>` | Reiniciar una [sesión de fondo](/docs/es/agent-view#manage-sessions-from-the-shell), en ejecución o detenida, con su conversación intacta. Use `--all` para reiniciar cada sesión en ejecución, por ejemplo, para recoger un binario de Claude Code actualizado | `claude respawn 7c5dcf5d` |45| `claude respawn <id>` | Reiniciar una [sesión en segundo plano](/docs/es/agent-view#manage-sessions-from-the-shell), en ejecución o detenida, con su conversación intacta. Usa `--all` para reiniciar todas las sesiones en ejecución, por ejemplo, para usar un binario de Claude Code actualizado | `claude respawn 7c5dcf5d` |

46| `claude rm <id>` | Eliminar una [sesión de fondo](/docs/es/agent-view#manage-sessions-from-the-shell) de la lista. Cuando la eliminación se [rechaza sobre el árbol de trabajo de la sesión](/docs/es/agent-view#what-deleting-a-session-removes) y un segundo `claude rm` puede resolverlo, el rechazo imprime la bandera exacta y el valor a pasar: `--discard-unpushed <commit>@<worktree-id>` descarta un árbol de trabajo que tiene commits sin enviar junto con esos commits, y `--force-remove-worktree <worktree-id>` elimina un directorio de árbol de trabajo que git o el hook `WorktreeRemove` no pudieron eliminar. `--discard-unpushed` requiere Claude Code v2.1.260 o posterior, y `--force-remove-worktree` requiere v2.1.268 o posterior. La transcripción de la conversación permanece en su máquina local, disponible a través de `claude --resume` | `claude rm 7c5dcf5d` |46| `claude rm <id>` | Eliminar una [sesión en segundo plano](/docs/es/agent-view#manage-sessions-from-the-shell) de la lista. Cuando la eliminación se [rechaza por el worktree de la sesión](/docs/es/agent-view#what-deleting-a-session-removes) y un segundo `claude rm` puede resolverlo, el rechazo imprime el flag exacto y el valor que debes pasar: `--discard-unpushed <commit>@<worktree-id>` descarta un worktree que tiene commits sin enviar junto con esos commits, y `--force-remove-worktree <worktree-id>` elimina un directorio de worktree que git o el hook `WorktreeRemove` no pudieron eliminar. `--discard-unpushed` requiere Claude Code v2.1.260 o posterior, y `--force-remove-worktree` requiere v2.1.268 o posterior. La transcripción de la conversación permanece en tu máquina local, disponible a través de `claude --resume` | `claude rm 7c5dcf5d` |

47| `claude self-hosted-runner` | Iniciar un proceso de ejecutor que registra esta máquina o contenedor con un [entorno autohospedado](/docs/es/self-hosted-environments) y aloja sesiones en la nube de Claude Code en su infraestructura. Ejecute `claude self-hosted-runner setup` para un recorrido guiado del operador, `claude self-hosted-runner doctor` para [diagnosticar un ejecutor implementado](/docs/es/self-hosted-environments-deploy#troubleshooting) y `claude self-hosted-runner orchestrator` para generar [ejecutores bajo demanda](/docs/es/self-hosted-environments-configuration#on-demand-runners). Requiere Claude Code v2.1.224 o posterior | `claude self-hosted-runner setup` |47| `claude self-hosted-runner` | Iniciar un proceso de ejecutor que registra esta máquina o contenedor en un [entorno autohospedado](/docs/es/self-hosted-environments) y aloja sesiones en la nube de Claude Code en tu infraestructura. Ejecuta `claude self-hosted-runner setup` para un recorrido guiado del operador, `claude self-hosted-runner doctor` para [diagnosticar un ejecutor implementado](/docs/es/self-hosted-environments-deploy#troubleshooting) y `claude self-hosted-runner orchestrator` para generar [ejecutores bajo demanda](/docs/es/self-hosted-environments-configuration#on-demand-runners). Requiere Claude Code v2.1.224 o posterior | `claude self-hosted-runner setup` |

48| `claude setup-token` | Generar un token OAuth de larga duración para CI y scripts. Imprime el token en la terminal sin guardarlo. Requiere una suscripción a Claude. Consulte [Generar un token de larga duración](/docs/es/authentication#generate-a-long-lived-token) | `claude setup-token` |48| `claude setup-token` | Generar un token OAuth de larga duración para CI y scripts. Imprime el token en la terminal sin guardarlo. Requiere una suscripción a Claude. Consulta [Generar un token de larga duración](/docs/es/authentication#generate-a-long-lived-token) | `claude setup-token` |

49| `claude stop <id>` | Detener una [sesión de fondo](/docs/es/agent-view#manage-sessions-from-the-shell). También acepta `claude kill` | `claude stop 7c5dcf5d` |49| `claude stop <id>` | Detener una [sesión en segundo plano](/docs/es/agent-view#manage-sessions-from-the-shell). También acepta `claude kill` | `claude stop 7c5dcf5d` |

50| `claude ultrareview [target]` | Ejecutar [ultrareview](/docs/es/ultrareview#run-ultrareview-non-interactively) de forma no interactiva. Imprime los hallazgos en stdout y sale con 0 en caso de éxito o 1 en caso de fallo. Use `--json` para la carga útil sin procesar y `--timeout <minutes>` para anular el valor predeterminado de 45 minutos. Use `--post` en un destino de solicitud de extracción `github.com` para publicar los hallazgos terminados en la PR como un comentario simple desde su cuenta de GitHub. `--no-post` es el predeterminado. `--post` y `--no-post` requieren Claude Code v2.1.227 o posterior. Consulte [Publicar hallazgos en la solicitud de extracción](/docs/es/ultrareview#post-findings-to-the-pull-request) | `claude ultrareview 1234 --json` |50| `claude ultrareview [target]` | Ejecutar [ultrareview](/docs/es/ultrareview#run-ultrareview-non-interactively) de forma no interactiva. Imprime los hallazgos en stdout y sale con 0 en caso de éxito o 1 en caso de fallo. Usa `--json` para obtener el payload sin procesar y `--timeout <minutes>` para sobrescribir el valor predeterminado de 45 minutos. Usa `--post` con un pull request de `github.com` como destino para publicar los hallazgos terminados en el PR como un comentario simple desde tu cuenta de GitHub. `--no-post` es el predeterminado. `--post` y `--no-post` requieren Claude Code v2.1.227 o posterior. Consulta [Publicar hallazgos en el pull request](/docs/es/ultrareview#post-findings-to-the-pull-request) | `claude ultrareview 1234 --json` |

51 51 

52Si escribe mal un subcomando, Claude Code sugiere la coincidencia más cercana y sale sin iniciar una sesión. Por ejemplo, `claude udpate` imprime `Did you mean claude update?`.52Si escribes mal un subcomando, Claude Code sugiere la coincidencia más cercana y sale sin iniciar una sesión. Por ejemplo, `claude udpate` imprime `Did you mean claude update?`.

53 53 

54A partir de v2.1.199, `claude --dangerously-skip-permissions daemon <subcommand>` ejecuta el subcomando `daemon`. Las versiones anteriores trataban `daemon <subcommand>` como el indicador para una nueva sesión interactiva, por lo que el subcomando nunca se ejecutaba cuando la bandera venía primero, una configuración común cuando `claude` tiene un alias que incluye la bandera. Solo un `--dangerously-skip-permissions` o `--allow-dangerously-skip-permissions` inicial enruta a `daemon` de esta manera; cualquier otra bandera inicial aún inicia una sesión interactiva.54A partir de v2.1.199, `claude --dangerously-skip-permissions daemon <subcommand>` ejecuta el subcomando `daemon`. Las versiones anteriores trataban `daemon <subcommand>` como el prompt para una nueva sesión interactiva, por lo que el subcomando nunca se ejecutaba cuando el flag iba primero, una configuración común cuando `claude` tiene un alias que incluye el flag. Solo un `--dangerously-skip-permissions` o `--allow-dangerously-skip-permissions` inicial se dirige a `daemon` de esta manera; cualquier otro flag inicial sigue iniciando una sesión interactiva.

55 55 

56<h2 id="cli-flags">56<h2 id="cli-flags">

57 Banderas CLI57 Banderas CLI


156| `--append-system-prompt-file` | Añade contenido del archivo al indicador predeterminado | `claude --append-system-prompt-file ./style-rules.txt` |156| `--append-system-prompt-file` | Añade contenido del archivo al indicador predeterminado | `claude --append-system-prompt-file ./style-rules.txt` |

157| `--system-prompt-snapshot` | Con `off`, reconstruye el indicador en cada solicitud. Con `on`, el predeterminado, reutiliza un indicador registrado donde [se aplica el registro](#system-prompt-flags-in-resumed-conversations) | `claude --append-system-prompt "Draft rules" --system-prompt-snapshot off` |157| `--system-prompt-snapshot` | Con `off`, reconstruye el indicador en cada solicitud. Con `on`, el predeterminado, reutiliza un indicador registrado donde [se aplica el registro](#system-prompt-flags-in-resumed-conversations) | `claude --append-system-prompt "Draft rules" --system-prompt-snapshot off` |

158 158 

159`--system-prompt` y `--system-prompt-file` son mutuamente excluyentes. Las banderas de añadir se pueden combinar con cualquiera de las banderas de reemplazo.159Puedes combinar estas banderas. Para reemplazar el prompt predeterminado y aun así añadir tu propio texto, pasa `--append-system-prompt` o `--append-system-prompt-file` junto con `--system-prompt` o `--system-prompt-file`. Con Claude Code v2.1.283 o posterior, también puedes pasar una bandera junto con su propia forma de archivo, como `--append-system-prompt` con `--append-system-prompt-file`, y Claude Code usa ambas.

160 

161Por ejemplo, ejecuta lo siguiente en tu shell para añadir tanto una guía de estilo desde un archivo como una instrucción adicional:

162 

163```bash theme={null}

164claude -p --append-system-prompt-file ./style.md --append-system-prompt "Always reply in French" "Summarize README.md"

165```

166 

167Claude recibe el prompt del sistema predeterminado seguido del contenido de `style.md`, una línea en blanco y luego `Always reply in French`. El contenido del archivo va primero incluso si pasas `--append-system-prompt` antes de `--append-system-prompt-file`.

160 168 

161Cuando el texto de reemplazo combina instrucciones que son iguales en cada ejecución con contexto que cambia por ejecución, añade una línea que contenga solo `__SYSTEM_PROMPT_DYNAMIC_BOUNDARY__` entre las instrucciones y el contexto. Claude Code divide el indicador en la primera línea de este tipo y elimina esa línea, por lo que la parte anterior permanece en caché mientras la parte posterior cambia. Requiere Claude Code v2.1.275 o posterior. [Cachea la parte estática de un indicador personalizado](/docs/es/agent-sdk/modifying-system-prompts#cache-the-static-part-of-a-custom-prompt) enumera las configuraciones donde se aplica la división.169Cuando el texto de reemplazo combina instrucciones que son iguales en cada ejecución con contexto que cambia por ejecución, añade una línea que contenga solo `__SYSTEM_PROMPT_DYNAMIC_BOUNDARY__` entre las instrucciones y el contexto. Claude Code divide el indicador en la primera línea de este tipo y elimina esa línea, por lo que la parte anterior permanece en caché mientras la parte posterior cambia. Requiere Claude Code v2.1.275 o posterior. [Cachea la parte estática de un indicador personalizado](/docs/es/agent-sdk/modifying-system-prompts#cache-the-static-part-of-a-custom-prompt) enumera las configuraciones donde se aplica la división.

162 170 

commands.md +1 −1

Details

99| `/goal [condition\|clear]` | Establece un [objetivo](/docs/es/goal): Claude sigue trabajando entre turnos hasta que se cumpla la condición o el objetivo [se borre por otra razón](/docs/es/goal#how-evaluation-works). Sin argumento, muestra el objetivo actual o más recientemente logrado. `clear`, `stop`, `off`, `reset`, `none`, o `cancel` elimina un objetivo activo temprano |99| `/goal [condition\|clear]` | Establece un [objetivo](/docs/es/goal): Claude sigue trabajando entre turnos hasta que se cumpla la condición o el objetivo [se borre por otra razón](/docs/es/goal#how-evaluation-works). Sin argumento, muestra el objetivo actual o más recientemente logrado. `clear`, `stop`, `off`, `reset`, `none`, o `cancel` elimina un objetivo activo temprano |

100| `/heapdump` | Escribe una instantánea de montón de JavaScript y un desglose de memoria en `~/Desktop`, o tu directorio de inicio en Linux sin una carpeta de Escritorio, para diagnosticar uso alto de memoria. Adjunta solo el archivo `-diagnostics.json` al reportar un problema de memoria; el `.heapsnapshot` contiene tu conversación completa y credenciales, así que no lo compartas. [Oculto del menú de comandos](#how-the-command-menu-matches-what-you-type); escríbelo en su totalidad. Consulta [qué hacer con la salida](/docs/es/troubleshooting#high-cpu-or-memory-usage) |100| `/heapdump` | Escribe una instantánea de montón de JavaScript y un desglose de memoria en `~/Desktop`, o tu directorio de inicio en Linux sin una carpeta de Escritorio, para diagnosticar uso alto de memoria. Adjunta solo el archivo `-diagnostics.json` al reportar un problema de memoria; el `.heapsnapshot` contiene tu conversación completa y credenciales, así que no lo compartas. [Oculto del menú de comandos](#how-the-command-menu-matches-what-you-type); escríbelo en su totalidad. Consulta [qué hacer con la salida](/docs/es/troubleshooting#high-cpu-or-memory-usage) |

101| `/help` | Muestra ayuda y comandos disponibles |101| `/help` | Muestra ayuda y comandos disponibles |

102| `/hooks` | Ver configuraciones de [hook](/docs/es/hooks) para eventos de herramientas |102| `/hooks` | Ve las configuraciones de [hook](/docs/es/hooks#the-%2Fhooks-menu) |

103| `/ide` | Gestiona integraciones de IDE y muestra estado |103| `/ide` | Gestiona integraciones de IDE y muestra estado |

104| `/import [codex\|gemini\|cursor] [--dry-run] [--yes]` | Trae configuración de OpenAI Codex, Google Gemini CLI, o Cursor en tu máquina a Claude Code, incluidos archivos de instrucciones, servidores MCP, comandos, subagentes y skills. En [modo no interactivo](/docs/es/headless) con `-p`, `/import` enumera lo que encontró y te da el comando que confirma la importación. Agrega `--dry-run` para obtener una vista previa sin escribir nada, o `--yes` para omitir el selector interactivo. No disponible en Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry, o Claude Platform en AWS, o a través de una [puerta de enlace de aplicaciones de Claude](/docs/es/claude-apps-gateway#availability-and-limitations). También no disponible cuando desactivas [obtención de banderas de característica](/docs/es/env-vars#features-that-need-feature-flag-fetching). Requiere Claude Code v2.1.213 o posterior. Importar desde Cursor requiere v2.1.265 o posterior |104| `/import [codex\|gemini\|cursor] [--dry-run] [--yes]` | Trae configuración de OpenAI Codex, Google Gemini CLI, o Cursor en tu máquina a Claude Code, incluidos archivos de instrucciones, servidores MCP, comandos, subagentes y skills. En [modo no interactivo](/docs/es/headless) con `-p`, `/import` enumera lo que encontró y te da el comando que confirma la importación. Agrega `--dry-run` para obtener una vista previa sin escribir nada, o `--yes` para omitir el selector interactivo. No disponible en Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry, o Claude Platform en AWS, o a través de una [puerta de enlace de aplicaciones de Claude](/docs/es/claude-apps-gateway#availability-and-limitations). También no disponible cuando desactivas [obtención de banderas de característica](/docs/es/env-vars#features-that-need-feature-flag-fetching). Requiere Claude Code v2.1.213 o posterior. Importar desde Cursor requiere v2.1.265 o posterior |

105| `/init` | Inicializa el proyecto con una guía `CLAUDE.md`. Establece `CLAUDE_CODE_NEW_INIT=1` para un flujo interactivo que también te guía a través de skills, hooks y archivos de memoria personal. Si `/init` encuentra configuración de OpenAI Codex o Google Gemini CLI, ofrece llevarla con `/import` |105| `/init` | Inicializa el proyecto con una guía `CLAUDE.md`. Establece `CLAUDE_CODE_NEW_INIT=1` para un flujo interactivo que también te guía a través de skills, hooks y archivos de memoria personal. Si `/init` encuentra configuración de OpenAI Codex o Google Gemini CLI, ofrece llevarla con `/import` |

Details

65 Verificar hooks65 Verificar hooks

66</h2>66</h2>

67 67 

68Ejecute `/hooks` para enumerar cada hook registrado para la sesión actual, agrupado por evento. Si un hook que definió no aparece, no se está leyendo: los hooks van bajo la clave `"hooks"` en un archivo de configuración, no en un archivo independiente.68Ejecuta `/hooks` para enumerar cada hook registrado para la sesión actual, agrupado por evento. Si un hook que definiste no aparece, Claude Code no lo cargó. Comprueba estas causas:

69 69 

70Si el hook aparece pero no se dispara, el matcher es la causa habitual. Compruébelo para estos errores:70* El hook está definido en un archivo independiente. Los hooks van bajo la clave `"hooks"` en un [archivo de configuración](/docs/es/settings#settings-files).

71* El valor de `matcher` es una matriz en lugar de una cadena única. Claude Code muestra la entrada como un ajuste no válido cuando inicias una sesión interactiva y en `claude doctor`. Si la matriz está bajo `PreToolUse` o `PermissionRequest`, tampoco se carga ninguno de los otros hooks de ese archivo.

71 72 

72* El campo `matcher` es una cadena única que usa `|` para coincidir con múltiples nombres de herramientas, por ejemplo `"Edit|Write"`. Un separador `,` es equivalente, por lo que `"Edit,Write"` coincide con las mismas herramientas. Antes de v2.1.191, una coma se evaluaba como expresión regular y el matcher nunca coincidía, así que use `|` si no está en v2.1.191 aún.73Si el hook aparece pero no se dispara, el matcher es la causa habitual. Compruébalo para estos errores:

74 

75* El campo `matcher` es una cadena única que usa `|` para coincidir con múltiples nombres de herramientas, por ejemplo `"Edit|Write"`. Un separador `,` es equivalente, por lo que `"Edit,Write"` coincide con las mismas herramientas. Antes de v2.1.191, una coma se evaluaba como expresión regular y el matcher nunca coincidía, así que usa `|` si aún no estás en v2.1.191.

73* Un nombre de herramienta mal escrito produce un matcher que no coincide con nada, por lo que el hook falla silenciosamente.76* Un nombre de herramienta mal escrito produce un matcher que no coincide con nada, por lo que el hook falla silenciosamente.

74* Un valor de matriz es un error de esquema: Claude Code muestra un aviso de error de configuración y rechaza todo el archivo de configuración del usuario, proyecto o local, `claude doctor` informa del error de validación, y ningún hook de ese archivo aparece en `/hooks`. En [configuración administrada](/docs/es/managed-settings), Claude Code elimina toda la clave `hooks` del archivo que contiene la matriz, por lo que ninguno de los hooks de ese archivo se aplica. Los otros ajustes del archivo aún se aplican, y `claude doctor` enumera la clave eliminada.

75 77 

76Cuando edita `settings.json`, el cambio surte efecto en la sesión en ejecución después de un breve retraso de estabilidad de archivo, incluso si crea el archivo o la carpeta `.claude/` del proyecto después de que la sesión comenzó. No necesita reiniciar. Antes de v2.1.257, Claude Code no detectaba ediciones en una carpeta `.claude/` creada después de que la sesión comenzó.78Cuando editas `settings.json`, el cambio surte efecto en la sesión en ejecución después de un breve retraso de estabilidad de archivo, incluso si creas el archivo o la carpeta `.claude/` del proyecto después de que la sesión comenzó. No necesitas reiniciar. Antes de v2.1.257, Claude Code no detectaba ediciones en una carpeta `.claude/` creada después de que la sesión comenzó.

77 79 

78Si `/hooks` aún muestra la definición anterior unos segundos después de guardar, ejecute `/hooks` nuevamente para actualizar la vista.80Si `/hooks` aún muestra la definición anterior unos segundos después de guardar, ejecuta `/hooks` nuevamente para actualizar la vista.

79 81 

80Si `/hooks` muestra el hook pero aún no se dispara, el siguiente paso es ver la evaluación del hook en vivo. Inicie una sesión con `claude --debug` y active la llamada de herramienta. El registro de depuración registra cada evento, qué matchers se verificaron, y el código de salida y la salida del hook. Consulte [Depurar hooks](/docs/es/hooks#debug-hooks) para el formato del registro y [solución de problemas de hooks](/docs/es/hooks-guide#limitations-and-troubleshooting) para patrones de fallo comunes.82Si `/hooks` muestra el hook pero aún no se dispara, el siguiente paso es ver la evaluación del hook en vivo. Inicia una sesión con `claude --debug` y activa la llamada a herramienta. El registro de depuración registra cada evento, qué matchers se verificaron, y el código de salida y la salida del hook. Consulta [Depurar hooks](/docs/es/hooks#debug-hooks) para el formato del registro y [solución de problemas de hooks](/docs/es/hooks-guide#limitations-and-troubleshooting) para patrones de fallo comunes.

81 83 

82<h2 id="test-against-a-clean-configuration">84<h2 id="test-against-a-clean-configuration">

83 Probar contra una configuración limpia85 Probar contra una configuración limpia

env-vars.md +2 −1

Details

205| `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS` | Tiempo de espera de estancamiento en milisegundos para subagentes. Predeterminado `600000` (10 minutos); si aumenta `CLAUDE_STREAM_IDLE_TIMEOUT_MS` mientras el perro guardián de transmisión está activado, el predeterminado aumenta con él, como describe [Manejar respuestas de API lentas o estancadas](/docs/es/agent-sdk/typescript#handle-slow-or-stalled-api-responses). El temporizador se reinicia en cada evento de progreso de transmisión; si no llega progreso dentro de la ventana, Claude Code aborta el subagente e informa el estancamiento al padre |205| `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS` | Tiempo de espera de estancamiento en milisegundos para subagentes. Predeterminado `600000` (10 minutos); si aumenta `CLAUDE_STREAM_IDLE_TIMEOUT_MS` mientras el perro guardián de transmisión está activado, el predeterminado aumenta con él, como describe [Manejar respuestas de API lentas o estancadas](/docs/es/agent-sdk/typescript#handle-slow-or-stalled-api-responses). El temporizador se reinicia en cada evento de progreso de transmisión; si no llega progreso dentro de la ventana, Claude Code aborta el subagente e informa el estancamiento al padre |

206| `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` | Establezca el porcentaje (1-100) de la ventana de auto-compactación en la que se activa la auto-compactación. Use valores más bajos como `50` para compactar antes; la variable no puede aumentar el umbral, por lo que los valores por encima del porcentaje predeterminado se ignoran. Solo se aplica en sesiones que [compactan antes del límite de contexto del modelo](/docs/es/model-config#context-window-and-auto-compaction). Se aplica tanto a conversaciones principales como a subagentes |206| `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` | Establezca el porcentaje (1-100) de la ventana de auto-compactación en la que se activa la auto-compactación. Use valores más bajos como `50` para compactar antes; la variable no puede aumentar el umbral, por lo que los valores por encima del porcentaje predeterminado se ignoran. Solo se aplica en sesiones que [compactan antes del límite de contexto del modelo](/docs/es/model-config#context-window-and-auto-compaction). Se aplica tanto a conversaciones principales como a subagentes |

207| `CLAUDE_AUTO_BACKGROUND_TASKS` | Establezca en `1` para forzar la habilitación del envío automático a segundo plano de tareas de agente de larga duración. Cuando está habilitado, los subagentes se mueven al fondo después de ejecutarse durante aproximadamente dos minutos. También habilita [envío automático a segundo plano de llamadas de herramientas MCP largas](/docs/es/mcp#automatic-backgrounding-of-long-tool-calls) en modo no interactivo en Claude Code v2.1.212 o posterior |207| `CLAUDE_AUTO_BACKGROUND_TASKS` | Establezca en `1` para forzar la habilitación del envío automático a segundo plano de tareas de agente de larga duración. Cuando está habilitado, los subagentes se mueven al fondo después de ejecutarse durante aproximadamente dos minutos. También habilita [envío automático a segundo plano de llamadas de herramientas MCP largas](/docs/es/mcp#automatic-backgrounding-of-long-tool-calls) en modo no interactivo en Claude Code v2.1.212 o posterior |

208| `CLAUDE_AX_PREPARK_MS` | En [modo de lector de pantalla](/docs/es/accessibility#what-your-screen-reader-hears), cuántos milisegundos Claude Code espera, con el cursor al inicio de la línea, antes de escribir una línea nueva o cambiada. Predeterminado `50`. Establezca `0` para escribir inmediatamente. Claude Code limita la espera a `5000`. Requiere Claude Code v2.1.233 o posterior |208| `CLAUDE_AX_PREPARK_MS` | En el [modo de lector de pantalla](/docs/es/accessibility), cuántos milisegundos espera Claude Code antes de escribir una línea nueva o modificada. Predeterminado `0`, por lo que Claude Code no espera. Antes de v2.1.287, el valor predeterminado era `50`. Claude Code limita la espera a `5000`. Requiere Claude Code v2.1.233 o posterior |

209| `CLAUDE_AX_SCREEN_READER` | Establezca en `1` para renderizar salida amigable con lector de pantalla: texto plano sin bordes decorativos o animaciones. Establezca en `0` para forzar el modo de lector de pantalla desactivado incluso cuando [`axScreenReader`](/docs/es/settings-reference#axscreenreader) es `true`. La bandera [`--ax-screen-reader`](/docs/es/cli-reference#cli-flags) tiene prioridad. Requiere Claude Code v2.1.181 o posterior |209| `CLAUDE_AX_SCREEN_READER` | Establezca en `1` para renderizar salida amigable con lector de pantalla: texto plano sin bordes decorativos o animaciones. Establezca en `0` para forzar el modo de lector de pantalla desactivado incluso cuando [`axScreenReader`](/docs/es/settings-reference#axscreenreader) es `true`. La bandera [`--ax-screen-reader`](/docs/es/cli-reference#cli-flags) tiene prioridad. Requiere Claude Code v2.1.181 o posterior |

210| `CLAUDE_AX_STARTUP_QUIET_MS` | En [modo de lector de pantalla](/docs/es/accessibility), cuántos milisegundos Claude Code mantiene el primer renderizado de interfaz después de la línea de confirmación de inicio, para que su lector de pantalla pueda hablar la línea en su totalidad antes de que la nueva salida la interrumpa. Predeterminado `3000`. Establezca `0` para renderizar inmediatamente. Claude Code limita la retención a `600000` (10 minutos). Su primer pulsación de tecla termina la retención temprano. Requiere Claude Code v2.1.217 o posterior |210| `CLAUDE_AX_STARTUP_QUIET_MS` | En [modo de lector de pantalla](/docs/es/accessibility), cuántos milisegundos Claude Code mantiene el primer renderizado de interfaz después de la línea de confirmación de inicio, para que su lector de pantalla pueda hablar la línea en su totalidad antes de que la nueva salida la interrumpa. Predeterminado `3000`. Establezca `0` para renderizar inmediatamente. Claude Code limita la retención a `600000` (10 minutos). Su primer pulsación de tecla termina la retención temprano. Requiere Claude Code v2.1.217 o posterior |

211| `CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR` | Vuelva al directorio de trabajo original después de cada comando Bash o PowerShell en la sesión principal |211| `CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR` | Vuelva al directorio de trabajo original después de cada comando Bash o PowerShell en la sesión principal |


245| `CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN` | Establezca en `1` para desabilitar [renderizado de pantalla completa](/docs/es/fullscreen) y usar el renderizador de pantalla principal clásico. La conversación permanece en el desplazamiento nativo de su terminal para que `Cmd+f` y el modo de copia de tmux funcionen como de costumbre. Tiene prioridad sobre `CLAUDE_CODE_NO_FLICKER` y la configuración [`tui`](/docs/es/settings-reference#tui). También puede cambiar con `/tui default`. No se aplica a sesiones de fondo abiertas desde [vista de agente](/docs/es/agent-view), que siempre usan renderizado de pantalla completa |245| `CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN` | Establezca en `1` para desabilitar [renderizado de pantalla completa](/docs/es/fullscreen) y usar el renderizador de pantalla principal clásico. La conversación permanece en el desplazamiento nativo de su terminal para que `Cmd+f` y el modo de copia de tmux funcionen como de costumbre. Tiene prioridad sobre `CLAUDE_CODE_NO_FLICKER` y la configuración [`tui`](/docs/es/settings-reference#tui). También puede cambiar con `/tui default`. No se aplica a sesiones de fondo abiertas desde [vista de agente](/docs/es/agent-view), que siempre usan renderizado de pantalla completa |

246| `CLAUDE_CODE_DISABLE_ARTIFACT` | Establezca en `1` para desactivar la herramienta [Artifact](/docs/es/artifacts), que publica la salida de sesión como una página web privada en claude.ai. Una vez que lo establece, ningún archivo de configuración activa la herramienta de nuevo. Para desactivar la herramienta desde un archivo de configuración en su lugar, establezca [`enableArtifact`](/docs/es/settings-reference#enableartifact) en `false`; la clave deprecated [`disableArtifact`](/docs/es/settings-reference#disableartifact) también la desactiva |246| `CLAUDE_CODE_DISABLE_ARTIFACT` | Establezca en `1` para desactivar la herramienta [Artifact](/docs/es/artifacts), que publica la salida de sesión como una página web privada en claude.ai. Una vez que lo establece, ningún archivo de configuración activa la herramienta de nuevo. Para desactivar la herramienta desde un archivo de configuración en su lugar, establezca [`enableArtifact`](/docs/es/settings-reference#enableartifact) en `false`; la clave deprecated [`disableArtifact`](/docs/es/settings-reference#disableartifact) también la desactiva |

247| `CLAUDE_CODE_DISABLE_ATTACHMENTS` | Establezca en `1` para desabilitar el procesamiento de archivos adjuntos. Las menciones de archivos con sintaxis `@` se envían como texto simple en lugar de expandirse en contenido de archivo |247| `CLAUDE_CODE_DISABLE_ATTACHMENTS` | Establezca en `1` para desabilitar el procesamiento de archivos adjuntos. Las menciones de archivos con sintaxis `@` se envían como texto simple en lugar de expandirse en contenido de archivo |

248| `CLAUDE_CODE_DISABLE_AUTH_REFRESH_LOCK` | Establécela en `1` para que un proceso de Claude Code ejecute él mismo su comando [`gcpAuthRefresh`](/docs/es/settings-reference#gcpauthrefresh) o [`awsAuthRefresh`](/docs/es/settings-reference#awsauthrefresh) en lugar de esperar mientras otro proceso lo ejecuta. Requiere Claude Code v2.1.286 o posterior |

248| `CLAUDE_CODE_DISABLE_AUTO_MEMORY` | Establezca en `1` para desabilitar [memoria automática](/docs/es/memory#auto-memory). Establezca en `0` para forzar la memoria automática incluso cuando el modo `--bare` o [`autoMemoryEnabled: false`](/docs/es/settings-reference#automemoryenabled) la deshabilitaría de otra manera. Cuando está deshabilitada, Claude no crea ni carga archivos de memoria automática |249| `CLAUDE_CODE_DISABLE_AUTO_MEMORY` | Establezca en `1` para desabilitar [memoria automática](/docs/es/memory#auto-memory). Establezca en `0` para forzar la memoria automática incluso cuando el modo `--bare` o [`autoMemoryEnabled: false`](/docs/es/settings-reference#automemoryenabled) la deshabilitaría de otra manera. Cuando está deshabilitada, Claude no crea ni carga archivos de memoria automática |

249| `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` | Establezca en `1` para desabilitar toda la funcionalidad de tareas de fondo, incluido el parámetro `run_in_background` en herramientas Bash y subagente, auto-envío a segundo plano y el atajo Ctrl+B |250| `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` | Establezca en `1` para desabilitar toda la funcionalidad de tareas de fondo, incluido el parámetro `run_in_background` en herramientas Bash y subagente, auto-envío a segundo plano y el atajo Ctrl+B |

250| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_DEFAULT` | Establezca en `1` para evitar que Claude Code trate una respuesta de transmisión de [Amazon Bedrock](/docs/es/amazon-bedrock) con un encabezado `Content-Type` faltante o vacío como flujo de eventos binario de Amazon Bedrock. De forma predeterminada, Claude Code asume que una puerta de enlace eliminó el encabezado de una respuesta por lo demás sin modificar, por lo que decodifica el cuerpo y la transmisión sigue funcionando. Establezca esto solo para una puerta de enlace que también re-emita la transmisión como eventos enviados por servidor; Claude Code luego lee el cuerpo sin encabezado como eventos enviados por servidor en su lugar. Requiere Claude Code v2.1.239 o posterior |251| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_DEFAULT` | Establezca en `1` para evitar que Claude Code trate una respuesta de transmisión de [Amazon Bedrock](/docs/es/amazon-bedrock) con un encabezado `Content-Type` faltante o vacío como flujo de eventos binario de Amazon Bedrock. De forma predeterminada, Claude Code asume que una puerta de enlace eliminó el encabezado de una respuesta por lo demás sin modificar, por lo que decodifica el cuerpo y la transmisión sigue funcionando. Establezca esto solo para una puerta de enlace que también re-emita la transmisión como eventos enviados por servidor; Claude Code luego lee el cuerpo sin encabezado como eventos enviados por servidor en su lugar. Requiere Claude Code v2.1.239 o posterior |

errors.md +790 −767

Details

4 4 

5# Referencia de errores5# Referencia de errores

6 6 

7> Busque mensajes de error en tiempo de ejecución de Claude Code con lo que cada uno significa y cómo solucionarlo.7> Busca mensajes de error en tiempo de ejecución de Claude Code con lo que cada uno significa y cómo solucionarlo.

8 8 

9Esta página enumera los errores en tiempo de ejecución que Claude Code muestra y cómo recuperarse de cada uno, además de qué verificar cuando las respuestas parecen estar mal sin un error. Para errores de instalación como `command not found` o fallos de TLS durante la configuración, consulte [Solucionar problemas de instalación e inicio de sesión](/docs/es/troubleshoot-install).9Esta página enumera los errores en tiempo de ejecución que Claude Code muestra y cómo recuperarte de cada uno, además de qué verificar cuando las respuestas parecen estar mal sin un error. Para errores de instalación como `command not found` o fallos de TLS durante la configuración, consulta [Solucionar problemas de instalación e inicio de sesión](/docs/es/troubleshoot-install).

10 10 

11Excepto por [errores de Wrapper e IDE](#wrapper-and-ide-errors), que el programa de lanzamiento imprime en lugar de Claude Code mismo, estos errores y comandos de recuperación se aplican en toda la CLI, la [aplicación de escritorio](/docs/es/desktop) y [sesiones en la nube](/docs/es/claude-code-on-the-web), ya que los tres envuelven la misma CLI de Claude Code. Para otros problemas específicos de la superficie, consulte la sección de solución de problemas en la página de esa superficie.11Excepto por [errores de Wrapper e IDE](#wrapper-and-ide-errors), que el programa de lanzamiento imprime en lugar de Claude Code mismo, estos errores y comandos de recuperación se aplican en toda la CLI, la [aplicación de escritorio](/docs/es/desktop) y [sesiones en la nube](/docs/es/claude-code-on-the-web), ya que las tres envuelven la misma CLI de Claude Code. Para otros problemas específicos de la superficie, consulta la sección de solución de problemas en la página de esa superficie.

12 12 

13<Note>13<Note>

14 Claude Code llama a la API de Claude para respuestas del modelo, por lo que la mayoría de los errores en tiempo de ejecución se asignan a un código de error de API subyacente. Esta página cubre lo que cada error significa dentro de Claude Code y cómo recuperarse. Para las definiciones de código de estado HTTP sin procesar, consulte la [referencia de errores de la plataforma Claude](https://platform.claude.com/docs/en/api/errors).14 Claude Code llama a la API de Claude para respuestas del modelo, por lo que la mayoría de los errores en tiempo de ejecución se asignan a un código de error de API subyacente. Esta página cubre lo que cada error significa dentro de Claude Code y cómo recuperarte. Para las definiciones de código de estado HTTP sin procesar, consulta la [referencia de errores de la plataforma Claude](https://platform.claude.com/docs/en/api/errors).

15</Note>15</Note>

16 16 

17<h2 id="find-your-error">17<h2 id="find-your-error">

18 Encuentre su error18 Encuentra tu error

19</h2>19</h2>

20 20 

21Haga coincidir el mensaje que ve con una sección a continuación.21Busca el mensaje que ves en la tabla y ve a la sección correspondiente.

22 22 

23| Mensaje | Sección |23| Mensaje | Sección |

24| :- | :- |24| :- | :- |

25| `API Error: 500 Internal server error` | [Errores del servidor](#api-error-500-internal-server-error) |25| `API Error: 500 Internal server error` | [Errores del servidor](#api-error-500-internal-server-error) |

26| `API Error: Repeated 529 Overloaded errors` | [Errores del servidor](#api-error-repeated-529-overloaded-errors) |26| `API Error: Repeated 529 Overloaded errors` | [Errores del servidor](#api-error-repeated-529-overloaded-errors) |

27| `Opus is experiencing high load` / `Fable is experiencing high load` | [Errores del servidor](#api-error-repeated-529-overloaded-errors) |27| `Opus is experiencing high load` / `Fable is experiencing high load` | [Errores del servidor](#api-error-repeated-529-overloaded-errors) |

28| `Request timed out` | [Errores del servidor](#request-timed-out), o [Red](#unable-to-connect-to-api) si el mensaje menciona su conexión a internet |28| `Request timed out` | [Errores del servidor](#request-timed-out), o [Red](#unable-to-connect-to-api) si el mensaje menciona tu conexión a internet |

29| `API Error: No response from API` | [Errores del servidor](#no-response-from-api) |29| `API Error: No response from API` | [Errores del servidor](#no-response-from-api) |

30| `Server error mid-response. The response above may be incomplete.` | [Errores del servidor](#the-response-above-may-be-incomplete) |30| `Server error mid-response. The response above may be incomplete.` | [Errores del servidor](#the-response-above-may-be-incomplete) |

31| `Connection lost mid-response` / `Your computer went to sleep mid-response` / `The response stopped arriving` | [Errores del servidor](#the-response-above-may-be-incomplete) |31| `Connection lost mid-response` / `Your computer went to sleep mid-response` / `The response stopped arriving` | [Errores del servidor](#the-response-above-may-be-incomplete) |


112| `AWS default-chain credential resolve timed out` | [Autenticación](#aws-default-chain-credential-resolve-timed-out) |112| `AWS default-chain credential resolve timed out` | [Autenticación](#aws-default-chain-credential-resolve-timed-out) |

113| `Timed out after 60s waiting for AWS` | [Autenticación](#bedrock-setup-verification-timed-out-waiting-for-aws) |113| `Timed out after 60s waiting for AWS` | [Autenticación](#bedrock-setup-verification-timed-out-waiting-for-aws) |

114| `A request to AWS timed out. Check your network and proxy settings, then try again.` | [Autenticación](#bedrock-setup-verification-timed-out-waiting-for-aws) |114| `A request to AWS timed out. Check your network and proxy settings, then try again.` | [Autenticación](#bedrock-setup-verification-timed-out-waiting-for-aws) |

115| `Could not load the default credentials` on Google Cloud's Agent Platform | [Autenticación](#could-not-load-aws-or-google-cloud-credentials) |115| `Could not load the default credentials` en Agent Platform de Google Cloud | [Autenticación](#could-not-load-aws-or-google-cloud-credentials) |

116| `Unable to connect to API` | [Red](#unable-to-connect-to-api) |116| `Unable to connect to API` | [Red](#unable-to-connect-to-api) |

117| `Connection refused —` / `Can't reach the API server —` / `No internet route —` / `Couldn't connect through your proxy` / `Connection dropped`, each with an error code in parentheses | [Red](#unable-to-connect-to-api) |117| `Connection refused —` / `Can't reach the API server —` / `No internet route —` / `Couldn't connect through your proxy` / `Connection dropped`, cada uno con un código de error entre paréntesis | [Red](#unable-to-connect-to-api) |

118| `Unable to connect to Anthropic services` during setup | [Red](#unable-to-connect-to-anthropic-services) |118| `Unable to connect to Anthropic services` durante la configuración | [Red](#unable-to-connect-to-anthropic-services) |

119| `Socket is closed` | [Red](#socket-is-closed) |119| `Socket is closed` | [Red](#socket-is-closed) |

120| `Waiting for API response · will retry in` | [Reintentos automáticos](#automatic-retries), o [Red](#unable-to-connect-to-api) si persiste |120| `Waiting for API response · will retry in` | [Reintentos automáticos](#automatic-retries), o [Red](#unable-to-connect-to-api) si persiste |

121| `API returned an empty or malformed response` | [Red](#api-returned-an-empty-or-malformed-response) |121| `API returned an empty or malformed response` | [Red](#api-returned-an-empty-or-malformed-response) |

122| `Streaming response ended before any complete data was received` | [Red](#streaming-response-ended-before-any-complete-data-was-received) |122| `Streaming response ended before any complete data was received` | [Red](#streaming-response-ended-before-any-complete-data-was-received) |

123| `Bedrock streaming response has content-type "..."; expected "application/vnd.amazon.eventstream"` | [Red](#bedrock-streaming-response-has-an-unexpected-content-type) |123| `Bedrock streaming response has content-type "..."; expected "application/vnd.amazon.eventstream"` | [Red](#bedrock-streaming-response-has-an-unexpected-content-type) |

124| `SSL certificate verification failed` | [Red](#ssl-certificate-errors) |124| `SSL certificate verification failed` | [Red](#ssl-certificate-errors) |

125| `SSL certificate error (...)` during login or startup | [Red](#ssl-certificate-errors) |125| `SSL certificate error (...)` durante el inicio de sesión o el arranque | [Red](#ssl-certificate-errors) |

126| `unable to get local issuer certificate` | [Red](#ssl-certificate-errors) |126| `unable to get local issuer certificate` | [Red](#ssl-certificate-errors) |

127| `403` with `x-deny-reason: host_not_allowed` in a cloud or routine session | [Red](#host-not-allowed-in-a-cloud-session) |127| `403` con `x-deny-reason: host_not_allowed` en una sesión en la nube o de rutina | [Red](#host-not-allowed-in-a-cloud-session) |

128| `proxy refused the connection` | [Red](#the-proxy-refused-the-connection) |128| `proxy refused the connection` | [Red](#the-proxy-refused-the-connection) |

129| `403` with `This GraphQL query is not enabled for this session` in a cloud session | [GitHub proxy](/docs/es/cloud-environments#github-proxy) |129| `403` con `This GraphQL query is not enabled for this session` en una sesión en la nube | [Proxy de GitHub](/docs/es/cloud-environments#github-proxy) |

130| `The cloud environments service returned an empty response` / `The cloud environments service returned a response in an unexpected format` | [Red](#the-cloud-environments-service-returned-an-empty-or-unexpected-response) |130| `The cloud environments service returned an empty response` / `The cloud environments service returned a response in an unexpected format` | [Red](#the-cloud-environments-service-returned-an-empty-or-unexpected-response) |

131| `Couldn't reconnect to your Remote Control session` | [Red](#couldnt-reconnect-to-your-remote-control-session) |131| `Couldn't reconnect to your Remote Control session` | [Red](#couldnt-reconnect-to-your-remote-control-session) |

132| `N sessions ended while this machine was offline — the environment was cleaned up on the server and can't be resumed.` | [Red](#sessions-ended-while-this-machine-was-offline) |132| `N sessions ended while this machine was offline — the environment was cleaned up on the server and can't be resumed.` | [Red](#sessions-ended-while-this-machine-was-offline) |


137| `Prompt is too long · this conversation is a single exchange` / `A single-exchange conversation cannot be compacted` | [Errores de solicitud](#prompt-is-too-long) |137| `Prompt is too long · this conversation is a single exchange` / `A single-exchange conversation cannot be compacted` | [Errores de solicitud](#prompt-is-too-long) |

138| `Context limit reached · /compact or /clear to continue` | [Errores de solicitud](#prompt-is-too-long) |138| `Context limit reached · /compact or /clear to continue` | [Errores de solicitud](#prompt-is-too-long) |

139| `Context limit reached · /clear to continue` | [Errores de solicitud](#prompt-is-too-long) |139| `Context limit reached · /clear to continue` | [Errores de solicitud](#prompt-is-too-long) |

140| `capability_rejected: prompt_too_long` on a Claude apps gateway session | [Errores de solicitud](#prompt-is-too-long) |140| `capability_rejected: prompt_too_long` en una sesión del gateway de aplicaciones de Claude | [Errores de solicitud](#prompt-is-too-long) |

141| `upstream rejected the request` / `request too large for this upstream` on a Claude apps gateway session | [Mensajes de error ascendentes](/docs/es/claude-apps-gateway-config#upstream-error-messages) |141| `upstream rejected the request` / `request too large for this upstream` en una sesión del gateway de aplicaciones de Claude | [Mensajes de error ascendentes](/docs/es/claude-apps-gateway-config#upstream-error-messages) |

142| `upstream rate limit exceeded` on a Claude apps gateway session | [Mensajes de error ascendentes](/docs/es/claude-apps-gateway-config#upstream-error-messages) |142| `upstream rate limit exceeded` en una sesión del gateway de aplicaciones de Claude | [Mensajes de error ascendentes](/docs/es/claude-apps-gateway-config#upstream-error-messages) |

143| `all upstreams failed (N attempted)` on a Claude apps gateway session | [Mensajes de error ascendentes](/docs/es/claude-apps-gateway-config#upstream-error-messages) |143| `all upstreams failed (N attempted)` en una sesión del gateway de aplicaciones de Claude | [Mensajes de error ascendentes](/docs/es/claude-apps-gateway-config#upstream-error-messages) |

144| `Claude Code may not be enabled for your organization` after a Claude apps gateway sign-in | [Solución de problemas de la puerta de enlace de aplicaciones Claude](/docs/es/claude-apps-gateway-deploy#troubleshooting) |144| `Claude Code may not be enabled for your organization` después de iniciar sesión en el gateway de aplicaciones de Claude | [Solución de problemas del gateway de aplicaciones de Claude](/docs/es/claude-apps-gateway-deploy#troubleshooting) |

145| `Context exceeds the ...-token limit by ... tokens` in `/context` output | [Errores de solicitud](#context-exceeds-the-token-limit) |145| `Context exceeds the ...-token limit by ... tokens` en la salida de `/context` | [Errores de solicitud](#context-exceeds-the-token-limit) |

146| `Request too large` | [Errores de solicitud](#request-too-large) |146| `Request too large` | [Errores de solicitud](#request-too-large) |

147| `Request too large for the API's 32MB request limit` | [Errores de solicitud](#request-too-large) |147| `Request too large for the API's 32MB request limit` | [Errores de solicitud](#request-too-large) |

148| `Image was too large` | [Errores de solicitud](#image-was-too-large) |148| `Image was too large` | [Errores de solicitud](#image-was-too-large) |


176| `role 'system' must precede an 'assistant' message` | [Errores de solicitud](#role-system-must-precede-an-assistant-message) |176| `role 'system' must precede an 'assistant' message` | [Errores de solicitud](#role-system-must-precede-an-assistant-message) |

177| `Invalid encrypted_content in search_result block` / `Invalid encrypted_index in text block` / `Failed to decrypt web search result content` | [Errores de solicitud](#invalid-encrypted-content-in-search-result-block) |177| `Invalid encrypted_content in search_result block` / `Invalid encrypted_index in text block` / `Failed to decrypt web search result content` | [Errores de solicitud](#invalid-encrypted-content-in-search-result-block) |

178| `Invalid encrypted_stdout in encrypted_code_execution_result block` | [Errores de solicitud](#invalid-encrypted-content-in-search-result-block) |178| `Invalid encrypted_stdout in encrypted_code_execution_result block` | [Errores de solicitud](#invalid-encrypted-content-in-search-result-block) |

179| `server_tool_use.name: Input should be` on every turn of a resumed session | [Errores de solicitud](#unsupported-tool-content-removed) |179| `server_tool_use.name: Input should be` en cada turno de una sesión reanudada | [Errores de solicitud](#unsupported-tool-content-removed) |

180| `<model> can't help with this. Start a new session to continue` | [Errores de solicitud](#usage-policy-refusal) |180| `<model> can't help with this. Start a new session to continue` | [Errores de solicitud](#usage-policy-refusal) |

181| `Claude Code is unable to respond to this request, which appears to violate our Usage Policy` | [Errores de solicitud](#usage-policy-refusal) |181| `Claude Code is unable to respond to this request, which appears to violate our Usage Policy` | [Errores de solicitud](#usage-policy-refusal) |

182| `<model>'s safeguards flagged this message` | [Errores de solicitud](#safety-measures-flagged-a-cybersecurity-topic) |182| `<model>'s safeguards flagged this message` | [Errores de solicitud](#safety-measures-flagged-a-cybersecurity-topic) |


186| `The connection dropped while downloading the update` | [Errores de instalación](#the-connection-dropped-while-downloading-the-update) |186| `The connection dropped while downloading the update` | [Errores de instalación](#the-connection-dropped-while-downloading-the-update) |

187| `Download timed out: exceeded the total deadline` | [Errores de instalación](#the-connection-dropped-while-downloading-the-update) |187| `Download timed out: exceeded the total deadline` | [Errores de instalación](#the-connection-dropped-while-downloading-the-update) |

188| `--bg and --print conflict` | [Errores de línea de comandos](#conflict-between-bg-and-print) |188| `--bg and --print conflict` | [Errores de línea de comandos](#conflict-between-bg-and-print) |

189| `Error: Cannot use both --append-subagent-system-prompt and --append-subagent-system-prompt-file. Please use only one.` | [Errores de línea de comandos](#conflict-between-a-system-prompt-flag-and-its-file-form) |

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

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

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


197| `The current directory no longer exists (it was deleted or moved)` / `Can't read the current directory` | [Errores de línea de comandos](#the-current-directory-no-longer-exists) |198| `The current directory no longer exists (it was deleted or moved)` / `Can't read the current directory` | [Errores de línea de comandos](#the-current-directory-no-longer-exists) |

198| `Temp directory <dir> ... Refusing to use it` / `ENOSPC: no space left on device, mkdir '<dir>'` | [Errores de línea de comandos](#temp-directory-refused-or-cannot-be-created) |199| `Temp directory <dir> ... Refusing to use it` / `ENOSPC: no space left on device, mkdir '<dir>'` | [Errores de línea de comandos](#temp-directory-refused-or-cannot-be-created) |

199| `couldn't be resolved to a real location, so its skills, commands, and agents weren't loaded` | [Errores de línea de comandos](#directory-couldnt-be-resolved-to-a-real-location) |200| `couldn't be resolved to a real location, so its skills, commands, and agents weren't loaded` | [Errores de línea de comandos](#directory-couldnt-be-resolved-to-a-real-location) |

200| `Error: Workspace not trusted` when starting Remote Control | [Errores de línea de comandos](#workspace-not-trusted-when-starting-remote-control) |201| `Error: Workspace not trusted` al iniciar Remote Control | [Errores de línea de comandos](#workspace-not-trusted-when-starting-remote-control) |

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

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

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


211| `Error: MCP tool <name> (passed via --permission-prompt-tool) not found` | [Errores de línea de comandos](#mcp-permission-prompt-tool-not-found) |212| `Error: MCP tool <name> (passed via --permission-prompt-tool) not found` | [Errores de línea de comandos](#mcp-permission-prompt-tool-not-found) |

212| `OAuth callback port <port> is already in use — another process may be holding it` | [Errores de línea de comandos](#oauth-callback-port-is-already-in-use) |213| `OAuth callback port <port> is already in use — another process may be holding it` | [Errores de línea de comandos](#oauth-callback-port-is-already-in-use) |

213| `No available ports for OAuth redirect` | [Errores de línea de comandos](#no-available-ports-for-oauth-redirect) |214| `No available ports for OAuth redirect` | [Errores de línea de comandos](#no-available-ports-for-oauth-redirect) |

214| `Shell command failed for pattern "..."`, from `/security-review` or any skill that injects dynamic context | [Errores de línea de comandos](#security-review-fails-without-origin-head) |215| `Shell command failed for pattern "..."`, de `/security-review` o de cualquier skill que inyecte contexto dinámico | [Errores de línea de comandos](#security-review-fails-without-origin-head) |

215| `Shell command permission check failed for pattern "..."`, from a skill that injects dynamic context | [Errores de línea de comandos](#security-review-fails-without-origin-head) |216| `Shell command permission check failed for pattern "..."`, de un skill que inyecta contexto dinámico | [Errores de línea de comandos](#security-review-fails-without-origin-head) |

216| ``Skill <name> requires bash (`shell: bash` in frontmatter) but Git Bash was not found`` | [Errores de línea de comandos](#security-review-fails-without-origin-head) |217| ``Skill <name> requires bash (`shell: bash` in frontmatter) but Git Bash was not found`` | [Errores de línea de comandos](#security-review-fails-without-origin-head) |

217| `Input must be provided either through stdin or as a prompt argument when using --print` | [Errores de línea de comandos](#input-must-be-provided-when-using-print) |218| `Input must be provided either through stdin or as a prompt argument when using --print` | [Errores de línea de comandos](#input-must-be-provided-when-using-print) |

218| `Error: Input contained only whitespace` | [Errores de línea de comandos](#input-contained-only-whitespace) |219| `Error: Input contained only whitespace` | [Errores de línea de comandos](#input-contained-only-whitespace) |

219| `Blank prompt — the message was only whitespace, so nothing was sent to the model.` | [Errores de línea de comandos](#input-contained-only-whitespace) |220| `Blank prompt — the message was only whitespace, so nothing was sent to the model.` | [Errores de línea de comandos](#input-contained-only-whitespace) |

220| `Error: stream-json input carried over 256M characters with no newline` | [Errores de línea de comandos](#stream-json-input-carried-over-256m-characters-with-no-newline) |221| `Error: stream-json input carried over 256M characters with no newline` | [Errores de línea de comandos](#stream-json-input-carried-over-256m-characters-with-no-newline) |

221| `Unknown command: /<name>`, with or without a `Did you mean` suggestion | [Errores de línea de comandos](#unknown-command) |222| `Unknown command: /<name>`, con o sin una sugerencia `Did you mean` | [Errores de línea de comandos](#unknown-command) |

222| `Diff is too large for ultrareview` / `PR #<N> is too large for ultrareview` | [Errores de línea de comandos](#diff-is-too-large-for-ultrareview) |223| `Diff is too large for ultrareview` / `PR #<N> is too large for ultrareview` | [Errores de línea de comandos](#diff-is-too-large-for-ultrareview) |

223| `Could not find merge-base with <branch>` | [Errores de línea de comandos](#could-not-find-merge-base-with-the-base-branch) |224| `Could not find merge-base with <branch>` | [Errores de línea de comandos](#could-not-find-merge-base-with-the-base-branch) |

224| `Your checkout has no branches (detached HEAD only)` | [Errores de línea de comandos](#your-checkout-has-no-branches) |225| `Your checkout has no branches (detached HEAD only)` | [Errores de línea de comandos](#your-checkout-has-no-branches) |

225| `Ultrareview clones <owner>/<repo> in the cloud with the GitHub account connected to your Claude account, and none is connected` | [Errores de línea de comandos](#no-github-account-is-connected-to-your-claude-account) |226| `Ultrareview clones <owner>/<repo> in the cloud with the GitHub account connected to your Claude account, and none is connected` | [Errores de línea de comandos](#no-github-account-is-connected-to-your-claude-account) |

226| `Your connected GitHub account can't see <owner>/<repo>` | [Errores de línea de comandos](#your-connected-github-account-cant-see-the-repository) |227| `Your connected GitHub account can't see <owner>/<repo>` | [Errores de línea de comandos](#your-connected-github-account-cant-see-the-repository) |

227| `The GitHub App preflight failed transiently (network or service hiccup) — retry in a moment to start from GitHub instead` | [Errores de línea de comandos](#the-github-app-preflight-failed-transiently) |228| `The GitHub App preflight failed transiently (network or service hiccup) — retry in a moment to start from GitHub instead` | [Errores de línea de comandos](#the-github-app-preflight-failed-transiently) |

228| `Not uploading this working tree` with `the upload cannot follow that setting` | [Errores de línea de comandos](#the-repository-upload-cant-follow-a-git-setting) |229| `Not uploading this working tree` con `the upload cannot follow that setting` | [Errores de línea de comandos](#the-repository-upload-cant-follow-a-git-setting) |

229| `GitHub isn't connected to your Claude account, so this repository can't be cloned in the cloud` | [Errores de línea de comandos](#github-isnt-connected-to-your-claude-account) |230| `GitHub isn't connected to your Claude account, so this repository can't be cloned in the cloud` | [Errores de línea de comandos](#github-isnt-connected-to-your-claude-account) |

230| `Single sign-on authorization needed` | [Errores de línea de comandos](#single-sign-on-authorization-needed) |231| `Single sign-on authorization needed` | [Errores de línea de comandos](#single-sign-on-authorization-needed) |

231| `Failed to resume the conversation` | [Errores de línea de comandos](#failed-to-resume-the-conversation) |232| `Failed to resume the conversation` | [Errores de línea de comandos](#failed-to-resume-the-conversation) |


236| `Couldn't open Claude Desktop` | [Errores de línea de comandos](#couldnt-open-claude-desktop) |237| `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) |238| `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) |239| `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 atajos de teclado` | [Errores de línea de comandos](#terminal-setup-left-your-zed-keymap-unchanged) |240| `Your Zed keymap isn't a readable list of keybindings` | [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) |241| `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) |242| `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) |243| `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) |


250| `Monitor "<name>" from plugin <plugin> references ${user_config.*} in its command` | [Errores de plugins](#plugin-command-references-user-config) |251| `Monitor "<name>" from plugin <plugin> references ${user_config.*} in its command` | [Errores de plugins](#plugin-command-references-user-config) |

251| `headersHelper for MCP server '<name>' references ${user_config.*}` | [Errores de plugins](#plugin-command-references-user-config) |252| `headersHelper for MCP server '<name>' references ${user_config.*}` | [Errores de plugins](#plugin-command-references-user-config) |

252| `Plugin archive integrity check failed` | [Errores de plugins](#plugin-archive-integrity-check-failed) |253| `Plugin archive integrity check failed` | [Errores de plugins](#plugin-archive-integrity-check-failed) |

254| `An npm plugin source must name a registry package` | [Solución de problemas de plugins](/docs/es/plugins/troubleshooting#an-npm-plugin-source-must-name-a-registry-package) |

253| `path escapes plugin directory` | [Errores de plugins](#path-escapes-plugin-directory) |255| `path escapes plugin directory` | [Errores de plugins](#path-escapes-plugin-directory) |

254| `path could not be checked` | [Errores de plugins](#path-could-not-be-checked) |256| `path could not be checked` | [Errores de plugins](#path-could-not-be-checked) |

255| `its marketplace entry path does not stay inside the marketplace directory` | [Errores de plugins](#marketplace-entry-path-does-not-stay-inside-the-marketplace-directory) |257| `its marketplace entry path does not stay inside the marketplace directory` | [Errores de plugins](#marketplace-entry-path-does-not-stay-inside-the-marketplace-directory) |


315| `EACCES: permission denied, posix_spawn` | [Errores de sesión en segundo plano](#eacces-when-starting-a-background-session) |317| `EACCES: permission denied, posix_spawn` | [Errores de sesión en segundo plano](#eacces-when-starting-a-background-session) |

316| `exited before it became reachable` | [Errores de sesión en segundo plano](#background-service-exited-before-it-became-reachable) |318| `exited before it became reachable` | [Errores de sesión en segundo plano](#background-service-exited-before-it-became-reachable) |

317| `Couldn't start a background session (working directory no longer exists or is not accessible: ...)` | [Errores de sesión en segundo plano](#working-directory-no-longer-exists-when-starting-a-background-session) |319| `Couldn't start a background session (working directory no longer exists or is not accessible: ...)` | [Errores de sesión en segundo plano](#working-directory-no-longer-exists-when-starting-a-background-session) |

318| `Workspace not trusted.` when starting or restarting a background session | [Errores de sesión en segundo plano](#workspace-not-trusted-when-dispatching-a-background-session) |320| `Workspace not trusted.` al iniciar o reiniciar una sesión en segundo plano | [Errores de sesión en segundo plano](#workspace-not-trusted-when-dispatching-a-background-session) |

319| `Claude Code is being updated by npm on this machine (still not runnable after 2 min, ...)` | [Errores de sesión en segundo plano](#eacces-when-starting-a-background-session) |321| `Claude Code is being updated by npm on this machine (still not runnable after 2 min, ...)` | [Errores de sesión en segundo plano](#eacces-when-starting-a-background-session) |

320| `Claude Code process exited with code N` | [Errores de contenedor e IDE](#claude-code-process-exited-with-code-n) |322| `Claude Code process exited with code N` | [Errores de contenedor e IDE](#claude-code-process-exited-with-code-n) |

321| `The connection to Claude Code ended before this message completed` | [Errores de contenedor e IDE](#the-connection-to-claude-code-ended-before-this-message-completed) |323| `The connection to Claude Code ended before this message completed` | [Errores de contenedor e IDE](#the-connection-to-claude-code-ended-before-this-message-completed) |


418 Errores del servidor420 Errores del servidor

419</h2>421</h2>

420 422 

421La mayoría de estos errores provienen del proveedor de inferencia: el servicio de Anthropic en la API de Anthropic, y el servicio detrás del punto de conexión de ese proveedor en Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry, o una puerta de enlace personalizada. [Auto mode cannot determine the safety of an action](#auto-mode-cannot-determine-the-safety-of-an-action) y [Agent terminated early due to an API error](#agent-terminated-early-due-to-an-api-error) también cubren causas de su lado, como una cuenta de Amazon Bedrock que no puede invocar el modelo clasificador o un subagente que alcanzó un límite de uso.423La mayoría de estos errores provienen del proveedor de inferencia: el servicio de Anthropic en la API de Anthropic, y el servicio detrás del endpoint de ese proveedor en Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry o un gateway personalizado. [Auto mode cannot determine the safety of an action](#auto-mode-cannot-determine-the-safety-of-an-action) y [Agent terminated early due to an API error](#agent-terminated-early-due-to-an-api-error) también cubren causas de tu lado, como una cuenta de Amazon Bedrock que no puede invocar el modelo clasificador o un subagente que alcanzó un límite de uso.

422 424 

423<h3 id="api-error-500-internal-server-error">425<h3 id="api-error-500-internal-server-error">

424 API Error: 500 Internal server error426 API Error: 500 Internal server error


430API Error: 500 Internal server error. This is a server-side issue, usually temporary — try again in a moment. If it persists, check https://status.claude.com.432API Error: 500 Internal server error. This is a server-side issue, usually temporary — try again in a moment. If it persists, check https://status.claude.com.

431```433```

432 434 

433La oración final indica dónde verificar la salud del servicio y varía según el proveedor. Las configuraciones de Amazon Bedrock, Google Cloud's Agent Platform y Microsoft Foundry nombran el estado del servicio de ese proveedor. Un `ANTHROPIC_BASE_URL` personalizado nombra el host de la puerta de enlace.435La oración final indica dónde verificar el estado del servicio y varía según el proveedor. Las configuraciones de Amazon Bedrock, Google Cloud's Agent Platform y Microsoft Foundry nombran el estado del servicio de ese proveedor. Un `ANTHROPIC_BASE_URL` personalizado nombra el host del gateway.

434 436 

435Un 5xx de la API en sí indica un fallo inesperado dentro de la API. No es causado por su prompt, configuración o cuenta.437Un 5xx de la propia API indica un fallo inesperado dentro de la API. No lo causa tu prompt, tu configuración ni tu cuenta.

436 438 

437Cuando un proxy, equilibrador de carga o puerta de enlace responde con una página de error HTML, el mensaje muestra el código de estado y el título de la página, como `API Error: 502 Bad Gateway`. Para una página sin título, el mensaje muestra el código de estado y su nombre estándar en su lugar. Antes de v2.1.281, el código de estado se eliminaba cuando la página tenía un título, y el marcado sin procesar de la página se imprimía cuando no tenía ninguno.439Cuando un proxy, balanceador de carga o gateway responde con una página de error HTML, el mensaje muestra el código de estado y el título de la página, como `API Error: 502 Bad Gateway`. Para una página sin título, el mensaje muestra en su lugar el código de estado y su nombre estándar. Antes de v2.1.281, el código de estado se omitía cuando la página tenía un título, y el marcado sin procesar de la página se imprimía cuando no tenía ninguno.

438 440 

439**Qué hacer:**441**Qué hacer:**

440 442 

441* Verifique [status.claude.com](https://status.claude.com), o la página de estado del proveedor nombrada en el mensaje, para incidentes activos443* Consulta [status.claude.com](https://status.claude.com), o la página de estado del proveedor nombrada en el mensaje, para ver si hay incidentes activos

442* Espere un minuto y luego envíe su mensaje nuevamente. Su mensaje original sigue en la conversación, así que para un prompt largo puede escribir `try again` en lugar de pegar todo de nuevo.444* Espera un minuto y luego envía tu mensaje de nuevo. Tu mensaje original sigue en la conversación, así que para un prompt largo puedes escribir `try again` en lugar de pegarlo completo.

443* Si el error persiste sin incidente publicado, ejecute `/feedback` para que Anthropic pueda investigar con los detalles de su solicitud. Consulte [Report an error](#report-an-error) si `/feedback` no está disponible en su entorno.445* Si el error persiste sin ningún incidente publicado, ejecuta `/feedback` para que Anthropic pueda investigar con los detalles de tu solicitud. Consulta [Informar un error](#report-an-error) si `/feedback` no está disponible en tu entorno.

444 446 

445<h3 id="api-error-repeated-529-overloaded-errors">447<h3 id="api-error-repeated-529-overloaded-errors">

446 API Error: Repeated 529 Overloaded errors448 API Error: Repeated 529 Overloaded errors

447</h3>449</h3>

448 450 

449La API está temporalmente a capacidad en todos los usuarios. Claude Code ya ha reintentado varias veces antes de mostrar este mensaje:451La API está temporalmente al límite de su capacidad para todos los usuarios. Claude Code ya reintentó varias veces antes de mostrar este mensaje:

450 452 

451```text theme={null}453```text theme={null}

452API Error: Repeated 529 Overloaded errors. The API is at capacity — this is usually temporary. Try again in a moment. If it persists, check https://status.claude.com.454API Error: Repeated 529 Overloaded errors. The API is at capacity — this is usually temporary. Try again in a moment. If it persists, check https://status.claude.com.

453```455```

454 456 

455La oración final varía según el proveedor de la misma manera que el error 500 anterior.457La oración final varía según el proveedor de la misma manera que en el error 500 anterior.

456 458 

457Un 529 no es su límite de uso y no cuenta contra su cuota.459Un 529 no es tu límite de uso y no cuenta contra tu cuota.

458 460 

459**Qué hacer:**461**Qué hacer:**

460 462 

461* Verifique [status.claude.com](https://status.claude.com), o la página de estado del proveedor nombrada en el mensaje, para avisos de capacidad463* Consulta [status.claude.com](https://status.claude.com), o la página de estado del proveedor nombrada en el mensaje, para ver si hay avisos de capacidad

462* Intente de nuevo en unos minutos464* Vuelve a intentarlo en unos minutos

463* Ejecute `/model` y cambie a un modelo diferente para continuar trabajando, ya que la capacidad se rastrea por modelo. Claude Code le solicita que haga esto cuando un modelo está bajo una carga particularmente alta, por ejemplo `Opus is experiencing high load, please use /model to switch to Sonnet`. En modelos Fable el mensaje nombra Fable.465* Ejecuta `/model` y cambia a un modelo diferente para seguir trabajando, ya que la capacidad se controla por modelo. Claude Code te pide que hagas esto cuando un modelo está bajo una carga particularmente alta, por ejemplo `Opus is experiencing high load, please use /model to switch to Sonnet`. En los modelos Fable, el mensaje nombra Fable.

464 466 

465 En una sesión que ejecuta la aplicación Claude Desktop, como la pestaña Code o Cowork, el mensaje dice `Opus is experiencing high load. Switch to Sonnet.` y cambia modelos con el selector de modelos de la aplicación.467 En una sesión que ejecuta la aplicación Claude Desktop, como la pestaña Code o Cowork, el mensaje dice `Opus is experiencing high load. Switch to Sonnet.` y cambias de modelo con el selector de modelos de la aplicación.

466 468 

467<h3 id="request-timed-out">469<h3 id="request-timed-out">

468 Request timed out470 Request timed out


474Request timed out476Request timed out

475```477```

476 478 

477Esto puede suceder durante períodos de alta carga o cuando el modelo está generando una respuesta muy grande. El tiempo de espera de solicitud predeterminado es de 10 minutos.479Esto puede ocurrir durante períodos de alta carga o cuando el modelo está generando una respuesta muy grande. El tiempo de espera predeterminado de la solicitud es de 10 minutos.

478 480 

479**Qué hacer:**481**Qué hacer:**

480 482 

481* Reintente la solicitud483* Reintenta la solicitud

482* Si la causa es una red lenta o un proxy, aumente `API_TIMEOUT_MS` como se describe en [Automatic retries](#automatic-retries)484* Si la causa es una red lenta o un proxy, aumenta `API_TIMEOUT_MS` como se describe en [Reintentos automáticos](#automatic-retries)

483* Si los tiempos de espera son frecuentes y su red es de otra manera saludable, consulte [Network and connection errors](#network-and-connection-errors) a continuación485* Si se agota el tiempo de espera con frecuencia y tu red por lo demás funciona bien, consulta [Errores de red y de conexión](#network-and-connection-errors) más abajo

484 486 

485<h3 id="no-response-from-api">487<h3 id="no-response-from-api">

486 No response from API488 No response from API

487</h3>489</h3>

488 490 

489Claude Code envió una solicitud de transmisión y la API no devolvió encabezados de respuesta dentro del plazo para el primer byte, por lo que Claude Code abortó la solicitud en lugar de esperar el tiempo de espera de solicitud completo `API_TIMEOUT_MS`, 10 minutos por defecto. Claude Code envía la solicitud nuevamente como máximo una vez, si el [retry budget](#tune-retry-behavior) lo permite. Cuando el reintento tampoco recibe respuesta, el turno termina con este mensaje, que muestra cuánto tiempo esperó cada intento. Cuando establece [`CLAUDE_CODE_RETRY_WATCHDOG`](/docs/es/env-vars), el límite de un reintento no se aplica y Claude Code reintenta bajo el presupuesto descrito en [Tune retry behavior](#tune-retry-behavior).491Claude Code envió una solicitud en streaming y la API no devolvió encabezados de respuesta dentro del plazo para el primer byte, así que Claude Code abortó la solicitud en lugar de esperar el tiempo de espera completo de la solicitud, `API_TIMEOUT_MS`, de 10 minutos por defecto. Claude Code envía la solicitud de nuevo como máximo una vez, si el [presupuesto de reintentos](#tune-retry-behavior) lo permite. Cuando el reintento tampoco recibe respuesta, el turno termina con este mensaje, que muestra cuánto tiempo esperó cada intento. Cuando estableces [`CLAUDE_CODE_RETRY_WATCHDOG`](/docs/es/env-vars), el límite de un solo reintento no se aplica y Claude Code reintenta según el presupuesto descrito en [Ajustar el comportamiento de los reintentos](#tune-retry-behavior).

490 492 

491```text theme={null}493```text theme={null}

492API Error: No response from API (waited 3m, then 10m on the retry). If a proxy or gateway on your network holds responses until they complete, raise API_TIMEOUT_MS or CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS to wait longer.494API Error: No response from API (waited 3m, then 10m on the retry). If a proxy or gateway on your network holds responses until they complete, raise API_TIMEOUT_MS or CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS to wait longer.

493```495```

494 496 

495Claude Code establece el tiempo de espera para los encabezados de respuesta del primer intento y el reintento por separado:497Claude Code establece por separado la espera de los encabezados de respuesta del primer intento y la del reintento:

496 498 

497* **First attempt**: [`CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS`](/docs/es/env-vars) cuando lo establece en 1 o más, limitado entre 10 segundos y 30 minutos. De lo contrario, Claude Code utiliza el tiempo de espera del vigilante a nivel de byte enumerado en [Streaming idle watchdogs](/docs/es/network-config#streaming-idle-watchdogs), por lo que las variables que cambian ese tiempo de espera cambian este tiempo de espera también. De cualquier manera, Claude Code agrega un segundo por cada 32KB del cuerpo de la solicitud.499* **Primer intento**: [`CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS`](/docs/es/env-vars) cuando lo estableces en 1 o más, limitado a un valor entre 10 segundos y 30 minutos. De lo contrario, Claude Code usa el tiempo de espera del watchdog a nivel de bytes indicado en [Watchdogs de inactividad del streaming](/docs/es/network-config#streaming-idle-watchdogs), así que las variables que cambian ese tiempo de espera también cambian esta espera. En cualquier caso, Claude Code agrega un segundo por cada 32KB del cuerpo de la solicitud.

498* **Retry**: un segundo menos que `API_TIMEOUT_MS`, justo bajo 10 minutos por defecto, para que el reintento pueda superar un proxy o puerta de enlace que mantiene la respuesta hasta que se completa la generación. En Amazon Bedrock, el reintento utiliza el mismo plazo que el primer intento, y el mensaje muestra una duración en lugar de dos.500* **Reintento**: un segundo menos que `API_TIMEOUT_MS`, poco menos de 10 minutos por defecto, para que el reintento pueda durar más que un proxy o gateway que retiene la respuesta hasta que termina la generación. En Amazon Bedrock, el reintento usa el mismo plazo que el primer intento, y el mensaje muestra una duración en lugar de dos.

499 501 

500Ningún tiempo de espera excede un segundo menos que un `API_TIMEOUT_MS` positivo, y un `API_TIMEOUT_MS` positivo bajo 11 segundos desactiva el plazo. El vigilante a nivel de byte comienza solo una vez que llegan los encabezados de respuesta, por lo que una respuesta que deja de enviar bytes después de eso sigue las [stalled-stream rules](#automatic-retries) en su lugar.502Ninguna de las dos esperas supera un segundo menos que un `API_TIMEOUT_MS` positivo, y un `API_TIMEOUT_MS` positivo inferior a 11 segundos desactiva el plazo. El watchdog a nivel de bytes se inicia solo cuando llegan los encabezados de respuesta, así que una respuesta que deja de enviar bytes después de eso sigue las [reglas de streaming detenido](#automatic-retries) en lugar de este plazo.

501 503 

502**Qué hacer:**504**Qué hacer:**

503 505 

504* Envíe su mensaje nuevamente. Su mensaje original sigue en la conversación, así que para un prompt largo puede escribir `try again` en lugar de pegar todo de nuevo.506* Envía tu mensaje de nuevo. Tu mensaje original sigue en la conversación, así que para un prompt largo puedes escribir `try again` en lugar de pegarlo completo.

505* Si se repite, trátelo como un [network or proxy problem](#unable-to-connect-to-api).507* Si se repite, trátalo como un [problema de red o de proxy](#unable-to-connect-to-api).

506* Si un proxy o puerta de enlace en su red mantiene respuestas hasta que se completan, aumente `API_TIMEOUT_MS` para que el reintento espere más tiempo. En Amazon Bedrock, aumente `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS` también.508* Si un proxy o gateway de tu red retiene las respuestas hasta que se completan, aumenta `API_TIMEOUT_MS` para que el reintento espere más. En Amazon Bedrock, aumenta también `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS`.

507* Si el primer intento sigue agotando el tiempo de espera y el reintento luego tiene éxito, aumente `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS` para que el primer intento también espere lo suficiente.509* Si al primer intento se le sigue agotando el tiempo de espera y luego el reintento tiene éxito, aumenta `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS` para que el primer intento también espere lo suficiente.

508 510 

509Antes de v2.1.242, Claude Code esperaba el tiempo de espera de solicitud completo `API_TIMEOUT_MS`, 10 minutos por defecto, antes de fallar una solicitud de transmisión sin respuesta. Antes de v2.1.261, el reintento esperaba el mismo plazo que el primer intento y el mensaje no mostraba duraciones.511Antes de v2.1.242, Claude Code esperaba el tiempo de espera completo de la solicitud, `API_TIMEOUT_MS`, de 10 minutos por defecto, antes de dar por fallida una solicitud en streaming sin respuesta. Antes de v2.1.261, el reintento esperaba el mismo plazo que el primer intento y el mensaje no mostraba duraciones.

510 512 

511<h3 id="the-response-above-may-be-incomplete">513<h3 id="the-response-above-may-be-incomplete">

512 The response above may be incomplete514 The response above may be incomplete

513</h3>515</h3>

514 516 

515Una solicitud de transmisión falló mientras la respuesta aún estaba en progreso, después de que Claude completó un bloque de texto o una llamada de herramienta, o había comenzado uno después de terminar su pensamiento. Reenviar la solicitud podría ejecutar las mismas llamadas de herramienta dos veces, por lo que Claude Code mantiene la salida que Claude completó y agrega este aviso en lugar de descartar el turno. Qué variante ve nombra la causa:517Una solicitud en streaming falló mientras la respuesta aún estaba en curso, después de que Claude completó un bloque de texto o una llamada a herramienta, o de que empezó uno tras terminar su pensamiento. Reenviar la solicitud podría ejecutar las mismas llamadas a herramientas dos veces, así que Claude Code conserva la salida que Claude completó y agrega este aviso en lugar de descartar el turno. La variante que ves indica la causa:

516 518 

517```text theme={null}519```text theme={null}

518API Error: Server error mid-response. The response above may be incomplete.520API Error: Server error mid-response. The response above may be incomplete.


523API Error: The response stream was malformed. The response above may be incomplete.525API Error: The response stream was malformed. The response above may be incomplete.

524```526```

525 527 

526* `Server error mid-response`: un error de servidor sobrecargado o 5xx a mitad de la transmisión. Esta variante requiere Claude Code v2.1.199 o posterior; antes de eso, ese caso descartaba la salida parcial e informaba todo el turno como un error.528* `Server error mid-response`: un error de sobrecarga o un error de servidor 5xx a mitad del streaming. Esta variante requiere Claude Code v2.1.199 o posterior; antes, en ese caso se descartaba la salida parcial y se informaba todo el turno como un error.

527* `Connection lost mid-response`: la conexión se perdió. También ve esta variante cuando un proxy o puerta de enlace termina el cuerpo de la respuesta limpiamente antes de que la respuesta haya terminado.529* `Connection lost mid-response`: la conexión se perdió. También ves esta variante cuando un proxy o gateway cierra limpiamente el cuerpo de la respuesta antes de que la respuesta haya terminado.

528* `Your computer went to sleep mid-response`: Claude Code detectó que su computadora se durmió mientras la respuesta se transmitía. Una vez que su computadora se despierte, Claude Code trata la conexión como rota y deja de leer de ella.530* `Your computer went to sleep mid-response`: Claude Code detectó que tu computadora entró en suspensión mientras la respuesta se transmitía en streaming. Cuando tu computadora se reactiva, Claude Code trata la conexión como rota y deja de leer de ella.

529* `Part of the response never arrived`: un evento de transmisión se perdió entre la API y Claude Code, por lo que un evento posterior hizo referencia a contenido que nunca llegó. Antes de v2.1.281, este caso terminaba el turno con `API Error: Content block not found`.531* `Part of the response never arrived`: un evento del streaming se perdió entre la API y Claude Code, así que un evento posterior hizo referencia a contenido que nunca llegó. Antes de v2.1.281, en este caso el turno terminaba con `API Error: Content block not found`.

530* `The response stream was malformed`: un evento llegó para un bloque de contenido que ya había terminado, o un evento llegó dañado. Un evento dañado es uno cuyos datos no son JSON válido, cuyo contenido falta, o cuyo contenido no coincide con el tipo del evento. Antes de v2.1.284, el error sin procesar del analizador, como uno que comienza con `API Error: JSON Parse error`, aparecía en su lugar cuando un evento con JSON inválido llegaba después de que Claude había completado su pensamiento, un bloque de texto, o una llamada de herramienta.532* `The response stream was malformed`: llegó un evento para un bloque de contenido que ya había terminado, o llegó un evento dañado. Un evento dañado es aquel cuyos datos no son JSON válido, cuyo contenido falta o cuyo contenido no coincide con el tipo del evento. Antes de v2.1.284, en su lugar aparecía el error sin procesar del analizador, como uno que empieza con `API Error: JSON Parse error`, cuando un evento con JSON no válido llegaba después de que Claude había completado su pensamiento, un bloque de texto o una llamada a herramienta. Antes de v2.1.287, cuando un [guardrail de Amazon Bedrock](/docs/es/amazon-bedrock#aws-guardrails) bloqueaba una respuesta que ya había transmitido pensamiento y algo de texto, esta variante aparecía en lugar del mensaje del guardrail.

531* `The response stopped arriving`: la conexión se mantuvo abierta pero dejó de entregar datos, por lo que el vigilante de inactividad de transmisión la abortó. Antes de v2.1.222, Claude Code también podría informar este fallo en conexiones de [gateway](/docs/es/gateways) alcanzadas a través de `ANTHROPIC_BASE_URL` o `ANTHROPIC_AWS_BASE_URL` mientras los pings de keep-alive del servidor aún llegaban, porque contaba solo eventos de respuesta analizados allí; actualizar detiene esos tiempos de espera espurios en esas rutas. Las puertas de enlace alcanzadas a través de una URL base de proveedor como `ANTHROPIC_BEDROCK_BASE_URL` no están envueltas por el vigilante de bytes; consulte [Streaming idle watchdogs](/docs/es/network-config#streaming-idle-watchdogs).533* `The response stopped arriving`: la conexión siguió abierta pero dejó de entregar datos, así que el watchdog de inactividad del streaming la abortó. Antes de v2.1.222, Claude Code también podía informar este fallo en conexiones a un [gateway](/docs/es/gateways) a través de `ANTHROPIC_BASE_URL` o `ANTHROPIC_AWS_BASE_URL` mientras aún llegaban los pings de keep-alive del servidor, porque allí solo contaba los eventos de respuesta analizados; actualizar elimina esos tiempos de espera agotados falsos en esas rutas. Los gateways a los que se accede mediante una URL base de proveedor como `ANTHROPIC_BEDROCK_BASE_URL` no están cubiertos por el watchdog de bytes; consulta [Watchdogs de inactividad del streaming](/docs/es/network-config#streaming-idle-watchdogs).

532 534 

533Antes de v2.1.227, `Connection lost mid-response` decía `Connection closed mid-response` y `The response stopped arriving` decía `Response stalled mid-stream`.535Antes de v2.1.227, `Connection lost mid-response` decía `Connection closed mid-response` y `The response stopped arriving` decía `Response stalled mid-stream`.

534 536 

535Cuando un evento de transmisión perdido, duplicado o dañado llega antes de que Claude haya comenzado cualquier texto o llamada de herramienta, no ve este aviso:537Cuando un evento del streaming perdido, duplicado o dañado llega antes de que Claude haya empezado cualquier texto o llamada a herramienta, no ves este aviso:

536 538 

537* Si Claude había completado solo su pensamiento, Claude Code reemite la solicitud. Cuando los reemitidos se rompen de la misma manera, el turno termina con `Part of the response never arrived and no response was produced. Try again.` o `The response stream was malformed and no response was produced. Try again.`539* Si Claude solo había completado su pensamiento, Claude Code vuelve a emitir la solicitud. Cuando los streamings reemitidos fallan de la misma manera, el turno termina con `Part of the response never arrived and no response was produced. Try again.` o `The response stream was malformed and no response was produced. Try again.`

538* Si nada había completado, Claude Code reenvía la solicitud sin transmisión en su lugar. Si desactivó ese respaldo con [`CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK`](/docs/es/env-vars), el turno termina con `API Error: Content block not found` para un evento perdido o `API Error: Content block already closed` para uno duplicado. Para un evento dañado con el respaldo desactivado, el turno termina con `API Error: Stream event unreadable` o el error sin procesar del analizador.540* Si no se había completado nada, Claude Code reenvía en su lugar la solicitud sin streaming. Si desactivaste ese respaldo con [`CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK`](/docs/es/env-vars), el turno termina con `API Error: Content block not found` para un evento perdido o `API Error: Content block already closed` para uno duplicado. Para un evento dañado con el respaldo desactivado, el turno termina con `API Error: Stream event unreadable` o con el error sin procesar del analizador.

539 541 

540En cuatro casos, Claude Code maneja el fallo sin mostrar este aviso de inmediato:542En cuatro casos, Claude Code maneja el fallo sin mostrar este aviso de inmediato:

541 543 

542* Anteriormente en la respuesta, Claude Code reintenta el fallo o termina el turno con un error diferente. Consulte [Automatic retries](#automatic-retries).544* Si ocurre antes en la respuesta, Claude Code reintenta el fallo o termina el turno con un error diferente. Consulta [Reintentos automáticos](#automatic-retries).

543* Cuando uno de estos fallos llega después de que Claude ha terminado la respuesta, Claude Code mantiene la respuesta completa y termina el turno normalmente, sin este aviso. Antes de v2.1.222, Claude Code mostraba este aviso cuando la conexión se perdía o se estancaba después de que la respuesta terminaba, e informaba el turno como un error aunque la respuesta fuera completa.545* Cuando uno de estos fallos llega después de que Claude terminó la respuesta, Claude Code conserva la respuesta completa y termina el turno normalmente, sin este aviso. Antes de v2.1.222, Claude Code mostraba este aviso cuando la conexión se perdía o se detenía después de que la respuesta terminaba, e informaba el turno como un error aunque la respuesta estuviera completa.

544* En una [non-interactive session](/docs/es/headless), como una ejecución `-p`, una ejecución de [Agent SDK](/docs/es/agent-sdk/overview), o una [cloud session](/docs/es/claude-code-on-the-web), no tiene que enviar `continue` usted mismo cuando la respuesta cortada está en la conversación principal y contiene texto pero sin llamadas de herramienta: Claude Code mantiene la salida parcial e invita a Claude a continuar desde donde se detuvo, hasta tres veces seguidas. Ve este aviso para tal respuesta solo una vez que Claude Code ha agotado esas continuaciones. Antes de v2.1.246, Claude Code terminaba un turno no interactivo con este aviso en el primer corte.546* En una [sesión no interactiva](/docs/es/headless), como una ejecución con `-p`, una ejecución del [Agent SDK](/docs/es/agent-sdk/overview) o una [sesión en la nube](/docs/es/claude-code-on-the-web), no tienes que enviar `continue` tú mismo cuando la respuesta cortada está en la conversación principal y contiene texto pero ninguna llamada a herramienta: Claude Code conserva la salida parcial y le pide a Claude que continúe desde donde se detuvo, hasta tres veces seguidas. Solo ves este aviso para una respuesta así cuando Claude Code agotó esas continuaciones. Antes de v2.1.246, Claude Code terminaba un turno no interactivo con este aviso en el primer corte.

545* En un [subagent](/docs/es/sub-agents#api-errors-in-subagents), ya sea que la sesión sea interactiva o no: cuando su respuesta cortada contiene texto pero sin llamadas de herramienta, Claude Code invita al subagente a continuar. El aviso se convierte en el último mensaje del subagente solo una vez que esas continuaciones se agotan. Antes de v2.1.257, un subagente mostraba este aviso en el primer corte.547* En un [subagente](/docs/es/sub-agents#api-errors-in-subagents), sea la sesión interactiva o no: cuando su respuesta cortada contiene texto pero ninguna llamada a herramienta, Claude Code le pide al subagente que continúe. El aviso se convierte en el último mensaje del subagente solo cuando esas continuaciones se agotan. Antes de v2.1.257, un subagente mostraba este aviso en el primer corte.

546 548 

547**Qué hacer:**549**Qué hacer:**

548 550 

549* En una sesión interactiva, lea la respuesta que permanece en la pantalla: Claude Code mantiene cada bloque que Claude completó antes del error, pero descarta un bloque final interrumpido cuando el turno termina, por lo que las oraciones finales o llamadas de herramienta pueden faltar. Responda con `continue` para que Claude continúe desde su último bloque completado.551* En una sesión interactiva, lee la respuesta que queda en pantalla: Claude Code conserva cada bloque que Claude completó antes del error, pero descarta un bloque final interrumpido cuando termina el turno, así que es posible que falten las últimas oraciones o llamadas a herramientas. Responde con `continue` para que Claude retome desde su último bloque completado.

550* En [non-interactive mode](/docs/es/headless) (`-p`):552* En [modo no interactivo](/docs/es/headless) (`-p`):

551 * Con la salida de texto predeterminada, Claude Code imprime el último bloque de texto completado que aún mantiene de anteriormente en el turno, seguido de este mensaje. Cuando no mantiene ninguno, Claude Code imprime solo este mensaje, por ejemplo porque Claude Code compactó la conversación a mitad del turno y borró ese texto. Antes de v2.1.219, Claude Code imprimía solo este mensaje en la salida de texto `-p` y descartaba la respuesta que ya había producido.553 * Con la salida de texto predeterminada, Claude Code imprime el último bloque de texto completado que aún conserva de antes en el turno, seguido de este mensaje. Cuando no conserva ninguno, Claude Code imprime solo este mensaje, por ejemplo porque Claude Code compactó la conversación a mitad del turno y borró ese texto. Antes de v2.1.219, Claude Code imprimía solo este mensaje en la salida de texto de `-p` y descartaba la respuesta que ya había producido.

552 * Con `--output-format json` o `stream-json`, Claude Code informa este mensaje en el campo `result`.554 * Con `--output-format json` o `stream-json`, Claude Code informa este mensaje en el campo `result`.

553 * Para continuar el turno una vez que la conexión sea estable, reanude la sesión y envíe `continue` como se describe en [Continue conversations](/docs/es/headless#continue-conversations).555 * Para continuar el turno cuando la conexión sea estable, reanuda la sesión y envía `continue` como se describe en [Continuar conversaciones](/docs/es/headless#continue-conversations).

554 556 

555<h3 id="auto-mode-cannot-determine-the-safety-of-an-action">557<h3 id="auto-mode-cannot-determine-the-safety-of-an-action">

556 Auto mode cannot determine the safety of an action558 Auto mode cannot determine the safety of an action

557</h3>559</h3>

558 560 

559El modelo que [auto mode](/docs/es/permission-modes#eliminate-prompts-with-auto-mode) utiliza para clasificar acciones no pudo producir una decisión, por lo que auto mode no aprobó la acción automáticamente. El mensaje que ve depende de cómo falló el clasificador.561El modelo que usa el [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode) para clasificar acciones no pudo producir una decisión, así que el modo automático no aprobó la acción automáticamente. El mensaje que ves depende de cómo falló el clasificador.

560 562 

561Las lecturas, búsquedas y ediciones dentro de su directorio de trabajo omiten el clasificador, por lo que continúan funcionando en todos estos casos.563Las lecturas, búsquedas y ediciones dentro de tu directorio de trabajo omiten el clasificador, así que siguen funcionando en todos estos casos.

562 564 

563Cuando el modelo clasificador no está disponible:565Cuando el modelo clasificador no está disponible:

564 566 


566<model> is temporarily unavailable, so auto mode cannot determine the safety of <tool> right now. Wait a moment and then try this action again.568<model> is temporarily unavailable, so auto mode cannot determine the safety of <tool> right now. Wait a moment and then try this action again.

567```569```

568 570 

569Cuando Claude Code puede determinar la categoría de fallo, nombra la categoría entre paréntesis después de `temporarily unavailable`, por ejemplo `<model> is temporarily unavailable (rate-limited), so auto mode cannot determine the safety of <tool> right now`. Las categorías son `(rate-limited)`, `(overloaded)`, `(server error)`, `(timed out)`, y `(connection failed)`. Si `(timed out)` o `(connection failed)` se repite, verifique su conexión; consulte [Unable to connect to API](#unable-to-connect-to-api). Antes de v2.1.229, el mensaje nunca nombraba una categoría y decía `Wait briefly and then try this action again`.571Cuando Claude Code puede determinar la categoría del fallo, la nombra entre paréntesis después de `temporarily unavailable`, por ejemplo `<model> is temporarily unavailable (rate-limited), so auto mode cannot determine the safety of <tool> right now`. Las categorías son `(rate-limited)`, `(overloaded)`, `(server error)`, `(timed out)` y `(connection failed)`. Si `(timed out)` o `(connection failed)` se repite, revisa tu conexión; consulta [Unable to connect to API](#unable-to-connect-to-api). Antes de v2.1.229, el mensaje nunca nombraba una categoría y decía `Wait briefly and then try this action again`.

570 572 

571Cuando ninguna categoría encaja, el mensaje aparece sin categoría entre paréntesis; más de un fallo produce esa forma. En [Amazon Bedrock](/docs/es/amazon-bedrock), incluyendo el [Mantle endpoint](/docs/es/amazon-bedrock#use-the-mantle-endpoint), también aparece cuando su cuenta de AWS no puede invocar el modelo nombrado en el mensaje, y ese fallo se repite en cada reintento hasta que su cuenta tenga acceso al modelo.573Cuando ninguna categoría encaja, el mensaje aparece sin categoría entre paréntesis; más de un fallo produce esa forma. En [Amazon Bedrock](/docs/es/amazon-bedrock), incluido el [endpoint de Mantle](/docs/es/amazon-bedrock#use-the-mantle-endpoint), también aparece cuando tu cuenta de AWS no puede invocar el modelo nombrado en el mensaje, y ese fallo se repite en cada reintento hasta que tu cuenta obtenga acceso al modelo.

572 574 

573**Qué hacer:**575**Qué hacer:**

574 576 

575* Reintente después de unos segundos; Claude ve el mismo mensaje y generalmente reintenta por su cuenta. Un fallo transitorio no está relacionado con [auto mode eligibility](/docs/es/permission-modes#eliminate-prompts-with-auto-mode); no necesita cambiar la configuración577* Reintenta después de unos segundos; Claude ve el mismo mensaje y normalmente reintenta por su cuenta. Un fallo transitorio no tiene relación con los [requisitos del modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode); no necesitas cambiar la configuración

576* Si los reintentos siguen fallando, continúe con tareas de solo lectura y vuelva a la acción bloqueada más tarde578* Si los reintentos siguen fallando, continúa con tareas de solo lectura y vuelve más tarde a la acción bloqueada

577* En Amazon Bedrock, si el mensaje regresa en cada reintento, verifique que su cuenta pueda invocar el modelo que nombra: para modelos estándar de Amazon Bedrock, confirme que su [IAM policy](/docs/es/amazon-bedrock#iam-configuration) permite invocarlo; para IDs de modelo de Mantle, [contact your AWS account team](/docs/es/amazon-bedrock#mantle-endpoint-errors)579* En Amazon Bedrock, si el mensaje reaparece en cada reintento, comprueba que tu cuenta pueda invocar el modelo que nombra: para los modelos estándar de Amazon Bedrock, confirma que tu [política de IAM](/docs/es/amazon-bedrock#iam-configuration) permite invocarlo; para los IDs de modelo de Mantle, [contacta al equipo de tu cuenta de AWS](/docs/es/amazon-bedrock#mantle-endpoint-errors)

578 580 

579Cuando una solicitud de clasificador falla porque su token OAuth expiró o fue rotado por otra sesión, Claude Code actualiza el token e reintenta la solicitud una vez, por lo que una expiración de token rutinaria no aparece como este mensaje. Antes de v2.1.216, un token expirado o rotado fallaba en cada solicitud de clasificador, y auto mode negaba cada acción verificada con este mensaje hasta que el token se actualizara.581Cuando una solicitud al clasificador falla porque tu token de OAuth expiró o fue rotado por otra sesión, Claude Code actualiza el token y reintenta la solicitud una vez, así que una expiración habitual del token no aparece como este mensaje. Antes de v2.1.216, un token expirado o rotado hacía fallar cada solicitud al clasificador, y el modo automático denegaba cada acción verificada con este mensaje hasta que se actualizaba el token.

580 582 

581Cuando el clasificador devolvió una respuesta no analizable:583Cuando el clasificador devolvió una respuesta que no se pudo analizar:

582 584 

583```text theme={null}585```text theme={null}

584Auto mode could not evaluate this action and is blocking it for safety — run with --debug for details586Auto mode could not evaluate this action and is blocking it for safety — run with --debug for details


586 588 

587**Qué hacer:**589**Qué hacer:**

588 590 

589* Reintente la acción; esto generalmente tiene éxito en el siguiente intento591* Reintenta la acción; normalmente funciona en el siguiente intento

590* Ejecute `claude --debug` y repita la acción para ver la respuesta del clasificador subyacente en el registro de depuración592* Ejecuta `claude --debug` y repite la acción para ver los detalles en el registro de depuración

591 593 

592Cuando una verificación de seguridad de API separada bloqueó la solicitud del clasificador debido al contenido de la conversación anterior:594Cuando una verificación de seguridad de la API independiente bloqueó la solicitud al clasificador debido a contenido anterior de la conversación:

593 595 

594```text theme={null}596```text theme={null}

595Auto mode could not evaluate this action and is blocking it for safety — a safety check separate from auto mode blocked this request because of earlier conversation content — it isn't about the action itself — run with --debug for details597Auto mode could not evaluate this action and is blocking it for safety — a safety check separate from auto mode blocked this request because of earlier conversation content — it isn't about the action itself — run with --debug for details

596```598```

597 599 

598Claude Code niega la acción pero le dice a Claude que esto no es un juicio de que la acción sea insegura, y que continúe con otras tareas en lugar de reintentar. Estas denegaciones no cuentan hacia [auto mode's pause thresholds](/docs/es/permission-modes#when-auto-mode-falls-back). En una ejecución `-p` [non-interactive](/docs/es/headless), Claude Code no detiene la ejecución. Lo que Claude recibe depende de dónde solicitó la acción:600Claude Code deniega la acción, pero le indica a Claude que esto no es un juicio de que la acción sea insegura y que continúe con otras tareas en lugar de reintentar. Estas denegaciones no cuentan para los [umbrales de pausa del modo automático](/docs/es/permission-modes#when-auto-mode-falls-back). En una ejecución [no interactiva](/docs/es/headless) con `-p`, Claude Code no detiene la ejecución. Lo que recibe Claude depende de dónde solicitó la acción:

599 601 

600* A un [background subagent](/docs/es/sub-agents#run-subagents-in-foreground-or-background) en una ejecución `-p` sin `--input-format stream-json`, Claude Code devuelve un resultado de error que contiene `Agent aborted: auto mode classifier request refused by the safety safeguard in headless mode`602* A un [subagente en segundo plano](/docs/es/sub-agents#run-subagents-in-foreground-or-background) en una ejecución con `-p` sin `--input-format stream-json`, Claude Code le devuelve un resultado de error que contiene `Agent aborted: auto mode classifier request refused by the safety safeguard in headless mode`

601* En todos los demás lugares, incluyendo sesiones interactivas y la conversación principal de una ejecución `-p`, Claude Code devuelve esa denegación a Claude603* En todos los demás casos, incluidas las sesiones interactivas y la conversación principal de una ejecución con `-p`, Claude Code le devuelve esa denegación a Claude

602 604 

603Antes de v2.1.225, Claude Code contaba estas denegaciones hacia los umbrales de pausa y devolvía el mismo mensaje de rechazo que un bloque de clasificador genuino.605Antes de v2.1.225, Claude Code contaba estos rechazos para los umbrales de pausa y devolvía el mismo mensaje de rechazo que un bloqueo real del clasificador.

604 606 

605**Qué hacer:**607**Qué hacer:**

606 608 

607* Esto no es una decisión sobre su acción. El contenido ya en su conversación activó un filtro de seguridad en la API cuando auto mode envió la conversación al clasificador609* Esto no es una decisión sobre tu acción. Contenido que ya estaba en tu conversación activó un filtro de seguridad en la API cuando el modo automático envió la conversación al clasificador

608* Reintentar no ayudará; el mismo contenido de conversación activará el filtro nuevamente610* Reintentar no servirá; el mismo contenido de la conversación volverá a activar el filtro

609* En una sesión interactiva, cambie a un [permission mode](/docs/es/permission-modes) diferente para que pueda aprobar la acción cuando se le solicite611* En una sesión interactiva, cambia a otro [modo de permisos](/docs/es/permission-modes) para poder aprobar la acción cuando se te solicite

610* Inicie una conversación nueva sin el contenido que activa612* Inicia una conversación nueva sin el contenido que activa el filtro

611 613 

612Cuando la conversación ha crecido más que la ventana de contexto del clasificador:614Cuando la conversación superó el tamaño de la ventana de contexto del clasificador:

613 615 

614```text theme={null}616```text theme={null}

615Auto mode classifier transcript exceeded context window — falling back to manual approval (try /compact to reduce conversation size)617Auto mode classifier transcript exceeded context window — falling back to manual approval (try /compact to reduce conversation size)

616```618```

617 619 

618Lo que sucede con la acción depende de dónde Claude la solicitó:620Lo que sucede con la acción depende de dónde la solicitó Claude:

619 621 

620* En una sesión interactiva, auto mode vuelve a un prompt de permiso normal para esa acción para que pueda aprobarla o negarla manualmente622* En una sesión interactiva, el modo automático recurre a una solicitud de permiso normal para esa acción, para que puedas aprobarla o denegarla manualmente

621* A un [background subagent](/docs/es/sub-agents#run-subagents-in-foreground-or-background) en una ejecución `-p` [non-interactive](/docs/es/headless) sin `--input-format stream-json`, Claude Code devuelve un resultado de error que contiene `Agent aborted: auto mode classifier transcript exceeded context window in headless mode`, y la ejecución continúa623* A un [subagente en segundo plano](/docs/es/sub-agents#run-subagents-in-foreground-or-background) en una ejecución [no interactiva](/docs/es/headless) con `-p` sin `--input-format stream-json`, Claude Code le devuelve un resultado de error que contiene `Agent aborted: auto mode classifier transcript exceeded context window in headless mode`, y la ejecución continúa

622* En otro lugar en una ejecución `-p` sin un [`--permission-prompt-tool`](/docs/es/cli-reference#cli-flags), no hay prompt para volver, por lo que la acción no se ejecuta y la ejecución continúa624* En cualquier otro punto de una ejecución con `-p` sin [`--permission-prompt-tool`](/docs/es/cli-reference#cli-flags), no hay ninguna solicitud a la que recurrir, así que la acción no se ejecuta y la ejecución continúa

623 625 

624**Qué hacer:**626**Qué hacer:**

625 627 

626* En una sesión interactiva, apruebe o niegue la acción en el prompt que aparece628* En una sesión interactiva, aprueba o deniega la acción en la solicitud que aparece

627* En una sesión interactiva, ejecute `/compact` para reducir el tamaño de la conversación para que las acciones posteriores se ajusten nuevamente dentro de la ventana del clasificador629* En una sesión interactiva, ejecuta `/compact` para reducir el tamaño de la conversación y que las acciones siguientes vuelvan a caber en la ventana del clasificador

628 630 

629<h3 id="the-server-returned-no-safety-verdict">631<h3 id="the-server-returned-no-safety-verdict">

630 The server returned no safety verdict632 The server returned no safety verdict

631</h3>633</h3>

632 634 

633Bajo [server-side classifier review](/docs/es/permission-modes#server-side-classifier-review), auto mode niega una acción cuando el servidor no da un veredicto para ella. La denegación nombra una categoría entre paréntesis cuando Claude Code puede determinar una, como `(timed out)`:635Con la [revisión del clasificador en el servidor](/docs/es/permission-modes#server-side-classifier-review), el modo automático deniega una acción cuando el servidor no da ningún veredicto sobre ella. La denegación nombra una categoría entre paréntesis cuando Claude Code puede determinarla, como `(timed out)`:

634 636 

635```text theme={null}637```text theme={null}

636The server-side auto mode classifier gave no verdict (timed out), so auto mode cannot determine the safety of <tool>.638The server-side auto mode classifier gave no verdict (timed out), so auto mode cannot determine the safety of <tool>.

637```639```

638 640 

639El resto del mensaje le dice a Claude si un reintento puede ayudar. Antes de algunas de estas denegaciones, Claude Code espera para que el siguiente intento de Claude no siga de inmediato. Durante la espera en una sesión interactiva, el spinner muestra `Auto mode check unavailable` con una cuenta regresiva, y presionar `Esc` interrumpe el turno.641El resto del mensaje le indica a Claude si un reintento puede ayudar. Antes de algunas de estas denegaciones, Claude Code espera para que el siguiente intento de Claude no llegue de inmediato. Durante la espera en una sesión interactiva, el spinner muestra `Auto mode check unavailable` con una cuenta regresiva, y al presionar `Esc` se interrumpe el turno.

640 642 

641Después de diez respuestas seguidas sin veredicto, auto mode detiene el turno:643Después de diez respuestas seguidas sin veredicto, el modo automático detiene el turno:

642 644 

643```text theme={null}645```text theme={null}

644Auto mode is unavailable — the server returned no safety verdict for the last 10 responses, so Claude stopped. Send a message to try again, or switch out of auto mode.646Auto mode is unavailable — the server returned no safety verdict for the last 10 responses, so Claude stopped. Send a message to try again, or switch out of auto mode.

645```647```

646 648 

647El mensaje de parada aparece en un lugar diferente en cada tipo de sesión:649El mensaje de detención aparece en un lugar distinto en cada tipo de sesión:

648 650 

649* En una sesión interactiva, el mensaje aparece como una advertencia en la transcripción y el turno termina651* En una sesión interactiva, el mensaje aparece como advertencia en la transcripción y el turno termina

650* En una ejecución `-p` [non-interactive](/docs/es/headless), la ejecución termina e informa un error de ejecución. Con la salida de texto predeterminada, el mensaje se imprime en stderr.652* En una ejecución [no interactiva](/docs/es/headless) con `-p`, la ejecución termina e informa un error de ejecución. Con la salida de texto predeterminada, el mensaje se imprime en stderr.

651* Cuando un [subagent](/docs/es/sub-agents) alcanzó el límite, el subagente se detiene antes de terminar, y Claude recibe lo que produjo con una nota de que auto mode lo detuvo653* Cuando un [subagente](/docs/es/sub-agents) alcanzó el límite, el subagente se detiene antes de terminar, y Claude recibe lo que haya producido junto con una nota de que el modo automático lo detuvo

652 654 

653**Qué hacer:**655**Qué hacer:**

654 656 

655* Envíe otro mensaje para que Claude intente de nuevo. El recuento de respuestas comienza de nuevo.657* Envía otro mensaje para que Claude lo intente de nuevo. El recuento de respuestas se reinicia.

656* Si la parada se repite y sus solicitudes pasan a través de una [LLM gateway or proxy](/docs/es/llm-gateway), verifique si corta respuestas de transmisión o las reescribe. [Server-side classifier review](/docs/es/permission-modes#server-side-classifier-review) dice qué comportamiento de puerta de enlace causa denegaciones, y la [gateway compatibility guide](/docs/es/llm-gateway-protocol#feature-pass-through) enumera qué pasar sin cambios.658* Si la detención se repite y tus solicitudes pasan por un [gateway de LLM o proxy](/docs/es/llm-gateway), comprueba si corta las respuestas en streaming o las reescribe. [Revisión del clasificador en el servidor](/docs/es/permission-modes#server-side-classifier-review) indica qué comportamiento del gateway causa denegaciones, y la [guía de compatibilidad de gateways](/docs/es/llm-gateway-protocol#feature-pass-through) enumera lo que debe pasar sin cambios.

657* Establezca `CLAUDE_CODE_AUTO_MODE_SERVER=0` antes de iniciar Claude Code para usar sus propias solicitudes de clasificador en su lugar. Antes de v2.1.281, Claude Code no leía la variable en una conexión directa a la API de Anthropic.659* Establece `CLAUDE_CODE_AUTO_MODE_SERVER=0` antes de iniciar Claude Code para que use en su lugar sus propias solicitudes al clasificador. Antes de v2.1.281, Claude Code no leía la variable en una conexión directa a la API de Anthropic.

658* Para aprobar las acciones usted mismo en su lugar, [switch out of auto mode](/docs/es/permission-modes#switch-permission-modes)660* Para aprobar tú mismo las acciones, [sal del modo automático](/docs/es/permission-modes#switch-permission-modes)

659 661 

660Antes de v2.1.280, Claude Code negaba cada acción de una respuesta sin veredicto de inmediato y nunca detenía el turno.662Antes de v2.1.280, Claude Code denegaba de inmediato cada acción de una respuesta sin veredicto y nunca detenía el turno.

661 663 

662<h3 id="agent-terminated-early-due-to-an-api-error">664<h3 id="agent-terminated-early-due-to-an-api-error">

663 Agent terminated early due to an API error665 Agent terminated early due to an API error

664</h3>666</h3>

665 667 

666La solicitud de API de un [subagent](/docs/es/sub-agents) falló terminalmente, por ejemplo porque se alcanzó un límite de uso o los reintentos de un error de servidor se agotaron, por lo que el subagente se detuvo antes de terminar su tarea. Este mensaje requiere Claude Code v2.1.199 o posterior; antes de eso, el texto de error de la API se devolvía a Claude como si fuera el resultado del subagente.668La solicitud a la API de un [subagente](/docs/es/sub-agents) falló de forma definitiva, por ejemplo porque se alcanzó un límite de uso o se agotaron los reintentos de un error de servidor, así que el subagente se detuvo antes de terminar su tarea. Este mensaje requiere Claude Code v2.1.199 o posterior; antes, el texto del error de la API se devolvía a Claude como si fuera el resultado del subagente.

667 669 

668```text theme={null}670```text theme={null}

669Agent terminated early due to an API error: <error detail>671Agent terminated early due to an API error: <error detail>


671 673 

672**Qué hacer:**674**Qué hacer:**

673 675 

674* Haga coincidir el detalle del error después de los dos puntos con su propia sección en esta página, como [Usage limits](#usage-limits) o [Server errors](#server-errors), y siga los pasos de esa sección676* Busca el detalle del error que aparece después de los dos puntos en su propia sección de esta página, como [Límites de uso](#usage-limits) o [Errores del servidor](#server-errors), y sigue los pasos de esa sección

675* Una vez que el error subyacente se aclare, pida a Claude que reintente la tarea o [resume the subagent](/docs/es/sub-agents#resume-subagents)677* Cuando se resuelva el error subyacente, pídele a Claude que reintente la tarea o [reanuda el subagente](/docs/es/sub-agents#resume-subagents)

676 678 

677Cuando una limitación de velocidad, sobrecarga o error de servidor interrumpe un subagente en primer plano que ya produjo salida de texto, Claude recibe esa salida parcial marcada como incompleta en lugar de este error. Un subagente cuya única salida fueron llamadas de herramienta también obtiene este error; en v2.1.199 eso devolvía un resultado parcial vacío en su lugar. Consulte [API errors in subagents](/docs/es/sub-agents#api-errors-in-subagents).679Cuando un rate limit, una sobrecarga o un error de servidor interrumpe un subagente en primer plano que ya produjo salida de texto, Claude recibe esa salida parcial marcada como incompleta en lugar de este error. Un subagente cuya única salida fueron llamadas a herramientas también recibe este error; en v2.1.199, ese caso devolvía en su lugar un resultado parcial vacío. Consulta [Errores de API en subagentes](/docs/es/sub-agents#api-errors-in-subagents).

678 680 

679<h2 id="usage-limits">681<h2 id="usage-limits">

680 Límites de uso682 Límites de uso


885 Errores de autenticación887 Errores de autenticación

886</h2>888</h2>

887 889 

888Estos errores significan que Claude Code no puede probar quién eres ante la API. Ejecuta `/status` en cualquier momento para ver qué credencial está activa actualmente.890Estos errores significan que Claude Code no puede demostrar tu identidad ante la API. Ejecuta `/status` en cualquier momento para ver qué credencial está activa actualmente.

889 891 

890<h3 id="not-logged-in">892<h3 id="not-logged-in">

891 No iniciaste sesión893 No has iniciado sesión

892</h3>894</h3>

893 895 

894No hay una credencial válida disponible para esta sesión.896No hay ninguna credencial válida disponible para esta sesión.

895 897 

896```text theme={null}898```text theme={null}

897Not logged in · Please run /login899Not logged in · Please run /login

898```900```

899 901 

900En una sesión que ejecuta la aplicación Claude Desktop, como la pestaña Code o Cowork, el mensaje dice `Authentication required · Sign in again to continue`, e inicias sesión nuevamente desde la aplicación.902En una sesión que ejecuta la aplicación Claude Desktop, como la pestaña Code o Cowork, el mensaje dice `Authentication required · Sign in again to continue`, y vuelves a iniciar sesión desde la aplicación.

903 

904Si inicias sesión con tu cuenta de claude.ai en otra ventana de Claude Code que usa el mismo [directorio de configuración](/docs/es/claude-directory), una sesión interactiva que muestra este mensaje empieza a usar ese inicio de sesión por sí sola. No necesitas reiniciarla.

905 

906Antes de v2.1.286 en macOS, la sesión podía seguir mostrando el mensaje después de que iniciaras sesión desde otra ventana. En esas versiones, reinicia la sesión que muestra el mensaje.

901 907 

902**Qué hacer:**908**Qué hacer:**

903 909 

904* Ejecuta `/login` para autenticarte con tu suscripción de Claude o cuenta de Console910* Ejecuta `/login` para autenticarte con tu suscripción de Claude o tu cuenta de Console

905* Si esperabas que una variable de entorno te autenticara, confirma que `ANTHROPIC_API_KEY` esté configurada y exportada en el shell donde lanzaste `claude`911* Si esperabas que una variable de entorno te autenticara, confirma que `ANTHROPIC_API_KEY` esté definida y exportada en el shell donde iniciaste `claude`

906* Para CI o automatización donde el inicio de sesión interactivo no es posible, configura un script [`apiKeyHelper`](/docs/es/settings-reference#apikeyhelper) que obtenga una clave al iniciar912* Para CI o automatización donde el inicio de sesión interactivo no es posible, configura un script [`apiKeyHelper`](/docs/es/settings-reference#apikeyhelper) que obtenga una clave al iniciar

907* Consulta [Precedencia de autenticación](/docs/es/authentication#authentication-precedence) para entender qué credencial usa Claude Code cuando hay varias presentes913* Consulta [Precedencia de autenticación](/docs/es/authentication#authentication-precedence) para entender qué credencial usa Claude Code cuando hay varias presentes

908 914 

909Si se te pide que inicies sesión repetidamente, consulta [No iniciaste sesión o token expirado](/docs/es/troubleshoot-install#not-logged-in-or-token-expired) para verificaciones del reloj del sistema y pasos de recuperación del almacenamiento de credenciales de macOS.915Si se te pide iniciar sesión repetidamente, consulta [No has iniciado sesión o el token expiró](/docs/es/troubleshoot-install#not-logged-in-or-token-expired) para ver las comprobaciones del reloj del sistema y los pasos de recuperación del almacenamiento de credenciales de macOS.

910 916 

911<h3 id="could-not-resolve-authentication-method">917<h3 id="could-not-resolve-authentication-method">

912 No se pudo resolver el método de autenticación918 No se pudo resolver el método de autenticación

913</h3>919</h3>

914 920 

915La sesión llegó al cliente de API sin ninguna credencial. Las [sesiones en segundo plano](/docs/es/agent-view) y las sesiones en la nube muestran este mensaje cuando el worker inicia sin una credencial. Las ejecuciones interactivas, `-p` y Agent SDK reportan la misma condición que [No iniciaste sesión](#not-logged-in) y escriben esta cadena solo en su registro de depuración, así que si la encontraste allí, sigue esa entrada en su lugar.921La sesión llegó al cliente de la API sin ninguna credencial. Las [sesiones en segundo plano](/docs/es/agent-view) y las sesiones en la nube muestran este mensaje cuando el worker se inicia sin una credencial. Las ejecuciones interactivas, con `-p` y del Agent SDK informan la misma condición como [No has iniciado sesión](#not-logged-in) y escriben esta cadena solo en su registro de depuración, así que si la encontraste ahí, sigue esa entrada en su lugar.

916 922 

917```text theme={null}923```text theme={null}

918Could not resolve authentication method. Expected one of apiKey, authToken, credentials, config, or profile to be set. Or for one of the "X-Api-Key" or "Authorization" headers to be explicitly omitted924Could not resolve authentication method. Expected one of apiKey, authToken, credentials, config, or profile to be set. Or for one of the "X-Api-Key" or "Authorization" headers to be explicitly omitted

919```925```

920 926 

921En versiones actuales el error significa que no había credencial disponible para el proceso worker. Antes de v2.1.174, una sesión en segundo plano asignada a un worker pre-inicializado inactivo podría fallar de esta manera incluso cuando había credenciales válidas configuradas. Antes de v2.1.176, una sesión en la nube que estaba inactiva antes de ser reclamada también podría. Actualiza para recuperarte.927En las versiones actuales, el error significa que no había ninguna credencial disponible para el proceso del worker. Antes de v2.1.174, una sesión en segundo plano asignada a un worker preinicializado inactivo podía fallar de esta forma incluso cuando había credenciales válidas configuradas. Antes de v2.1.176, también podía fallar así una sesión en la nube que había permanecido inactiva antes de ser reclamada. Actualiza para recuperarte.

922 928 

923**Qué hacer:**929**Qué hacer:**

924 930 

925* Actualiza a v2.1.176 o posterior si esto aparece en una sesión en segundo plano o en la nube y tus credenciales ya están configuradas931* Actualiza a v2.1.176 o posterior si esto aparece en una sesión en segundo plano o en la nube y tus credenciales ya están configuradas

926* Confirma que `ANTHROPIC_API_KEY`, `CLAUDE_CODE_OAUTH_TOKEN`, o tus credenciales del proveedor en la nube estén configuradas en el entorno que lanza el worker, no solo en tu shell interactivo932* Confirma que `ANTHROPIC_API_KEY`, `CLAUDE_CODE_OAUTH_TOKEN` o las credenciales de tu proveedor de nube estén definidas en el entorno que inicia el worker, no solo en tu shell interactivo

927* Para Agent SDK, consulta [configuración de autenticación en el inicio rápido](/docs/es/agent-sdk/quickstart#setup)933* Para el Agent SDK, consulta la [configuración de autenticación en el inicio rápido](/docs/es/agent-sdk/quickstart#setup)

928* Ejecuta `/status` en una sesión interactiva en el mismo entorno para confirmar qué fuente de credencial se resuelve934* Ejecuta `/status` en una sesión interactiva en el mismo entorno para confirmar qué fuente de credenciales se resuelve

929 935 

930<h3 id="invalid-api-key">936<h3 id="invalid-api-key">

931 Clave API inválida937 Clave de API no válida

932</h3>938</h3>

933 939 

934La variable de entorno `ANTHROPIC_API_KEY` o el script `apiKeyHelper` devolvieron una clave que la API rechazó, o Claude Code bloqueó una clave de `ANTHROPIC_API_KEY` antes de enviarla.940La variable de entorno `ANTHROPIC_API_KEY` o el script `apiKeyHelper` devolvió una clave que la API rechazó, o Claude Code bloqueó una clave de `ANTHROPIC_API_KEY` antes de enviarla.

935 941 

936```text theme={null}942```text theme={null}

937Invalid API key · Fix external API key943Invalid API key · Fix external API key

938```944```

939 945 

940Cuando el mensaje continúa después de `Fix external API key` con una descripción como `Invalid X-Api-Key header value from ANTHROPIC_API_KEY: it contains a line break at character 41 (120 characters on 2 lines).`, la API nunca vio la clave. Claude Code encontró un carácter que los encabezados HTTP no pueden llevar y detuvo la solicitud antes de enviarla. Consulta [Valor de encabezado de solicitud inválido](#invalid-request-header-value) para saber cómo leer la descripción y corregir el valor.946Cuando el mensaje continúa después de `Fix external API key` con una descripción como `Invalid X-Api-Key header value from ANTHROPIC_API_KEY: it contains a line break at character 41 (120 characters on 2 lines).`, la API nunca vio la clave. Claude Code encontró un carácter que los encabezados HTTP no pueden transportar y detuvo la solicitud antes de enviarla. Consulta [Valor de encabezado de solicitud no válido](#invalid-request-header-value) para saber cómo leer la descripción y corregir el valor.

941 947 

942**Qué hacer:**948**Qué hacer:**

943 949 

944* Verifica si hay errores tipográficos y confirma que la clave no haya sido revocada en la [Consola](https://platform.claude.com/settings/keys)950* Busca errores tipográficos y confirma que la clave no haya sido revocada en la [Console](https://platform.claude.com/settings/keys)

945* En el mismo shell, ejecuta `env | grep ANTHROPIC`, o en PowerShell `Get-ChildItem Env:ANTHROPIC*`. Herramientas como direnv, complementos de shell dotenv e IDE terminals pueden cargar una clave antigua de un archivo `.env` en tu proyecto sin que la configures explícitamente.951* En el mismo shell, ejecuta `env | grep ANTHROPIC`, o en PowerShell `Get-ChildItem Env:ANTHROPIC*`. Herramientas como direnv, los plugins de shell de dotenv y las terminales de los IDE pueden cargar una clave obsoleta desde un archivo `.env` de tu proyecto sin que la definas explícitamente.

946* Desactiva `ANTHROPIC_API_KEY` y ejecuta `/login` para usar autenticación de suscripción en su lugar952* Elimina la definición de `ANTHROPIC_API_KEY` y ejecuta `/login` para usar la autenticación por suscripción en su lugar

947* Si la clave proviene de un script [`apiKeyHelper`](/docs/es/settings-reference#apikeyhelper), ejecuta el script directamente para confirmar que imprime una clave válida en stdout953* Si la clave proviene de un script [`apiKeyHelper`](/docs/es/settings-reference#apikeyhelper), ejecuta el script directamente para confirmar que imprime una clave válida en stdout

948* Ejecuta `/status` para confirmar qué fuente de credencial está usando realmente Claude Code954* Ejecuta `/status` para confirmar qué fuente de credenciales está usando realmente Claude Code

949 955 

950<h3 id="your-apikeyhelper-script-is-failing">956<h3 id="your-apikeyhelper-script-is-failing">

951 Tu script apiKeyHelper está fallando957 Tu script apiKeyHelper está fallando

952</h3>958</h3>

953 959 

954Claude Code ejecutó el comando en tu configuración [`apiKeyHelper`](/docs/es/settings-reference#apikeyhelper) y no obtuvo una clave. Sin una, la solicitud llega a la API con una credencial de marcador de posición, y la API la rechaza con `401`. El panel `Authentication` en la terminal muestra cuál de estos sucedió:960Claude Code ejecutó el comando de tu ajuste [`apiKeyHelper`](/docs/es/settings-reference#apikeyhelper) y no recibió una clave. Sin ella, la solicitud llega a la API con una credencial de marcador de posición, y la API la rechaza con `401`. El panel `Authentication` de la terminal muestra cuál de estas situaciones ocurrió:

955 961 

956* El comando salió con un error o se agotó el tiempo de espera962* El comando terminó con un error o se agotó su tiempo de espera

957* El comando no imprimió nada en stdout963* El comando no imprimió nada en stdout

958* El comando imprimió algo además de la clave, como un banner de inicio de sesión o una línea de registro. El panel muestra `returned output that cannot be used as an API key` y dice qué está mal, sin repetir la salida. Antes de v2.1.227, Claude Code enviaba lo que el comando imprimía, después de recortar espacios en blanco circundantes.964* El comando imprimió algo además de la clave, como un banner de inicio de sesión o una línea de registro. El panel muestra `returned output that cannot be used as an API key` e indica qué está mal, sin repetir la salida. Antes de v2.1.227, Claude Code enviaba lo que el comando imprimiera, después de recortar los espacios en blanco circundantes.

959 965 

960```text theme={null}966```text theme={null}

961Your apiKeyHelper script is failing · This usually means you need to re-authenticate with your provider · Run /status to see the script's error output967Your apiKeyHelper script is failing · This usually means you need to re-authenticate with your provider · Run /status to see the script's error output

962```968```

963 969 

964En [modo no interactivo](/docs/es/headless), stderr también lleva la razón específica, con el prefijo `apiKeyHelper failed:`.970En [modo no interactivo](/docs/es/headless), stderr también incluye el motivo específico, con el prefijo `apiKeyHelper failed:`.

965 971 

966Claude Code vuelve a ejecutar el script y reintenta la solicitud hasta dos veces más antes de mostrar este mensaje, por lo que el fallo aparece dentro de tres intentos. Antes de v2.1.208, Claude Code gastaba el [presupuesto de reintentos](#automatic-retries) completo reenviando la solicitud con la credencial de marcador de posición y luego reportaba un error de autenticación `401` genérico en lugar del fallo del script.972Claude Code vuelve a ejecutar el script y reintenta la solicitud hasta dos veces más antes de mostrar este mensaje, así que el fallo aparece en un máximo de tres intentos. Antes de v2.1.208, Claude Code consumía todo el [presupuesto de reintentos](#automatic-retries) reenviando la solicitud con la credencial de marcador de posición y luego informaba un error de autenticación `401` genérico en lugar del fallo del script.

967 973 

968Ejecutar `/login` no ayuda aquí: la salida del helper [toma precedencia](/docs/es/authentication#authentication-precedence) sobre un inicio de sesión guardado mientras la configuración esté presente.974Ejecutar `/login` no ayuda aquí: la salida del helper [tiene precedencia](/docs/es/authentication#authentication-precedence) sobre un inicio de sesión guardado mientras el ajuste esté presente.

969 975 

970**Qué hacer:**976**Qué hacer:**

971 977 

972* Ejecuta el comando configurado en `apiKeyHelper` directamente en tu shell para reproducir el fallo978* Ejecuta directamente en tu shell el comando configurado en `apiKeyHelper` para reproducir el fallo

973* Si el comando reporta una sesión expirada, vuelve a autenticarte con tu proveedor de credenciales, por ejemplo iniciando sesión en tu SSO o bóveda de secretos nuevamente979* Si el comando informa una sesión expirada, vuelve a autenticarte con tu proveedor de credenciales, por ejemplo, iniciando sesión de nuevo en tu SSO o en tu almacén de secretos

974* Corrige el comando para que imprima solo la clave en stdout, como un único token de ASCII imprimible de hasta 16.384 caracteres, y salga con código 0. Consulta [rotar credenciales con apiKeyHelper](/docs/es/llm-gateway-connect#rotate-credentials-with-apikeyhelper) para una configuración que funcione.980* Corrige el comando para que imprima solo la clave en stdout, como un único token de ASCII imprimible de hasta 16,384 caracteres, y termine con el código 0. Consulta [rotar credenciales con apiKeyHelper](/docs/es/llm-gateway-connect#rotate-credentials-with-apikeyhelper) para ver una configuración funcional.

975* Ejecuta `/status` para ver el fallo y confirmar que `apiKeyHelper` es la fuente de credencial activa. La fila `apiKeyHelper` muestra `Failing` con el detalle del último fallo, como el código de salida y la salida de error del comando, y desaparece después de la siguiente ejecución exitosa. Antes de v2.1.274, `/status` mostraba solo la fuente de credencial, no el fallo.981* Ejecuta `/status` para ver el fallo y confirmar que `apiKeyHelper` es la fuente de credenciales activa. La fila `apiKeyHelper` muestra `Failing` con el detalle del último fallo, como el código de salida y la salida de error del comando, y desaparece después de la siguiente ejecución correcta. Antes de v2.1.274, `/status` mostraba solo la fuente de credenciales, no el fallo.

976* Cada vez que el comando falla, su código de salida y salida de error también aparecen en un panel `Authentication` en la terminal. Antes de v2.1.212, el panel se titulaba `Cloud authentication`.982* Cada vez que el comando falla, su código de salida y su salida de error también aparecen en un panel `Authentication` de la terminal. Antes de v2.1.212, el panel se titulaba `Cloud authentication`.

977 983 

978<h3 id="invalid-request-header-value">984<h3 id="invalid-request-header-value">

979 Valor de encabezado de solicitud inválido985 Valor de encabezado de solicitud no válido

980</h3>986</h3>

981 987 

982Un valor que Claude Code estaba a punto de enviar como encabezado de solicitud contiene un carácter que los encabezados HTTP no pueden llevar: un salto de línea, un byte NUL, o un carácter por encima de `U+00FF`, como una comilla curva o un espacio de ancho cero. Claude Code detiene la solicitud antes de que se envíe nada y nombra la variable o configuración a corregir. La causa habitual es una credencial pegada de un documento o chat que llevaba un carácter invisible o un salto de línea extraviado.988Un valor que Claude Code estaba a punto de enviar como encabezado de solicitud contiene un carácter que los encabezados HTTP no pueden transportar: un salto de línea, un byte NUL o un carácter por encima de `U+00FF`, como una comilla tipográfica o un espacio de ancho cero. Claude Code detiene la solicitud antes de enviar nada e indica la variable o el ajuste que debes corregir. La causa habitual es una credencial pegada desde un documento o un chat que incluía un carácter invisible o un salto de línea accidental.

983 989 

984Claude Code ejecuta esta verificación cuando envía solicitudes a la API de Claude directamente o a través de una [puerta de enlace LLM](/docs/es/llm-gateway). En un proveedor en la nube de terceros como [Amazon Bedrock](/docs/es/amazon-bedrock), Claude Code no la ejecuta antes de enviar.990Claude Code realiza esta comprobación cuando envía solicitudes a la Claude API directamente o a través de un [gateway de LLM](/docs/es/llm-gateway). En un proveedor de nube de terceros como [Amazon Bedrock](/docs/es/amazon-bedrock), Claude Code no la realiza antes de enviar.

985 991 

986```text theme={null}992```text theme={null}

987Invalid auth token · Fix external auth token993Invalid auth token · Fix external auth token


989Invalid request header from the environment · Fix the environment variable995Invalid request header from the environment · Fix the environment variable

990```996```

991 997 

992La primera parte del mensaje depende de dónde vino el valor incorrecto:998La primera parte del mensaje depende de dónde provino el valor incorrecto:

993 999 

994* `Invalid auth token`: un token de portador de [`ANTHROPIC_AUTH_TOKEN`](/docs/es/env-vars) o [`CLAUDE_CODE_OAUTH_TOKEN`](/docs/es/env-vars)1000* `Invalid auth token`: un token bearer de [`ANTHROPIC_AUTH_TOKEN`](/docs/es/env-vars) o [`CLAUDE_CODE_OAUTH_TOKEN`](/docs/es/env-vars)

995* `Invalid ANTHROPIC_CUSTOM_HEADERS`: un nombre de encabezado o valor que configuraste en [`ANTHROPIC_CUSTOM_HEADERS`](/docs/es/env-vars). La descripción cuenta cuál par `Name: Value` es el culpable, como `distinct header 2 of 3 parsed from ANTHROPIC_CUSTOM_HEADERS`, sin repetir el nombre o valor, ya que elegiste ambos.1001* `Invalid ANTHROPIC_CUSTOM_HEADERS`: un nombre o valor de encabezado que definiste en [`ANTHROPIC_CUSTOM_HEADERS`](/docs/es/env-vars). La descripción indica por número qué par `Name: Value` tiene el problema, como `distinct header 2 of 3 parsed from ANTHROPIC_CUSTOM_HEADERS`, sin repetir el nombre ni el valor, ya que tú elegiste ambos.

996* `Invalid request header from the environment`: un valor que Claude Code copia en un encabezado de solicitud desde otra variable de entorno, como `CLAUDE_AGENT_SDK_CLIENT_APP`. La descripción nombra la variable a corregir.1002* `Invalid request header from the environment`: un valor que Claude Code copia en un encabezado de solicitud desde otra variable de entorno, como `CLAUDE_AGENT_SDK_CLIENT_APP`. La descripción indica la variable que debes corregir.

997 1003 

998Claude Code reporta un `ANTHROPIC_API_KEY` incorrecto capturado por esta verificación como [Clave API inválida](#invalid-api-key), con la misma descripción final. Reporta una credencial `/login` guardada incorrecta como [No iniciaste sesión](#not-logged-in) en su lugar; ejecuta `/login` para guardar una nueva. La salida de un script [`apiKeyHelper`](/docs/es/settings-reference#apikeyhelper) nunca llega a esta verificación: Claude Code la valida cuando se ejecuta el script, y la salida que un encabezado HTTP no puede llevar falla con [Tu script apiKeyHelper está fallando](#your-apikeyhelper-script-is-failing).1004Claude Code informa una `ANTHROPIC_API_KEY` incorrecta detectada por esta comprobación como [Clave de API no válida](#invalid-api-key), con la misma descripción final. En cambio, informa una credencial de `/login` guardada incorrecta como [No has iniciado sesión](#not-logged-in); ejecuta `/login` para guardar una nueva. La salida de un script [`apiKeyHelper`](/docs/es/settings-reference#apikeyhelper) nunca llega a esta comprobación: Claude Code la valida cuando se ejecuta el script, y una salida que un encabezado HTTP no puede transportar falla con [Tu script apiKeyHelper está fallando](#your-apikeyhelper-script-is-failing).

999 1005 

1000Después del segundo `·`, el mensaje describe el problema, como en este ejemplo completo:1006Después del segundo `·`, el mensaje describe el problema, como en este ejemplo completo:

1001 1007 


1003Invalid auth token · Fix external auth token · Invalid Authorization header value from ANTHROPIC_AUTH_TOKEN: it contains a line break at character 41 (120 characters on 2 lines).1009Invalid auth token · Fix external auth token · Invalid Authorization header value from ANTHROPIC_AUTH_TOKEN: it contains a line break at character 41 (120 characters on 2 lines).

1004```1010```

1005 1011 

1006Las posiciones cuentan caracteres comenzando en uno. La descripción se construye a partir de frases fijas y conteos de caracteres, por lo que nunca incluye el valor en sí. Nombra el carácter ofensivo solo cuando es un carácter invisible o tipográfico bien conocido, como una marca de orden de bytes, un espacio de ancho cero, o una comilla curva, y reporta cualquier otra cosa como `a non-ASCII character`.1012Las posiciones cuentan los caracteres empezando desde uno. La descripción se construye a partir de frases fijas y recuentos de caracteres, por lo que nunca incluye el valor en sí. Nombra el carácter problemático solo cuando es un carácter invisible o tipográfico conocido, como una marca de orden de bytes, un espacio de ancho cero o una comilla tipográfica, e informa cualquier otro como `a non-ASCII character`.

1007 1013 

1008**Qué hacer:**1014**Qué hacer:**

1009 1015 

1010* Vuelve a configurar la variable o configuración que el mensaje nombra, reescribiendo los caracteres alrededor de la posición reportada en lugar de pegar desde la misma fuente nuevamente1016* Vuelve a definir la variable o el ajuste que indica el mensaje, reescribiendo a mano los caracteres alrededor de la posición informada en lugar de pegar de nuevo desde la misma fuente

1011* Para `ANTHROPIC_CUSTOM_HEADERS`, mantén un par `Name: Value` por línea y reescribe el par que el mensaje cuenta1017* Para `ANTHROPIC_CUSTOM_HEADERS`, mantén un par `Name: Value` por línea y reescribe el par que indica el mensaje

1012* Ejecuta `/status` para confirmar qué fuente de credencial está activa1018* Ejecuta `/status` para confirmar qué fuente de credenciales está activa

1013 1019 

1014<h3 id="this-organization-has-been-disabled">1020<h3 id="this-organization-has-been-disabled">

1015 Esta organización ha sido deshabilitada1021 Esta organización ha sido deshabilitada

1016</h3>1022</h3>

1017 1023 

1018Claude Code está usando un `ANTHROPIC_API_KEY` antiguo de una organización de Console deshabilitada. Cuando tienes un inicio de sesión de suscripción guardado, la clave lo anula.1024Claude Code está usando una `ANTHROPIC_API_KEY` obsoleta de una organización de Console deshabilitada. Cuando tienes un inicio de sesión de suscripción guardado, la clave tiene prioridad sobre él.

1019 1025 

1020```text theme={null}1026```text theme={null}

1021Your ANTHROPIC_API_KEY belongs to a disabled organization · Unset the environment variable to use your subscription instead1027Your ANTHROPIC_API_KEY belongs to a disabled organization · Unset the environment variable to use your subscription instead


1023API Error: 400 ... This organization has been disabled.1029API Error: 400 ... This organization has been disabled.

1024```1030```

1025 1031 

1026La sugerencia después del `·` depende de tus credenciales guardadas: la primera forma aparece cuando un `/login` almacenado puede tomar el control después de que desactives la clave, y la segunda cuando la clave es tu única credencial.1032La sugerencia después del `·` depende de tus credenciales guardadas: la primera forma aparece cuando un `/login` almacenado puede tomar el relevo después de que elimines la clave, y la segunda cuando la clave es tu única credencial.

1027 1033 

1028Las variables de entorno toman precedencia sobre `/login`, por lo que una clave exportada en tu perfil de shell o cargada desde un archivo `.env` se usa incluso cuando tienes una suscripción Pro o Max que funciona. En modo no interactivo (`-p`), la clave siempre se usa cuando está presente.1034Las variables de entorno tienen precedencia sobre `/login`, así que una clave exportada en el perfil de tu shell o cargada desde un archivo `.env` se usa incluso cuando tienes una suscripción Pro o Max que funciona. En modo no interactivo (`-p`), la clave siempre se usa cuando está presente.

1029 1035 

1030**Qué hacer:**1036**Qué hacer:**

1031 1037 

1032* Desactiva `ANTHROPIC_API_KEY` en el shell actual y elimínalo de tu perfil de shell, luego relanza `claude`1038* Elimina la definición de `ANTHROPIC_API_KEY` en el shell actual y quítala del perfil de tu shell; luego vuelve a iniciar `claude`

1033* Si el mensaje dice `Update or unset`, no tienes un inicio de sesión guardado para recurrir. Desactiva la clave y ejecuta `/login`, o reemplaza la clave con una de una organización de Console activa.1039* Si el mensaje dice `Update or unset`, no tienes un inicio de sesión guardado al que recurrir. Elimina la clave y ejecuta `/login`, o reemplaza la clave por una de una organización de Console activa.

1034* Ejecuta `/status` después para confirmar que la credencial activa es tu suscripción1040* Ejecuta `/status` después para confirmar que la credencial activa es tu suscripción

1035* Si no hay variable de entorno configurada y el error persiste, contacta con soporte o inicia sesión con una cuenta diferente.1041* Si no hay ninguna variable de entorno definida y el error persiste, contacta con soporte o inicia sesión con otra cuenta.

1036 1042 

1037<h3 id="your-organization-has-disabled-api-key-authentication">1043<h3 id="your-organization-has-disabled-api-key-authentication">

1038 Tu organización ha deshabilitado la autenticación por clave API1044 Tu organización ha deshabilitado la autenticación con clave de API

1039</h3>1045</h3>

1040 1046 

1041Este mensaje requiere Claude Code v2.1.169 o posterior. El administrador de tu organización de Console ha desactivado la autenticación por clave API, por lo que la API rechaza la clave que Claude Code está enviando. La sugerencia de recuperación después del `·` varía según de dónde vino la clave:1047Este mensaje requiere Claude Code v2.1.169 o posterior. El administrador de tu organización de Console desactivó la autenticación con clave de API, así que la API rechaza la clave que Claude Code está enviando. La sugerencia de recuperación después del `·` varía según de dónde provino la clave:

1042 1048 

1043```text theme={null}1049```text theme={null}

1044Your organization has disabled API key authentication · Run /login to sign in with your claude.ai account1050Your organization has disabled API key authentication · Run /login to sign in with your claude.ai account


1048Your organization has disabled API key authentication · Sign in again with your claude.ai account1054Your organization has disabled API key authentication · Sign in again with your claude.ai account

1049```1055```

1050 1056 

1051La última forma aparece en una sesión que ejecuta la aplicación Claude Desktop, como la pestaña Code o Cowork, donde inicias sesión nuevamente desde la aplicación.1057La última forma aparece en una sesión que ejecuta la aplicación Claude Desktop, como la pestaña Code o Cowork, donde vuelves a iniciar sesión desde la aplicación.

1052 1058 

1053Las variables de entorno y `apiKeyHelper` toman precedencia sobre `/login`, por lo que ejecutar `/login` solo no ayuda mientras cualquiera de ellos siga suministrando una clave. Consulta [Precedencia de autenticación](/docs/es/authentication#authentication-precedence).1059Las variables de entorno y `apiKeyHelper` tienen precedencia sobre `/login`, así que ejecutar solo `/login` no ayuda mientras cualquiera de ellos siga proporcionando una clave. Consulta [Precedencia de autenticación](/docs/es/authentication#authentication-precedence).

1054 1060 

1055**Qué hacer:**1061**Qué hacer:**

1056 1062 

1057* Si el mensaje nombra `ANTHROPIC_API_KEY`, desactívalo en el shell actual y elimínalo de tu perfil de shell o archivo `.env`, luego relanza `claude`1063* Si el mensaje menciona `ANTHROPIC_API_KEY`, elimina su definición en el shell actual y quítala del perfil de tu shell o del archivo `.env`; luego vuelve a iniciar `claude`

1058* Si el mensaje nombra `apiKeyHelper`, elimina la configuración [`apiKeyHelper`](/docs/es/settings-reference#apikeyhelper) de tu `settings.json`1064* Si el mensaje menciona `apiKeyHelper`, quita el ajuste [`apiKeyHelper`](/docs/es/settings-reference#apikeyhelper) de tu `settings.json`

1059* Ejecuta `/login` para iniciar sesión con tu cuenta de claude.ai1065* Ejecuta `/login` para iniciar sesión con tu cuenta de claude.ai

1060* Ejecuta `/status` después para confirmar que la credencial activa es tu suscripción en lugar de una clave API1066* Ejecuta `/status` después para confirmar que la credencial activa es tu suscripción y no una clave de API

1061* Si necesitas autenticación por clave API para automatización, pide al administrador de tu organización que la vuelva a habilitar en la Consola1067* Si necesitas autenticación con clave de API para automatización, pide al administrador de tu organización que la vuelva a habilitar en la Console

1062 1068 

1063<h3 id="your-organization-has-disabled-claude-subscription-access">1069<h3 id="your-organization-has-disabled-claude-subscription-access">

1064 Tu organización ha deshabilitado el acceso a la suscripción de Claude1070 Tu organización ha deshabilitado el acceso con suscripción de Claude

1065</h3>1071</h3>

1066 1072 

1067Tu organización de Claude no permite iniciar sesión en Claude Code con un inicio de sesión de suscripción. Ejecutar `/login` nuevamente con la misma cuenta devuelve el mismo error.1073Tu organización de Claude no permite iniciar sesión en Claude Code con un inicio de sesión de suscripción. Volver a ejecutar `/login` con la misma cuenta devuelve el mismo error.

1068 1074 

1069```text theme={null}1075```text theme={null}

1070Your organization has disabled Claude subscription access for Claude Code · Use an Anthropic API key instead, or ask your admin to enable access1076Your organization has disabled Claude subscription access for Claude Code · Use an Anthropic API key instead, or ask your admin to enable access

1071```1077```

1072 1078 

1073Esta es una configuración de organización del lado del servidor, por lo que no se puede anular desde configuraciones locales, variables de entorno o banderas CLI.1079Esta es una configuración de la organización del lado del servidor, así que no se puede sobrescribir desde la configuración local, variables de entorno ni flags de la CLI.

1074 1080 

1075Agent SDK y el modo no interactivo `-p` muestran esto como el código de error `oauth_org_not_allowed`.1081El Agent SDK y el modo no interactivo `-p` muestran esto como el código de error `oauth_org_not_allowed`.

1076 1082 

1077**Qué hacer:**1083**Qué hacer:**

1078 1084 

1079* Pide a tu administrador que habilite el acceso a Claude Code para tu organización1085* Pide a tu administrador que habilite el acceso a Claude Code para tu organización

1080* Auténticate con una clave API de Console en lugar de tu suscripción. Consulta [Autenticación de Claude Console](/docs/es/authentication#claude-console-authentication) para la configuración.1086* Autentícate con una clave de API de Console en lugar de tu suscripción. Consulta [Autenticación con Claude Console](/docs/es/authentication#claude-console-authentication) para configurarla.

1081* Si eres el administrador y no ves una opción para habilitar el acceso, contacta con [soporte de Anthropic](https://support.claude.com)1087* Si eres el administrador y no ves una opción para habilitar el acceso, contacta con el [soporte de Anthropic](https://support.claude.com)

1082 1088 

1083<h3 id="routines-are-disabled-by-your-organizations-policy">1089<h3 id="routines-are-disabled-by-your-organizations-policy">

1084 Las rutinas están deshabilitadas por la política de tu organización1090 Las rutinas están deshabilitadas por la política de tu organización

1085</h3>1091</h3>

1086 1092 

1087Un Propietario en tu organización de Equipo o Empresa ha desactivado las rutinas a nivel de organización. El error aparece cuando intentas crear o ejecutar una rutina, por ejemplo desde la interfaz de usuario [Rutinas](/docs/es/routines) en claude.ai/code. En Claude Code v2.1.227 o posterior, la misma configuración también [oculta `/schedule`](/docs/es/routines#troubleshooting) en la CLI.1093Un Owner de tu organización Team o Enterprise desactivó las rutinas a nivel de organización. El error aparece cuando intentas crear o ejecutar una rutina, por ejemplo, desde la interfaz de [Routines](/docs/es/routines) en claude.ai/code. En Claude Code v2.1.227 o posterior, la misma configuración también [oculta `/schedule`](/docs/es/routines#troubleshooting) en la CLI.

1088 1094 

1089```text theme={null}1095```text theme={null}

1090Routines are disabled by your organization's policy.1096Routines are disabled by your organization's policy.

1091```1097```

1092 1098 

1093Esta es una configuración del lado del servidor, por lo que no se puede anular desde configuraciones locales, variables de entorno o banderas CLI.1099Esta es una configuración del lado del servidor, así que no se puede sobrescribir desde la configuración local, variables de entorno ni flags de la CLI.

1094 1100 

1095**Qué hacer:**1101**Qué hacer:**

1096 1102 

1097* Pide a un Propietario en tu organización que habilite el botón **Routines** en [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code)1103* Pide a un Owner de tu organización que active el interruptor **Routines** en [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code)

1098* Para trabajo programado único que no requiere rutinas a nivel de organización, consulta [tareas programadas](/docs/es/scheduled-tasks)1104* Para trabajo programado puntual que no requiera rutinas a nivel de organización, consulta [tareas programadas](/docs/es/scheduled-tasks)

1099 1105 

1100<h3 id="remote-control-requires-the-anthropic-api">1106<h3 id="remote-control-requires-the-anthropic-api">

1101 Remote Control requiere la API de Anthropic1107 Remote Control requiere la API de Anthropic

1102</h3>1108</h3>

1103 1109 

1104La sesión no está hablando directamente con la API de Anthropic, que es lo que [Remote Control](/docs/es/remote-control) requiere.1110La sesión no se comunica directamente con la API de Anthropic, algo que [Remote Control](/docs/es/remote-control) requiere.

1105 1111 

1106```text theme={null}1112```text theme={null}

1107Remote Control is only available when using Claude via api.anthropic.com. CLAUDE_CODE_USE_BEDROCK is set, so this session is using Amazon Bedrock — unset it (or run in a shell without it) to use Remote Control.1113Remote Control is only available when using Claude via api.anthropic.com. CLAUDE_CODE_USE_BEDROCK is set, so this session is using Amazon Bedrock — unset it (or run in a shell without it) to use Remote Control.

1108```1114```

1109 1115 

1110Una segunda oración explica qué enrutó la sesión lejos de la API de Anthropic; antes de v2.1.219, el mensaje era solo la primera oración. Dependiendo de la causa, el mensaje nombra:1116Una segunda oración explica qué desvió la sesión de la API de Anthropic; antes de v2.1.219, el mensaje consistía solo en la primera oración. Según la causa, el mensaje menciona:

1111 1117 

1112* Una variable de proveedor `CLAUDE_CODE_USE_*`, como `CLAUDE_CODE_USE_BEDROCK` para [Amazon Bedrock](/docs/es/amazon-bedrock) o `CLAUDE_CODE_USE_VERTEX` para [Plataforma de Agentes de Google Cloud](/docs/es/google-vertex-ai)1118* Una variable de proveedor `CLAUDE_CODE_USE_*`, como `CLAUDE_CODE_USE_BEDROCK` para [Amazon Bedrock](/docs/es/amazon-bedrock) o `CLAUDE_CODE_USE_VERTEX` para [Google Cloud's Agent Platform](/docs/es/google-vertex-ai)

1113* [`ANTHROPIC_BASE_URL`](/docs/es/env-vars) apuntando a un host diferente de `api.anthropic.com`, como una [puerta de enlace LLM](/docs/es/llm-gateway) o proxy, incluso cuando inicias sesión con claude.ai; antes de v2.1.196, una URL base personalizada no bloqueaba Remote Control1119* [`ANTHROPIC_BASE_URL`](/docs/es/env-vars) apuntando a un host distinto de `api.anthropic.com`, como un [gateway de LLM](/docs/es/llm-gateway) o un proxy, incluso cuando inicias sesión con claude.ai; antes de v2.1.196, una URL base personalizada no bloqueaba Remote Control

1114* `ANTHROPIC_UNIX_SOCKET` configurado, por lo que la sesión envía sus solicitudes a través de un socket local en lugar de a `api.anthropic.com`1120* `ANTHROPIC_UNIX_SOCKET` definida, de modo que la sesión envía sus solicitudes a través de un socket local en lugar de a `api.anthropic.com`

1115* Un inicio de sesión de [puerta de enlace en la nube](/docs/es/claude-apps-gateway) empresarial realizado a través de `/login`, que no admite Remote Control y no tiene variable para desactivar1121* Un inicio de sesión en un [gateway de nube](/docs/es/claude-apps-gateway) empresarial hecho mediante `/login`, que no admite Remote Control y no tiene ninguna variable que eliminar

1116 1122 

1117**Qué hacer:**1123**Qué hacer:**

1118 1124 

1119* Desactiva la variable que el mensaje nombra, como `CLAUDE_CODE_USE_BEDROCK` o `ANTHROPIC_BASE_URL`, y reinicia la sesión, o inicia Remote Control desde una sesión que hable directamente con la API de Anthropic1125* Elimina la definición de la variable que menciona el mensaje, como `CLAUDE_CODE_USE_BEDROCK` o `ANTHROPIC_BASE_URL`, y reinicia la sesión, o inicia Remote Control desde una sesión que se comunique directamente con la API de Anthropic

1120* Si la variable no está configurada en tu shell, verifica la clave `env` en tus [archivos de configuración](/docs/es/settings#where-settings-live), que aplica variables de entorno a cada sesión1126* Si la variable no está definida en tu shell, revisa la clave `env` en tus [archivos de configuración](/docs/es/settings#where-settings-live), que aplica variables de entorno a cada sesión

1121* Para este y los otros mensajes de inicio de Remote Control, consulta [Solucionar problemas de Remote Control](/docs/es/remote-control#troubleshooting)1127* Para este y los demás mensajes de inicio de Remote Control, consulta [Solución de problemas de Remote Control](/docs/es/remote-control#troubleshooting)

1122 1128 

1123<h3 id="remote-control-couldnt-refresh-your-login">1129<h3 id="remote-control-couldnt-refresh-your-login">

1124 Remote Control no pudo actualizar tu inicio de sesión1130 Remote Control no pudo renovar tu inicio de sesión

1125</h3>1131</h3>

1126 1132 

1127Claude Code ejecuta una conexión [Remote Control](/docs/es/remote-control) en vivo en credenciales de corta duración que obtiene y renueva usando tu inicio de sesión guardado de claude.ai. Cuando claude.ai deja de aceptar ese inicio de sesión, o Claude Code no tiene inicio de sesión guardado, Claude Code detiene Remote Control y necesita que inicies sesión nuevamente. Cualquiera de los dos fallos puede suceder mientras Claude Code aún se está conectando o más tarde, cuando renueva las credenciales.1133Claude Code mantiene una conexión activa de [Remote Control](/docs/es/remote-control) con credenciales de corta duración que obtiene y renueva usando tu inicio de sesión de claude.ai guardado. Cuando claude.ai deja de aceptar ese inicio de sesión, o Claude Code ya no tiene ningún inicio de sesión guardado, Claude Code detiene Remote Control y necesita que vuelvas a iniciar sesión. Cualquiera de los dos fallos puede ocurrir mientras Claude Code todavía se está conectando o más tarde, cuando renueva las credenciales.

1128 1134 

1129Cuando Claude Code le pide al servicio de inicio de sesión que actualice tu inicio de sesión guardado y no obtiene respuesta, mantiene Remote Control en funcionamiento e intenta la actualización nuevamente mientras la credencial actual de la conexión sigue siendo válida. Una actualización no obtiene respuesta cuando Claude Code no puede alcanzar el servicio de inicio de sesión, la solicitud se agota el tiempo de espera, o el servicio falla sin rechazar tu inicio de sesión. Si el servicio de inicio de sesión aún no está respondiendo cuando esa credencial expira, Claude Code detiene Remote Control e informa `OAuth token refresh failed`.1135Cuando Claude Code pide al servicio de inicio de sesión que renueve tu inicio de sesión guardado y no obtiene respuesta, mantiene Remote Control en ejecución y vuelve a intentar la renovación mientras la credencial actual de la conexión siga siendo válida. Una renovación no obtiene respuesta cuando Claude Code no puede llegar al servicio de inicio de sesión, se agota el tiempo de espera de la solicitud o el servicio falla sin rechazar tu inicio de sesión. Si el servicio de inicio de sesión sigue sin responder cuando esa credencial expira, Claude Code detiene Remote Control e informa `OAuth token refresh failed`.

1130 1136 

1131Cuando Claude Code detiene Remote Control, muestra la razón en una advertencia y en una línea de transcripción que comienza con `Remote Control disconnected`. Tu sesión local sigue ejecutándose sin Remote Control. Esta sección cubre estas líneas:1137Cuando Claude Code detiene Remote Control, muestra el motivo en una advertencia y en una línea de la transcripción que empieza con `Remote Control disconnected`. Tu sesión local sigue ejecutándose sin Remote Control. Esta sección cubre estas líneas:

1132 1138 

1133```text theme={null}1139```text theme={null}

1134Remote Control disconnected — Claude.ai login expired — run /login to restore Remote Control1140Remote Control disconnected — Claude.ai login expired — run /login to restore Remote Control


1140Remote Control disconnected — Signed out of Claude — run /login, then /remote-control1146Remote Control disconnected — Signed out of Claude — run /login, then /remote-control

1141```1147```

1142 1148 

1143Claude Code nombra la causa en el medio del mensaje:1149Claude Code indica la causa en la parte central del mensaje:

1144 1150 

1145* `Claude.ai login expired` y `Claude.ai login was rejected`: claude.ai ya no acepta tu token de inicio de sesión guardado, porque expiró o fue revocado1151* `Claude.ai login expired` y `Claude.ai login was rejected`: claude.ai ya no acepta tu token de inicio de sesión guardado, porque expiró o fue revocado

1146* `OAuth token unavailable`: Claude Code no tenía un token de inicio de sesión guardado cuando la credencial de la conexión vencía para renovación1152* `OAuth token unavailable`: Claude Code no tenía ningún token de inicio de sesión guardado cuando llegó el momento de renovar la credencial de la conexión

1147* `OAuth token refresh failed`: claude.ai rechazó tu token de inicio de sesión guardado mientras Claude Code se estaba reconectando, y actualizar el token no produjo uno nuevo1153* `OAuth token refresh failed`: claude.ai rechazó tu token de inicio de sesión guardado mientras Claude Code se reconectaba, y la renovación del token no produjo uno nuevo

1148* `JWT refresh failed: no OAuth token`: Claude Code no encontró un token de inicio de sesión guardado para renovar1154* `JWT refresh failed: no OAuth token`: Claude Code no encontró ningún token de inicio de sesión guardado con el que renovar

1149* `Signed out of Claude`: cerraste sesión en esta máquina, por ejemplo ejecutando `/logout` en otra terminal, por lo que Claude Code no tiene inicio de sesión guardado para renovar la conexión1155* `Signed out of Claude`: cerraste sesión en esta máquina, por ejemplo, ejecutando `/logout` en otra terminal, así que Claude Code no tiene ningún inicio de sesión guardado con el que renovar la conexión

1150 1156 

1151**Qué hacer:**1157**Qué hacer:**

1152 1158 

1153* Ejecuta `/login` para iniciar sesión nuevamente1159* Ejecuta `/login` para volver a iniciar sesión

1154* Ejecuta `/remote-control` para reconectar la sesión. Los mensajes que terminan `run /login to restore Remote Control` no necesitan este paso: Claude Code se reconecta automáticamente una vez que inicias sesión.1160* Ejecuta `/remote-control` para reconectar la sesión. Los mensajes que terminan en `run /login to restore Remote Control` no necesitan este paso: Claude Code se reconecta por sí solo en cuanto inicias sesión.

1155 1161 

1156Antes de v2.1.224, `OAuth token refresh failed — run /login to re-authenticate` decía `OAuth token refresh failed — re-authenticate, then re-enable Remote Control`, y `JWT refresh failed: no OAuth token — run /login` decía `no OAuth token available for recovery (code <N>)`. Los mensajes `Claude.ai login expired`, `Claude.ai login was rejected`, y `OAuth token unavailable` se agregaron en v2.1.225.1162Antes de v2.1.224, `OAuth token refresh failed — run /login to re-authenticate` decía `OAuth token refresh failed — re-authenticate, then re-enable Remote Control`, y `JWT refresh failed: no OAuth token — run /login` decía `no OAuth token available for recovery (code <N>)`. Los mensajes `Claude.ai login expired`, `Claude.ai login was rejected` y `OAuth token unavailable` se añadieron en v2.1.225.

1157 1163 

1158Antes de v2.1.238, Claude Code reportaba los casos que ahora dicen `Signed out of Claude` como `JWT refresh failed: no OAuth token — run /login`, y detenía Remote Control con `Claude.ai login expired — run /login to restore Remote Control` tan pronto como una actualización de inicio de sesión no obtuviera respuesta.1164Antes de v2.1.238, Claude Code informaba los casos que ahora dicen `Signed out of Claude` como `JWT refresh failed: no OAuth token — run /login`, y detenía Remote Control con `Claude.ai login expired — run /login to restore Remote Control` en cuanto una renovación del inicio de sesión no obtenía respuesta.

1159 1165 

1160<h3 id="remote-control-stopped-because-the-signed-in-account-changed">1166<h3 id="remote-control-stopped-because-the-signed-in-account-changed">

1161 Remote Control se detuvo porque la cuenta con la que iniciaste sesión cambió1167 Remote Control se detuvo porque cambió la cuenta con sesión iniciada

1162</h3>1168</h3>

1163 1169 

1164Claude Code muestra esta línea durante una sesión [Remote Control](/docs/es/remote-control) cuando inicias sesión en una cuenta de claude.ai u organización diferente en esta máquina. Hiciste el cambio fuera de la sesión de Claude Code, por ejemplo ejecutando `/login` en otra terminal.1170Claude Code muestra esta línea durante una sesión de [Remote Control](/docs/es/remote-control) cuando inicias sesión en una cuenta u organización de claude.ai diferente en esta máquina. Hiciste el cambio fuera de la sesión de Claude Code, por ejemplo, ejecutando `/login` en otra terminal.

1165 1171 

1166Una sesión de Remote Control que iniciaste mientras estabas conectado a través de `/login` pertenece a la cuenta de claude.ai y organización que estaban conectadas en ese momento.1172Una sesión de Remote Control que iniciaste mientras tenías la sesión iniciada mediante `/login` pertenece a la cuenta y organización de claude.ai que tenían la sesión iniciada en ese momento.

1167 1173 

1168```text theme={null}1174```text theme={null}

1169Remote Control disconnected — signed-in claude.ai account or organization changed on this machine — run /remote-control to start a session for the current account, or /login to switch back, then /remote-control1175Remote Control disconnected — signed-in claude.ai account or organization changed on this machine — run /remote-control to start a session for the current account, or /login to switch back, then /remote-control

1170```1176```

1171 1177 

1172Claude Code detiene la sesión de Remote Control tan pronto como claude.ai confirma que la cuenta u organización cambió. Tu sesión local sigue ejecutándose sin Remote Control.1178Claude Code detiene la sesión de Remote Control en cuanto claude.ai confirma que la cuenta u organización cambió. Tu sesión local sigue ejecutándose sin Remote Control.

1173 1179 

1174**Qué hacer:**1180**Qué hacer:**

1175 1181 

1176* Ejecuta `/remote-control` para iniciar una nueva sesión de Remote Control bajo la cuenta u organización actual1182* Ejecuta `/remote-control` para iniciar una nueva sesión de Remote Control con la cuenta u organización actual

1177* Para cambiar atrás, ejecuta `/login` e inicia sesión en la cuenta u organización anterior nuevamente. Luego ejecuta `/remote-control`.1183* Para volver a la anterior, ejecuta `/login` e inicia sesión de nuevo en la cuenta u organización anterior. Luego ejecuta `/remote-control`.

1178 1184 

1179Antes de v2.1.234, Claude Code no notaba cuando cambiabas a una cuenta u organización diferente fuera de la sesión de Claude Code. Claude Code mantenía la sesión de Remote Control conectada hasta que una solicitud posterior al servidor de Remote Control fallaba con `Remote Control server rejected the request (HTTP 404)`. Ese fallo podría venir horas después del cambio.1185Antes de v2.1.234, Claude Code no detectaba cuándo cambiabas a una cuenta u organización diferente fuera de la sesión de Claude Code. Claude Code mantenía conectada la sesión de Remote Control hasta que una solicitud posterior al servidor de Remote Control fallaba con `Remote Control server rejected the request (HTTP 404)`. Ese fallo podía producirse horas después del cambio.

1180 1186 

1181<h3 id="remote-control-stopped-because-the-app-running-the-session-signed-out-or-switched-accounts">1187<h3 id="remote-control-stopped-because-the-app-running-the-session-signed-out-or-switched-accounts">

1182 Remote Control se detuvo porque la aplicación que ejecuta la sesión cerró sesión o cambió de cuenta1188 Remote Control se detuvo porque la aplicación que ejecuta la sesión cerró sesión o cambió de cuenta

1183</h3>1189</h3>

1184 1190 

1185Cuando la aplicación de escritorio de Claude o un IDE aloja tu sesión, Claude Code obtiene su token de inicio de sesión de esa aplicación en lugar de `/login`. Cuando claude.ai rechaza ese token, Claude Code le pide a la aplicación uno nuevo. Si la aplicación responde que está cerrada, o que ahora está conectada a una cuenta de Claude diferente, Claude Code termina la sesión [Remote Control](/docs/es/remote-control) y envía a la aplicación una de estas líneas:1191Cuando la aplicación de escritorio de Claude o un IDE aloja tu sesión, Claude Code obtiene su token de inicio de sesión de esa aplicación en lugar de `/login`. Cuando claude.ai rechaza ese token, Claude Code pide uno nuevo a la aplicación. Si la aplicación responde que cerró sesión, o que ahora tiene la sesión iniciada en una cuenta de Claude diferente, Claude Code finaliza la sesión de [Remote Control](/docs/es/remote-control) y envía a la aplicación una de estas líneas:

1186 1192 

1187```text theme={null}1193```text theme={null}

1188Remote Control stopped — the app running this session is now signed in to a different Claude account1194Remote Control stopped — the app running this session is now signed in to a different Claude account


1193 1199 

1194**Qué hacer:**1200**Qué hacer:**

1195 1201 

1196* Si la aplicación está cerrada, inicia sesión en ella nuevamente, luego activa Remote Control nuevamente en la aplicación1202* Si la aplicación cerró sesión, vuelve a iniciar sesión en ella y luego vuelve a activar Remote Control en la aplicación

1197* Si la aplicación cambió de cuenta, Claude Code no puede continuar la sesión terminada bajo la nueva cuenta. Inicia una nueva sesión de Remote Control bajo esa cuenta.1203* Si la aplicación cambió de cuenta, Claude Code no puede continuar la sesión finalizada con la nueva cuenta. Inicia una nueva sesión de Remote Control con esa cuenta.

1198 1204 

1199Antes de v2.1.238, Claude Code enviaba a la aplicación los mensajes `run /login` enumerados en [Remote Control no pudo actualizar tu inicio de sesión](#remote-control-couldnt-refresh-your-login) en ambos casos.1205Antes de v2.1.238, Claude Code enviaba a la aplicación los mensajes `run /login` indicados en [Remote Control no pudo renovar tu inicio de sesión](#remote-control-couldnt-refresh-your-login) en ambos casos.

1200 1206 

1201<h3 id="oauth-token-revoked-or-expired">1207<h3 id="oauth-token-revoked-or-expired">

1202 Token OAuth revocado o expirado1208 Token de OAuth revocado o expirado

1203</h3>1209</h3>

1204 1210 

1205Tu inicio de sesión guardado ya no es válido. Un token revocado significa que cerraste sesión en todas partes o un administrador eliminó el acceso; un token expirado significa que la actualización automática falló a mitad de sesión.1211Tu inicio de sesión guardado ya no es válido. Un token revocado significa que cerraste sesión en todas partes o que un administrador quitó el acceso; un token expirado significa que la renovación automática falló a mitad de la sesión.

1206 1212 

1207Ambos mensajes reportan un rechazo que la API devolvió para una solicitud que Claude Code envió. Cuando el inicio de sesión guardado ya ha sido borrado después de una actualización fallida, ves [Inicio de sesión expirado](#login-expired) en su lugar. Si te autenticas con un token de larga duración en [`CLAUDE_CODE_OAUTH_TOKEN`](/docs/es/env-vars), ves los mismos mensajes cuando ese token expira o es revocado.1213Ambos mensajes informan un rechazo que la API devolvió para una solicitud que envió Claude Code. Cuando el inicio de sesión guardado ya se borró tras una renovación fallida, ves [Inicio de sesión expirado](#login-expired) en su lugar. Si te autenticas con un token de larga duración en [`CLAUDE_CODE_OAUTH_TOKEN`](/docs/es/env-vars), ves los mismos mensajes cuando ese token expira o es revocado.

1208 1214 

1209```text theme={null}1215```text theme={null}

1210OAuth token revoked · Please run /login1216OAuth token revoked · Please run /login


1213 1219 

1214**Qué hacer:**1220**Qué hacer:**

1215 1221 

1216* Ejecuta `/login` para iniciar sesión nuevamente1222* Ejecuta `/login` para volver a iniciar sesión

1217* Si te autenticas con la variable de entorno `CLAUDE_CODE_OAUTH_TOKEN`, Claude Code sigue enviando el valor que configuraste después de que una solicitud falla con un 401, en lugar de cambiar al token de un inicio de sesión guardado. [`/status`](/docs/es/commands) muestra esta credencial como una fila `Auth token` que dice `CLAUDE_CODE_OAUTH_TOKEN`. Genera un token nuevo con [`claude setup-token`](/docs/es/authentication#generate-a-long-lived-token) y reinicia con él, o desactiva la variable y ejecuta `/login`. Antes de v2.1.225, Claude Code podría reemplazar el valor de la variable a mitad de sesión con el token de acceso de corta duración de un inicio de sesión guardado, y la sesión falló con errores 401 nuevamente una vez que ese token expiró.1223* Si te autenticas con la variable de entorno `CLAUDE_CODE_OAUTH_TOKEN`, Claude Code sigue enviando el valor que definiste después de que una solicitud falle con un 401, en lugar de cambiar al token de un inicio de sesión almacenado. [`/status`](/docs/es/commands) muestra esta credencial como una fila `Auth token` que dice `CLAUDE_CODE_OAUTH_TOKEN`. Genera un token nuevo con [`claude setup-token`](/docs/es/authentication#generate-a-long-lived-token) y reinicia con él, o elimina la definición de la variable y ejecuta `/login`. Antes de v2.1.225, Claude Code podía reemplazar el valor de la variable a mitad de la sesión con el token de acceso de corta duración de un inicio de sesión almacenado, y la sesión volvía a fallar con errores 401 una vez que ese token expiraba.

1218* Para solicitudes repetidas de inicio de sesión entre lanzamientos, consulta las verificaciones del reloj del sistema y los pasos de recuperación del almacenamiento de credenciales de macOS en [Solución de problemas](/docs/es/troubleshoot-install#not-logged-in-or-token-expired)1224* Si se te pide iniciar sesión repetidamente en distintos arranques, consulta las comprobaciones del reloj del sistema y los pasos de recuperación del almacenamiento de credenciales de macOS en [Solución de problemas](/docs/es/troubleshoot-install#not-logged-in-or-token-expired)

1219* Para otros fallos incluyendo `403 Forbidden` y problemas del navegador OAuth, consulta [Inicio de sesión y autenticación](/docs/es/troubleshoot-install#login-and-authentication)1225* Para otros fallos, incluidos `403 Forbidden` y problemas de OAuth en el navegador, consulta [Inicio de sesión y autenticación](/docs/es/troubleshoot-install#login-and-authentication)

1220 1226 

1221<h3 id="api-error-401-invalid-authentication-credentials">1227<h3 id="api-error-401-invalid-authentication-credentials">

1222 Error de API: 401 Credenciales de autenticación inválidas1228 API Error: 401 Invalid authentication credentials

1223</h3>1229</h3>

1224 1230 

1225La API reconoció el formato de tu credencial pero rechazó la cuenta u organización detrás de ella. Anthropic devuelve este mensaje cuando una credencial fue revocada recientemente, cuando una organización fue deshabilitada o eliminó tu acceso, o cuando la cuenta misma fue desactivada, por lo que un token expirado no es la causa. La credencial puede ser tu inicio de sesión guardado o un `ANTHROPIC_API_KEY` aprobado, y la solución difiere, así que comienza ejecutando `/status` para ver cuál está activo.1231La API reconoció el formato de tu credencial, pero rechazó la cuenta u organización que la respalda. Anthropic devuelve este mensaje cuando una credencial se revocó recientemente, cuando una organización se deshabilitó o eliminó tu acceso, o cuando la propia cuenta se desactivó, así que la causa no es un token expirado. La credencial puede ser tu inicio de sesión guardado o una `ANTHROPIC_API_KEY` aprobada, y la solución es distinta, así que empieza por ejecutar `/status` para ver cuál está activa.

1226 1232 

1227```text theme={null}1233```text theme={null}

1228Please run /login · API Error: 401 Invalid authentication credentials1234Please run /login · API Error: 401 Invalid authentication credentials


1230 1236 

1231**Qué hacer:**1237**Qué hacer:**

1232 1238 

1233* Si `/status` muestra una fila `API key` que no está marcada como no en uso, un [`ANTHROPIC_API_KEY`](/docs/es/authentication#authentication-precedence) aprobado es la credencial activa y toma precedencia sobre tu inicio de sesión, por lo que `/login` no lo reemplaza. Rota la clave en la Consola de Claude, o recurre a tu suscripción ejecutando `unset ANTHROPIC_API_KEY`, o en PowerShell `Remove-Item Env:ANTHROPIC_API_KEY`.1239* Si `/status` muestra una fila `API key` que no está marcada como no en uso, una [`ANTHROPIC_API_KEY`](/docs/es/authentication#authentication-precedence) aprobada es la credencial activa y tiene precedencia sobre tu inicio de sesión, así que `/login` no la reemplaza. Rota la clave en la Claude Console, o recurre a tu suscripción ejecutando `unset ANTHROPIC_API_KEY`, o en PowerShell `Remove-Item Env:ANTHROPIC_API_KEY`.

1234* Si `/status` muestra solo tu inicio de sesión, ejecuta `/login` una vez. Si la credencial fue revocada, un inicio de sesión nuevo la reemplaza.1240* Si `/status` muestra solo tu inicio de sesión, ejecuta `/login` una vez. Si la credencial fue revocada, un inicio de sesión nuevo la reemplaza.

1235* Si el mismo mensaje regresa para la misma cuenta de inicio de sesión, la cuenta u organización ya no está activa. Verifica la cuenta y organización que `/status` reporta, y pide al administrador de tu organización que restaure el acceso.1241* Si el mismo mensaje vuelve para la misma cuenta de inicio de sesión, la cuenta u organización ya no está activa. Revisa la cuenta y la organización que informa `/status`, y pide al administrador de tu organización que restablezca el acceso.

1236* Si [`ANTHROPIC_BASE_URL`](/docs/es/env-vars) apunta a una [puerta de enlace LLM](/docs/es/llm-gateway), el texto después de `401` es el mensaje de tu puerta de enlace en lugar del de Anthropic, y `/login` no lo cambia. Corrige la credencial que tu puerta de enlace espera en su lugar.1242* Si [`ANTHROPIC_BASE_URL`](/docs/es/env-vars) apunta a un [gateway de LLM](/docs/es/llm-gateway), el texto después de `401` es el mensaje de tu gateway y no el de Anthropic, y `/login` no lo cambia. En su lugar, corrige la credencial que espera tu gateway.

1237 1243 

1238<h3 id="login-expired">1244<h3 id="login-expired">

1239 Inicio de sesión expirado1245 Inicio de sesión expirado

1240</h3>1246</h3>

1241 1247 

1242Claude Code intentó renovar tu inicio de sesión guardado de claude.ai y el servicio OAuth rechazó el token de actualización almacenado, por lo que Claude Code borró las credenciales guardadas. Después de eso, cada solicitud de modelo se detiene localmente con este mensaje antes de llegar a la API, porque solo `/login` puede crear nuevas credenciales.1248Claude Code intentó renovar tu inicio de sesión de claude.ai guardado y el servicio de OAuth rechazó el token de actualización almacenado, así que Claude Code borró las credenciales guardadas. Después de eso, cada solicitud al modelo se detiene localmente con este mensaje antes de llegar a la API, porque solo `/login` puede crear credenciales nuevas.

1243 1249 

1244Antes de v2.1.206, Claude Code enviaba la solicitud de modelo de todas formas con cualquier credencial que permaneciera en el entorno, y cada modelo fallaba con [Hay un problema con el modelo seleccionado](#theres-an-issue-with-the-selected-model) o un 401 en lugar de un aviso para iniciar sesión.1250Antes de v2.1.206, Claude Code enviaba de todos modos la solicitud al modelo con la credencial que quedara en el entorno, y entonces todos los modelos fallaban con [Hay un problema con el modelo seleccionado](#theres-an-issue-with-the-selected-model) o un 401 en lugar de pedirte que iniciaras sesión.

1245 1251 

1246```text theme={null}1252```text theme={null}

1247Login expired · Please run /login1253Login expired · Please run /login

1248```1254```

1249 1255 

1250En [modo no interactivo](/docs/es/headless) (`-p`) y [Agent SDK](/docs/es/agent-sdk/overview), el mensaje se lee de la siguiente manera, y el código de error estructurado es `authentication_failed`:1256En [modo no interactivo](/docs/es/headless) (`-p`) y en el [Agent SDK](/docs/es/agent-sdk/overview), el mensaje dice lo siguiente, y el código de error estructurado es `authentication_failed`:

1251 1257 

1252```text theme={null}1258```text theme={null}

1253Failed to authenticate: OAuth session expired and could not be refreshed1259Failed to authenticate: OAuth session expired and could not be refreshed

1254```1260```

1255 1261 

1256Este no es el mismo estado que [Token OAuth revocado o expirado](#oauth-token-revoked-or-expired). Esos mensajes reportan un rechazo que la API devolvió. Claude Code mismo produce `Login expired` para un inicio de sesión que ya falló al renovar, por lo que no envía solicitud. Cuando la renovación falla porque la cuenta misma está suspendida en lugar de que el inicio de sesión sea antiguo, Claude Code muestra [Tu cuenta está en espera](#your-account-is-on-hold) en su lugar.1262Este no es el mismo estado que [Token de OAuth revocado o expirado](#oauth-token-revoked-or-expired). Esos mensajes informan un rechazo que devolvió la API. El propio Claude Code produce `Login expired` para un inicio de sesión que ya no pudo renovar, así que no envía ninguna solicitud. Cuando la renovación falla porque la propia cuenta está suspendida y no porque el inicio de sesión esté obsoleto, Claude Code muestra [Tu cuenta está en espera](#your-account-is-on-hold) en su lugar.

1257 1263 

1258Las sesiones autenticadas con una clave API, [`CLAUDE_CODE_OAUTH_TOKEN`](/docs/es/env-vars), o un proveedor de terceros no usan el inicio de sesión guardado y nunca ven este mensaje.1264Las sesiones autenticadas con una clave de API, [`CLAUDE_CODE_OAUTH_TOKEN`](/docs/es/env-vars) o un proveedor de terceros no usan el inicio de sesión guardado y nunca ven este mensaje.

1259 1265 

1260Puedes verificar este estado antes de que una solicitud falle: [`/status`](/docs/es/commands) muestra una fila `Login` que dice `Expired — log in again`, más la organización y correo electrónico que tiene guardados para el inicio de sesión expirado. La fila aparece solo cuando el inicio de sesión guardado es tu credencial activa y ya no se puede renovar. Las sesiones autenticadas de otra manera no muestran la fila, incluso si un inicio de sesión expirado permanece guardado. Antes de v2.1.210, `/status` no daba indicación en este estado de que un inicio de sesión hubiera existido alguna vez, porque la credencial borrada no le dejaba nada para reportar.1266Puedes comprobar este estado antes de que falle una solicitud: [`/status`](/docs/es/commands) muestra una fila `Login` que dice `Expired — log in again`, además de la organización y el correo electrónico que tiene guardados para el inicio de sesión expirado. La fila aparece solo cuando el inicio de sesión guardado es tu credencial activa y ya no se puede renovar. Las sesiones autenticadas de otra forma no muestran la fila, aunque siga guardado un inicio de sesión expirado. Antes de v2.1.210, `/status` no daba ninguna indicación en este estado de que alguna vez hubiera existido un inicio de sesión, porque la credencial borrada no le dejaba nada que informar.

1261 1267 

1262**Qué hacer:**1268**Qué hacer:**

1263 1269 

1264* Ejecuta `/login` para iniciar sesión nuevamente. Reintentar sin iniciar sesión muestra el mismo mensaje en cada solicitud.1270* Ejecuta `/login` para volver a iniciar sesión. Reintentar sin iniciar sesión muestra el mismo mensaje en cada solicitud.

1265* En modo no interactivo, ejecuta `claude` en el mismo entorno, completa `/login`, luego reejecutar tu comando. Para automatización que no puede iniciar sesión interactivamente, auténticate con `ANTHROPIC_API_KEY` o [genera un token de larga duración con `claude setup-token`](/docs/es/authentication#generate-a-long-lived-token).1271* Si inicias sesión con tu cuenta de claude.ai en otra ventana de Claude Code, consulta [No has iniciado sesión](#not-logged-in) para saber cuándo esta sesión empieza a usar ese inicio de sesión por sí sola.

1266* Si iniciar sesión sigue fallando, consulta [Inicio de sesión y autenticación](/docs/es/troubleshoot-install#login-and-authentication)1272* En modo no interactivo, ejecuta `claude` en el mismo entorno, completa `/login` y luego vuelve a ejecutar tu comando. Para automatización que no puede iniciar sesión de forma interactiva, autentícate con `ANTHROPIC_API_KEY` o [genera un token de larga duración con `claude setup-token`](/docs/es/authentication#generate-a-long-lived-token).

1273* Si el inicio de sesión sigue fallando, consulta [Inicio de sesión y autenticación](/docs/es/troubleshoot-install#login-and-authentication)

1267 1274 

1268<h3 id="could-not-refresh-your-login">1275<h3 id="could-not-refresh-your-login">

1269 No se pudo actualizar tu inicio de sesión porque otro proceso de Claude Code lo está actualizando1276 No se pudo renovar tu inicio de sesión porque otro proceso de Claude Code lo está renovando

1270</h3>1277</h3>

1271 1278 

1272Este mensaje no significa que tu inicio de sesión fue rechazado. Tu inicio de sesión guardado de claude.ai había expirado y necesitaba renovación. Otro proceso de Claude Code en la misma máquina mantenía el bloqueo de actualización compartida, o salió y lo dejó atrás, y la actualización no hizo progreso mientras esta sesión esperaba. Claude Code detiene la solicitud antes de enviarla:1279Este mensaje no significa que tu inicio de sesión haya sido rechazado. Tu inicio de sesión de claude.ai guardado había expirado y necesitaba renovarse. Otro proceso de Claude Code en la misma máquina tenía el bloqueo de renovación compartido, o terminó y lo dejó sin liberar, y la renovación no avanzó mientras esta sesión esperaba. Claude Code detiene la solicitud antes de enviarla:

1273 1280 

1274```text theme={null}1281```text theme={null}

1275Could not refresh your login because another Claude Code process is refreshing it (or exited mid-refresh) · Try again in a minute; if it keeps happening, close other Claude Code windows or sign in again with /login1282Could not refresh your login because another Claude Code process is refreshing it (or exited mid-refresh) · Try again in a minute; if it keeps happening, close other Claude Code windows or sign in again with /login

1276```1283```

1277 1284 

1278En [modo no interactivo](/docs/es/headless) (`-p`) y [Agent SDK](/docs/es/agent-sdk/overview), el mensaje se lee de la siguiente manera, y el código de error estructurado es `server_error`:1285En [modo no interactivo](/docs/es/headless) (`-p`) y en el [Agent SDK](/docs/es/agent-sdk/overview), el mensaje dice lo siguiente, y el código de error estructurado es `server_error`:

1279 1286 

1280```text theme={null}1287```text theme={null}

1281Failed to refresh OAuth token: another Claude Code process is refreshing it or exited mid-refresh. This is usually transient; retry in a minute, and if it persists close other Claude Code processes or sign in again1288Failed to refresh OAuth token: another Claude Code process is refreshing it or exited mid-refresh. This is usually transient; retry in a minute, and if it persists close other Claude Code processes or sign in again

1282```1289```

1283 1290 

1284Las sesiones autenticadas con una clave API, [`CLAUDE_CODE_OAUTH_TOKEN`](/docs/es/env-vars), o un proveedor de terceros no usan el inicio de sesión guardado y nunca ven este mensaje.1291Las sesiones autenticadas con una clave de API, [`CLAUDE_CODE_OAUTH_TOKEN`](/docs/es/env-vars) o un proveedor de terceros no usan el inicio de sesión guardado y nunca ven este mensaje.

1285 1292 

1286**Qué hacer:**1293**Qué hacer:**

1287 1294 

1288* Intenta nuevamente en un minuto. Si otro proceso completa la actualización primero, esta sesión usa el inicio de sesión renovado.1295* Vuelve a intentarlo en un minuto. Si otro proceso completa primero la renovación, esta sesión usa el inicio de sesión renovado.

1289* Si el mensaje sigue regresando, cierra otras ventanas y procesos de Claude Code, luego reintenta.1296* Si el mensaje sigue apareciendo, cierra las demás ventanas y procesos de Claude Code y vuelve a intentarlo.

1290* Si regresa sin otro proceso de Claude Code ejecutándose, ejecuta `/login`. Iniciar sesión nuevamente no espera en el bloqueo de actualización.1297* Si aparece sin que haya ningún otro proceso de Claude Code en ejecución, ejecuta `/login`. Volver a iniciar sesión no espera al bloqueo de renovación.

1291 1298 

1292<h3 id="couldnt-save-your-login">1299<h3 id="couldnt-save-your-login">

1293 No se pudo guardar tu inicio de sesión1300 No se pudo guardar tu inicio de sesión

1294</h3>1301</h3>

1295 1302 

1296Iniciaste sesión con claude.ai, pero Claude Code no pudo guardar el inicio de sesión en su almacén de credenciales, por lo que el inicio de sesión no se completó. En macOS esto puede suceder cuando el llavero de inicio de sesión se bloquea, por ejemplo en suspensión o inactividad, después de que Claude Code ya haya leído o guardado credenciales en él durante la misma sesión.1303Iniciaste sesión con claude.ai, pero Claude Code no pudo guardar el inicio de sesión en su almacén de credenciales, así que el inicio de sesión no se completó. En macOS, esto puede ocurrir cuando el llavero de inicio de sesión se bloquea, por ejemplo, al entrar en reposo o por inactividad, después de que Claude Code ya haya leído o guardado credenciales en él durante la misma sesión.

1297 1304 

1298```text theme={null}1305```text theme={null}

1299Couldn't save your login. If your Mac's keychain is locked, unlock it and log in again.1306Couldn't save your login. If your Mac's keychain is locked, unlock it and log in again.

1300Couldn't save your login. Try logging in again.1307Couldn't save your login. Try logging in again.

1301```1308```

1302 1309 

1303La primera forma aparece en macOS y la segunda en todas partes. Un fallo transitorio del almacén de credenciales, como un tiempo de espera o un almacén ilegible, produce el mismo mensaje.1310La primera forma aparece en macOS y la segunda en todas las demás plataformas. Un fallo transitorio del almacén de credenciales, como que se agote el tiempo de espera o un almacén ilegible, produce el mismo mensaje.

1304 1311 

1305**Qué hacer:**1312**Qué hacer:**

1306 1313 

1307* En macOS, desbloquea el llavero de inicio de sesión, luego ejecuta `/login` nuevamente1314* En macOS, desbloquea el llavero de inicio de sesión y luego vuelve a ejecutar `/login`

1308* En otras plataformas, ejecuta `/login` nuevamente1315* En otras plataformas, vuelve a ejecutar `/login`

1309* Si el inicio de sesión aún no se guarda, consulta [No iniciaste sesión o token expirado](/docs/es/troubleshoot-install#not-logged-in-or-token-expired) para el comando de desbloqueo del llavero y otros pasos de recuperación del almacenamiento de credenciales1316* Si el inicio de sesión sigue sin guardarse, consulta [No has iniciado sesión o el token expiró](/docs/es/troubleshoot-install#not-logged-in-or-token-expired) para ver el comando para desbloquear el llavero y otros pasos de recuperación del almacenamiento de credenciales

1310 1317 

1311<h3 id="failed-to-start-oauth-callback-server">1318<h3 id="failed-to-start-oauth-callback-server">

1312 Falló al iniciar el servidor de devolución de llamada OAuth1319 No se pudo iniciar el servidor de callback de OAuth

1313</h3>1320</h3>

1314 1321 

1315Cuando `/login`, `claude auth login`, o `claude setup-token` te inicia sesión a través del navegador, Claude Code abre un puerto de escucha en `127.0.0.1` para que tu navegador pueda devolver el resultado del inicio de sesión. Este mensaje significa que Claude Code no pudo abrir ese puerto, y el inicio de sesión se detiene antes de que aparezca una ventana del navegador o URL de inicio de sesión:1322Cuando `/login`, `claude auth login` o `claude setup-token` te inicia sesión a través del navegador, Claude Code abre un puerto de escucha en `127.0.0.1` para que tu navegador pueda devolverle el resultado del inicio de sesión. Este mensaje significa que Claude Code no pudo abrir ese puerto, y el inicio de sesión se detiene antes de que aparezca una ventana del navegador o una URL de inicio de sesión:

1316 1323 

1317```text theme={null}1324```text theme={null}

1318Failed to start OAuth callback server: Failed to start server. Is port 0 in use?1325Failed to start OAuth callback server: Failed to start server. Is port 0 in use?

1319```1326```

1320 1327 

1321Si tu mensaje termina con `Is port 0 in use?`, el intento de escuchar en la dirección de loopback IPv4 `127.0.0.1` falló completamente. Porque el fallo sucede antes de que exista una URL de inicio de sesión, el flujo `Paste code here if prompted` no está disponible como solución alternativa.1328Si tu mensaje termina con `Is port 0 in use?`, el intento de escuchar en la dirección de loopback IPv4 `127.0.0.1` falló directamente. Como el fallo ocurre antes de que exista una URL de inicio de sesión, el flujo `Paste code here if prompted` no está disponible como solución alternativa.

1322 1329 

1323**Qué hacer:**1330**Qué hacer:**

1324 1331 

1325* Para iniciar sesión ahora sin el oyente local: si usas una suscripción de claude.ai, ejecuta [`claude setup-token`](/docs/es/authentication#generate-a-long-lived-token) en una máquina donde el inicio de sesión funciona y configura el token que imprime como `CLAUDE_CODE_OAUTH_TOKEN` en esta máquina. De lo contrario, configura `ANTHROPIC_API_KEY` con una clave de la [Consola de Claude](https://platform.claude.com/settings/keys). [Precedencia de autenticación](/docs/es/authentication#authentication-precedence) explica cómo Claude Code elige entre credenciales.1332* Para iniciar sesión de inmediato sin el listener local: si usas una suscripción de claude.ai, ejecuta [`claude setup-token`](/docs/es/authentication#generate-a-long-lived-token) en una máquina donde el inicio de sesión funcione y define el token que imprime como `CLAUDE_CODE_OAUTH_TOKEN` en esta máquina. De lo contrario, define `ANTHROPIC_API_KEY` con una clave de la [Claude Console](https://platform.claude.com/settings/keys). [Precedencia de autenticación](/docs/es/authentication#authentication-precedence) explica cómo elige Claude Code entre credenciales.

1326* Para usar el inicio de sesión del navegador en esta máquina en su lugar, Claude Code debe poder escuchar en `127.0.0.1`. Si se ejecuta dentro de una sandbox, verifica que la política de la sandbox permita escuchar en puertos locales, luego ejecuta `/login` nuevamente. Si debería poder y aún falla, ejecuta `/feedback` para que el informe incluya los detalles de tu entorno.1333* Para usar en su lugar el inicio de sesión por navegador en esta máquina, Claude Code debe poder escuchar en `127.0.0.1`. Si se ejecuta dentro de un sandbox, comprueba que la política del sandbox permita escuchar en puertos locales y luego vuelve a ejecutar `/login`. Si debería poder hacerlo y sigue fallando, ejecuta `/feedback` para que el informe incluya los detalles de tu entorno.

1327 1334 

1328<h3 id="claude-login-not-accepted">1335<h3 id="claude-login-not-accepted">

1329 Inicio de sesión de Claude no aceptado1336 Inicio de sesión de Claude no aceptado

1330</h3>1337</h3>

1331 1338 

1332Intentaste iniciar una [sesión en la nube](/docs/es/claude-code-on-the-web), y el servidor se negó a crearla con un 401: no aceptó el inicio de sesión de Claude que esta máquina envió, generalmente porque el inicio de sesión expiró o fue revocado.1339Intentaste iniciar una [sesión en la nube](/docs/es/claude-code-on-the-web), y el servidor se negó a crearla con un 401: no aceptó el inicio de sesión de Claude que envió esta máquina, normalmente porque el inicio de sesión expiró o fue revocado.

1333 1340 

1334La primera parte de la línea es la razón propia del servidor cuando da una. De lo contrario, la línea se lee:1341La primera parte de la línea es el propio motivo del servidor cuando lo proporciona. De lo contrario, la línea dice:

1335 1342 

1336```text theme={null}1343```text theme={null}

1337Claude login not accepted · Run /login, then try again1344Claude login not accepted · Run /login, then try again


1339 1346 

1340**Qué hacer:**1347**Qué hacer:**

1341 1348 

1342* Ejecuta `/login`, completa el inicio de sesión, luego inicia la sesión nuevamente1349* Ejecuta `/login`, completa el inicio de sesión y luego vuelve a iniciar la sesión

1343 1350 

1344<h3 id="artifacts-need-a-claude-ai-login">1351<h3 id="artifacts-need-a-claude-ai-login">

1345 Los artefactos necesitan un inicio de sesión de claude.ai1352 Los artefactos necesitan un inicio de sesión de claude.ai

1346</h3>1353</h3>

1347 1354 

1348Claude Code rechazó una publicación o lectura de [artefactos](/docs/es/artifacts) porque la sesión no tiene un inicio de sesión de claude.ai que pueda usar para artefactos.1355Claude Code rechazó la publicación o lectura de un [artefacto](/docs/es/artifacts) porque la sesión no tiene ningún inicio de sesión de claude.ai que pueda usar para artefactos.

1349 1356 

1350Cada forma del mensaje comienza con las mismas palabras, seguidas de un remedio que depende de cómo tu sesión se autentica. Sin credencial competidora se lee:1357Todas las formas del mensaje empiezan con las mismas palabras, seguidas de una solución que depende de cómo se autentica tu sesión. Sin ninguna credencial en competencia, dice:

1351 1358 

1352```text theme={null}1359```text theme={null}

1353Artifacts need a claude.ai login. Run /login and select "Claude account with subscription", then retry — the "Anthropic Console account" option does not provide claude.ai credentials.1360Artifacts need a claude.ai login. Run /login and select "Claude account with subscription", then retry — the "Anthropic Console account" option does not provide claude.ai credentials.


1356**Qué hacer:**1363**Qué hacer:**

1357 1364 

1358* Ejecuta `/login` y selecciona **Claude account with subscription**. La opción **Anthropic Console account** no proporciona credenciales de claude.ai.1365* Ejecuta `/login` y selecciona **Claude account with subscription**. La opción **Anthropic Console account** no proporciona credenciales de claude.ai.

1359* Cuando el mensaje nombra una credencial que toma precedencia, como `ANTHROPIC_API_KEY`, una configuración `apiKeyHelper`, o una clave de Console guardada por un `/login` anterior, elimínalo de la manera que el mensaje dice, luego ejecuta `/login`1366* Cuando el mensaje menciona una credencial que tiene precedencia, como `ANTHROPIC_API_KEY`, un ajuste `apiKeyHelper` o una clave de Console guardada por un `/login` anterior, quítala de la forma que indica el mensaje y luego ejecuta `/login`

1360* Cuando el mensaje dice que esta sesión remota se autentica a través de la máquina que la lanzó, inicia sesión en claude.ai en esa máquina, luego reconecta la sesión1367* Cuando el mensaje dice que esta sesión remota se autentica a través de la máquina que la inició, inicia sesión en claude.ai en esa máquina y luego vuelve a conectar la sesión

1361* Cuando el mensaje dice que la credencial es inyectada por el entorno anfitrión de la sesión, no puedes cambiarla en esa sesión; inicia una sesión que esté conectada a claude.ai1368* Cuando el mensaje dice que la credencial la inyecta el entorno anfitrión de la sesión, no puedes cambiarla en esa sesión; inicia una sesión que tenga la sesión iniciada en claude.ai

1362* Consulta [Disponibilidad](/docs/es/artifacts#availability) para los otros requisitos que los artefactos tienen, como plan, proveedor de modelo y política de organización1369* Consulta [Disponibilidad](/docs/es/artifacts#availability) para ver los demás requisitos de los artefactos, como el plan, el proveedor del modelo y la política de la organización

1363 1370 

1364<h3 id="administrator-policy-requires-a-cloud-gateway-sign-in">1371<h3 id="administrator-policy-requires-a-cloud-gateway-sign-in">

1365 La política del administrador requiere un inicio de sesión de puerta de enlace en la nube1372 La política del administrador requiere iniciar sesión en el Cloud gateway

1366</h3>1373</h3>

1367 1374 

1368La [configuración administrada](/docs/es/managed-settings) de un administrador en esta máquina configuró [`forceLoginMethod`](/docs/es/settings-reference#forceloginmethod) a `"gateway"` o configuró [`forceLoginGatewayUrl`](/docs/es/settings-reference#forcelogingatewayurl). A menos que selecciones un proveedor en la nube a través de una variable como `CLAUDE_CODE_USE_BEDROCK`, Claude Code entonces acepta solo el inicio de sesión de [puerta de enlace de aplicaciones de Claude](/docs/es/claude-apps-gateway). Ves uno de dos mensajes:1375La [configuración administrada](/docs/es/managed-settings) de un administrador en esta máquina establece [`forceLoginMethod`](/docs/es/settings-reference#forceloginmethod) en `"gateway"` o define [`forceLoginGatewayUrl`](/docs/es/settings-reference#forcelogingatewayurl). A menos que selecciones un proveedor de nube mediante una variable como `CLAUDE_CODE_USE_BEDROCK`, Claude Code acepta entonces solo el inicio de sesión del [gateway de aplicaciones de Claude](/docs/es/claude-apps-gateway). Ves uno de dos mensajes:

1369 1376 

1370```text theme={null}1377```text theme={null}

1371Not signed in to the Cloud gateway — run /login.1378Not signed in to the Cloud gateway — run /login.

1372```1379```

1373 1380 

1374Las solicitudes de modelo fallan con este mensaje cuando la sesión no tiene un inicio de sesión de puerta de enlace, por ejemplo porque no has ejecutado `/login` desde que la política llegó a la máquina.1381Las solicitudes al modelo fallan con este mensaje cuando la sesión no tiene un inicio de sesión en el gateway, por ejemplo, porque no has ejecutado `/login` desde que la política llegó a la máquina.

1375 1382 

1376Si la máquina también contiene una credencial emitida por Anthropic y la configuración administrada establece `forceLoginMethod` o `forceLoginOrgUUID`, Claude Code sale al iniciar en su lugar. Esa credencial puede ser una variable `ANTHROPIC_API_KEY` o `ANTHROPIC_AUTH_TOKEN`, una configuración `apiKeyHelper`, o una clave API guardada por un inicio de sesión anterior de Claude Console. El mensaje comienza:1383Si la máquina también tiene una credencial emitida por Anthropic y la configuración administrada establece `forceLoginMethod` o `forceLoginOrgUUID`, Claude Code termina al iniciar en su lugar. Esa credencial puede ser una variable `ANTHROPIC_API_KEY` o `ANTHROPIC_AUTH_TOKEN`, un ajuste `apiKeyHelper` o una clave de API guardada por un inicio de sesión anterior en Claude Console. El mensaje empieza así:

1377 1384 

1378```text theme={null}1385```text theme={null}

1379Administrator policy requires a Cloud gateway sign-in on this machine; the1386Administrator policy requires a Cloud gateway sign-in on this machine; the


1384**Qué hacer:**1391**Qué hacer:**

1385 1392 

1386* Ejecuta `/login` y completa el inicio de sesión en la pantalla **Cloud gateway**1393* Ejecuta `/login` y completa el inicio de sesión en la pantalla **Cloud gateway**

1387* Para el mensaje de inicio, elimina la configuración `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN`, o `apiKeyHelper` que configuraste. Para eliminar una clave API de Console guardada, ejecuta `claude auth logout`, que también elimina un inicio de sesión guardado de claude.ai. Si seleccionas un proveedor en la nube con `CLAUDE_CODE_USE_*`, la sesión entonces comienza sin inicio de sesión. De lo contrario, inicia `claude` y ejecuta `/login`1394* Para el mensaje de inicio, quita el ajuste `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN` o `apiKeyHelper` que configuraste. Para quitar una clave de API de Console guardada, ejecuta `claude auth logout`, que también quita un inicio de sesión de claude.ai guardado. Si seleccionas un proveedor de nube con `CLAUDE_CODE_USE_*`, la sesión se inicia entonces sin ningún inicio de sesión. De lo contrario, inicia `claude` y ejecuta `/login`

1388* Si crees que la máquina no debería requerir la puerta de enlace, pide al administrador que la administra que elimine `forceLoginMethod` y `forceLoginGatewayUrl` de su configuración administrada1395* Si crees que la máquina no debería requerir el gateway, pide al administrador que la gestiona que quite `forceLoginMethod` y `forceLoginGatewayUrl` de su configuración administrada

1389 1396 

1390En v2.1.265, una regresión también mostró el primer mensaje en algunas configuraciones de puerta de enlace LLM y proxy que se autentican con una clave API, `apiKeyHelper`, o encabezados personalizados, incluso sin requisito de administrador en la máquina. Actualiza a v2.1.266 o posterior. No necesitas cambiar tu configuración.1397En v2.1.265, una regresión también mostraba el primer mensaje en algunas configuraciones de gateway de LLM y proxy que se autentican con una clave de API, `apiKeyHelper` o encabezados personalizados, incluso sin ningún requisito del administrador en la máquina. Actualiza a v2.1.266 o posterior. No necesitas cambiar tu configuración.

1391 1398 

1392Antes de v2.1.261, en máquinas que establecen `forceLoginMethod` a `"gateway"`, Claude Code usaba un inicio de sesión guardado restante en lugar de fallar solicitudes de modelo, e informaba una credencial de entorno configurada con `This machine's managed settings require a first-party login` en lugar del mensaje de inicio. Antes de v2.1.265, una máquina cuya configuración administrada establecía solo `forceLoginGatewayUrl` no requería el inicio de sesión de puerta de enlace, y Claude Code usaba una credencial restante allí.1399Antes de v2.1.261, en máquinas que establecían `forceLoginMethod` en `"gateway"`, Claude Code usaba un inicio de sesión guardado que quedara en lugar de hacer fallar las solicitudes al modelo, e informaba una credencial de entorno configurada con `This machine's managed settings require a first-party login` en lugar del mensaje de inicio. Antes de v2.1.265, una máquina cuya configuración administrada definía solo `forceLoginGatewayUrl` no requería el inicio de sesión en el gateway, y Claude Code usaba ahí una credencial que quedara.

1393 1400 

1394<h3 id="your-account-is-on-hold">1401<h3 id="your-account-is-on-hold">

1395 Tu cuenta está en espera1402 Tu cuenta está en espera

1396</h3>1403</h3>

1397 1404 

1398La cuenta de Claude detrás de tu inicio de sesión ha sido suspendida. Claude Code muestra el primer mensaje cuando intenta renovar tu inicio de sesión guardado y se entera de la suspensión, y el segundo cuando un inicio de sesión que completas en el navegador lo reporta:1405La cuenta de Claude asociada a tu inicio de sesión fue suspendida. Claude Code muestra el primer mensaje cuando intenta renovar tu inicio de sesión guardado y se entera de la suspensión, y el segundo cuando un inicio de sesión que completas en el navegador la informa:

1399 1406 

1400```text theme={null}1407```text theme={null}

1401Your account is on hold and can't use Claude Code. View details or appeal: https://claude.ai/restricted1408Your account is on hold and can't use Claude Code. View details or appeal: https://claude.ai/restricted

1402Your account is on hold and can't sign in to Claude Code. View details or appeal: https://claude.ai/restricted1409Your account is on hold and can't sign in to Claude Code. View details or appeal: https://claude.ai/restricted

1403```1410```

1404 1411 

1405Iniciar sesión nuevamente con la misma cuenta no borra el mensaje, porque la suspensión está en la cuenta en lugar del inicio de sesión. En [modo no interactivo](/docs/es/headless) (`-p`) y [Agent SDK](/docs/es/agent-sdk/overview), el código de error estructurado es `account_on_hold`. Antes de v2.1.235, Claude Code reportaba una cuenta suspendida como [Inicio de sesión expirado · Please run /login](#login-expired), cuyos pasos de recuperación no pueden borrar una suspensión.1412Volver a iniciar sesión con la misma cuenta no elimina el mensaje, porque la suspensión afecta a la cuenta y no al inicio de sesión. En [modo no interactivo](/docs/es/headless) (`-p`) y en el [Agent SDK](/docs/es/agent-sdk/overview), el código de error estructurado es `account_on_hold`. Antes de v2.1.235, Claude Code informaba una cuenta en espera como [Login expired · Please run /login](#login-expired), cuyos pasos de recuperación no pueden eliminar una suspensión.

1406 1413 

1407**Qué hacer:**1414**Qué hacer:**

1408 1415 

1409* Abre el enlace en el mensaje para ver los detalles de la suspensión o apelarla1416* Abre el enlace del mensaje para ver los detalles de la suspensión o apelarla

1410* Si tienes otra cuenta de Claude o una clave API que no está afectada por la suspensión, puedes seguir trabajando mientras se resuelve la suspensión: ejecuta `/login` con esa cuenta, o configura la clave con `ANTHROPIC_API_KEY`1417* Si tienes otra cuenta de Claude o una clave de API que no esté afectada por la suspensión, puedes seguir trabajando mientras se resuelve: ejecuta `/login` con esa cuenta, o define la clave con `ANTHROPIC_API_KEY`

1411 1418 

1412<h3 id="anthropic-profile-login-expired">1419<h3 id="anthropic-profile-login-expired">

1413 Inicio de sesión de perfil de Anthropic expirado1420 El inicio de sesión del perfil de Anthropic expiró

1414</h3>1421</h3>

1415 1422 

1416Claude Code se está autenticando a través de un perfil de credencial de Anthropic cuya credencial de inicio de sesión guardada ha expirado, y el perfil no contiene una credencial de actualización que Claude Code pueda usar para renovarla. Claude Code detiene cada solicitud localmente sin reintentar, porque un reintento leería la misma credencial expirada.1423Claude Code se está autenticando mediante un perfil de credenciales de Anthropic cuya credencial de inicio de sesión guardada expiró, y el perfil no contiene ninguna credencial de actualización que Claude Code pueda usar para renovarla. Claude Code detiene cada solicitud localmente sin reintentar, porque un reintento leería la misma credencial expirada.

1417 1424 

1418```text theme={null}1425```text theme={null}

1419Anthropic profile login expired · Re-authenticate your Anthropic profile1426Anthropic profile login expired · Re-authenticate your Anthropic profile

1420Anthropic profile login expired · Run /login to use your claude.ai account instead, or re-authenticate the profile1427Anthropic profile login expired · Run /login to use your claude.ai account instead, or re-authenticate the profile

1421```1428```

1422 1429 

1423Esto aparece solo cuando la credencial activa proviene de un perfil de credencial de Anthropic, uno que seleccionas con la variable de entorno `ANTHROPIC_PROFILE`, que Claude Code descubre como el perfil activo en tu directorio de configuración de Anthropic, o que Claude Code escribió cuando [iniciaste sesión sin una clave API](/docs/es/authentication#sign-in-without-an-api-key). Las sesiones que se autentican con una clave API, un token de portador como `ANTHROPIC_AUTH_TOKEN`, o un proveedor de terceros nunca ven este mensaje.1430Esto aparece solo cuando la credencial activa proviene de un perfil de credenciales de Anthropic: uno que seleccionas con la variable de entorno `ANTHROPIC_PROFILE`, que Claude Code descubre como el perfil activo en tu directorio de configuración de Anthropic, o que Claude Code escribió cuando [iniciaste sesión sin una clave de API](/docs/es/authentication#sign-in-without-an-api-key). Las sesiones que se autentican con una clave de API, un token bearer como `ANTHROPIC_AUTH_TOKEN` o un proveedor de terceros nunca ven este mensaje.

1424 1431 

1425En una máquina que [ofrece el inicio de sesión sin clave](/docs/es/authentication#sign-in-without-an-api-key), ejecuta `/login`, elige la cuenta de Anthropic Console, e inicia sesión nuevamente para renovar un perfil que el inicio de sesión sin clave de Console o el CLI de Claude Platform `ant auth login` escribió. Claude Code reemplaza la credencial expirada en ese perfil. Para un perfil de federación u otro que creó una herramienta, `/login` no renueva la credencial. Qué forma ves depende de si seleccionaste el perfil o Claude Code lo descubrió:1432En una máquina que [ofrece el inicio de sesión sin clave](/docs/es/authentication#sign-in-without-an-api-key), ejecuta `/login`, elige la cuenta de Anthropic Console y vuelve a iniciar sesión para renovar un perfil que escribió el inicio de sesión sin clave de Console o el `ant auth login` de la Claude Platform CLI. Claude Code reemplaza la credencial expirada en ese perfil. Para un perfil de federación o uno creado por otra herramienta, `/login` no renueva la credencial. La forma que ves depende de si seleccionaste el perfil o si Claude Code lo descubrió:

1426 1433 

1427* Cuando estableces `ANTHROPIC_PROFILE` explícitamente, el mensaje termina con `Re-authenticate your Anthropic profile`.1434* Cuando defines `ANTHROPIC_PROFILE` explícitamente, el mensaje termina con `Re-authenticate your Anthropic profile`.

1428* Cuando Claude Code descubrió el perfil de tu directorio de configuración, el mensaje ofrece `/login`, porque Claude Code da precedencia a un `/login` que funciona sobre el perfil descubierto y luego se autentica con tu cuenta de claude.ai o Console en su lugar. Antes de v2.1.234, Claude Code mostraba el formulario `Re-authenticate your Anthropic profile` en este caso también.1435* Cuando Claude Code descubrió el perfil desde tu directorio de configuración, el mensaje ofrece `/login`, porque Claude Code da a un `/login` que funcione precedencia sobre el perfil descubierto y entonces se autentica con tu cuenta de claude.ai o de Console en su lugar. Antes de v2.1.234, Claude Code también mostraba la forma `Re-authenticate your Anthropic profile` en este caso.

1429 1436 

1430**Qué hacer:**1437**Qué hacer:**

1431 1438 

1432* Inicia sesión en el perfil nuevamente, luego reintenta: en una máquina que [ofrece el inicio de sesión sin clave](/docs/es/authentication#sign-in-without-an-api-key), ejecuta `/login` y elige la cuenta de Anthropic Console para un perfil que el inicio de sesión sin clave de Console o el CLI de Claude Platform `ant auth login` escribió; para otros perfiles, usa la herramienta que los creó1439* Vuelve a iniciar sesión en el perfil y luego reintenta: en una máquina que [ofrece el inicio de sesión sin clave](/docs/es/authentication#sign-in-without-an-api-key), ejecuta `/login` y elige la cuenta de Anthropic Console para un perfil que escribió el inicio de sesión sin clave de Console o el `ant auth login` de la Claude Platform CLI; para otros perfiles, usa la herramienta que los creó

1433* Si un administrador aprovisionó la credencial del perfil, pídele que emita una nueva1440* Si un administrador aprovisionó la credencial del perfil, pídele que emita una nueva

1434* Ejecuta `/status` para confirmar la fuente de credencial activa y el nombre del perfil1441* Ejecuta `/status` para confirmar la fuente de credenciales activa y el nombre del perfil

1435* Para dejar de usar el perfil, desactiva `ANTHROPIC_PROFILE` si lo estableciste, luego auténticate de otra manera, como `/login` o `ANTHROPIC_API_KEY`1442* Para dejar de usar el perfil, elimina la definición de `ANTHROPIC_PROFILE` si la definiste y luego autentícate de otra forma, como `/login` o `ANTHROPIC_API_KEY`

1436 1443 

1437<h3 id="oauth-scope-requirement">1444<h3 id="oauth-scope-requirement">

1438 Requisito de alcance OAuth1445 Requisito de alcance de OAuth

1439</h3>1446</h3>

1440 1447 

1441El token almacenado es anterior a un alcance de permiso que una característica más nueva necesita:1448El token almacenado es anterior a un alcance de permisos que necesita una función más reciente:

1442 1449 

1443```text theme={null}1450```text theme={null}

1444OAuth token does not meet scope requirement: user:profile1451OAuth token does not meet scope requirement: user:profile


1452 claude.ai rechazó el token de sesión1459 claude.ai rechazó el token de sesión

1453</h3>1460</h3>

1454 1461 

1455Una solicitud de [conector de claude.ai](/docs/es/mcp#use-mcp-servers-from-claude-ai) falló porque claude.ai rechazó el token de tu inicio de sesión de Claude Code. El token rechazado es tu inicio de sesión, no la autorización propia del conector en claude.ai, por lo que autorizar el conector nuevamente no lo resuelve. En `/mcp`, el conector se muestra como `session token rejected` y su vista de detalle se lee:1462Una solicitud de un [conector de claude.ai](/docs/es/mcp#use-mcp-servers-from-claude-ai) falló porque claude.ai rechazó el token de tu inicio de sesión de Claude Code. El token rechazado es tu inicio de sesión, no la autorización propia del conector en claude.ai, así que volver a autorizar el conector no lo resuelve. En `/mcp`, el conector aparece como `session token rejected` y su vista de detalle dice:

1456 1463 

1457```text theme={null}1464```text theme={null}

1458claude.ai rejected the session token. Run /login, then reconnect.1465claude.ai rejected the session token. Run /login, then reconnect.


1460 1467 

1461**Qué hacer:**1468**Qué hacer:**

1462 1469 

1463* Ejecuta `/login` para iniciar sesión nuevamente1470* Ejecuta `/login` para volver a iniciar sesión

1464* Reconecta el conector desde `/mcp`, o ejecuta `/mcp reconnect <server>`. Reconectar antes de iniciar sesión nuevamente deja el conector en el mismo estado. La opción **Reconnect** del panel `/mcp` reporta `your claude.ai session token was rejected`; el formulario `/mcp reconnect <server>` escrito reporta una reconexión exitosa incluso aunque el token aún sea rechazado.1471* Vuelve a conectar el conector desde `/mcp`, o ejecuta `/mcp reconnect <server>`. Reconectar antes de volver a iniciar sesión deja el conector en el mismo estado. La opción **Reconnect** del panel `/mcp` informa `your claude.ai session token was rejected`; la forma escrita `/mcp reconnect <server>` informa una reconexión correcta aunque el token siga rechazado.

1465 1472 

1466Antes de v2.1.222, Claude Code marcaba el conector como necesitando autenticación en su lugar, lo que te apuntaba al flujo de autorización del conector incluso aunque completarlo no resolviera el estado.1473Antes de v2.1.222, Claude Code marcaba el conector como que necesitaba autenticación, lo que te dirigía al flujo de autorización del conector aunque completarlo no resolvía el estado.

1467 1474 

1468<h3 id="mcp-server-needs-you-to-sign-in-again">1475<h3 id="mcp-server-needs-you-to-sign-in-again">

1469 El servidor MCP necesita que inicies sesión nuevamente1476 El servidor MCP necesita que vuelvas a iniciar sesión

1470</h3>1477</h3>

1471 1478 

1472Un [servidor MCP](/docs/es/mcp) remoto rechazó la credencial en una llamada de herramienta a mitad de sesión, generalmente porque un inicio de sesión o token expiró o porque el token carece de un permiso que la herramienta necesita. La llamada de herramienta falla, y `/mcp` marca el servidor como [necesitando autenticación](/docs/es/mcp#authenticate-with-remote-mcp-servers).1479Un [servidor MCP](/docs/es/mcp) remoto rechazó la credencial en una llamada a herramienta a mitad de la sesión, normalmente porque un inicio de sesión o un token expiró o porque el token carece de un permiso que la herramienta necesita. La llamada a herramienta falla, y `/mcp` marca el servidor como [que necesita autenticación](/docs/es/mcp#authenticate-with-remote-mcp-servers).

1473 1480 

1474Para un servidor en el que inicias sesión desde Claude Code, incluyendo un conector de claude.ai, el inicio de sesión expiró o fue revocado:1481Para un servidor en el que inicias sesión desde Claude Code, incluido un conector de claude.ai, el inicio de sesión expiró o fue revocado:

1475 1482 

1476```text theme={null}1483```text theme={null}

1477MCP server "<name>" needs you to sign in again (run /mcp to re-authenticate)1484MCP server "<name>" needs you to sign in again (run /mcp to re-authenticate)

1478```1485```

1479 1486 

1480Ejecuta `/mcp`, selecciona el servidor, e inicia sesión nuevamente desde su menú.1487Ejecuta `/mcp`, selecciona el servidor y vuelve a iniciar sesión desde su menú.

1481 1488 

1482Para un servidor configurado con un script [`headersHelper`](/docs/es/mcp#use-dynamic-headers-for-custom-authentication), Claude Code ya ha vuelto a ejecutar el helper e reintentado la llamada una vez antes de mostrar esto:1489Para un servidor configurado con un script [`headersHelper`](/docs/es/mcp#use-dynamic-headers-for-custom-authentication), Claude Code ya volvió a ejecutar el helper y reintentó la llamada una vez antes de mostrar esto:

1483 1490 

1484```text theme={null}1491```text theme={null}

1485MCP server "<name>" rejected the credential from its headersHelper (check the helper and run /mcp to reconnect, or to authenticate if the server also uses OAuth)1492MCP server "<name>" rejected the credential from its headersHelper (check the helper and run /mcp to reconnect, or to authenticate if the server also uses OAuth)

1486```1493```

1487 1494 

1488Verifica que el helper devuelva una credencial que el servidor acepte, luego reconecta desde `/mcp`, que vuelve a ejecutar el helper.1495Comprueba que el helper devuelva una credencial que el servidor acepte y luego vuelve a conectar desde `/mcp`, que ejecuta el helper de nuevo.

1489 1496 

1490Para un servidor con un encabezado `Authorization` estático en su configuración:1497Para un servidor con un encabezado `Authorization` estático en su configuración:

1491 1498 


1493MCP server "<name>" rejected the Authorization header in its config (update it, then run /mcp to reconnect)1500MCP server "<name>" rejected the Authorization header in its config (update it, then run /mcp to reconnect)

1494```1501```

1495 1502 

1496Actualiza el valor del encabezado donde el servidor está configurado, luego reconecta desde `/mcp`.1503Actualiza el valor del encabezado donde está configurado el servidor y luego vuelve a conectar desde `/mcp`.

1497 1504 

1498Antes de v2.1.273, los casos de inicio de sesión expirado, `headersHelper`, y encabezado `Authorization` todos mostraban `MCP server "<name>" requires re-authorization (token expired)`.1505Antes de v2.1.273, los casos de inicio de sesión expirado, `headersHelper` y encabezado `Authorization` mostraban todos `MCP server "<name>" requires re-authorization (token expired)`.

1499 1506 

1500Un servidor también puede rechazar una llamada de herramienta con HTTP 403 `insufficient_scope` para pedirte que autorices un alcance, a veces uno que tu token ya enumera. El mensaje nombra ese alcance:1507Un servidor también puede rechazar una llamada a herramienta con HTTP 403 `insufficient_scope` para pedirte que autorices un alcance, a veces uno que tu token ya incluye. El mensaje nombra ese alcance:

1501 1508 

1502```text theme={null}1509```text theme={null}

1503MCP server "<name>" needs additional permissions (scope: "<scope>") — run /mcp to re-authenticate1510MCP server "<name>" needs additional permissions (scope: "<scope>") — run /mcp to re-authenticate

1504```1511```

1505 1512 

1506Ejecuta `/mcp`, selecciona el servidor, y auténticate nuevamente desde su menú.1513Ejecuta `/mcp`, selecciona el servidor y vuelve a autenticarte desde su menú.

1507 1514 

1508Cuando la configuración del servidor no establece ni [`oauth.scopes`](/docs/es/mcp#restrict-oauth-scopes) ni [`authServerMetadataUrl`](/docs/es/mcp#override-oauth-metadata-discovery), Claude Code solicita el alcance que el servidor nombró. Con cualquiera de las dos configuraciones, Claude Code solicita los alcances de esa configuración en su lugar. Si fijaste `oauth.scopes`, agrega el alcance faltante a esa lista antes de autenticarte nuevamente.1515Cuando la configuración del servidor no define ni [`oauth.scopes`](/docs/es/mcp#restrict-oauth-scopes) ni [`authServerMetadataUrl`](/docs/es/mcp#override-oauth-metadata-discovery), Claude Code solicita el alcance que nombró el servidor. Con cualquiera de los dos ajustes, Claude Code solicita en su lugar los alcances de ese ajuste. Si fijaste `oauth.scopes`, añade el alcance que falta a esa lista antes de volver a autenticarte.

1509 1516 

1510Antes de v2.1.274, este caso mostraba el mensaje `needs you to sign in again`, y antes de v2.1.273 mostraba `requires re-authorization (token expired)` como los otros casos.1517Antes de v2.1.274, este caso mostraba el mensaje `needs you to sign in again`, y antes de v2.1.273 mostraba `requires re-authorization (token expired)` como los demás casos.

1511 1518 

1512<h3 id="mcp-server-url-is-missing-or-not-a-valid-url">1519<h3 id="mcp-server-url-is-missing-or-not-a-valid-url">

1513 URL del servidor MCP faltante o no válida1520 Falta la URL del servidor MCP o no es una URL válida

1514</h3>1521</h3>

1515 1522 

1516Claude Code se negó a iniciar un inicio de sesión OAuth para un servidor MCP remoto porque la `url` configurada del servidor no se analiza como una URL. A menos que Claude Code tenga un problema de configuración más específico para reportar para el servidor, ejecutar [`claude mcp login <name>`](/docs/es/mcp#authenticate-from-the-command-line) en tu shell imprime el rechazo como:1523Claude Code se negó a iniciar un inicio de sesión de OAuth para un servidor MCP remoto porque la `url` configurada del servidor no se puede analizar como una URL. A menos que Claude Code tenga un problema de configuración más específico que informar para el servidor, ejecutar [`claude mcp login <name>`](/docs/es/mcp#authenticate-from-the-command-line) en tu shell imprime el rechazo así:

1517 1524 

1518```text theme={null}1525```text theme={null}

1519Couldn't complete authentication for "<name>": This server's URL is missing or not a valid URL, so sign-in can't start. Fix the URL in its MCP config (or set the environment variable it uses) and try again.1526Couldn't complete authentication for "<name>": This server's URL is missing or not a valid URL, so sign-in can't start. Fix the URL in its MCP config (or set the environment variable it uses) and try again.


1521 1528 

1522**Qué hacer:**1529**Qué hacer:**

1523 1530 

1524* Configura la entrada `url` al punto final real del servidor donde el servidor está configurado, o configura la variable de entorno que su referencia [`${VAR}`](/docs/es/mcp#environment-variable-expansion-in-mcp-json) nombra, luego ejecuta el inicio de sesión nuevamente.1531* Define la `url` de la entrada con el endpoint real del servidor donde está configurado el servidor, o define la variable de entorno que nombra su [referencia `${VAR}`](/docs/es/mcp#environment-variable-expansion-in-mcp-json), y luego vuelve a ejecutar el inicio de sesión.

1525 1532 

1526<h3 id="issuer-mismatch-in-authorization-response">1533<h3 id="issuer-mismatch-in-authorization-response">

1527 Desajuste de emisor en la respuesta de autorización1534 Discrepancia del emisor en la respuesta de autorización

1528</h3>1535</h3>

1529 1536 

1530Durante un [inicio de sesión OAuth de MCP](/docs/es/mcp#authenticate-with-remote-mcp-servers), el servidor de autorización redirigió de vuelta a Claude Code con un parámetro `iss` que no nombra al emisor que Claude Code esperaba de los metadatos OAuth del servidor. Un emisor incorrecto en este paso es cómo se ve un ataque de mezcla de servidor de autorización, por lo que Claude Code falla el inicio de sesión en lugar de intercambiar el código de autorización. Claude Code muestra el error en el menú del servidor `/mcp` después del inicio de sesión del navegador:1537Durante un [inicio de sesión de OAuth de MCP](/docs/es/mcp#authenticate-with-remote-mcp-servers), el servidor de autorización redirigió de vuelta a Claude Code con un parámetro `iss` que no nombra el emisor que Claude Code esperaba según los metadatos de OAuth del servidor. Un emisor incorrecto en este paso es el aspecto que tiene un ataque de confusión (mix-up) del servidor de autorización, así que Claude Code hace fallar el inicio de sesión en lugar de intercambiar el código de autorización. Claude Code muestra el error en el menú del servidor de `/mcp` después del inicio de sesión en el navegador:

1531 1538 

1532```text theme={null}1539```text theme={null}

1533Issuer mismatch in authorization response (RFC 9207): expected "https://auth.example.com", received "https://other.example.com"1540Issuer mismatch in authorization response (RFC 9207): expected "https://auth.example.com", received "https://other.example.com"

1534```1541```

1535 1542 

1536`expected` es el emisor de los metadatos OAuth del servidor, y `received` es el valor `iss` que el redireccionamiento llevaba. Un inicio de sesión cuyo redireccionamiento no lleva parámetro `iss` pasa la verificación, a menos que los metadatos del servidor establezcan `authorization_response_iss_parameter_supported`, en cuyo caso Claude Code falla el inicio de sesión.1543`expected` es el emisor de los metadatos de OAuth del servidor, y `received` es el valor `iss` que llevaba la redirección. Un inicio de sesión cuya redirección no lleva ningún parámetro `iss` supera la comprobación, a menos que los metadatos del servidor definan `authorization_response_iss_parameter_supported`, en cuyo caso Claude Code hace fallar el inicio de sesión.

1537 1544 

1538**Qué hacer:**1545**Qué hacer:**

1539 1546 

1540* Intenta el inicio de sesión nuevamente desde `/mcp`1547* Vuelve a intentar el inicio de sesión desde `/mcp`

1541* Si el error se repite, repórtalo al operador del servidor. La solución es del lado del servidor: el servidor de autorización debe devolver el mismo emisor en el parámetro `iss` que anuncia en sus metadatos1548* Si el error se repite, infórmalo al operador del servidor. La solución es del lado del servidor: el servidor de autorización debe devolver en el parámetro `iss` el mismo emisor que anuncia en sus metadatos

1542* Para conectar mientras el servidor se está arreglando, inicia Claude Code con [`MCP_SDK_GENERATION=v1`](/docs/es/env-vars), cuyo [tiempo de ejecución](/docs/es/mcp#mcp-client-runtimes) no ejecuta esta verificación. Esto elimina una protección contra ataques de mezcla, así que prefiere la solución del lado del servidor1549* Para conectarte mientras se corrige el servidor, inicia Claude Code con [`MCP_SDK_GENERATION=v1`](/docs/es/env-vars), cuyo [runtime](/docs/es/mcp#mcp-client-runtimes) no realiza esta comprobación. Esto elimina una protección contra los ataques de confusión, así que es preferible la solución del lado del servidor

1543 1550 

1544Antes de v2.1.232, Claude Code usaba el tiempo de ejecución v2 solo en un lanzamiento gradual o cuando establecías `MCP_SDK_GENERATION=v2`.1551Antes de v2.1.232, Claude Code usaba el runtime v2 solo en un despliegue gradual o cuando definías `MCP_SDK_GENERATION=v2`.

1545 1552 

1546<h3 id="refusing-to-send-credentials-to-non-https-token-endpoint">1553<h3 id="refusing-to-send-credentials-to-non-https-token-endpoint">

1547 Negarse a enviar credenciales a punto final de token no HTTPS1554 Se rechaza enviar credenciales a un endpoint de token que no es https

1548</h3>1555</h3>

1549 1556 

1550En el [tiempo de ejecución v2](/docs/es/mcp#mcp-client-runtimes), Claude Code envía una solicitud de token [OAuth de MCP](/docs/es/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`. Este mensaje significa que el punto final de token del servidor no es ninguno de estos, por lo que Claude Code se detuvo antes de enviar la solicitud. Eso sucede después del inicio de sesión del navegador, por lo que el paso del navegador tiene éxito primero, y nuevamente cada vez que Claude Code actualiza el token del servidor.1557En el [runtime v2](/docs/es/mcp#mcp-client-runtimes), Claude Code envía una solicitud de token de [OAuth de MCP](/docs/es/mcp#authenticate-with-remote-mcp-servers) solo a un endpoint de token servido por HTTPS o en `localhost`, `127.0.0.1` o `::1`. Este mensaje significa que el endpoint de token del servidor no es ninguno de ellos, así que Claude Code se detuvo antes de enviar la solicitud. Eso ocurre después del inicio de sesión en el navegador, así que el paso del navegador se completa primero, y de nuevo cada vez que Claude Code renueva el token del servidor.

1551 1558 

1552En su forma completa, el mensaje viene del SDK de MCP y cita el punto final de token que rechazó. En el registro de depuración, sigue `Error during auth completion:` para un inicio de sesión o `Token refresh failed:` para una actualización. En tu shell, `claude mcp login <name>` lo imprime después de `Couldn't complete authentication for "<name>":`, y en una sesión, `/mcp` lo muestra bajo el menú del servidor:1559En su forma completa, el mensaje proviene del MCP SDK y cita el endpoint de token que rechazó. En el registro de depuración, sigue a `Error during auth completion:` para un inicio de sesión o a `Token refresh failed:` para una renovación. En tu shell, `claude mcp login <name>` lo imprime después de `Couldn't complete authentication for "<name>":`, y en una sesión, `/mcp` lo muestra en el menú del servidor:

1553 1560 

1554```text theme={null}1561```text theme={null}

1555Refusing to send credentials to non-https token endpoint 'http://192.168.1.50:8123/oauth/token'. OAuth token requests MUST use TLS (localhost / 127.0.0.1 / ::1 are exempt).1562Refusing to send credentials to non-https token endpoint 'http://192.168.1.50:8123/oauth/token'. OAuth token requests MUST use TLS (localhost / 127.0.0.1 / ::1 are exempt).

1556```1563```

1557 1564 

1558Claude Code trata una URL de servidor que tiene una cadena de consulta o un segmento de ruta largo que parece aleatorio como posiblemente secreto. Para tal servidor, redacta los errores de inicio de sesión que el SDK de MCP genera antes de mostrarlos o registrarlos. Este error entonces se lee como un nombre corto que puede cambiar entre versiones, como `io`, seguido de `from the MCP SDK for` y la URL del servidor redactada. Otros errores del SDK de MCP toman la misma forma allí. El mensaje redactado puede ser este error solo cuando el punto final de token del servidor es `http://` simple en una dirección que no sea `localhost`, `127.0.0.1`, o `::1`.1565Claude Code trata como posiblemente secreta una URL de servidor que tiene una cadena de consulta o un segmento de ruta largo con aspecto aleatorio. Para un servidor así, oculta los errores de inicio de sesión que genera el MCP SDK antes de mostrarlos o registrarlos. Este error se lee entonces como un nombre corto que puede cambiar entre versiones, como `io`, seguido de `from the MCP SDK for` y la URL del servidor ocultada. Otros errores del MCP SDK adoptan ahí la misma forma. El mensaje ocultado solo puede ser este error cuando el endpoint de token del servidor es `http://` simple en una dirección distinta de `localhost`, `127.0.0.1` o `::1`.

1559 1566 

1560**Qué hacer:**1567**Qué hacer:**

1561 1568 

1562* Sirve ese punto final de token sobre HTTPS, por ejemplo poniendo el servidor detrás de un proxy inverso o túnel que termina TLS y configurando el servidor para anunciar la dirección `https://`1569* Sirve ese endpoint de token por HTTPS, por ejemplo, colocando el servidor detrás de un proxy inverso o túnel que termine TLS y configurando el servidor para que anuncie la dirección `https://`

1563* Para conectar sin cambiar el servidor, inicia Claude Code con [`MCP_SDK_GENERATION=v1`](/docs/es/env-vars), cuyo [tiempo de ejecución](/docs/es/mcp#mcp-client-runtimes) no aplica esta regla y envía la solicitud de token sobre HTTP simple. Esa opción dura hasta que salgas y se aplica a cada servidor. El tiempo de ejecución v1 también omite la [verificación de emisor](#issuer-mismatch-in-authorization-response), así que prefiere servir el punto final sobre HTTPS1570* Para conectarte sin cambiar el servidor, inicia Claude Code con [`MCP_SDK_GENERATION=v1`](/docs/es/env-vars), cuyo [runtime](/docs/es/mcp#mcp-client-runtimes) no aplica esta regla y envía la solicitud de token por HTTP simple. Esa elección dura hasta que salgas y se aplica a todos los servidores. El runtime v1 también omite la [comprobación del emisor](#issuer-mismatch-in-authorization-response), así que es preferible servir el endpoint por HTTPS

1564 1571 

1565<h3 id="aws-credentials-expired-or-invalid">1572<h3 id="aws-credentials-expired-or-invalid">

1566 Las credenciales de AWS expiraron o son inválidas1573 Credenciales de AWS expiradas o no válidas

1567</h3>1574</h3>

1568 1575 

1569Tu token de sesión de AWS expiró o fue rechazado. Este mensaje aparece en un 401 de [Claude Platform en AWS](/docs/es/claude-platform-on-aws) o el [punto final de Mantle](/docs/es/amazon-bedrock#use-the-mantle-endpoint), que es cómo esos proveedores reportan un token de seguridad expirado.1576Tu token de sesión de AWS expiró o fue rechazado. Este mensaje aparece ante un 401 de [Claude Platform on AWS](/docs/es/claude-platform-on-aws) o del [endpoint de Mantle](/docs/es/amazon-bedrock#use-the-mantle-endpoint), que es como esos proveedores informan un token de seguridad expirado.

1570 1577 

1571La sugerencia de acción en el medio varía con tu configuración. La parte estable es el `AWS credentials expired or invalid` inicial:1578La sugerencia de acción en la parte central varía según tu configuración. La parte estable es el comienzo `AWS credentials expired or invalid`:

1572 1579 

1573```text theme={null}1580```text theme={null}

1574AWS credentials expired or invalid · run /login and select "Claude Platform on AWS · refresh credentials", or run `aws sso login --profile myprofile` in another terminal · API Error: 401 ...1581AWS credentials expired or invalid · run /login and select "Claude Platform on AWS · refresh credentials", or run `aws sso login --profile myprofile` in another terminal · API Error: 401 ...


1578 1585 

1579**Qué hacer:**1586**Qué hacer:**

1580 1587 

1581* Si la sugerencia dice que las credenciales son administradas por este entorno, la aplicación que lanzó Claude Code es propietaria de la credencial y los otros pasos aquí no aplican: reintenta, o contacta a tu administrador1588* Si la sugerencia dice que las credenciales las gestiona este entorno, la aplicación que inició Claude Code es la propietaria de la credencial y los demás pasos de aquí no se aplican: reintenta o contacta con tu administrador

1582* Si [`awsAuthRefresh`](/docs/es/amazon-bedrock#advanced-credential-configuration) está configurado, ejecuta el comando nombrado en el mensaje, como `aws sso login --profile myprofile`, en otra terminal y completa el inicio de sesión del navegador, luego reintenta. De lo contrario, actualiza la credencial de AWS que usas tú mismo: tu inicio de sesión SSO, claves de acceso, clave API, o token de proxy1589* Si [`awsAuthRefresh`](/docs/es/amazon-bedrock#advanced-credential-configuration) está definido, ejecuta el comando que nombra el mensaje, como `aws sso login --profile myprofile`, en otra terminal y completa el inicio de sesión en el navegador; luego reintenta. De lo contrario, renueva tú mismo la credencial de AWS que usas: tu inicio de sesión de SSO, claves de acceso, clave de API o token de proxy

1583* Con `awsAuthRefresh` configurado en una sesión interactiva, puedes en su lugar ejecutar `/login`, elegir **3rd-party platform**, luego seleccionar **Claude Platform on AWS · refresh credentials** bajo **Using 3rd-party platforms** para ejecutar el mismo comando sin reiniciar Claude Code. Consulta [Configurar credenciales de AWS](/docs/es/claude-platform-on-aws#1-configure-aws-credentials)1590* Con `awsAuthRefresh` definido en una sesión interactiva, puedes ejecutar en su lugar `/login`, elegir **3rd-party platform** y luego seleccionar **Claude Platform on AWS · refresh credentials** en **Using 3rd-party platforms** para ejecutar el mismo comando sin reiniciar Claude Code. Consulta [Configurar credenciales de AWS](/docs/es/claude-platform-on-aws#1-configure-aws-credentials)

1584* Si el error se repite después de que el comando de actualización tenga éxito, confirma que la identidad es válida fuera de Claude Code con `aws sts get-caller-identity` en el mismo shell y perfil1591* Si el error se repite después de que el comando de renovación se complete correctamente, confirma que la identidad es válida fuera de Claude Code con `aws sts get-caller-identity` en el mismo shell y perfil

1585 1592 

1586<h3 id="aws-authentication-failed">1593<h3 id="aws-authentication-failed">

1587 La autenticación de AWS falló1594 Falló la autenticación de AWS

1588</h3>1595</h3>

1589 1596 

1590Tu proveedor de AWS devolvió un 403, o [Amazon Bedrock](/docs/es/amazon-bedrock) devolvió un 401.1597Tu proveedor de AWS devolvió un 403, o [Amazon Bedrock](/docs/es/amazon-bedrock) devolvió un 401.

1591 1598 

1592Amazon Bedrock reporta un token de seguridad expirado como un 403, pero un 403 también es cómo reporta una negación de autorización, como un `AccessDeniedException` de un permiso IAM faltante. Claude Code no puede distinguir esas dos causas.1599Amazon Bedrock informa un token de seguridad expirado como un 403, pero un 403 también es la forma en que informa una denegación de autorización, como una `AccessDeniedException` por falta de un permiso de IAM. Claude Code no puede distinguir esas dos causas.

1593 1600 

1594Un 401 de Amazon Bedrock también llega aquí en lugar de bajo [Las credenciales de AWS expiraron o son inválidas](#aws-credentials-expired-or-invalid), porque Amazon Bedrock no reporta un token expirado como un 401. Un 401 de ese punto final típicamente viene de algo más en la ruta de solicitud, como un proxy corporativo.1601Un 401 de Amazon Bedrock también llega aquí y no a [Credenciales de AWS expiradas o no válidas](#aws-credentials-expired-or-invalid), porque Amazon Bedrock no informa un token expirado como un 401. Un 401 de ese endpoint suele provenir de otra cosa en la ruta de la solicitud, como un proxy corporativo.

1595 1602 

1596Una actualización de credencial arregla un token expirado y no puede arreglar las otras causas, por lo que el mensaje ofrece ambas:1603Una renovación de credenciales corrige un token expirado, pero no puede corregir las otras causas, así que el mensaje ofrece ambas cosas:

1597 1604 

1598```text theme={null}1605```text theme={null}

1599AWS authentication failed · run /login and select "Claude Platform on AWS · refresh credentials", or run `aws sso login --profile myprofile` in another terminal · if credentials are current, check AWS permissions and model access · API Error: 403 ...1606AWS authentication failed · run /login and select "Claude Platform on AWS · refresh credentials", or run `aws sso login --profile myprofile` in another terminal · if credentials are current, check AWS permissions and model access · API Error: 403 ...

1600```1607```

1601 1608 

1602La sugerencia de acción en el medio varía con tu configuración. La parte estable es el `AWS authentication failed` inicial.1609La sugerencia de acción en la parte central varía según tu configuración. La parte estable es el comienzo `AWS authentication failed`.

1603 1610 

1604Cuando el 403 es la respuesta de Amazon Bedrock de que no tienes acceso al modelo con el ID de modelo especificado, la sugerencia en su lugar te dice que habilites el modelo para tu cuenta y región en la consola de Amazon Bedrock.1611Cuando el 403 es la respuesta de Amazon Bedrock de que no tienes acceso al modelo con el ID de modelo especificado, la sugerencia te indica en su lugar que habilites el modelo para tu cuenta y región en la consola de Amazon Bedrock.

1605 1612 

1606Antes de v2.1.273, este mensaje aparecía solo cuando `awsAuthRefresh` estaba configurado.1613Antes de v2.1.273, este mensaje aparecía solo cuando `awsAuthRefresh` estaba configurado.

1607 1614 

1608**Qué hacer:**1615**Qué hacer:**

1609 1616 

1610* Si la sugerencia dice que las credenciales son administradas por este entorno, la aplicación que lanzó Claude Code es propietaria de la credencial y los otros pasos aquí no aplican: reintenta, o contacta a tu administrador1617* Si la sugerencia dice que las credenciales las gestiona este entorno, la aplicación que inició Claude Code es la propietaria de la credencial y los demás pasos de aquí no se aplican: reintenta o contacta con tu administrador

1611* Actualiza tus credenciales de AWS en caso de que una credencial expirada sea la causa: ejecuta el comando [`awsAuthRefresh`](/docs/es/amazon-bedrock#advanced-credential-configuration) nombrado en el mensaje cuando uno está configurado, o actualiza tu inicio de sesión SSO, claves de acceso, clave API, o token de proxy tú mismo1618* Renueva tus credenciales de AWS por si la causa es una credencial expirada: ejecuta el comando [`awsAuthRefresh`](/docs/es/amazon-bedrock#advanced-credential-configuration) que nombra el mensaje cuando haya uno definido, o renueva tú mismo tu inicio de sesión de SSO, claves de acceso, clave de API o token de proxy

1612* Si tus credenciales son actuales, confirma que los permisos de IAM en [Configuración de IAM](/docs/es/amazon-bedrock#iam-configuration) están adjuntos a la identidad que estás usando y que el modelo seleccionado está habilitado para tu cuenta y región1619* Si tus credenciales están vigentes, confirma que los permisos de IAM de [Configuración de IAM](/docs/es/amazon-bedrock#iam-configuration) estén asociados a la identidad que usas y que el modelo seleccionado esté habilitado para tu cuenta y región

1613* Ejecuta `aws sts get-caller-identity` para confirmar qué identidad usan tus solicitudes1620* Ejecuta `aws sts get-caller-identity` para confirmar qué identidad usan tus solicitudes

1614 1621 

1615<h3 id="google-cloud-credentials-expired-or-invalid">1622<h3 id="google-cloud-credentials-expired-or-invalid">

1616 Las credenciales de Google Cloud expiraron o son inválidas1623 Credenciales de Google Cloud expiradas o no válidas

1617</h3>1624</h3>

1618 1625 

1619Tus credenciales de Google Cloud para [Plataforma de Agentes de Google Cloud](/docs/es/google-vertex-ai) expiraron o fueron rechazadas: la solicitud devolvió un 401, que es cómo Agent Platform reporta la expiración de credenciales.1626Tus credenciales de Google Cloud para [Google Cloud's Agent Platform](/docs/es/google-vertex-ai) expiraron o fueron rechazadas: la solicitud devolvió un 401, que es como Agent Platform informa la expiración de credenciales.

1620 1627 

1621La sugerencia de acción en el medio varía con tu configuración. La parte estable es el `Google Cloud credentials expired or invalid` inicial:1628La sugerencia de acción en la parte central varía según tu configuración. La parte estable es el comienzo `Google Cloud credentials expired or invalid`:

1622 1629 

1623```text theme={null}1630```text theme={null}

1624Google Cloud credentials expired or invalid · refresh your Google Cloud credentials (application default sign-in, or the key file in GOOGLE_APPLICATION_CREDENTIALS) and retry · API Error: 401 ...1631Google Cloud credentials expired or invalid · refresh your Google Cloud credentials (application default sign-in, or the key file in GOOGLE_APPLICATION_CREDENTIALS) and retry · API Error: 401 ...


1626 1633 

1627**Qué hacer:**1634**Qué hacer:**

1628 1635 

1629* Si la sugerencia dice que las credenciales son administradas por este entorno, la aplicación que lanzó Claude Code es propietaria de la credencial y los otros pasos aquí no aplican: reintenta, o contacta a tu administrador1636* Si la sugerencia dice que las credenciales las gestiona este entorno, la aplicación que inició Claude Code es la propietaria de la credencial y los demás pasos de aquí no se aplican: reintenta o contacta con tu administrador

1630* Si te autenticas con credenciales predeterminadas de aplicación, ejecuta el comando [`gcpAuthRefresh`](/docs/es/google-vertex-ai#advanced-credential-configuration) nombrado en el mensaje, o `gcloud auth application-default login`, y completa el inicio de sesión, luego reintenta1637* Si te autenticas con las credenciales predeterminadas de la aplicación, ejecuta el comando [`gcpAuthRefresh`](/docs/es/google-vertex-ai#advanced-credential-configuration) que nombra el mensaje, o `gcloud auth application-default login`, y completa el inicio de sesión; luego reintenta

1631* Si enrutas a través de una [puerta de enlace LLM](/docs/es/llm-gateway) con `CLAUDE_CODE_SKIP_VERTEX_AUTH` configurado, actualiza el token de puerta de enlace en `ANTHROPIC_AUTH_TOKEN` o `ANTHROPIC_CUSTOM_HEADERS`, luego reintenta1638* Si enrutas a través de un [gateway de LLM](/docs/es/llm-gateway) con `CLAUDE_CODE_SKIP_VERTEX_AUTH` definida, renueva el token del gateway en `ANTHROPIC_AUTH_TOKEN` o `ANTHROPIC_CUSTOM_HEADERS` y luego reintenta

1632* Si te autenticas con un archivo de clave de cuenta de servicio, confirma que `GOOGLE_APPLICATION_CREDENTIALS` apunta a una clave válida. Consulta [Configurar credenciales de GCP](/docs/es/google-vertex-ai#3-configure-gcp-credentials)1639* Si te autenticas con un archivo de clave de cuenta de servicio, confirma que `GOOGLE_APPLICATION_CREDENTIALS` apunte a una clave válida. Consulta [Configurar credenciales de GCP](/docs/es/google-vertex-ai#3-configure-gcp-credentials)

1633* Si el error se repite después de una actualización, confirma que la identidad funciona fuera de Claude Code con `gcloud auth application-default print-access-token` en el mismo shell1640* Si el error se repite después de una renovación, confirma que la identidad funciona fuera de Claude Code con `gcloud auth application-default print-access-token` en el mismo shell

1634 1641 

1635Antes de v2.1.273, un 401 de Agent Platform mostraba el mensaje genérico `Please run /login` o `Failed to authenticate` en su lugar, que no puede actualizar credenciales de Google Cloud.1642Antes de v2.1.273, un 401 de Agent Platform mostraba en su lugar el mensaje genérico `Please run /login` o `Failed to authenticate`, que no puede renovar las credenciales de Google Cloud.

1636 1643 

1637<h3 id="google-cloud-authentication-failed">1644<h3 id="google-cloud-authentication-failed">

1638 La autenticación de Google Cloud falló1645 Falló la autenticación de Google Cloud

1639</h3>1646</h3>

1640 1647 

1641[Plataforma de Agentes de Google Cloud](/docs/es/google-vertex-ai) devolvió un 403, que usa para negaciones de autorización en lugar de credenciales expiradas. Generalmente la identidad con la que te autenticas carece de un permiso de IAM, o el modelo no está habilitado para tu proyecto.1648[Google Cloud's Agent Platform](/docs/es/google-vertex-ai) devolvió un 403, que usa para denegaciones de autorización y no para credenciales expiradas. Normalmente, a la identidad con la que te autenticas le falta un permiso de IAM, o el modelo no está habilitado para tu proyecto.

1642 1649 

1643La sugerencia de acción en el medio varía con tu configuración. La parte estable es el `Google Cloud authentication failed` inicial:1650La sugerencia de acción en la parte central varía según tu configuración. La parte estable es el comienzo `Google Cloud authentication failed`:

1644 1651 

1645```text theme={null}1652```text theme={null}

1646Google Cloud authentication failed · refresh your Google Cloud credentials (application default sign-in, or the key file in GOOGLE_APPLICATION_CREDENTIALS) and retry · if credentials are current, check GCP IAM permissions and Vertex AI model access · API Error: 403 ...1653Google Cloud authentication failed · refresh your Google Cloud credentials (application default sign-in, or the key file in GOOGLE_APPLICATION_CREDENTIALS) and retry · if credentials are current, check GCP IAM permissions and Vertex AI model access · API Error: 403 ...


1648 1655 

1649**Qué hacer:**1656**Qué hacer:**

1650 1657 

1651* Si la sugerencia dice que las credenciales son administradas por este entorno, la aplicación que lanzó Claude Code es propietaria de la credencial y los otros pasos aquí no aplican: reintenta, o contacta a tu administrador1658* Si la sugerencia dice que las credenciales las gestiona este entorno, la aplicación que inició Claude Code es la propietaria de la credencial y los demás pasos de aquí no se aplican: reintenta o contacta con tu administrador

1652* Confirma que los roles en [Configuración de IAM](/docs/es/google-vertex-ai#iam-configuration) están otorgados a la identidad con la que te autenticas1659* Confirma que los roles de [Configuración de IAM](/docs/es/google-vertex-ai#iam-configuration) estén otorgados a la identidad con la que te autenticas

1653* Confirma que el modelo está habilitado para tu proyecto. Consulta [Solicitar acceso al modelo](/docs/es/google-vertex-ai#2-request-model-access)1660* Confirma que el modelo esté habilitado para tu proyecto. Consulta [Solicitar acceso al modelo](/docs/es/google-vertex-ai#2-request-model-access)

1654 1661 

1655Antes de v2.1.273, un 403 de Agent Platform mostraba el mensaje genérico `Please run /login` o `Failed to authenticate` en su lugar, que no puede actualizar credenciales de Google Cloud.1662Antes de v2.1.273, un 403 de Agent Platform mostraba en su lugar el mensaje genérico `Please run /login` o `Failed to authenticate`, que no puede renovar las credenciales de Google Cloud.

1656 1663 

1657<h3 id="microsoft-foundry-authentication-failed">1664<h3 id="microsoft-foundry-authentication-failed">

1658 La autenticación de Microsoft Foundry falló1665 Falló la autenticación de Microsoft Foundry

1659</h3>1666</h3>

1660 1667 

1661[Microsoft Foundry](/docs/es/microsoft-foundry) devolvió un 401 o 403: la credencial de Azure en la solicitud fue rechazada, o la identidad detrás de ella no tiene acceso al recurso de Foundry. `/login` no puede acuñar credenciales de Azure. La sugerencia de acción en el medio varía con tu configuración. La parte estable es el `Microsoft Foundry authentication failed` inicial:1668[Microsoft Foundry](/docs/es/microsoft-foundry) devolvió un 401 o 403: la credencial de Azure de la solicitud fue rechazada, o la identidad detrás de ella no tiene acceso al recurso de Foundry. `/login` no puede generar credenciales de Azure. La sugerencia de acción en el medio varía según tu configuración. La parte estable es el inicio `Microsoft Foundry authentication failed`:

1662 1669 

1663```text theme={null}1670```text theme={null}

1664Microsoft Foundry authentication failed · refresh your Foundry credential (ANTHROPIC_FOUNDRY_AUTH_TOKEN, ANTHROPIC_FOUNDRY_API_KEY, Azure sign-in for Entra, or your proxy token) and retry · if credentials are current, check access to the Foundry resource · API Error: 401 ...1671Microsoft Foundry authentication failed · refresh your Foundry credential (ANTHROPIC_FOUNDRY_AUTH_TOKEN, ANTHROPIC_FOUNDRY_API_KEY, Azure sign-in for Entra, or your proxy token) and retry · if credentials are current, check access to the Foundry resource · API Error: 401 ...


1666 1673 

1667**Qué hacer:**1674**Qué hacer:**

1668 1675 

1669* Si la sugerencia dice que las credenciales son administradas por este entorno, la aplicación que lanzó Claude Code es propietaria de la credencial y los otros pasos aquí no aplican: reintenta, o contacta a tu administrador1676* Si la sugerencia indica que las credenciales las administra este entorno, la aplicación que inició Claude Code es la dueña de la credencial y los demás pasos aquí no aplican: reintenta o comunícate con tu administrador

1670* Actualiza la credencial que configuraste en [Configurar credenciales de Azure](/docs/es/microsoft-foundry#2-configure-azure-credentials): rota `ANTHROPIC_FOUNDRY_API_KEY`, acuña un `ANTHROPIC_FOUNDRY_AUTH_TOKEN` nuevo, o ejecuta `az login` para que la cadena de credencial predeterminada de Microsoft Entra pueda iniciar sesión nuevamente1677* Actualiza la credencial que configuraste en [Configurar credenciales de Azure](/docs/es/microsoft-foundry#2-configure-azure-credentials): rota `ANTHROPIC_FOUNDRY_API_KEY`, genera un `ANTHROPIC_FOUNDRY_AUTH_TOKEN` nuevo o ejecuta `az login` para que la cadena de credenciales predeterminada de Microsoft Entra pueda iniciar sesión de nuevo

1671* Si la credencial es actual, confirma que la identidad tiene acceso al recurso de Foundry. Consulta [Configuración de RBAC de Azure](/docs/es/microsoft-foundry#azure-rbac-configuration)1678* Si la credencial está vigente, confirma que la identidad tenga acceso al recurso de Foundry. Consulta [Configuración de Azure RBAC](/docs/es/microsoft-foundry#azure-rbac-configuration)

1672 1679 

1673Antes de v2.1.273, un 401 o 403 de Microsoft Foundry mostraba el mensaje genérico `Please run /login` o `Failed to authenticate` en su lugar, que no puede actualizar credenciales de Azure.1680Antes de la v2.1.273, un 401 o 403 de Microsoft Foundry mostraba en su lugar el mensaje genérico `Please run /login` o `Failed to authenticate`, que no puede actualizar las credenciales de Azure.

1674 1681 

1675<h3 id="could-not-load-aws-or-google-cloud-credentials">1682<h3 id="could-not-load-aws-or-google-cloud-credentials">

1676 No se pudieron cargar las credenciales de AWS o Google Cloud1683 No se pudieron cargar las credenciales de AWS o Google Cloud

1677</h3>1684</h3>

1678 1685 

1679Claude Code no pudo obtener credenciales utilizables de la cadena de proveedor de credenciales de AWS o de tus credenciales predeterminadas de aplicación de Google en la máquina en la que se ejecuta, por lo que ninguna solicitud llegó a tu proveedor en la nube. Claude Code borra sus credenciales en caché y reintenta dos veces antes de mostrar este mensaje. El detalle después del `·` nombra la causa específica, como una sesión SSO expirada, credenciales predeterminadas faltantes reportadas como `Could not load the default credentials`, o un inicio de sesión revocado reportado como `invalid_grant`:1686Claude Code no pudo obtener credenciales utilizables de la cadena de proveedores de credenciales de AWS ni de tus credenciales predeterminadas de aplicación de Google en la máquina donde se ejecuta, así que ninguna solicitud llegó a tu proveedor de nube. Claude Code borra sus credenciales almacenadas en caché y reintenta dos veces antes de mostrar este mensaje. El detalle después del `·` indica la causa específica, como una sesión de SSO vencida, credenciales predeterminadas de aplicación faltantes informadas como `Could not load the default credentials`, o un inicio de sesión revocado informado como `invalid_grant`:

1680 1687 

1681```text theme={null}1688```text theme={null}

1682API Error: Could not load AWS credentials · Could not load credentials from any providers. Check or refresh your AWS credentials and try again.1689API Error: Could not load AWS credentials · Could not load credentials from any providers. Check or refresh your AWS credentials and try again.

1683API Error: Could not load Google Cloud credentials · invalid_grant. Check or refresh your Google Cloud credentials and try again.1690API Error: Could not load Google Cloud credentials · invalid_grant. Check or refresh your Google Cloud credentials and try again.

1684```1691```

1685 1692 

1686En [modo no interactivo](/docs/es/headless) con `-p` y en [Agent SDK](/docs/es/agent-sdk/overview), el código de error estructurado es `cloud_credential_error`. Antes de v2.1.267, el mensaje mostraba solo el texto de detalle después de `API Error:`, y el código estructurado era `server_error` u `unknown`.1693En el [modo no interactivo](/docs/es/headless) con `-p` y en el [Agent SDK](/docs/es/agent-sdk/overview), el código de error estructurado es `cloud_credential_error`. Antes de la v2.1.267, el mensaje mostraba solo el texto de detalle después de `API Error:`, y el código estructurado era `server_error` o `unknown`.

1687 1694 

1688**Qué hacer:**1695**Qué hacer:**

1689 1696 

1690* Ejecuta el comando de inicio de sesión de tu proveedor, como `aws sso login --profile myprofile` o `gcloud auth application-default login`, luego reintenta. [Las credenciales de Bedrock, Agent Platform, o Foundry no se cargan](/docs/es/troubleshoot-install#bedrock-agent-platform-or-foundry-credentials-not-loading) muestra cómo confirmar las credenciales fuera de Claude Code1697* Ejecuta el comando de inicio de sesión de tu proveedor, como `aws sso login --profile myprofile` o `gcloud auth application-default login`, y luego reintenta. [Las credenciales de Bedrock, Agent Platform o Foundry no se cargan](/docs/es/troubleshoot-install#bedrock-agent-platform-or-foundry-credentials-not-loading) muestra cómo confirmar las credenciales fuera de Claude Code

1691* Si el detalle dice `AWS default-chain credential resolve timed out`, la cadena se colgó en lugar de fallar, así que sigue [Resolución de credenciales de cadena predeterminada de AWS agotada](#aws-default-chain-credential-resolve-timed-out) en su lugar1698* Si el detalle dice `AWS default-chain credential resolve timed out`, la cadena se quedó colgada en lugar de fallar, así que sigue en su lugar [Se agotó el tiempo de espera para resolver las credenciales de la cadena predeterminada de AWS](#aws-default-chain-credential-resolve-timed-out)

1692 1699 

1693<h3 id="aws-default-chain-credential-resolve-timed-out">1700<h3 id="aws-default-chain-credential-resolve-timed-out">

1694 Resolución de credenciales de cadena predeterminada de AWS agotada1701 Se agotó el tiempo de espera para resolver las credenciales de la cadena predeterminada de AWS

1695</h3>1702</h3>

1696 1703 

1697La cadena de proveedor de credenciales predeterminada de AWS no produjo credenciales dentro de 60 segundos, por lo que Claude Code detuvo la resolución y falló la solicitud. Este tiempo de espera es una causa de [No se pudieron cargar las credenciales de AWS o Google Cloud](#could-not-load-aws-or-google-cloud-credentials). El fallo es resolución de credenciales local: la solicitud nunca llegó a [Amazon Bedrock](/docs/es/amazon-bedrock), [Claude Platform en AWS](/docs/es/claude-platform-on-aws), o el [punto final de Mantle](/docs/es/amazon-bedrock#use-the-mantle-endpoint). Claude Code borra su [caché de credenciales](/docs/es/amazon-bedrock#credential-caching-and-resolution-timeout) e reintenta antes de que este error aparezca, por lo que en el momento en que lo ves la cadena se ha estancado en intentos repetidos.1704La cadena de proveedores de credenciales predeterminada de AWS no produjo credenciales en 60 segundos, así que Claude Code detuvo la resolución e hizo fallar la solicitud. Este tiempo de espera es una de las causas de [No se pudieron cargar las credenciales de AWS o Google Cloud](#could-not-load-aws-or-google-cloud-credentials). La falla está en la resolución local de credenciales: la solicitud nunca llegó a [Amazon Bedrock](/docs/es/amazon-bedrock), [Claude Platform on AWS](/docs/es/claude-platform-on-aws) ni al [endpoint de Mantle](/docs/es/amazon-bedrock#use-the-mantle-endpoint). Claude Code borra su [caché de credenciales](/docs/es/amazon-bedrock#credential-caching-and-resolution-timeout) y reintenta antes de que aparezca este error, así que para cuando lo ves la cadena se ha estancado en intentos repetidos.

1698 1705 

1699```text theme={null}1706```text theme={null}

1700API Error: Could not load AWS credentials · AWS default-chain credential resolve timed out. Check or refresh your AWS credentials and try again.1707API Error: Could not load AWS credentials · AWS default-chain credential resolve timed out. Check or refresh your AWS credentials and try again.

1701```1708```

1702 1709 

1703Las causas comunes son un comando `credential_process` en tu perfil de AWS que espera entrada que no puede recibir, y un contenedor o VM cuyo servicio de metadatos de instancia (IMDS) nunca responde a la prueba de la cadena.1710Las causas comunes son un comando `credential_process` en tu perfil de AWS que espera una entrada que no puede recibir, y un contenedor o VM cuyo servicio de metadatos de instancia (IMDS) nunca responde al sondeo de la cadena.

1704 1711 

1705Antes de v2.1.267, el mensaje decía `API Error: AWS default-chain credential resolve timed out`.1712Antes de la v2.1.267, el mensaje decía `API Error: AWS default-chain credential resolve timed out`.

1706Antes de v2.1.207, una cadena estancada dejaba la solicitud esperando indefinidamente en lugar de fallar.1713Antes de la v2.1.207, una cadena estancada dejaba la solicitud esperando indefinidamente en lugar de fallar.

1707 1714 

1708**Qué hacer:**1715**Qué hacer:**

1709 1716 

1710* Ejecuta `aws sts get-caller-identity` en el mismo shell con el mismo `AWS_PROFILE`. Si también se cuelga, arregla el perfil; un comando `credential_process` que solicita interactivamente es una causa común.1717* Ejecuta `aws sts get-caller-identity` en el mismo shell con el mismo `AWS_PROFILE`. Si también se queda colgado, corrige el perfil; un comando `credential_process` que pide datos de forma interactiva es una causa común.

1711* Completa el paso de inicio de sesión antes de iniciar Claude Code, por ejemplo `aws sso login --profile myprofile`1718* Completa el paso de inicio de sesión antes de iniciar Claude Code, por ejemplo `aws sso login --profile myprofile`

1712* Si tu cadena ejecuta un inicio de sesión interactivo que legítimamente necesita más de 60 segundos, como SSO con MFA a través de un envoltorio como `aws-vault`, aumenta el límite en milisegundos con [`CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS`](/docs/es/env-vars)1719* Si tu cadena ejecuta un inicio de sesión interactivo que legítimamente necesita más de 60 segundos, como SSO con MFA a través de un wrapper como `aws-vault`, aumenta el límite en milisegundos con [`CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS`](/docs/es/env-vars)

1713 1720 

1714<h3 id="bedrock-setup-verification-timed-out-waiting-for-aws">1721<h3 id="bedrock-setup-verification-timed-out-waiting-for-aws">

1715 La verificación de configuración de Bedrock se agotó esperando a AWS1722 Se agotó el tiempo de espera de AWS durante la verificación de la configuración de Bedrock

1716</h3>1723</h3>

1717 1724 

1718Una llamada a AWS durante el [asistente de configuración de Bedrock](/docs/es/amazon-bedrock#sign-in-with-bedrock), como la búsqueda de credenciales o la verificación de identidad, no se completó dentro del límite de 60 segundos. El asistente deja de esperar y falla el paso de verificación:1725Una llamada a AWS durante la verificación de credenciales del [asistente de configuración de Bedrock](/docs/es/amazon-bedrock#sign-in-with-bedrock), como la búsqueda de credenciales o la comprobación de identidad, no terminó dentro del límite de 60 segundos. El asistente deja de esperar y hace fallar el paso de verificación:

1719 1726 

1720```text theme={null}1727```text theme={null}

1721Timed out after 60s waiting for AWS. Check your network and proxy settings; if a credential helper needs longer to prompt you, raise CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS.1728Timed out after 60s waiting for AWS. Check your network and proxy settings; if a credential helper needs longer to prompt you, raise CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS.

1722```1729```

1723 1730 

1724El número refleja tu límite: 60 segundos por defecto, o el valor que estableciste en [`CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS`](/docs/es/env-vars).1731El número refleja tu límite: 60 segundos de forma predeterminada, o el valor que estableciste en [`CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS`](/docs/es/env-vars).

1725 1732 

1726Las causas comunes son una red o proxy que estanca solicitudes a AWS, incluyendo la actualización del token SSO, y un ayudante de credenciales aún esperando entrada que no puedes ver. Aumenta el límite solo cuando el ayudante legítimamente necesita más tiempo.1733Las causas comunes son una red o un proxy que estanca las solicitudes a AWS, incluida la actualización del token de SSO, y un asistente de credenciales que sigue esperando una entrada que no puedes ver. Aumenta el límite solo cuando el asistente legítimamente necesite más tiempo.

1727 1734 

1728Una única solicitud estancada a AWS también puede fallar en su propio tiempo de espera por solicitud, que muestra un mensaje más corto en el mismo paso:1735Una sola solicitud estancada a AWS también puede fallar por su propio tiempo de espera por solicitud, que muestra un mensaje más corto en el mismo paso:

1729 1736 

1730```text theme={null}1737```text theme={null}

1731A request to AWS timed out. Check your network and proxy settings, then try again.1738A request to AWS timed out. Check your network and proxy settings, then try again.

1732```1739```

1733 1740 

1734Cuando los mismos tiempos de espera ocurren en el paso de fijación de modelo, el asistente marca un modelo como `unreachable` en lugar de mostrar cualquiera de los dos mensajes.1741Cuando los mismos tiempos de espera se agotan en el paso de fijación del modelo, el asistente marca un modelo como `unreachable` en lugar de mostrar cualquiera de los dos mensajes.

1735 1742 

1736**Qué hacer:**1743**Qué hacer:**

1737 1744 

1738* Ejecuta `aws sts get-caller-identity` en el mismo shell. Si también se cuelga, el estancamiento está fuera de Claude Code, en tu red, tu proxy, o el ayudante de credenciales en tu perfil de AWS; arregla eso primero.1745* Ejecuta `aws sts get-caller-identity` en el mismo shell. Si también se queda colgado, el estancamiento está fuera de Claude Code, en tu red, tu proxy o el asistente de credenciales de tu perfil de AWS; corrige eso primero.

1739* Completa cualquier inicio de sesión interactivo antes de abrir el asistente, por ejemplo `aws sso login --profile myprofile`1746* Completa cualquier inicio de sesión interactivo antes de abrir el asistente, por ejemplo `aws sso login --profile myprofile`

1740* Si un ayudante de credenciales en tu perfil de AWS legítimamente necesita más de 60 segundos para solicitarte, aumenta el límite en milisegundos con [`CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS`](/docs/es/env-vars)1747* Si un asistente de credenciales de tu perfil de AWS legítimamente necesita más de 60 segundos para pedirte datos, aumenta el límite en milisegundos con [`CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS`](/docs/es/env-vars)

1741 1748 

1742<h3 id="cloud-gateway-session-expired">1749<h3 id="cloud-gateway-session-expired">

1743 La sesión de puerta de enlace en la nube expiró1750 La sesión del gateway en la nube venció

1744</h3>1751</h3>

1745 1752 

1746Iniciaste sesión a través de una [puerta de enlace de aplicaciones de Claude](/docs/es/claude-apps-gateway), y la sesión de puerta de enlace guardada en esta máquina ha expirado y no se pudo renovar, o la puerta de enlace ya no la acepta, por ejemplo después de que el [secreto JWT de la puerta de enlace se reemplaza](/docs/es/claude-apps-gateway-deploy#jwt-secret-rotation). Si ves esta línea cuando inicias `claude` interactivamente, la sesión ha abierto sin conectarse a la puerta de enlace:1753Iniciaste sesión a través de un [gateway de aplicaciones de Claude](/docs/es/claude-apps-gateway), y la sesión del gateway guardada en esta máquina venció y no se pudo renovar, o el gateway ya no la acepta, por ejemplo después de que se [reemplaza el secreto JWT](/docs/es/claude-apps-gateway-deploy#jwt-secret-rotation) del gateway. Si ves esta línea al iniciar `claude` de forma interactiva, la sesión se abrió sin haber iniciado sesión en el gateway:

1747 1754 

1748```text theme={null}1755```text theme={null}

1749Cloud gateway session expired — run /login to reconnect.1756Cloud gateway session expired — run /login to reconnect.

1750```1757```

1751 1758 

1752La misma línea puede aparecer a mitad de sesión cuando la credencial de puerta de enlace expira y Claude Code no puede renovarla.1759La misma línea puede aparecer a mitad de sesión cuando la credencial del gateway vence y Claude Code no puede renovarla.

1753 1760 

1754En una ejecución [no interactiva](/docs/es/headless), una sesión en segundo plano u otra desatendida, o un subcomando `claude` que no sea `claude auth`, Claude Code sale con este mensaje en su lugar cuando la puerta de enlace ya no acepta la sesión:1761En una ejecución [no interactiva](/docs/es/headless), una sesión en segundo plano u otra sesión desatendida, o un subcomando de `claude` distinto de `claude auth`, Claude Code termina con este mensaje en su lugar cuando el gateway ya no acepta la sesión:

1755 1762 

1756```text theme={null}1763```text theme={null}

1757Cloud gateway <url> no longer accepts this session. Start `claude` and sign in again with /login.1764Cloud gateway <url> no longer accepts this session. Start `claude` and sign in again with /login.


1759 1766 

1760**Qué hacer:**1767**Qué hacer:**

1761 1768 

1762* Ejecuta `/login` en la sesión y completa el inicio de sesión del navegador1769* Ejecuta `/login` en la sesión y completa el inicio de sesión en el navegador

1763* Para un lanzamiento no interactivo, inicia `claude` en el mismo entorno, ejecuta `/login`, luego reejecutar tu comando1770* Para un inicio no interactivo, inicia `claude` en el mismo entorno, ejecuta `/login` y luego vuelve a ejecutar tu comando

1764 1771 

1765<h3 id="sign-in-timed-out-while-waiting-for-you-to-continue">1772<h3 id="sign-in-timed-out-while-waiting-for-you-to-continue">

1766 El inicio de sesión se agotó mientras esperaba que continúes1773 Se agotó el tiempo de espera del inicio de sesión mientras esperaba que continuaras

1767</h3>1774</h3>

1768 1775 

1769Durante un inicio de sesión de [puerta de enlace de aplicaciones de Claude](/docs/es/claude-apps-gateway), la puerta de enlace nombró la cuenta que inició sesión, y Claude Code te pidió que la confirmaras antes de guardar la credencial. Dejaste la confirmación abierta después de la expiración del inicio de sesión, y la puerta de enlace no emitió un token de actualización que pudiera renovarlo, por lo que Claude Code no almacenó nada cuando continuaste:1776Durante un inicio de sesión en un [gateway de aplicaciones de Claude](/docs/es/claude-apps-gateway), el gateway indicó la cuenta que inició sesión y Claude Code te pidió confirmarla antes de guardar la credencial. Dejaste la confirmación abierta más allá del vencimiento del propio inicio de sesión, y el gateway no emitió ningún token de actualización que pudiera renovarlo, así que Claude Code no guardó nada cuando continuaste:

1770 1777 

1771```text theme={null}1778```text theme={null}

1772Sign-in timed out while waiting for you to continue. Try again.1779Sign-in timed out while waiting for you to continue. Try again.


1774 1781 

1775**Qué hacer:**1782**Qué hacer:**

1776 1783 

1777* Ejecuta `/login` nuevamente y confirma la cuenta antes de que el inicio de sesión expire1784* Ejecuta `/login` de nuevo y confirma la cuenta antes de que venza el inicio de sesión

1778 1785 

1779<h3 id="gateway-refused-the-request">1786<h3 id="gateway-refused-the-request">

1780 La puerta de enlace rechazó la solicitud1787 El gateway rechazó la solicitud

1781</h3>1788</h3>

1782 1789 

1783Estás conectado a través de una [puerta de enlace de aplicaciones de Claude](/docs/es/claude-apps-gateway), y una solicitud devolvió un 403: la puerta de enlace, o lo que está detrás de ella, la rechazó. Iniciar sesión nuevamente no cambia un rechazo, por lo que el mensaje apunta a tu administrador de puerta de enlace:1790Iniciaste sesión a través de un [gateway de aplicaciones de Claude](/docs/es/claude-apps-gateway), y una solicitud devolvió un 403: el gateway, o el servicio upstream detrás de él, la rechazó. Volver a iniciar sesión no cambia un rechazo, así que el mensaje te dirige a tu administrador del gateway:

1784 1791 

1785```text theme={null}1792```text theme={null}

1786Gateway refused the request · signing in again won't change this — check with your gateway administrator · API Error: 403 ...1793Gateway refused the request · signing in again won't change this — check with your gateway administrator · API Error: 403 ...


1788 1795 

1789**Qué hacer:**1796**Qué hacer:**

1790 1797 

1791* Pide a tu administrador de puerta de enlace que busque la solicitud. La cola `API Error:` lleva el rechazo que la puerta de enlace devolvió1798* Pídele a tu administrador del gateway que busque la solicitud. La parte final `API Error:` contiene el rechazo que devolvió el gateway

1792* Para administradores: una [regla de control de acceso](/docs/es/claude-apps-gateway-config#http-tuning) en la puerta de enlace devuelve un 403 que el [registro de auditoría](/docs/es/claude-apps-gateway-deploy#logs) registra con su razón, y una negación de autorización de un upstream pasa a través por [Mensajes de error de upstream](/docs/es/claude-apps-gateway-config#upstream-error-messages)1799* Para administradores: una [regla de control de acceso](/docs/es/claude-apps-gateway-config#http-tuning) en el gateway devuelve un 403 que el [registro de auditoría](/docs/es/claude-apps-gateway-deploy#logs) registra con su motivo, y la denegación de autorización de un servicio upstream se transmite según [Mensajes de error del upstream](/docs/es/claude-apps-gateway-config#upstream-error-messages)

1793 1800 

1794Antes de v2.1.273, un 403 en una sesión de puerta de enlace mostraba el mensaje genérico `Please run /login` o `Failed to authenticate` en su lugar, e iniciar sesión nuevamente no borraba el rechazo.1801Antes de la v2.1.273, un 403 en una sesión del gateway mostraba en su lugar el mensaje genérico `Please run /login` o `Failed to authenticate`, y volver a iniciar sesión no eliminaba el rechazo.

1795 1802 

1796<h2 id="network-and-connection-errors">1803<h2 id="network-and-connection-errors">

1797 Errores de red y conexión1804 Errores de red y conexión


2849* Ejecute `claude doctor` desde su shell para diagnósticos de instalación2856* Ejecute `claude doctor` desde su shell para diagnósticos de instalación

2850 2857 

2851<h2 id="command-line-errors">2858<h2 id="command-line-errors">

2852 Errores de línea de comandos2859 Errores de la línea de comandos

2853</h2>2860</h2>

2854 2861 

2855Estos errores provienen del comando `claude` de línea de comandos y sus subcomandos, de un nombre de comando que envía en el símbolo del sistema, y de comandos como `/security-review` que recopilan contexto ejecutando comandos de shell antes de que se ejecute su símbolo del sistema. También provienen de `/tui`, que relanza la CLI.2862Estos errores provienen de la línea de comandos de `claude` y sus subcomandos, de un nombre de comando que envías en el prompt y de comandos como `/security-review` que recopilan contexto ejecutando comandos de shell antes de que se ejecute su prompt. También provienen de `/tui`, que vuelve a iniciar la CLI.

2856 2863 

2857<h3 id="conflict-between-bg-and-print">2864<h3 id="conflict-between-bg-and-print">

2858 Conflicto entre `--bg` y `--print`2865 Conflicto entre `--bg` y `--print`

2859</h3>2866</h3>

2860 2867 

2861Este mensaje requiere Claude Code v2.1.198 o posterior. Combinó `--bg` con `-p` o `--print` en la misma invocación de `claude`. `--bg` inicia una [sesión en segundo plano](/docs/es/agent-view#from-your-shell) a la que se conecta posteriormente con `claude agents`, mientras que `--print` se ejecuta [de forma no interactiva](/docs/es/headless) y nunca inicia la sesión interactiva a la que `claude agents` se conecta. Antes de v2.1.198, esta combinación creaba silenciosamente un trabajo en segundo plano que nunca podría ser conectado.2868Este mensaje requiere Claude Code v2.1.198 o posterior. Combinaste `--bg` con `-p` o `--print` en la misma invocación de `claude`. `--bg` inicia una [sesión en segundo plano](/docs/es/agent-view#from-your-shell) a la que luego te conectas con `claude agents`, mientras que `--print` se ejecuta de forma [no interactiva](/docs/es/headless) y nunca inicia la sesión interactiva a la que se conecta `claude agents`. Antes de v2.1.198, esta combinación creaba silenciosamente un trabajo en segundo plano al que nunca era posible conectarse.

2862 2869 

2863```text theme={null}2870```text theme={null}

2864--bg and --print conflict: --print never starts the interactive session that `claude agents` attaches to, so the job would be unattachable. The prompt is the positional — drop --print: `claude --bg '<task>'`.2871--bg and --print conflict: --print never starts the interactive session that `claude agents` attaches to, so the job would be unattachable. The prompt is the positional — drop --print: `claude --bg '<task>'`.


2866 2873 

2867**Qué hacer:**2874**Qué hacer:**

2868 2875 

2869* Elimine `-p` o `--print`. `--bg` toma el símbolo del sistema como su argumento posicional, por lo que `claude --bg "<task>"` es el comando completo. Consulte [Enviar nuevos agentes desde su shell](/docs/es/agent-view#from-your-shell).2876* Quita `-p` o `--print`. `--bg` toma el prompt como su argumento posicional, así que `claude --bg "<task>"` es el comando completo. Consulta [Despachar nuevos agentes desde tu shell](/docs/es/agent-view#from-your-shell).

2870* Para ejecutar el símbolo del sistema de forma no interactiva e imprimir el resultado en lugar de crear una sesión en segundo plano, elimine `--bg` y ejecute `claude -p "<task>"`2877* Para ejecutar el prompt de forma no interactiva e imprimir el resultado en lugar de crear una sesión en segundo plano, quita `--bg` y ejecuta `claude -p "<task>"`

2878 

2879<h3 id="conflict-between-a-system-prompt-flag-and-its-file-form">

2880 Conflicto entre un flag de prompt del sistema y su forma de archivo

2881</h3>

2882 

2883Pasaste [`--append-subagent-system-prompt`](/docs/es/cli-reference#cli-flags) junto con `--append-subagent-system-prompt-file` en una misma invocación de `claude`, así que `claude` termina con el código 1 en lugar de iniciar la sesión:

2884 

2885```text theme={null}

2886Error: Cannot use both --append-subagent-system-prompt and --append-subagent-system-prompt-file. Please use only one.

2887```

2888 

2889Antes de v2.1.283, `claude` terminaba de la misma forma cuando pasabas `--system-prompt` con `--system-prompt-file`, o `--append-system-prompt` con `--append-system-prompt-file`, porque esos pares entraban en conflicto en lugar de [combinarse](/docs/es/cli-reference#system-prompt-flags). En esas versiones, el mensaje nombra el par que combinaste.

2890 

2891**Qué hacer:**

2892 

2893* Conserva una forma del flag y quita la otra. Para combinar un archivo de prompt fijo con texto específico de cada ejecución, fusiona el texto en el archivo antes de iniciar en lugar de pasar ambos flags

2871 2894 

2872<h3 id="invalid-agents-configuration">2895<h3 id="invalid-agents-configuration">

2873 Configuración de `--agents` inválida2896 Configuración de `--agents` no válida

2874</h3>2897</h3>

2875 2898 

2876El valor que pasó a `--agents` es inválido, por lo que `claude` sale con código 1 en lugar de iniciar la sesión. Cuando pasa `--safe-mode` o establece [`CLAUDE_CODE_SAFE_MODE`](/docs/es/env-vars#variables), Claude Code ignora `--agents` completamente. Con `--resume` o `--continue`, un valor JSON en línea no se verifica y la sesión se inicia; un valor leído de un archivo se verifica en cada lanzamiento. Antes de v2.1.242, Claude Code iniciaba la sesión de todas formas.2899El valor que pasaste a `--agents` no es válido, así que `claude` termina con el código 1 en lugar de iniciar la sesión. Cuando pasas `--safe-mode` o estableces [`CLAUDE_CODE_SAFE_MODE`](/docs/es/env-vars#variables), Claude Code ignora `--agents` por completo. Con `--resume` o `--continue`, un valor JSON en línea no se verifica y la sesión se inicia; un valor leído desde un archivo se verifica en cada inicio. Antes de v2.1.242, Claude Code iniciaba la sesión de todos modos.

2877 2900 

2878```text theme={null}2901```text theme={null}

2879Error: Invalid --agents configuration:2902Error: Invalid --agents configuration:

2880<what failed>2903<what failed>

2881```2904```

2882 2905 

2883Lo que sigue a la primera línea depende de cómo falló el valor. Claude Code ejecuta estas comprobaciones en orden y se detiene en la primera que falla. Si su valor tiene dos tipos de problema, verá el segundo solo después de corregir el primero:2906Lo que sigue a la primera línea depende de cómo falló el valor. Claude Code ejecuta estas verificaciones en orden y se detiene en la primera que falla. Si tu valor tiene dos tipos de problema, solo ves el segundo después de corregir el primero:

2884 2907 

28851. Cuando el valor comienza con `{` pero no se analiza como JSON, o el contenido de un archivo `--agents` no se analiza, Claude Code imprime una línea `invalid JSON:` que lleva el mensaje propio del analizador JSON29081. Cuando el valor comienza con `{` pero no se puede analizar como JSON, o el contenido de un archivo de `--agents` no se puede analizar, Claude Code imprime una línea `invalid JSON:` con el propio mensaje del analizador de JSON

28862. Cuando se analiza pero una definición de agente no coincide con el esquema para [subagentes definidos por CLI](/docs/es/sub-agents#choose-the-subagent-scope), Claude Code imprime una línea por problema29092. Cuando se puede analizar pero una definición de agente no coincide con el esquema de los [subagentes definidos por CLI](/docs/es/sub-agents#choose-the-subagent-scope), Claude Code imprime una línea por problema

28873. Cuando un nombre de agente comienza con `-`, Claude Code imprime `<name>: agent names must not start with '-'`29103. Cuando el nombre de un agente comienza con `-`, Claude Code imprime `<name>: agent names must not start with '-'`

2888 2911 

2889Cuando hay más de 20 líneas de problema, Claude Code imprime las primeras 20 y reemplaza el resto con `…and N more`.2912Cuando hay más de 20 líneas de problemas, Claude Code imprime las primeras 20 y reemplaza el resto con `…and N more`.

2890 2913 

2891Con `--print`, `--agents` también acepta [la ruta a un archivo JSON](/docs/es/sub-agents#choose-the-subagent-scope) en lugar del objeto en línea. Antes de v2.1.281, `--agents` aceptaba solo JSON en línea y trataba una ruta de archivo como JSON inválido. La forma de archivo tiene rechazos propios, impresos en lugar de este mensaje, incluidos estos:2914Con `--print`, `--agents` también acepta [la ruta a un archivo JSON](/docs/es/sub-agents#choose-the-subagent-scope) en lugar del objeto en línea. Antes de v2.1.281, `--agents` aceptaba solo JSON en línea y trataba una ruta de archivo como JSON no válido. La forma de archivo tiene sus propios rechazos, que se imprimen en lugar de este mensaje, entre ellos estos:

2892 2915 

2893* **`Error: --agents takes a JSON object, or a file path only with --print (-p)`**: Claude Code leyó el valor como una ruta de archivo en una sesión interactiva. Pase las definiciones como JSON en línea, o agregue `-p` para leerlas de un archivo.2916* **`Error: --agents takes a JSON object, or a file path only with --print (-p)`**: Claude Code leyó el valor como una ruta de archivo en una sesión interactiva. Pasa las definiciones como JSON en línea, o agrega `-p` para leerlas desde un archivo.

2894* **`Error: --agents file not found: <path>`**: no existe ningún archivo en esa ruta. Un valor que no comienza con `{` y no es JSON válido se lee como una ruta, por lo que JSON en línea que su shell alteró puede fallar de esta manera también. Verifique la ruta o las comillas y ejecute el comando nuevamente.2917* **`Error: --agents file not found: <path>`**: no existe ningún archivo en esa ruta. Un valor que no comienza con `{` y no es JSON válido se lee como una ruta, así que un JSON en línea que tu shell alteró también puede fallar de esta forma. Revisa la ruta o las comillas y vuelve a ejecutar el comando.

2895 2918 

2896**Qué hacer:**2919**Qué hacer:**

2897 2920 

2898* Corrija cada problema que enumera el mensaje, luego ejecute el comando nuevamente. Consulte [los campos que toma un subagente definido por CLI](/docs/es/sub-agents#choose-the-subagent-scope).2921* Corrige cada problema que enumera el mensaje y vuelve a ejecutar el comando. Consulta [los campos que acepta un subagente definido por CLI](/docs/es/sub-agents#choose-the-subagent-scope).

2899 2922 

2900<h3 id="cloud-sessions-cannot-be-created-from-a-restricted-session">2923<h3 id="cloud-sessions-cannot-be-created-from-a-restricted-session">

2901 Las sesiones en la nube no se pueden crear desde una sesión `--restricted`2924 No se pueden crear sesiones en la nube desde una sesión `--restricted`

2902</h3>2925</h3>

2903 2926 

2904Cuando inicia una sesión con [`--restricted`](/docs/es/cli-reference#cli-flags), Claude Code se niega a crear [sesiones en la nube](/docs/es/claude-code-on-the-web#from-terminal-to-cloud) desde ella, porque la nueva sesión se ejecutaría fuera del proceso restringido y no haría cumplir el modo restringido. Claude Code se niega en el cliente, antes de contactar al servidor, por lo que no se crea ninguna sesión en la nube:2927Cuando inicias una sesión con [`--restricted`](/docs/es/cli-reference#cli-flags), Claude Code se niega a crear [sesiones en la nube](/docs/es/claude-code-on-the-web#from-terminal-to-cloud) desde ella, porque la nueva sesión se ejecutaría fuera del proceso restringido y no aplicaría el modo restringido. Claude Code se niega en el cliente, antes de contactar al servidor, así que no se crea ninguna sesión en la nube:

2905 2928 

2906```text theme={null}2929```text theme={null}

2907Cloud sessions cannot be created from a --restricted session: they would not enforce it.2930Cloud sessions cannot be created from a --restricted session: they would not enforce it.


2909 2932 

2910**Qué hacer:**2933**Qué hacer:**

2911 2934 

2912* Ejecute la tarea localmente en la sesión restringida2935* Ejecuta la tarea localmente en la sesión restringida

2913* Si controla cómo se lanzó la sesión, inicie una nueva sesión `claude` sin `--restricted` y cree la sesión en la nube desde allí2936* Si controlas cómo se inició la sesión, inicia una nueva sesión de `claude` sin `--restricted` y crea la sesión en la nube desde ahí

2914 2937 

2915Antes de v2.1.248, Claude Code no tenía la bandera `--restricted`; las versiones anteriores rechazan la bandera en sí con un error de opción desconocida.2938Antes de v2.1.248, Claude Code no tenía el flag `--restricted`; las versiones anteriores rechazan el propio flag con un error de opción desconocida.

2916 2939 

2917<h3 id="cloud-sessions-are-disabled-by-your-organizations-policy">2940<h3 id="cloud-sessions-are-disabled-by-your-organizations-policy">

2918 Las sesiones en la nube están deshabilitadas por la política de su organización2941 Las sesiones en la nube están deshabilitadas por la política de tu organización

2919</h3>2942</h3>

2920 2943 

2921La política `allow_remote_sessions` de su organización está desactivada, por lo que [sesiones en la nube](/docs/es/claude-code-on-the-web) y los comandos que las utilizan no están disponibles:2944La política `allow_remote_sessions` de tu organización está desactivada, así que las [sesiones en la nube](/docs/es/claude-code-on-the-web) y los comandos que las usan no están disponibles:

2922 2945 

2923```text theme={null}2946```text theme={null}

2924Cloud sessions are disabled by your organization's policy. Contact your organization admin to enable them.2947Cloud sessions are disabled by your organization's policy. Contact your organization admin to enable them.

2925```2948```

2926 2949 

2927El mensaje aparece cuando [crea una sesión en la nube desde la terminal](/docs/es/claude-code-on-the-web#from-terminal-to-cloud) y cuando envía un comando que necesita sesiones en la nube, como `/teleport`, `/remote-env`, o `/web-setup`. Antes de v2.1.268, enviar uno de esos comandos devolvía [`Unknown command`](#unknown-command) en su lugar.2950El mensaje aparece cuando [creas una sesión en la nube desde la terminal](/docs/es/claude-code-on-the-web#from-terminal-to-cloud) y cuando envías un comando que necesita sesiones en la nube, como `/teleport`, `/remote-env` o `/web-setup`. Antes de v2.1.268, enviar uno de esos comandos devolvía [`Unknown command`](#unknown-command) en su lugar.

2928 2951 

2929Esta es una política de organización del lado del servidor, por lo que no se puede anular desde la configuración local, variables de entorno o banderas de CLI.2952Esta es una política de organización del lado del servidor, así que no se puede sobrescribir desde la configuración local, las variables de entorno ni los flags de la CLI.

2930 2953 

2931Si Claude Code aún no ha cargado la política de su organización o no puede obtenerla, esos comandos responden `Couldn't verify your organization's policy for cloud sessions. Check your network connection, then restart Claude Code and try again.` en su lugar.2954Si Claude Code aún no ha cargado la política de tu organización o no puede obtenerla, esos comandos responden `Couldn't verify your organization's policy for cloud sessions. Check your network connection, then restart Claude Code and try again.` en su lugar.

2932 2955 

2933**Qué hacer:**2956**Qué hacer:**

2934 2957 

2935* Pida a un [Propietario](/docs/es/server-managed-settings#access-control) en su organización que habilite las sesiones en la nube en la configuración de administrador de Claude Code en [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code)2958* Pide a un [Owner](/docs/es/server-managed-settings#access-control) de tu organización que habilite las sesiones en la nube en la configuración de administración de Claude Code en [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code)

2936* Si el mensaje dice que no pudo verificar la política, verifique su conexión de red, luego reinicie Claude Code e intente nuevamente2959* Si el mensaje dice que no pudo verificar la política, revisa tu conexión de red, luego reinicia Claude Code e inténtalo de nuevo

2937 2960 

2938<h3 id="the-json-schema-value-is-not-a-valid-json-schema">2961<h3 id="the-json-schema-value-is-not-a-valid-json-schema">

2939 El valor de `--json-schema` no es un JSON Schema válido2962 El valor de `--json-schema` no es un JSON Schema válido

2940</h3>2963</h3>

2941 2964 

2942El esquema que pasó a [`--json-schema`](/docs/es/cli-reference#cli-flags) en [modo no interactivo](/docs/es/headless#get-structured-output) falló en la compilación de JSON Schema, por lo que `claude` sale con código 1 en lugar de ejecutar el símbolo del sistema. Antes de v2.1.205, un esquema inválido producía salida no estructurada sin error, y cualquier esquema que usara la palabra clave `format` se trataba como inválido.2965El esquema que pasaste a [`--json-schema`](/docs/es/cli-reference#cli-flags) en [modo no interactivo](/docs/es/headless#get-structured-output) falló la compilación de JSON Schema, así que `claude` termina con el código 1 en lugar de ejecutar el prompt. Antes de v2.1.205, un esquema no válido producía una salida no estructurada sin ningún error, y cualquier esquema que usara la palabra clave `format` se trataba como no válido.

2943 2966 

2944```text theme={null}2967```text theme={null}

2945Error: --json-schema is not a valid JSON Schema: data/type must be equal to one of the allowed values2968Error: --json-schema is not a valid JSON Schema: data/type must be equal to one of the allowed values

2946```2969```

2947 2970 

2948El texto después del segundo colon es el diagnóstico del validador y nombra la palabra clave o ubicación que falló. Los esquemas que usan la palabra clave `format`, como `"format": "email"`, son válidos: Claude Code acepta `format` como una anotación y no la hace cumplir.2971El texto después de los segundos dos puntos es el diagnóstico del validador y nombra la palabra clave o la ubicación que falló. Los esquemas que usan la palabra clave `format`, como `"format": "email"`, son válidos: Claude Code acepta `format` como anotación y no lo aplica.

2949 2972 

2950Claude Code ejecuta dos comprobaciones antes de la compilación del esquema: rechaza un valor que no es JSON analizable con `Error: --json-schema is not valid JSON`, y JSON válido que no es un objeto con `Error: --json-schema must be a JSON object`.2973Claude Code ejecuta dos verificaciones antes de compilar el esquema: rechaza un valor que no se puede analizar como JSON con `Error: --json-schema is not valid JSON`, y un JSON válido que no es un objeto con `Error: --json-schema must be a JSON object`.

2951 2974 

2952**Qué hacer:**2975**Qué hacer:**

2953 2976 

2954* Corrija la parte del esquema que nombra el diagnóstico, luego vuelva a ejecutar el comando2977* Corrige la parte del esquema que nombra el diagnóstico y vuelve a ejecutar el comando

2955* Consulte [Obtener salida estructurada](/docs/es/headless#get-structured-output) para un esquema y comando que funcionen2978* Consulta [Obtener salida estructurada](/docs/es/headless#get-structured-output) para ver un esquema y un comando que funcionan

2956 2979 

2957<h3 id="settings-file-exceeds-the-2mib-limit">2980<h3 id="settings-file-exceeds-the-2mib-limit">

2958 El archivo de configuración excede el límite de 2MiB2981 El archivo de configuración supera el límite de 2MiB

2959</h3>2982</h3>

2960 2983 

2961El archivo que pasó a [`--settings`](/docs/es/cli-reference#cli-flags) es más grande que 2 MiB, por lo que `claude` sale con código 1 al inicio en lugar de cargarlo. Antes de v2.1.214, Claude Code leía el archivo sin verificación de tamaño, y un archivo de varios gigabytes o un archivo de dispositivo como `/dev/zero` crecía en memoria sin límite.2984El archivo que pasaste a [`--settings`](/docs/es/cli-reference#cli-flags) es mayor de 2 MiB, así que `claude` termina con el código 1 al iniciar en lugar de cargarlo. Antes de v2.1.214, Claude Code leía el archivo sin verificar su tamaño, y un archivo de varios gigabytes o un archivo de dispositivo como `/dev/zero` hacía crecer la memoria sin límite.

2962 2985 

2963```text theme={null}2986```text theme={null}

2964Error: Settings file exceeds the 2MiB limit: /path/to/settings.json2987Error: Settings file exceeds the 2MiB limit: /path/to/settings.json

2965```2988```

2966 2989 

2967Claude Code rechaza una ruta `--settings` que no es un archivo regular de la misma manera: un dispositivo, FIFO o socket reporta `Error: Cannot use settings file (Not a regular file (device, FIFO, or socket))` seguido de la ruta, y un directorio reporta una razón `EISDIR`.2990Claude Code rechaza de la misma forma una ruta de `--settings` que no es un archivo normal: un dispositivo, FIFO o socket informa `Error: Cannot use settings file (Not a regular file (device, FIFO, or socket))` seguido de la ruta, y un directorio informa un motivo `EISDIR`.

2968 2991 

2969**Qué hacer:**2992**Qué hacer:**

2970 2993 

2971* Apunte `--settings` a un archivo JSON de configuración regular menor a 2 MiB. Consulte [Configuración](/docs/es/settings) para el formato.2994* Apunta `--settings` a un archivo de configuración JSON normal de menos de 2 MiB. Consulta [Configuración](/docs/es/settings) para ver el formato.

2972 2995 

2973<h3 id="the-current-directory-no-longer-exists">2996<h3 id="the-current-directory-no-longer-exists">

2974 El directorio actual ya no existe2997 El directorio actual ya no existe

2975</h3>2998</h3>

2976 2999 

2977Inició `claude` desde un directorio que fue eliminado o movido después de que su shell lo ingresara, por ejemplo un worktree o directorio temporal que otro shell eliminó. Claude Code no puede leer su directorio de trabajo, por lo que sale con código 1 antes de iniciar la sesión, tanto en modo interactivo como en [modo no interactivo](/docs/es/headless). Antes de v2.1.239, Claude Code se bloqueaba con fuente de paquete minificada y un `ENOENT ... uv_cwd` sin procesar en stderr en lugar de este mensaje.3000Iniciaste `claude` desde un directorio que se eliminó o movió después de que tu shell entrara en él, por ejemplo un worktree o un directorio temporal que otro shell eliminó. Claude Code no puede leer su directorio de trabajo, así que termina con el código 1 antes de iniciar la sesión, tanto en modo interactivo como [no interactivo](/docs/es/headless). Antes de v2.1.239, Claude Code fallaba mostrando código fuente minificado del paquete y una pila `ENOENT ... uv_cwd` sin procesar en stderr en lugar de este mensaje.

2978 3001 

2979```text theme={null}3002```text theme={null}

2980The current directory no longer exists (it was deleted or moved). Start Claude Code from an existing directory.3003The current directory no longer exists (it was deleted or moved). Start Claude Code from an existing directory.


2983 3006 

2984La causa y la solución son las mismas para ambas formas.3007La causa y la solución son las mismas para ambas formas.

2985 3008 

2986Cuando Claude Code no puede leer el directorio de trabajo por una razón diferente, como un cambio de permisos, el mensaje nombra el código de error en su lugar: `Can't read the current directory (EACCES). Start Claude Code from a different directory.`3009Cuando Claude Code no puede leer el directorio de trabajo por otro motivo, como un cambio de permisos, el mensaje nombra el código de error en su lugar: `Can't read the current directory (EACCES). Start Claude Code from a different directory.`

2987 3010 

2988En macOS, `EPERM` para un directorio en `~/Desktop`, `~/Documents`, `~/Downloads`, o iCloud Drive generalmente significa que macOS está bloqueando su aplicación de terminal desde esa carpeta. Otros comandos que leen esa carpeta fallan de la misma manera: `ls` allí reporta `Operation not permitted`, incluso con `sudo`.3011En macOS, `EPERM` para un directorio en `~/Desktop`, `~/Documents`, `~/Downloads` o iCloud Drive suele significar que macOS está bloqueando el acceso de tu aplicación de terminal a esa carpeta. Otros comandos que leen esa carpeta fallan de la misma forma: `ls` ahí informa `Operation not permitted`, incluso con `sudo`.

2989 3012 

2990**Qué hacer:**3013**Qué hacer:**

2991 3014 

2992* Cambie a un directorio que exista, como su directorio de inicio o directorio de proyecto, luego ejecute `claude` nuevamente3015* Cámbiate a un directorio que exista, como tu directorio home o el de tu proyecto, y vuelve a ejecutar `claude`

2993* Si el directorio fue recreado en la misma ruta, su shell aún mantiene el eliminado. Ejecute `cd "$PWD"` o salga y vuelva a ingresar al directorio, luego ejecute `claude` nuevamente3016* Si el directorio se volvió a crear en la misma ruta, tu shell todavía conserva el que se eliminó. Ejecuta `cd "$PWD"` o sal del directorio y vuelve a entrar, y luego vuelve a ejecutar `claude`

2994* Para `EPERM` en macOS, cierre su aplicación de terminal con Cmd+Q, ábrala nuevamente, regrese a esa carpeta y ejecute `claude`. Si `ls` en esa carpeta aún falla, abra **System Settings > Privacy & Security > Files and Folders**, active la carpeta para su aplicación de terminal, luego reabre la terminal3017* Para `EPERM` en macOS, cierra tu aplicación de terminal con Cmd+Q, ábrela de nuevo, regresa a esa carpeta y ejecuta `claude`. Si `ls` en esa carpeta sigue fallando, abre **System Settings > Privacy & Security > Files and Folders**, activa la carpeta para tu aplicación de terminal y vuelve a abrir la terminal

2995 3018 

2996<h3 id="temp-directory-refused-or-cannot-be-created">3019<h3 id="temp-directory-refused-or-cannot-be-created">

2997 El directorio temporal fue rechazado o no se puede crear3020 Directorio temporal rechazado o que no se puede crear

2998</h3>3021</h3>

2999 3022 

3000En macOS y Linux, Claude Code crea un directorio temporal privado al inicio, `claude-<uid>` bajo el directorio temporal del sistema o la anulación [`CLAUDE_CODE_TMPDIR`](/docs/es/env-vars). Cuando el directorio no se puede crear, o una entrada ya en esa ruta falla las verificaciones de seguridad, Claude Code imprime el fallo en stderr y sale con código 1 en lugar de iniciar la sesión:3023En macOS y Linux, Claude Code crea un directorio temporal privado al iniciar, `claude-<uid>`, dentro del directorio temporal del sistema o de la sobrescritura [`CLAUDE_CODE_TMPDIR`](/docs/es/env-vars). Cuando el directorio no se puede crear, o una entrada que ya existe en esa ruta no supera las verificaciones de seguridad, Claude Code imprime el fallo en stderr y termina con el código 1 en lugar de iniciar la sesión:

3001 3024 

3002```text wrap theme={null}3025```text wrap theme={null}

3003ENOSPC: no space left on device, mkdir '/tmp/claude-501'3026ENOSPC: no space left on device, mkdir '/tmp/claude-501'


3011 3034 

3012**Qué hacer:**3035**Qué hacer:**

3013 3036 

3014* Para `ENOSPC`, libere espacio en disco en el volumen que contiene el directorio temporal3037* Para `ENOSPC`, libera espacio en disco en el volumen que contiene el directorio temporal

3015* Para las formas `Refusing to use it`, elimine la entrada nombrada en sí, no lo que apunta un enlace, e inicie Claude Code nuevamente; para la forma `owned by uid`, solo un administrador o ese usuario puede eliminarlo3038* Para las formas `Refusing to use it`, elimina la propia entrada nombrada, no aquello a lo que apunta un enlace, y vuelve a iniciar Claude Code; para la forma `owned by uid`, solo un administrador o ese usuario puede eliminarla

3016* Para `is not readable`, ejecute `chmod 0700` en el directorio nombrado, o elimínelo e inicie nuevamente3039* Para `is not readable`, ejecuta `chmod 0700` sobre el directorio nombrado, o elimínalo y vuelve a iniciar

3017* En cualquiera de estos casos, establezca [`CLAUDE_CODE_TMPDIR`](/docs/es/env-vars) en un directorio que controle e inicie Claude Code nuevamente, dejando la ruta rechazada sola3040* En cualquiera de estos casos, establece [`CLAUDE_CODE_TMPDIR`](/docs/es/env-vars) en un directorio que controles y vuelve a iniciar Claude Code, sin tocar la ruta rechazada

3018 3041 

3019<h3 id="directory-couldnt-be-resolved-to-a-real-location">3042<h3 id="directory-couldnt-be-resolved-to-a-real-location">

3020 El directorio no se pudo resolver a una ubicación real3043 No se pudo resolver el directorio a una ubicación real

3021</h3>3044</h3>

3022 3045 

3023Ejecutó `/add-dir` para un subdirectorio de su directorio de trabajo, y Claude Code no pudo resolver el directorio a su ubicación real.3046Ejecutaste `/add-dir` para un subdirectorio de tu directorio de trabajo, y Claude Code no pudo resolver el directorio a su ubicación real.

3024 3047 

3025Ya tiene acceso a archivos en un subdirectorio del directorio de trabajo, por lo que `/add-dir` solo carga sus skills, comandos y agentes. Antes de cargarlos, Claude Code verifica que la ubicación real del directorio, con cualquier enlace simbólico resuelto, esté dentro del directorio de trabajo. Cuando Claude Code no puede resolver esa ubicación, no carga nada y muestra este mensaje:3048Ya tienes acceso a los archivos de un subdirectorio del directorio de trabajo, así que `/add-dir` solo carga sus skills, comandos y agentes. Antes de cargarlos, Claude Code verifica que la ubicación real del directorio, con los enlaces simbólicos resueltos, esté dentro del directorio de trabajo. Cuando Claude Code no puede resolver esa ubicación, no carga nada y muestra este mensaje:

3026 3049 

3027```text theme={null}3050```text theme={null}

3028packages/app couldn't be resolved to a real location, so its skills, commands, and agents weren't loaded. Check that it is a directory inside the working directory and try again.3051packages/app couldn't be resolved to a real location, so its skills, commands, and agents weren't loaded. Check that it is a directory inside the working directory and try again.


3030 3053 

3031**Qué hacer:**3054**Qué hacer:**

3032 3055 

3033* Verifique que la ruta nombre un directorio real dentro del directorio de trabajo, luego ejecute `/add-dir` nuevamente3056* Verifica que la ruta nombre un directorio real dentro del directorio de trabajo y vuelve a ejecutar `/add-dir`

3034* El mensaje no cambia su acceso a archivos; solo reporta que el contenido `.claude/` del directorio no fue cargado3057* El mensaje no cambia tu acceso a los archivos; solo informa que el contenido `.claude/` del directorio no se cargó

3035 3058 

3036Antes de v2.1.261, este mensaje también aparecía para cada `/add-dir <subdirectory>` cuando el directorio de trabajo estaba en un automontaje `/net/<host>`, donde Claude Code se niega a resolver rutas por diseño; el directorio estaba bien y reintentar no podía ayudar.3059Antes de v2.1.261, este mensaje también aparecía en cada `/add-dir <subdirectory>` cuando el directorio de trabajo estaba en un montaje automático `/net/<host>`, donde Claude Code, por diseño, no resuelve rutas; el directorio estaba bien y reintentar no podía ayudar.

3037 3060 

3038<h3 id="workspace-not-trusted-when-starting-remote-control">3061<h3 id="workspace-not-trusted-when-starting-remote-control">

3039 Espacio de trabajo no confiable al iniciar Remote Control3062 Espacio de trabajo no confiable al iniciar Remote Control

3040</h3>3063</h3>

3041 3064 

3042Inició el modo servidor de [Remote Control](/docs/es/remote-control) con `claude remote-control` o su alias `claude rc` en un directorio que no ha confiado, y el comando no pudo preguntarle si confiar en él. Por ejemplo, la entrada estándar o la salida estándar del comando no es una terminal porque una de ellas se redirige o se canaliza. El comando sale con código 1:3065Iniciaste el modo servidor de [Remote Control](/docs/es/remote-control) con `claude remote-control` o su alias `claude rc` en un directorio en el que no has confiado, y el comando no pudo preguntarte si confiar en él. Por ejemplo, la entrada estándar o la salida estándar del comando no es una terminal porque una de ellas está redirigida o canalizada. El comando termina con el código 1:

3043 3066 

3044```text theme={null}3067```text theme={null}

3045Error: Workspace not trusted. Please run `claude` in /Users/you/project first to review and accept the workspace trust dialog.3068Error: Workspace not trusted. Please run `claude` in /Users/you/project first to review and accept the workspace trust dialog.

3046```3069```

3047 3070 

3048Dos variantes que también comienzan con `Error: Workspace not trusted.` aparecen en una terminal también demasiado pequeña para mostrar qué confiar en el directorio activa, o una que no reportó su tamaño. Amplíe la ventana o cambie a una ventana de terminal normal, luego ejecute `claude rc` nuevamente.3071Dos variantes que también comienzan con `Error: Workspace not trusted.` aparecen en una terminal demasiado pequeña para mostrar lo que activa confiar en el directorio, o en una que no informó su tamaño. Agranda la ventana o cambia a una ventana de terminal normal, y vuelve a ejecutar `claude rc`.

3049 3072 

3050En su directorio de inicio el mensaje es diferente, porque el diálogo de confianza del espacio de trabajo nunca guarda confianza para el directorio de inicio, por lo que aceptarlo allí no puede satisfacer esta verificación. Antes de v2.1.214, el directorio de inicio mostraba el mensaje anterior, cuyo consejo no puede tener éxito allí.3073En tu directorio home el mensaje es diferente, porque el diálogo de confianza del espacio de trabajo nunca guarda la confianza para el directorio home, así que aceptarlo ahí no puede satisfacer esta verificación. Antes de v2.1.214, el directorio home mostraba el mensaje anterior, cuyo consejo no puede funcionar ahí.

3051 3074 

3052```text theme={null}3075```text theme={null}

3053Error: Workspace not trusted. /Users/you is your home directory, and for security home-directory trust is never saved, so running `claude` here first won't help. Run `claude rc` from a project directory instead (run `claude` there once to accept the trust dialog).3076Error: Workspace not trusted. /Users/you is your home directory, and for security home-directory trust is never saved, so running `claude` here first won't help. Run `claude rc` from a project directory instead (run `claude` there once to accept the trust dialog).

3054```3077```

3055 3078 

3056Si responde `n` o presiona Enter en la [pregunta `Trust <directory>?`](/docs/es/remote-control#requirements), el comando imprime un mensaje `Remote Control did not start` que nombra el directorio y sale con código 1. Ejecute `claude rc` nuevamente para responder `y`.3079Si respondes `n` o presionas Enter en la [pregunta `Trust <directory>?`](/docs/es/remote-control#requirements), el comando imprime un mensaje `Remote Control did not start` que nombra el directorio y termina con el código 1. Vuelve a ejecutar `claude rc` para responder `y`.

3057 3080 

3058**Qué hacer:**3081**Qué hacer:**

3059 3082 

3060* Confíe en el directorio desde una terminal primero: ejecute `claude rc` allí y responda `y`, o ejecute `claude` allí y acepte el [diálogo de confianza del espacio de trabajo](/docs/es/permissions#project-allow-rules-and-workspace-trust), luego ejecute su comando original nuevamente3083* Primero confía en el directorio desde una terminal: ejecuta `claude rc` ahí y responde `y`, o ejecuta `claude` ahí y acepta el [diálogo de confianza del espacio de trabajo](/docs/es/permissions#project-allow-rules-and-workspace-trust), y luego vuelve a ejecutar tu comando original

3061* En su directorio de inicio, cambie a un directorio de proyecto e inicie Remote Control allí3084* En tu directorio home, cámbiate a un directorio de proyecto e inicia Remote Control ahí

3062 3085 

3063Antes de v2.1.284, el comando nunca preguntó, incluso en una terminal.3086Antes de v2.1.284, el comando nunca preguntaba, ni siquiera en una terminal.

3064 3087 

3065<h3 id="not-carried-over-to-the-sessions-remote-control-starts">3088<h3 id="not-carried-over-to-the-sessions-remote-control-starts">

3066 No se trasladó a las sesiones que inicia Remote Control3089 No se transfiere a las sesiones que inicia Remote Control

3067</h3>3090</h3>

3068 3091 

3069Inició [Remote Control](/docs/es/remote-control) con una bandera global `claude` antes del verbo `remote-control`, una que restringiría o configuraría las sesiones que inicia Remote Control, como `--settings`, `--setting-sources`, `--permission-mode`, `--disallowed-tools`, o `--mcp-config`. Una bandera colocada antes del verbo nunca llega a esas sesiones. Claude Code se niega a iniciar en su lugar, nombrando la bandera:3092Iniciaste [Remote Control](/docs/es/remote-control) con un flag global de `claude` antes del verbo `remote-control`, uno que restringiría o configuraría las sesiones que inicia Remote Control, como `--settings`, `--setting-sources`, `--permission-mode`, `--disallowed-tools` o `--mcp-config`. Un flag colocado antes del verbo nunca llega a esas sesiones. En su lugar, Claude Code se niega a iniciar y nombra el flag:

3070 3093 

3071```text theme={null}3094```text theme={null}

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

3073```3096```

3074 3097 

3075Claude Code no se niega a banderas globales que son inofensivas de descartar, como `--verbose`, `--model`, o un `--session-id` inyectado por envoltorio o `--plugin-dir`: las ignora e inicia Remote Control.3098Claude Code no rechaza los flags globales que son inofensivos de descartar, como `--verbose`, `--model`, o un `--session-id` o `--plugin-dir` inyectado por un wrapper: los ignora y Remote Control se inicia.

3076 3099 

3077Claude Code también se niega a iniciar para una bandera global que aún no reconoce como inofensiva, por lo que una bandera agregada en una versión más nueva puede aparecer en este mensaje hasta que una versión posterior la marque como inofensiva.3100Claude Code también se niega a iniciar con un flag global que todavía no reconoce como inofensivo, así que un flag agregado en una versión más reciente puede aparecer en este mensaje hasta que una versión posterior lo marque como inofensivo.

3078 3101 

3079**Qué hacer:**3102**Qué hacer:**

3080 3103 

3081* Elimine la bandera de antes del verbo y pase [las opciones propias de Remote Control](/docs/es/remote-control#start-a-remote-control-session) después de él; `claude remote-control --help` las enumera3104* Quita el flag de antes del verbo y pasa las [opciones propias de Remote Control](/docs/es/remote-control#start-a-remote-control-session) después de él; `claude remote-control --help` las enumera

3082* Cuando la bandera rechazada es `--permission-mode`, ejecute `claude remote-control --permission-mode <mode>` para establecer el modo de permiso para las sesiones que inicia Remote Control3105* Cuando el flag rechazado es `--permission-mode`, ejecuta `claude remote-control --permission-mode <mode>` para establecer el modo de permisos de las sesiones que inicia Remote Control

3083 3106 

3084Antes de v2.1.248, `claude remote-control` no aceptaba sus propias banderas cuando una bandera global venía primero, y el comando falló con un error de `unknown option`.3107Antes de v2.1.248, `claude remote-control` no aceptaba sus propios flags cuando un flag global iba primero, y el comando fallaba con un error `unknown option`.

3085 3108 

3086<h3 id="claude-import-is-not-yet-available-in-this-build">3109<h3 id="claude-import-is-not-yet-available-in-this-build">

3087 claude import aún no está disponible en esta compilación3110 claude import todavía no está disponible en esta compilación

3088</h3>3111</h3>

3089 3112 

3090Ejecutó [`claude import`](/docs/es/cli-reference#cli-commands), y Claude Code encontró el flujo de importación desactivado, por lo que el comando sale con código 1 en lugar de iniciar la importación. Antes de v2.1.222, una compilación con el flujo de importación desactivado trataba `import` como un símbolo del sistema e iniciaba una sesión interactiva en lugar de imprimir este mensaje.3113Ejecutaste [`claude import`](/docs/es/cli-reference#cli-commands), y Claude Code encontró el flujo de importación desactivado, así que el comando termina con el código 1 en lugar de iniciar la importación. Antes de v2.1.222, una compilación con el flujo de importación desactivado trataba `import` como un prompt e iniciaba una sesión interactiva en lugar de imprimir este mensaje.

3091 3114 

3092```text theme={null}3115```text theme={null}

3093`claude import` is not yet available in this build. Run `claude` and use /mcp or edit ~/.claude/settings.json directly.3116`claude import` is not yet available in this build. Run `claude` and use /mcp or edit ~/.claude/settings.json directly.

3094```3117```

3095 3118 

3096Claude Code activa `claude import` a través de una bandera de característica que obtiene de Anthropic y almacena en caché en disco. Este mensaje significa que el valor almacenado en caché está desactivado. La causa es generalmente una de las siguientes:3119Claude Code activa `claude import` mediante un feature flag que obtiene de Anthropic y almacena en caché en el disco. Este mensaje significa que el valor en caché está desactivado. La causa suele ser una de las siguientes:

3097 3120 

3098* No ha iniciado una sesión desde la instalación, por lo que Claude Code aún no ha obtenido la bandera. El primer `claude import` puede imprimir esto incluso cuando la característica está disponible para usted.3121* No has iniciado una sesión desde la instalación, así que Claude Code todavía no ha obtenido el flag. El primer `claude import` puede imprimir esto incluso cuando la función está disponible para ti.

3099* Usa Claude Code a través de Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry, o Claude Platform en AWS, o a través de una [puerta de enlace de aplicaciones Claude](/docs/es/claude-apps-gateway#availability-and-limitations). Claude Code no obtiene banderas de características en estas sesiones, por lo que `claude import` permanece no disponible.3122* Usas Claude Code a través de Amazon Bedrock, Agent Platform de Google Cloud, Microsoft Foundry o Claude Platform en AWS, o a través de un [gateway de aplicaciones de Claude](/docs/es/claude-apps-gateway#availability-and-limitations). Claude Code no obtiene feature flags en estas sesiones, así que `claude import` sigue sin estar disponible.

3100* Estableció `DISABLE_TELEMETRY`, `DO_NOT_TRACK`, `DISABLE_GROWTHBOOK`, o [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/es/env-vars), que desactivan la obtención de banderas de características, por lo que `claude import` permanece no disponible.3123* Estableciste `DISABLE_TELEMETRY`, `DO_NOT_TRACK`, `DISABLE_GROWTHBOOK` o [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/es/env-vars), que desactivan la obtención de feature flags, así que `claude import` sigue sin estar disponible.

3101 3124 

3102**Qué hacer:**3125**Qué hacer:**

3103 3126 

3104* En una instalación nueva, inicie `claude`, espere a que la sesión se cargue, salga y ejecute `claude import` nuevamente3127* En una instalación nueva, inicia `claude`, espera a que la sesión cargue, sal y vuelve a ejecutar `claude import`

3105* Donde la obtención de banderas de características permanece desactivada, configure la configuración usted mismo: agregue servidores MCP con [`claude mcp add`](/docs/es/mcp#installing-mcp-servers), y cree los [archivos `CLAUDE.md`](/docs/es/memory#how-claude-md-files-load), [skills y comandos](/docs/es/skills#where-skills-live), y [subagentes](/docs/es/sub-agents#choose-the-subagent-scope) que desea trasladar. El mensaje también nombra `~/.claude/settings.json`. De la configuración que `claude import` traslada, ese archivo contiene solo el [modo de permiso](/docs/es/settings-reference#permission-settings); Claude Code no lee servidores MCP de él.3128* Donde la obtención de feature flags permanece desactivada, prepara la configuración tú mismo: agrega servidores MCP con [`claude mcp add`](/docs/es/mcp#installing-mcp-servers), y crea los [archivos `CLAUDE.md`](/docs/es/memory#how-claude-md-files-load), [skills y comandos](/docs/es/skills#where-skills-live) y [subagentes](/docs/es/sub-agents#choose-the-subagent-scope) que quieras transferir. El mensaje también nombra `~/.claude/settings.json`. De la configuración que transfiere `claude import`, ese archivo contiene solo el [modo de permisos](/docs/es/settings-reference#permission-settings); Claude Code no lee servidores MCP desde él.

3106 3129 

3107<h3 id="could-not-read-claude-code-config">3130<h3 id="could-not-read-claude-code-config">

3108 No se pudo leer la configuración de Claude Code3131 No se pudo leer la configuración de Claude Code

3109</h3>3132</h3>

3110 3133 

3111Ejecutó [`claude import`](/docs/es/cli-reference#cli-commands) mientras Claude Code no podía analizar `~/.claude.json`, el archivo donde almacena su inicio de sesión y estado por proyecto. El subcomando lee ese archivo para verificar disponibilidad pero no muestra el diálogo de recuperación que muestra la sesión interactiva, por lo que sale con código 1. Antes de v2.1.222, `claude import` con un archivo de configuración ilegible iniciaba una sesión interactiva, cuyo diálogo de recuperación manejaba el archivo.3134Ejecutaste [`claude import`](/docs/es/cli-reference#cli-commands) mientras Claude Code no podía analizar `~/.claude.json`, el archivo donde almacena tu inicio de sesión y el estado de cada proyecto. El subcomando lee ese archivo para verificar la disponibilidad, pero no muestra el diálogo de recuperación que muestra la sesión interactiva, así que termina con el código 1. Antes de v2.1.222, `claude import` con un archivo de configuración ilegible iniciaba una sesión interactiva, cuyo diálogo de recuperación se encargaba del archivo.

3112 3135 

3113```text theme={null}3136```text theme={null}

3114Could not read Claude Code config — run `claude` with no arguments to recover it.3137Could not read Claude Code config — run `claude` with no arguments to recover it.


3116 3139 

3117**Qué hacer:**3140**Qué hacer:**

3118 3141 

3119* Ejecute `claude` sin argumentos. Claude Code detecta el archivo inválido y ofrece restablecerlo. Luego ejecute `claude import` nuevamente.3142* Ejecuta `claude` sin argumentos. Claude Code detecta el archivo no válido y ofrece restablecerlo. Luego vuelve a ejecutar `claude import`.

3120* Para mantener ediciones manuales que ha realizado, corrija la sintaxis JSON en `~/.claude.json` en un editor en su lugar, luego vuelva a ejecutar `claude import`3143* Para conservar las ediciones manuales que hayas hecho, corrige en su lugar la sintaxis JSON de `~/.claude.json` en un editor y vuelve a ejecutar `claude import`

3121 3144 

3122<h3 id="could-not-import-a-server-from-claude-desktop">3145<h3 id="could-not-import-a-server-from-claude-desktop">

3123 No se pudo importar un servidor desde Claude Desktop3146 No se pudo importar un servidor desde Claude Desktop

3124</h3>3147</h3>

3125 3148 

3126Claude Code no pudo agregar uno de los servidores que seleccionó en `claude mcp add-from-claude-desktop`. El comando aún importa los otros servidores seleccionados e imprime una línea por servidor que no pudo agregar. Antes de v2.1.205, el primer servidor que falló detuvo la importación.3149Claude Code no pudo agregar uno de los servidores que seleccionaste en `claude mcp add-from-claude-desktop`. El comando igualmente importa los demás servidores seleccionados e imprime una línea por cada servidor que no pudo agregar. Antes de v2.1.205, el primer servidor que fallaba detenía la importación.

3127 3150 

3128```text theme={null}3151```text theme={null}

3129Could not import my server: Invalid name my server. Names can only contain letters, numbers, hyphens, and underscores.3152Could not import my server: Invalid name my server. Names can only contain letters, numbers, hyphens, and underscores.

3130```3153```

3131 3154 

3132El texto después del nombre del servidor es la razón. La más común es la verificación de nombre: Claude Desktop permite caracteres en nombres de servidor, como espacios y períodos, que `claude mcp` restringe a letras, números, guiones y guiones bajos. Otras razones incluyen una configuración de servidor que falla en la validación y un servidor bloqueado por la [política MCP](/docs/es/managed-mcp) de su organización.3155El texto después del nombre del servidor es el motivo. El más común es la verificación del nombre: Claude Desktop permite en los nombres de servidor caracteres, como espacios y puntos, que `claude mcp` restringe a letras, números, guiones y guiones bajos. Otros motivos incluyen una configuración de servidor que no supera la validación y un servidor bloqueado por la [política de MCP](/docs/es/managed-mcp) de tu organización.

3133 3156 

3134**Qué hacer:**3157**Qué hacer:**

3135 3158 

3136* Cambie el nombre del servidor en `claude_desktop_config.json` para usar solo letras, números, guiones y guiones bajos, luego ejecute `claude mcp add-from-claude-desktop` nuevamente3159* Cambia el nombre del servidor en `claude_desktop_config.json` para que use solo letras, números, guiones y guiones bajos, y vuelve a ejecutar `claude mcp add-from-claude-desktop`

3137* Agregue ese servidor directamente con `claude mcp add` o `claude mcp add-json` bajo un nombre válido. Consulte [Importar servidores MCP desde Claude Desktop](/docs/es/mcp#import-mcp-servers-from-claude-desktop).3160* Agrega ese servidor directamente con `claude mcp add` o `claude mcp add-json` con un nombre válido. Consulta [Importar servidores MCP desde Claude Desktop](/docs/es/mcp#import-mcp-servers-from-claude-desktop).

3138 3161 

3139<h3 id="cannot-add-mcp-server-to-the-managed-scope">3162<h3 id="cannot-add-mcp-server-to-the-managed-scope">

3140 No se puede agregar servidor MCP al alcance administrado3163 No se puede agregar el servidor MCP al alcance managed

3141</h3>3164</h3>

3142 3165 

3143Ejecutó `claude mcp add` o `claude mcp add-json` con `--scope managed`. Ese alcance contiene los servidores que su organización proporciona a través de la configuración administrada [`managedMcpServers`](/docs/es/settings-reference#managedmcpservers). Claude Code los lee solo desde configuraciones administradas, por lo que el comando no puede escribir un servidor en ese alcance.3166Ejecutaste `claude mcp add` o `claude mcp add-json` con `--scope managed`. Ese alcance contiene los servidores que tu organización proporciona mediante el ajuste administrado [`managedMcpServers`](/docs/es/settings-reference#managedmcpservers). Claude Code los lee solo desde la configuración administrada, así que el comando no puede escribir un servidor en ese alcance.

3144 3167 

3145```text theme={null}3168```text theme={null}

3146Cannot add MCP server to scope: managed3169Cannot add MCP server to scope: managed


3148 3171 

3149**Qué hacer:**3172**Qué hacer:**

3150 3173 

3151* Agregue el servidor a un alcance en el que pueda escribir: `local`, `user`, o `project`. Sin `--scope`, el comando usa `local`. Consulte [Alcances de instalación de MCP](/docs/es/mcp#mcp-installation-scopes)3174* Agrega el servidor a un alcance en el que puedas escribir: `local`, `user` o `project`. Sin `--scope`, el comando usa `local`. Consulta [Alcances de instalación de MCP](/docs/es/mcp#mcp-installation-scopes)

3152* Para proporcionar el servidor a cada usuario en su organización, agréguelo a [`managedMcpServers`](/docs/es/settings-reference#managedmcpservers) en la configuración administrada que implementa3175* Para proporcionar el servidor a todos los usuarios de tu organización, agrégalo a [`managedMcpServers`](/docs/es/settings-reference#managedmcpservers) en la configuración administrada que despliegas

3153 3176 

3154<h3 id="cant-read-mcp-json">3177<h3 id="cant-read-mcp-json">

3155 No se puede leer .mcp.json3178 No se puede leer .mcp.json

3156</h3>3179</h3>

3157 3180 

3158Un comando que lee el [`.mcp.json`](/docs/es/mcp#project-scope) del proyecto, como `claude mcp add` o `claude mcp add-json` con `--scope project`, o `claude mcp remove`, encontró que el archivo en su directorio actual no es un archivo regular o es más grande que 2 MiB, por lo que sale con este error en lugar de leer el archivo.3181Un comando que lee el [`.mcp.json`](/docs/es/mcp#project-scope) del proyecto, como `claude mcp add` o `claude mcp add-json` con `--scope project`, o `claude mcp remove`, encontró que el archivo en tu directorio actual no es un archivo normal o es mayor de 2 MiB, así que termina con este error en lugar de leer el archivo.

3159 3182 

3160```text theme={null}3183```text theme={null}

3161Can't read .mcp.json: it isn't a regular file or is larger than 2097152 bytes. Fix or remove it, then run the command again.3184Can't read .mcp.json: it isn't a regular file or is larger than 2097152 bytes. Fix or remove it, then run the command again.

3162```3185```

3163 3186 

3164Antes de v2.1.257, un FIFO en `.mcp.json` dejaba el comando esperando para siempre sin salida, y un enlace simbólico a un archivo de dispositivo como `/dev/zero` crecía en memoria hasta que el proceso fue eliminado.3187Antes de v2.1.257, un FIFO en `.mcp.json` dejaba el comando esperando para siempre sin salida, y un enlace simbólico a un archivo de dispositivo como `/dev/zero` hacía crecer la memoria hasta que el proceso se terminaba.

3165 3188 

3166**Qué hacer:**3189**Qué hacer:**

3167 3190 

3168* Verifique qué se encuentra en `.mcp.json` en su directorio actual. Reemplácelo con un archivo JSON ordinario en el [formato de alcance de proyecto](/docs/es/mcp#project-scope), o elimínelo, luego ejecute el comando nuevamente.3191* Revisa qué hay en `.mcp.json` en tu directorio actual. Reemplázalo por un archivo JSON común en el [formato de alcance de proyecto](/docs/es/mcp#project-scope), o elimínalo, y vuelve a ejecutar el comando.

3169 3192 

3170<h3 id="mcp-server-was-not-saved-or-removed">3193<h3 id="mcp-server-was-not-saved-or-removed">

3171 El servidor MCP no se guardó ni se eliminó3194 El servidor MCP no se guardó ni se eliminó

3172</h3>3195</h3>

3173 3196 

3174Ejecutó `claude mcp add`, `claude mcp add-json`, o `claude mcp remove` para un servidor en el alcance `user` o `local` [scope](/docs/es/mcp#mcp-installation-scopes). Ambos alcances se almacenan en `~/.claude.json`, y el cambio no está en ese archivo cuando Claude Code lo lee después de escribir. El comando sale con este error en lugar de su línea de éxito.3197Ejecutaste `claude mcp add`, `claude mcp add-json` o `claude mcp remove` para un servidor en el [alcance](/docs/es/mcp#mcp-installation-scopes) `user` o `local`. Ambos alcances se almacenan en `~/.claude.json`, y el cambio no está en ese archivo cuando Claude Code lo vuelve a leer después de escribirlo. El comando termina con este error en lugar de su línea de éxito.

3175 3198 

3176```text theme={null}3199```text theme={null}

3177MCP server "example" was not saved to /home/user/.claude.json. If that file is read-only or protected by a sandbox, make it writable or run the command outside the sandbox, then add the server again.3200MCP server "example" was not saved to /home/user/.claude.json. If that file is read-only or protected by a sandbox, make it writable or run the command outside the sandbox, then add the server again.

3178```3201```

3179 3202 

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

3181 3204 

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

3183 3206 

3184**Qué hacer:**3207**Qué hacer:**

3185 3208 

3186* Haga que el archivo que nombra el mensaje sea escribible, o ejecute el comando fuera del sandbox, luego ejecute el mismo comando de agregar o eliminar nuevamente.3209* Haz que el archivo que nombra el mensaje se pueda escribir, o ejecuta el comando fuera del sandbox, y luego vuelve a ejecutar el mismo comando de agregar o eliminar.

3187 3210 

3188<h3 id="mcp-server-may-not-have-been-saved-or-removed">3211<h3 id="mcp-server-may-not-have-been-saved-or-removed">

3189 El servidor MCP puede no haber sido guardado o eliminado3212 Es posible que el servidor MCP no se haya guardado ni eliminado

3190</h3>3213</h3>

3191 3214 

3192Ejecutó `claude mcp add`, `claude mcp add-json`, o `claude mcp remove` para un servidor en el alcance `user` o `local` [scope](/docs/es/mcp#mcp-installation-scopes), y Claude Code no pudo leer `~/.claude.json` de vuelta para confirmar el cambio. El cambio puede o no estar en el disco. El texto entre paréntesis es el error de esa lectura.3215Ejecutaste `claude mcp add`, `claude mcp add-json` o `claude mcp remove` para un servidor en el [alcance](/docs/es/mcp#mcp-installation-scopes) `user` o `local`, y Claude Code no pudo volver a leer `~/.claude.json` para confirmar el cambio. Puede que el cambio esté en el disco o puede que no. El texto entre paréntesis es el error de esa lectura.

3193 3216 

3194```text theme={null}3217```text theme={null}

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

3196```3219```

3197 3220 

3198Después de una eliminación, el mensaje lee `may not have been removed` y termina con `then remove the server again if it is still listed`.3221Después de una eliminación, el mensaje dice `may not have been removed` y termina con `then remove the server again if it is still listed`.

3199 3222 

3200Antes de v2.1.283, los comandos reportaban éxito incluso cuando el cambio no podía ser confirmado.3223Antes de v2.1.283, los comandos informaban éxito incluso cuando el cambio no se podía confirmar.

3201 3224 

3202**Qué hacer:**3225**Qué hacer:**

3203 3226 

3204* Ejecute `claude mcp get <name>` para verificar si el cambio está en el disco. Para un servidor de alcance `local`, ejecútelo desde el directorio del proyecto al que pertenece el servidor, ya que el alcance local es por proyecto.3227* Ejecuta `claude mcp get <name>` para verificar si el cambio está en el disco. Para un servidor de alcance `local`, ejecútalo desde el directorio de proyecto al que pertenece el servidor, ya que el alcance local es por proyecto.

3205* Si el servidor falta después de un agregar, o aún está listado después de una eliminación, ejecute el mismo comando de agregar o eliminar nuevamente.3228* Si el servidor falta después de agregarlo, o sigue en la lista después de eliminarlo, vuelve a ejecutar el mismo comando de agregar o eliminar.

3206 3229 

3207<h3 id="anthropic-hosted-and-doesnt-support-local-oauth">3230<h3 id="anthropic-hosted-and-doesnt-support-local-oauth">

3208 El servidor está alojado por Anthropic y no admite OAuth local3231 El servidor está alojado por Anthropic y no admite OAuth local

3209</h3>3232</h3>

3210 3233 

3211Inició un inicio de sesión para un servidor MCP cuya URL apunta a un host de conector alojado por Anthropic que se autentica a través de un proveedor de identidad de terceros. Estos hosts incluyen `microsoft365.mcp.claude.com`, `gmail.mcp.claude.com`, y `gcal.mcp.claude.com`. Claude Code se niega a iniciar su flujo OAuth local para estos hosts tanto desde el panel `/mcp` como desde `claude mcp login`, porque [su inicio de sesión funciona solo a través de claude.ai](/docs/es/mcp#use-mcp-servers-from-claude-ai).3234Iniciaste un inicio de sesión para un servidor MCP cuya URL apunta a un host de conectores alojado por Anthropic que autentica mediante un proveedor de identidad de terceros. Estos hosts incluyen `microsoft365.mcp.claude.com`, `gmail.mcp.claude.com` y `gcal.mcp.claude.com`. Claude Code se niega a iniciar su flujo OAuth local para estos hosts tanto desde el panel `/mcp` como desde `claude mcp login`, porque [su inicio de sesión solo funciona a través de claude.ai](/docs/es/mcp#use-mcp-servers-from-claude-ai).

3212 3235 

3213```text theme={null}3236```text theme={null}

3214"gmail" is Anthropic-hosted and doesn't support local OAuth. Connect it via Settings → Connectors on claude.ai (requires `claude login`), then it'll be available here automatically.3237"gmail" is Anthropic-hosted and doesn't support local OAuth. Connect it via Settings → Connectors on claude.ai (requires `claude login`), then it'll be available here automatically.

3215```3238```

3216 3239 

3217Claude Code coincide con estos hosts por URL, por lo que el mensaje aparece cuando un servidor que agregó con `claude mcp add` o en `.mcp.json` apunta a uno de ellos.

3218 

3219**Qué hacer:**3240**Qué hacer:**

3220 3241 

3221* Elimine su entrada con `claude mcp remove <name>`, para que no pueda ocultar el conector de claude.ai en la misma URL3242* Elimina tu entrada con `claude mcp remove <name>`, para que no pueda ocultar el conector de claude.ai en la misma URL

3222* Después de eliminarlo, conecte el servicio en [claude.ai/customize/connectors](https://claude.ai/customize/connectors), mientras está conectado a la cuenta que usa en Claude Code. Una vez conectado, [el conector aparece en Claude Code automáticamente](/docs/es/mcp#use-mcp-servers-from-claude-ai) si su método de autenticación activo es un inicio de sesión de suscripción de claude.ai3243* Después de eliminarla, conecta el servicio en [claude.ai/customize/connectors](https://claude.ai/customize/connectors), con la sesión iniciada en la cuenta que usas en Claude Code. Una vez conectado, [el conector aparece en Claude Code automáticamente](/docs/es/mcp#use-mcp-servers-from-claude-ai) si tu método de autenticación activo es un inicio de sesión con una suscripción de claude.ai

3223 3244 

3224<h3 id="server-rejected-the-authorization-header-minted-by-the-configured-headershelper">3245<h3 id="server-rejected-the-authorization-header-minted-by-the-configured-headershelper">

3225 El servidor rechazó el encabezado de autorización acuñado por el headersHelper configurado3246 El servidor rechazó el encabezado Authorization generado por el headersHelper configurado

3226</h3>3247</h3>

3227 3248 

3228Un servidor MCP cuyo [`headersHelper`](/docs/es/mcp#use-dynamic-headers-for-custom-authentication) proporciona el encabezado `Authorization` respondió la conexión con HTTP 401 o 403, por lo que Claude Code reporta la conexión como fallida. Porque el helper proporciona el encabezado `Authorization`, Claude Code [no recurre a OAuth](/docs/es/mcp#authenticate-with-remote-mcp-servers) para el servidor:3249Un servidor MCP cuyo [`headersHelper`](/docs/es/mcp#use-dynamic-headers-for-custom-authentication) proporciona el encabezado `Authorization` respondió a la conexión con HTTP 401 o 403, así que Claude Code informa la conexión como fallida. Como el helper proporciona el encabezado `Authorization`, Claude Code [no recurre a OAuth](/docs/es/mcp#authenticate-with-remote-mcp-servers) para el servidor:

3229 3250 

3230```text theme={null}3251```text theme={null}

3231Server rejected the Authorization header minted by the configured headersHelper (HTTP 401). Check that the helper command returns a valid credential for this MCP endpoint — OAuth fallback is disabled when the helper supplies Authorization.3252Server rejected the Authorization header minted by the configured headersHelper (HTTP 401). Check that the helper command returns a valid credential for this MCP endpoint — OAuth fallback is disabled when the helper supplies Authorization.

3232```3253```

3233 3254 

3234Claude Code vuelve a ejecutar el helper en cada intento de conexión, por lo que un reintento después de un rechazo transitorio, como una carrera de rotación de token, puede tener éxito con una credencial nueva.3255Claude Code vuelve a ejecutar el helper en cada intento de conexión, así que un reintento después de un rechazo transitorio, como una condición de carrera en la rotación de tokens, puede tener éxito con una credencial nueva.

3235 3256 

3236**Qué hacer:**3257**Qué hacer:**

3237 3258 

3238* Ejecute el comando `headersHelper` usted mismo de la manera que Claude Code lo ejecuta: desde el [directorio en el que Claude Code lo ejecuta](/docs/es/mcp#where-the-helper-runs), con las [variables de entorno que Claude Code establece para él](/docs/es/mcp#use-dynamic-headers-for-custom-authentication), y sin las [variables de credencial que Claude Code elimina](/docs/es/mcp#which-variables-a-helper-can-read) para un servidor de un `.mcp.json` de proyecto, un plugin, o un archivo de agente de proyecto. Verifique que imprima un valor `Authorization` que el punto final del servidor acepte3259* Ejecuta tú mismo el comando `headersHelper` de la forma en que lo ejecuta Claude Code: desde el [directorio en el que Claude Code lo ejecuta](/docs/es/mcp#where-the-helper-runs), con las [variables de entorno que Claude Code establece para él](/docs/es/mcp#use-dynamic-headers-for-custom-authentication), y sin las [variables de credenciales que Claude Code quita](/docs/es/mcp#which-variables-a-helper-can-read) para un servidor de un `.mcp.json` de proyecto, un plugin o un archivo de agente de proyecto. Verifica que imprima un valor de `Authorization` que el endpoint del servidor acepte

3239* Después de corregir el helper o su fuente de credencial, seleccione el servidor en `/mcp` y elija **Reconnect**3260* Después de corregir el helper o la fuente de su credencial, selecciona el servidor en `/mcp` y elige **Reconnect**

3240 3261 

3241Antes de v2.1.248, Claude Code ejecutaba descubrimiento OAuth para un servidor cuyo helper proporcionaba el encabezado `Authorization`. Ese descubrimiento podría fallar con `Incompatible auth server: does not support dynamic client registration` en lugar de reportar la credencial rechazada.3262Antes de v2.1.248, Claude Code ejecutaba la detección de OAuth para un servidor cuyo helper proporcionaba el encabezado `Authorization`. Esa detección podía fallar con `Incompatible auth server: does not support dynamic client registration` en lugar de informar la credencial rechazada.

3242 3263 

3243<h3 id="mcp-permission-prompt-tool-not-found">3264<h3 id="mcp-permission-prompt-tool-not-found">

3244 Herramienta de solicitud de permiso MCP no encontrada3265 No se encontró la herramienta de solicitud de permisos de MCP

3245</h3>3266</h3>

3246 3267 

3247La herramienta que pasó a [`--permission-prompt-tool`](/docs/es/cli-reference#cli-flags) no estaba entre las herramientas MCP conectadas cuando la ejecución primero necesitó una decisión de permiso, ya sea porque su servidor nunca se conectó o porque ningún servidor conectado expone una herramienta con ese nombre. Claude Code aún envía su símbolo del sistema: la ejecución [no interactiva](/docs/es/headless) sale con este error, y código de salida 1, en la primera llamada de herramienta que necesita aprobación, por lo que no produce respuesta aunque la solicitud fue realizada. Antes del primer símbolo del sistema, Claude Code espera hasta el tiempo de espera de conexión por servidor de 30 segundos establecido por [`MCP_TIMEOUT`](/docs/es/env-vars) para que ese servidor se conecte. Antes de v2.1.206, el inicio no esperaba a que el servidor terminara de conectarse, por lo que un servidor que se inicia lentamente pero saludable producía este error también.3268La herramienta que pasaste a [`--permission-prompt-tool`](/docs/es/cli-reference#cli-flags) no estaba entre las herramientas MCP conectadas cuando la ejecución necesitó por primera vez una decisión de permisos, ya sea porque su servidor nunca se conectó o porque ningún servidor conectado expone una herramienta con ese nombre. Claude Code igualmente envía tu prompt: la ejecución [no interactiva](/docs/es/headless) termina con este error, y el código de salida 1, en la primera llamada a herramienta, así que no produce ninguna respuesta aunque la solicitud se haya hecho. Antes del primer prompt, Claude Code espera hasta el tiempo de espera de conexión por servidor de 30 segundos establecido por [`MCP_TIMEOUT`](/docs/es/env-vars) a que ese servidor se conecte. Antes de v2.1.206, el inicio no esperaba a que el servidor terminara de conectarse, así que un servidor sano pero lento en iniciar también producía este error.

3248 3269 

3249```text theme={null}3270```text theme={null}

3250Error: MCP tool mcp__permissions__approve (passed via --permission-prompt-tool) not found. Available MCP tools: none3271Error: MCP tool mcp__permissions__approve (passed via --permission-prompt-tool) not found. Available MCP tools: none

3251```3272```

3252 3273 

3253La lista después de `Available MCP tools:` nombra las herramientas MCP que estaban conectadas cuando terminó la espera.3274La lista después de `Available MCP tools:` nombra las herramientas MCP que estaban conectadas.

3254 3275 

3255**Qué hacer:**3276**Qué hacer:**

3256 3277 

3257* Verifique que el servidor se inicie y permanezca conectado: ejecute `claude mcp list` en el mismo directorio y confirme que el servidor está listado como conectado3278* Verifica que el servidor se inicie y permanezca conectado: ejecuta `claude mcp list` en el mismo directorio y confirma que el servidor aparece como conectado

3258* Confirme que el nombre de la herramienta coincida con el nombre `mcp__<server>__<tool>` que expone el servidor3279* Confirma que el nombre de la herramienta coincida con el nombre `mcp__<server>__<tool>` que expone el servidor

3259* Si el servidor necesita más de 30 segundos para iniciarse, aumente [`MCP_TIMEOUT`](/docs/es/env-vars)3280* Si el servidor necesita más de 30 segundos para iniciar, aumenta [`MCP_TIMEOUT`](/docs/es/env-vars)

3260 3281 

3261<h3 id="oauth-callback-port-is-already-in-use">3282<h3 id="oauth-callback-port-is-already-in-use">

3262 El puerto de devolución de llamada OAuth ya está en uso3283 El puerto de callback de OAuth ya está en uso

3263</h3>3284</h3>

3264 3285 

3265Cuando inicia sesión en un servidor MCP remoto con OAuth, Claude Code inicia un oyente local para recibir la devolución de llamada de inicio de sesión. Si el puerto que necesita ese oyente está siendo utilizado por otro proceso, el inicio de sesión falla con este mensaje. Esto sucede principalmente con un [puerto de devolución de llamada fijo](/docs/es/mcp#use-a-fixed-oauth-callback-port) establecido a través de la variable [`MCP_OAUTH_CALLBACK_PORT`](/docs/es/env-vars) o `--callback-port`, ya que sin uno Claude Code elige un puerto disponible.3286Cuando inicias sesión en un servidor MCP remoto con OAuth, Claude Code inicia un listener local para recibir el callback del inicio de sesión. Si otro proceso ocupa el puerto que necesita ese listener, el inicio de sesión falla con este mensaje. Esto ocurre principalmente con un [puerto de callback fijo](/docs/es/mcp#use-a-fixed-oauth-callback-port) establecido mediante la variable [`MCP_OAUTH_CALLBACK_PORT`](/docs/es/env-vars) o `--callback-port`, ya que sin uno Claude Code elige un puerto disponible.

3266 3287 

3267```text theme={null}3288```text theme={null}

3268OAuth callback port <port> is already in use — another process may be holding it. Run `lsof -ti:<port> -sTCP:LISTEN` to find it.3289OAuth callback port <port> is already in use — another process may be holding it. Run `lsof -ti:<port> -sTCP:LISTEN` to find it.


3272 3293 

3273**Qué hacer:**3294**Qué hacer:**

3274 3295 

3275* Ejecute el comando del mensaje para encontrar el proceso que mantiene el puerto, y deténgalo o espere a que termine3296* Ejecuta el comando del mensaje para encontrar el proceso que ocupa el puerto, y detenlo o espera a que termine

3276* Si otro programa necesita ese puerto permanentemente, registre un URI de redirección diferente con el servidor y establezca su puerto con `MCP_OAUTH_CALLBACK_PORT` o `--callback-port`, el que use3297* Si otro programa necesita ese puerto de forma permanente, registra un URI de redirección diferente en el servidor y establece su puerto con `MCP_OAUTH_CALLBACK_PORT` o `--callback-port`, el que uses

3277* Luego inicie el inicio de sesión nuevamente, por ejemplo seleccionando el servidor en `/mcp`3298* Luego vuelve a iniciar el inicio de sesión, por ejemplo seleccionando el servidor en `/mcp`

3278 3299 

3279<h3 id="no-available-ports-for-oauth-redirect">3300<h3 id="no-available-ports-for-oauth-redirect">

3280 No hay puertos disponibles para redirección OAuth3301 No hay puertos disponibles para la redirección de OAuth

3281</h3>3302</h3>

3282 3303 

3283Cuando inicia sesión en un servidor MCP remoto con [OAuth](/docs/es/mcp#authenticate-with-remote-mcp-servers), Claude Code inicia un oyente local para recibir la devolución de llamada de inicio de sesión. El inicio de sesión falla con este mensaje cuando Claude Code no puede vincular un puerto local para él. Algo en la máquina está impidiendo que escuche en `127.0.0.1`, por ejemplo software de seguridad o una política de sandbox que deniega oyentes locales.3304Cuando inicias sesión en un servidor MCP remoto con [OAuth](/docs/es/mcp#authenticate-with-remote-mcp-servers), Claude Code inicia un listener local para recibir el callback del inicio de sesión. El inicio de sesión falla con este mensaje cuando Claude Code no puede vincular un puerto local para él. Algo en la máquina le impide escuchar en `127.0.0.1`, por ejemplo software de seguridad o una política de sandbox que deniega los listeners locales.

3284 3305 

3285```text theme={null}3306```text theme={null}

3286No available ports for OAuth redirect3307No available ports for OAuth redirect

3287```3308```

3288 3309 

3289Antes de v2.1.268, Claude Code no recurría a un puerto asignado por el sistema operativo, por lo que el mensaje también aparecía cuando solo sus puertos autopickados no podían ser vinculados. Esto puede suceder en hosts Windows donde Hyper-V reserva rangos de puertos que cubren los puertos que Claude Code elige.3310Antes de v2.1.268, Claude Code no recurría a un puerto asignado por el sistema operativo, así que el mensaje también aparecía cuando solo los puertos que elegía por sí mismo no se podían vincular. Eso puede ocurrir en hosts Windows donde Hyper-V reserva rangos de puertos que cubren los puertos entre los que elige Claude Code.

3290 3311 

3291**Qué hacer:**3312**Qué hacer:**

3292 3313 

3293* Verifique si el software de seguridad o una política de sandbox bloquea procesos de escuchar en `127.0.0.1`, y permita que Claude Code vincule un puerto local3314* Verifica si algún software de seguridad o una política de sandbox impide que los procesos escuchen en `127.0.0.1`, y permite que Claude Code vincule un puerto local

3294* Luego inicie el inicio de sesión nuevamente, por ejemplo seleccionando el servidor en `/mcp`3315* Luego vuelve a iniciar el inicio de sesión, por ejemplo seleccionando el servidor en `/mcp`

3295 3316 

3296<h3 id="security-review-fails-without-origin-head">3317<h3 id="security-review-fails-without-origin-head">

3297 /security-review falla sin origin/HEAD3318 /security-review falla sin origin/HEAD

3298</h3>3319</h3>

3299 3320 

3300[`/security-review`](/docs/es/commands#all-commands) construye su contexto de revisión comparando su rama contra `origin/HEAD`, la ref local que registra qué rama es la predeterminada en su remoto `origin`. Cuando esa ref no existe, los comandos git que recopilan la comparación fallan y la revisión se detiene antes de comenzar.3321[`/security-review`](/docs/es/commands#all-commands) construye el contexto de su revisión haciendo un diff de tu rama contra `origin/HEAD`, la referencia local que registra qué rama es la predeterminada en tu remoto `origin`. Cuando esa referencia no existe, los comandos de git que recopilan el diff fallan y la revisión se detiene antes de empezar.

3301 3322 

3302```text theme={null}3323```text theme={null}

3303Error: Shell command failed for pattern "!`git diff --name-only origin/HEAD...`": [stderr]3324Error: Shell command failed for pattern "!`git diff --name-only origin/HEAD...`": [stderr]


3306'git <command> [<revision>...] -- [<file>...]'3327'git <command> [<revision>...] -- [<file>...]'

3307```3328```

3308 3329 

3309El mensaje puede citar `git log` o una `git diff` diferente en su lugar. Git crea `origin/HEAD` solo cuando el remoto anuncia una rama predeterminada y su refspec de obtención la cubre, que un `git clone` completo de un remoto con commits hace. La ref falta en estas configuraciones:3330El mensaje puede citar `git log` o un `git diff` diferente en su lugar. Git crea `origin/HEAD` solo cuando el remoto anuncia una rama predeterminada y tu refspec de fetch la cubre, lo que ocurre con un `git clone` completo de un remoto con commits. La referencia falta en estas configuraciones:

3310 3331 

3311* Un checkout de rama única o CI, que obtiene un refspec demasiado estrecho3332* Un checkout de una sola rama o de CI, que obtiene un refspec demasiado limitado

3312* Un remoto cuyo HEAD del lado del servidor apunta a una rama que nadie envió3333* Un remoto cuyo HEAD del lado del servidor apunta a una rama que nadie ha subido

3313* Un repositorio sin remoto `origin`, o uno del que nunca obtuvo3334* Un repositorio sin remoto `origin`, o uno del que nunca hiciste fetch

3314 3335 

3315Claude Code muestra el mismo error para cualquier skill que [inyecta contexto dinámico](/docs/es/skills#when-an-injected-command-fails), y un comando inyectado fallido aborta la invocación de ese skill. Dos cadenas hermanas se activan antes de que el comando se ejecute en absoluto:3336Claude Code muestra el mismo error para cualquier skill que [inyecta contexto dinámico](/docs/es/skills#when-an-injected-command-fails), y un comando inyectado que falla aborta la invocación de ese skill. Dos cadenas hermanas se activan antes de que el comando llegue a ejecutarse:

3316 3337 

3317* `Shell command permission check failed for pattern "..."`: la verificación de permiso del comando no lo permitió. [Las verificaciones de permiso en comandos inyectados](/docs/es/skills#permission-checks-on-injected-commands) cubre qué resultados abortan en cada modo de permiso y cómo pre-aprobar un comando con `allowed-tools`3338* `Shell command permission check failed for pattern "..."`: la verificación de permisos del comando no lo permitió. [Verificaciones de permisos en comandos inyectados](/docs/es/skills#permission-checks-on-injected-commands) explica qué resultados abortan en cada modo de permisos y cómo aprobar previamente un comando con `allowed-tools`

3318* ``Skill <name> requires bash (`shell: bash` in frontmatter) but Git Bash was not found``: el frontmatter del skill exige bash en una máquina sin él. Instale Git para Windows o cambie el frontmatter a `shell: powershell`. Consulte [Cómo se ejecutan los comandos inyectados](/docs/es/skills#how-injected-commands-run)3339* ``Skill <name> requires bash (`shell: bash` in frontmatter) but Git Bash was not found``: el frontmatter del skill exige bash en una máquina que no lo tiene. Instala Git for Windows o cambia el frontmatter a `shell: powershell`. Consulta [Cómo se ejecutan los comandos inyectados](/docs/es/skills#how-injected-commands-run)

3319 3340 

3320**Qué hacer:**3341**Qué hacer:**

3321 3342 

3322* Cree la ref nombrando la rama predeterminada de su remoto: `git remote set-head origin <default-branch>`. Esto funciona siempre que exista la ref de seguimiento local `origin/<default-branch>`. Si no existe, como en clones de rama única, obtenga la rama primero: ejecute `git remote set-branches --add origin <branch>`, luego `git fetch origin`, luego vuelva a ejecutar el comando set-head. Vuelva a ejecutar `/security-review`.3343* Crea la referencia nombrando la rama predeterminada de tu remoto: `git remote set-head origin <default-branch>`. Esto funciona siempre que exista la referencia de seguimiento local `origin/<default-branch>`. Si no existe, como en los clones de una sola rama, primero obtén la rama: ejecuta `git remote set-branches --add origin <branch>`, luego `git fetch origin`, y luego vuelve a ejecutar el comando set-head. Vuelve a ejecutar `/security-review`.

3323* Si prefiere no nombrar la rama, ejecute `git fetch origin` y luego `git remote set-head origin --auto`, que pregunta al remoto qué rama es su predeterminada. Falla con `error: Cannot determine remote HEAD` cuando el remoto no anuncia una rama predeterminada, porque está vacío o su HEAD apunta a una rama que nadie envió; nombre la rama explícitamente en su lugar. Falla con `error: Not a valid ref` cuando su clon no obtiene esa rama; amplíe el refspec como se indicó anteriormente primero.3344* Si prefieres no nombrar la rama, ejecuta `git fetch origin` y luego `git remote set-head origin --auto`, que pregunta al remoto cuál es su rama predeterminada. Falla con `error: Cannot determine remote HEAD` cuando el remoto no anuncia ninguna rama predeterminada, porque está vacío o su HEAD apunta a una rama que nadie ha subido; en ese caso, nombra la rama explícitamente. Falla con `error: Not a valid ref` cuando tu clon no obtiene esa rama; primero amplía el refspec como se indicó arriba.

3324* Si el repositorio no tiene remoto, agregue uno con `git remote add origin <url>` y obtenga antes de crear la ref. Si el remoto está vacío, envíe su rama primero con `git push -u origin HEAD` y nombre esa rama en el comando set-head; `origin/HEAD` luego apunta a la rama que acaba de enviar, por lo que `/security-review` ve una comparación vacía hasta que la rama diverja de ella.3345* Si el repositorio no tiene remoto, agrega uno con `git remote add origin <url>` y haz fetch antes de crear la referencia. Si el remoto está vacío, primero sube tu rama con `git push -u origin HEAD` y nombra esa rama en el comando set-head; `origin/HEAD` apunta entonces a la rama que acabas de subir, así que `/security-review` ve un diff vacío hasta que la rama diverja de ella.

3325 3346 

3326<h3 id="input-must-be-provided-when-using-print">3347<h3 id="input-must-be-provided-when-using-print">

3327 Se debe proporcionar entrada cuando se usa `--print`3348 Se debe proporcionar una entrada al usar `--print`

3328</h3>3349</h3>

3329 3350 

3330`claude` desnudo necesita que stdout sea una terminal para iniciar la interfaz de usuario interactiva. Cuando stdout se redirige, o la consola no es una terminal real, como PowerShell ISE y algunos paneles de salida de IDE, `claude` se ejecuta en [modo no interactivo](/docs/es/headless) en su lugar. Ese es el mismo modo que `claude -p`, que requiere un símbolo del sistema, por lo que el mensaje nombra `--print` incluso cuando no pasó la bandera. Pasar `-p`/`--print` sin símbolo del sistema y nada canalizando en stdin produce el mismo error en cualquier lugar.3351`claude` sin argumentos necesita que stdout sea una terminal para iniciar la interfaz interactiva. Cuando stdout está redirigido, o la consola no es una terminal real, como PowerShell ISE y algunos paneles de salida de IDE, `claude` se ejecuta de forma [no interactiva](/docs/es/headless). Ese es el mismo modo que `claude -p`, que requiere un prompt, así que el mensaje nombra `--print` aunque no hayas pasado el flag. Pasar `-p`/`--print` sin prompt y sin nada canalizado en stdin produce el mismo error en cualquier lugar.

3331 3352 

3332```text theme={null}3353```text theme={null}

3333Error: Input must be provided either through stdin or as a prompt argument when using --print3354Error: Input must be provided either through stdin or as a prompt argument when using --print


3335 3356 

3336**Qué hacer:**3357**Qué hacer:**

3337 3358 

3338* Para uso interactivo, ejecute `claude` en una terminal real: Windows Terminal o la consola de PowerShell en lugar de ISE, y la terminal integrada de su IDE en lugar de un panel de salida3359* Para uso interactivo, ejecuta `claude` en una terminal real: Windows Terminal o la consola de PowerShell en lugar de ISE, y la terminal integrada de tu IDE en lugar de un panel de salida

3339* Para uso de una sola vez, pase el símbolo del sistema: `claude -p "your question"`, o canalícelo con `echo "your question" | claude -p`3360* Para uso puntual, pasa el prompt: `claude -p "your question"`, o canalízalo con `echo "your question" | claude -p`

3340 3361 

3341<h3 id="input-contained-only-whitespace">3362<h3 id="input-contained-only-whitespace">

3342 La entrada contenía solo espacios en blanco3363 La entrada contenía solo espacios en blanco

3343</h3>3364</h3>

3344 3365 

3345En [modo no interactivo](/docs/es/headless), Claude Code rechaza un símbolo del sistema compuesto enteramente por espacios, tabulaciones o saltos de línea en lugar de enviarlo, porque la API rechaza mensajes sin texto visible. Qué mensaje ve depende de dónde vino el símbolo del sistema en blanco:3366En [modo no interactivo](/docs/es/headless), Claude Code rechaza un prompt compuesto por completo de espacios, tabulaciones o saltos de línea en lugar de enviarlo, porque la API rechaza los mensajes sin texto visible. El mensaje que ves depende de dónde provino el prompt en blanco:

3346 3367 

3347* **Argumento de símbolo del sistema o stdin canalizado para `claude -p`**: `claude` sale con `Error: Input contained only whitespace. Provide a prompt with text through stdin or as a prompt argument when using --print`3368* **Argumento de prompt o stdin canalizado para `claude -p`**: `claude` termina con `Error: Input contained only whitespace. Provide a prompt with text through stdin or as a prompt argument when using --print`

3348* **Mensaje enviado a una sesión `--input-format stream-json` en ejecución o [Agent SDK](/docs/es/agent-sdk/overview)**: Claude Code termina el turno sin llamar al modelo y la sesión permanece usable. El rechazo llega como un mensaje informativo y como el texto de resultado del turno: `Blank prompt — the message was only whitespace, so nothing was sent to the model.`3369* **Mensaje enviado a una sesión en ejecución con `--input-format stream-json` o del [Agent SDK](/docs/es/agent-sdk/overview)**: Claude Code termina el turno sin llamar al modelo y la sesión sigue siendo utilizable. El rechazo llega como un mensaje informativo y como el texto del resultado del turno: `Blank prompt — the message was only whitespace, so nothing was sent to the model.`

3349 3370 

3350Antes de v2.1.229, Claude Code enviaba el mensaje solo con espacios en blanco a la API, que rechazaba la solicitud con un error 400.3371Antes de v2.1.229, Claude Code enviaba el mensaje compuesto solo de espacios en blanco a la API, que rechazaba la solicitud con un error 400.

3351 3372 

3352**Qué hacer:**3373**Qué hacer:**

3353 3374 

3354* Incluya texto visible en el símbolo del sistema. Si un script construye el símbolo del sistema a partir de una variable o archivo, verifique que la fuente no esté vacía antes de llamar a Claude Code.3375* Incluye texto visible en el prompt. Si un script construye el prompt a partir de una variable o un archivo, verifica que la fuente no esté vacía antes de llamar a Claude Code.

3355 3376 

3356<h3 id="stream-json-input-carried-over-256m-characters-with-no-newline">3377<h3 id="stream-json-input-carried-over-256m-characters-with-no-newline">

3357 stream-json input llevaba más de 256M caracteres sin salto de línea3378 La entrada stream-json contenía más de 256M caracteres sin salto de línea

3358</h3>3379</h3>

3359 3380 

3360Su programa envió más de 268,435,456 caracteres en stdin sin un salto de línea a una ejecución `claude -p --input-format stream-json`, por lo que Claude Code imprime este error en stderr y sale con código 1 en lugar de almacenar más entrada en búfer. El mensaje establece ese presupuesto como `256M`. Antes de v2.1.257, Claude Code almacenaba tal entrada en búfer sin límite, creciendo en memoria hasta que el proceso se bloqueaba o era eliminado.3381Tu programa envió más de 268,435,456 caracteres por stdin sin un salto de línea a una ejecución de `claude -p --input-format stream-json`, así que Claude Code imprime este error en stderr y termina con el código 1 en lugar de almacenar más entrada en búfer. El mensaje expresa ese límite como `256M`. Antes de v2.1.257, Claude Code almacenaba esa entrada en búfer sin límite, haciendo crecer la memoria hasta que el proceso fallaba o se terminaba.

3361 3382 

3362```text theme={null}3383```text theme={null}

3363Error: stream-json input carried over 256M characters with no newline. Each stream-json message must be a single newline-terminated JSON line: either the producer is not newline-terminating its messages, or one message exceeded this budget.3384Error: stream-json input carried over 256M characters with no newline. Each stream-json message must be a single newline-terminated JSON line: either the producer is not newline-terminating its messages, or one message exceeded this budget.

3364```3385```

3365 3386 

3366La entrada de esta longitud sin un salto de línea generalmente significa que el productor no es un productor stream-json en absoluto, como un archivo binario o salida de registro simple canalizada por accidente. Un único mensaje sobre el presupuesto falla la misma verificación.3387Una entrada tan larga sin salto de línea suele significar que el productor no es en absoluto un productor de stream-json, como un archivo binario o una salida de registro de texto plano canalizada por accidente. Un único mensaje que supera el límite falla la misma verificación.

3367 3388 

3368**Qué hacer:**3389**Qué hacer:**

3369 3390 

3370* Verifique qué se canaliza a stdin. Con [`--input-format stream-json`](/docs/es/cli-reference#cli-flags), cada mensaje debe ser una línea JSON terminada por salto de línea3391* Revisa qué se está canalizando a stdin. Con [`--input-format stream-json`](/docs/es/cli-reference#cli-flags), cada mensaje debe ser una línea JSON terminada en salto de línea

3371* Para enviar texto sin formato en su lugar, elimine `--input-format stream-json`; `claude -p` lee un símbolo del sistema de texto sin formato desde stdin de forma predeterminada3392* Para enviar texto plano en su lugar, quita `--input-format stream-json`; `claude -p` lee un prompt de texto plano desde stdin de forma predeterminada

3372 3393 

3373<h3 id="unknown-command">3394<h3 id="unknown-command">

3374 Comando desconocido3395 Comando desconocido

3375</h3>3396</h3>

3376 3397 

3377En una sesión de terminal interactiva, envió un nombre `/` que no coincide con ningún comando en esta sesión, por lo que Claude Code reporta el nombre en lugar de ejecutar cualquier cosa:3398En una sesión interactiva de terminal, enviaste un nombre con `/` que no coincide con ningún comando de esta sesión, así que Claude Code informa el nombre en lugar de ejecutar algo:

3378 3399 

3379```text theme={null}3400```text theme={null}

3380Unknown command: /hepl. Did you mean /help?3401Unknown command: /hepl. Did you mean /help?

3381```3402```

3382 3403 

3383Claude Code sugiere el nombre de comando o alias más cercano que el menú enumera en esta sesión. Cuando nada está cerca, el mensaje termina después del nombre. La causa es generalmente una de las siguientes:3404Claude Code sugiere el nombre o alias de comando más cercano que el menú enumera en esta sesión. Cuando no hay nada cercano, el mensaje termina después del nombre. La causa suele ser una de las siguientes:

3384 3405 

3385* Un error tipográfico, como `/hepl` para `/help`. [Cómo el menú de comandos coincide con lo que escribe](/docs/es/commands#how-the-command-menu-matches-what-you-type) cubre elegir una coincidencia cercana antes de enviar3406* Un error de tipeo, como `/hepl` en lugar de `/help`. [Cómo el menú de comandos hace coincidir lo que escribes](/docs/es/commands#how-the-command-menu-matches-what-you-type) explica cómo elegir una coincidencia cercana antes de enviar

3386* Un comando que existe pero no está disponible en esta sesión porque no se cumple un requisito, como su plataforma, plan o método de autenticación. Las entradas de solución de problemas para [`/web-setup`](/docs/es/web-quickstart#web-setup-shows-no-commands-match-or-unknown-command) y [`/schedule`](/docs/es/routines#schedule-returns-unknown-command) recorren dos casos comunes. Algunos comandos responden con su propio mensaje cuando la política de su organización los desactiva, como [`Cloud sessions are disabled by your organization's policy`](#cloud-sessions-are-disabled-by-your-organizations-policy)3407* Un comando que existe pero no está disponible en esta sesión porque no se cumple un requisito, como tu plataforma, tu plan o tu método de autenticación. Las entradas de solución de problemas de [`/web-setup`](/docs/es/web-quickstart#web-setup-shows-no-commands-match-or-unknown-command) y [`/schedule`](/docs/es/routines#schedule-returns-unknown-command) explican dos casos comunes. Algunos comandos responden con su propio mensaje cuando la política de tu organización los deshabilita, como [`Cloud sessions are disabled by your organization's policy`](#cloud-sessions-are-disabled-by-your-organizations-policy)

3387* Un comando de un [plugin](/docs/es/plugins/overview) o [servidor MCP](/docs/es/mcp#use-mcp-prompts-as-commands) que no está instalado o conectado en esta sesión3408* Un comando de un [plugin](/docs/es/plugins/overview) o de un [servidor MCP](/docs/es/mcp#use-mcp-prompts-as-commands) que no está instalado o conectado en esta sesión

3388 3409 

3389Claude Code responde a un nombre `/` que no coincide con ningún comando de esta manera solo en una sesión de terminal interactiva. En todas las otras sesiones, envía el símbolo del sistema a Claude como un mensaje normal en su lugar, con una nota de que el comando no se ejecutó y una lista de comandos que Claude puede ejecutar en la sesión. Esas sesiones incluyen:3410Claude Code responde de esta forma a un nombre con `/` sin coincidencia solo en una sesión interactiva de terminal. En cualquier otra sesión, envía el prompt a Claude como un mensaje normal, con una nota de que el comando no se ejecutó y una lista de los comandos que Claude puede ejecutar en la sesión. Esas sesiones incluyen:

3390 3411 

3391* Ejecuciones `-p`3412* Ejecuciones con `-p`

3392* Aplicaciones [Agent SDK](/docs/es/agent-sdk/overview)3413* Aplicaciones del [Agent SDK](/docs/es/agent-sdk/overview)

3393* La pestaña Code de la [aplicación Desktop](/docs/es/desktop)3414* La pestaña Code de la [aplicación de escritorio](/docs/es/desktop)

3394* El panel de chat de la [extensión VS Code](/docs/es/vs-code)3415* El panel de chat de la [extensión de VS Code](/docs/es/vs-code)

3395* [Sesiones en la nube](/docs/es/claude-code-on-the-web) y [rutinas](/docs/es/routines)3416* [Sesiones en la nube](/docs/es/claude-code-on-the-web) y [rutinas](/docs/es/routines)

3396 3417 

3397Para un comando integrado que no puede ejecutarse en una de esas sesiones, Claude Code aún responde que el comando no está disponible en su lugar de enviarlo a Claude. Antes de v2.1.274, solo las sesiones en la nube y las rutinas enviaban un nombre que no coincidía a Claude. Antes de v2.1.273, también respondían `Unknown command`.3418Para un comando integrado que no se puede ejecutar en una de esas sesiones, Claude Code sigue respondiendo que el comando no está disponible en lugar de enviarlo a Claude. Antes de v2.1.274, solo las sesiones en la nube y las rutinas enviaban a Claude un nombre sin coincidencia. Antes de v2.1.273, también respondían `Unknown command`.

3398 3419 

3399Claude Code no trata cada símbolo del sistema que comienza con `/` como un comando. Envía el símbolo del sistema a Claude como un mensaje normal cuando la primera palabra después del `/` comienza con puntuación, como el `/--` que abre un comentario de documento Lean, o es una ruta como `/var/log/syslog`.3420Claude Code no trata como comando todo prompt que comienza con `/`. Envía el prompt a Claude como un mensaje normal cuando la primera palabra después de la `/` comienza con un signo de puntuación, como el `/--` que abre un comentario de documentación de Lean, o es una ruta como `/var/log/syslog`.

3400 3421 

3401Antes de v2.1.236, si presionaba `Enter` mientras el menú de comandos enumeraba una coincidencia cercana para el nombre que escribió, Claude Code ejecutaba esa coincidencia, por lo que un error tipográfico como `/hepl` ejecutaba `/help` en lugar de producir este mensaje.3422Antes de v2.1.236, si presionabas `Enter` mientras el menú de comandos mostraba una coincidencia cercana al nombre que escribiste, Claude Code ejecutaba esa coincidencia, así que un error de tipeo como `/hepl` ejecutaba `/help` en lugar de producir este mensaje.

3402 3423 

3403**Qué hacer:**3424**Qué hacer:**

3404 3425 

3405* Ejecute el nombre sugerido, o escriba `/` seguido de parte del nombre para ver qué está disponible en esta sesión3426* Ejecuta el nombre sugerido, o escribe `/` seguido de parte del nombre para ver qué está disponible en esta sesión

3406* Si Claude Code reporta un comando documentado como desconocido, verifique su fila en la [referencia de comandos](/docs/es/commands) para el requisito que nombra3427* Si Claude Code informa como desconocido un comando documentado, revisa su fila en la [referencia de comandos](/docs/es/commands) para ver el requisito que nombra

3407 3428 

3408<h3 id="diff-is-too-large-for-ultrareview">3429<h3 id="diff-is-too-large-for-ultrareview">

3409 La comparación es demasiado grande para ultrareview3430 El diff es demasiado grande para ultrareview

3410</h3>3431</h3>

3411 3432 

3412La comparación entre su rama y la rama base, incluidos los cambios no confirmados y preparados, excede los límites de tamaño para una [ultrareview](/docs/es/ultrareview), por lo que `/code-review ultra` y el subcomando `claude ultrareview` rechazan la revisión antes de que comience la sesión en la nube. Una revisión rechazada no usa una ejecución gratuita y no factura créditos de uso. El mensaje nombra los límites en vigor, el tamaño de su comparación y los archivos que contribuyen la mayoría de líneas cambiadas. Antes de v2.1.216, el mensaje mostraba solo las estadísticas de comparación sin procesar.3433El diff entre tu rama y la rama base, incluidos los cambios sin commit y los preparados, supera los límites de tamaño de un [ultrareview](/docs/es/ultrareview), así que `/code-review ultra` y el subcomando `claude ultrareview` rechazan la revisión antes de que se inicie la sesión en la nube. Una revisión rechazada no usa una ejecución gratuita ni cobra créditos de uso. El mensaje nombra los límites vigentes, el tamaño de tu diff y los archivos que aportan más líneas modificadas. Antes de v2.1.216, el mensaje mostraba solo las estadísticas sin procesar del diff.

3413 3434 

3414```text theme={null}3435```text theme={null}

3415Diff is too large for ultrareview: 812 files, 96,410 lines changed (limits: 500 files, 8,000 lines). Largest files: package-lock.json (41,904 lines), dist/bundle.js (18,210 lines), src/generated/api.ts (9,876 lines). Pass a closer base branch (`/code-review ultra <branch>`) to narrow the scope, or split the change.3436Diff is too large for ultrareview: 812 files, 96,410 lines changed (limits: 500 files, 8,000 lines). Largest files: package-lock.json (41,904 lines), dist/bundle.js (18,210 lines), src/generated/api.ts (9,876 lines). Pass a closer base branch (`/code-review ultra <branch>`) to narrow the scope, or split the change.

3416```3437```

3417 3438 

3418Revisar una solicitud de extracción aplica los mismos límites; esa forma del mensaje comienza `PR #<N> is too large for ultrareview` y nombra los recuentos de archivo y línea de la PR.3439La revisión de un pull request aplica los mismos límites; esa forma del mensaje comienza con `PR #<N> is too large for ultrareview` y nombra las cantidades de archivos y líneas del PR.

3419 3440 

3420**Qué hacer:**3441**Qué hacer:**

3421 3442 

3422* Pase una rama base más cercana a su trabajo, como `/code-review ultra develop`, para que la revisión cubra solo la comparación contra esa rama3443* Pasa una rama base más cercana a tu trabajo, como `/code-review ultra develop`, para que la revisión cubra solo el diff contra esa rama

3423* Divida el cambio en ramas más pequeñas y revise cada una. Los archivos que el mensaje nombra contribuyen la mayoría de líneas cambiadas, así que comience moviendo esos a su propia rama.3444* Divide el cambio en ramas más pequeñas y revisa cada una. Los archivos que nombra el mensaje aportan más líneas modificadas, así que empieza por mover esos a su propia rama.

3424 3445 

3425<h3 id="could-not-find-merge-base-with-the-base-branch">3446<h3 id="could-not-find-merge-base-with-the-base-branch">

3426 No se pudo encontrar merge-base con la rama base3447 No se pudo encontrar el merge-base con la rama base

3427</h3>3448</h3>

3428 3449 

3429`/code-review ultra` y el subcomando `claude ultrareview` revisan la comparación entre su rama y una rama base, que necesita un commit que ambas compartan. Cuando `git merge-base` no encuentra ninguno, Claude Code rechaza la revisión antes de que comience la sesión en la nube. En un clon que Claude Code puede verificar que está completo, con al menos una rama, recurre a [revisar cada archivo rastreado](/docs/es/ultrareview#diff-limits-and-fallbacks) en su lugar de rechazar. Ve este rechazo cuando la rama base no se puede encontrar en absoluto, cuando Claude Code no puede verificar que su clon está completo, o en el raro repositorio donde la comparación de árbol completo no es posible, como el formato de objeto SHA-256.3450`/code-review ultra` y el subcomando `claude ultrareview` revisan el diff entre tu rama y una rama base, lo que requiere un commit que ambas compartan. Cuando `git merge-base` no encuentra ninguno, Claude Code rechaza la revisión antes de que se inicie la sesión en la nube. En un clon que Claude Code puede verificar como completo, con al menos una rama, recurre a [revisar todos los archivos con seguimiento](/docs/es/ultrareview#diff-limits-and-fallbacks) en lugar de rechazarla. Ves este rechazo cuando la rama base no se encuentra en absoluto, cuando Claude Code no puede verificar que tu clon esté completo, o en el raro repositorio donde el diff del árbol completo no es posible, como con el formato de objetos SHA-256.

3430 3451 

3431```text theme={null}3452```text theme={null}

3432Could not find merge-base with main. Pass the base branch explicitly (e.g. `/code-review ultra develop`) or make sure you're in a git repo with a main branch.3453Could not find merge-base with main. Pass the base branch explicitly (e.g. `/code-review ultra develop`) or make sure you're in a git repo with a main branch.


3434 3455 

3435La sugerencia después de la primera oración depende de lo que Claude Code observó:3456La sugerencia después de la primera oración depende de lo que Claude Code observó:

3436 3457 

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

3438* **Pasó una rama base que ya estaba en su clon**: la sugerencia lee ``Make sure <branch> exists locally or on origin (try `git fetch origin <branch>`)``3459* **Pasaste una rama base que ya estaba en tu clon**: la sugerencia dice ``Make sure <branch> exists locally or on origin (try `git fetch origin <branch>`)``

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

3440 3461 

3441**Qué hacer:**3462**Qué hacer:**

3442 3463 

3443* Si otra rama es su base real, pásela explícitamente: `/code-review ultra <branch>`3464* Si otra rama es tu base real, pásala explícitamente: `/code-review ultra <branch>`

3444* Si su clon podría no tener historial completo, ejecute `git fetch --unshallow origin` y vuelva a ejecutar la revisión3465* Si es posible que tu clon no tenga el historial completo, ejecuta `git fetch --unshallow origin` y vuelve a ejecutar la revisión

3445 3466 

3446<h3 id="your-checkout-has-no-branches">3467<h3 id="your-checkout-has-no-branches">

3447 Su checkout no tiene ramas3468 Tu checkout no tiene ramas

3448</h3>3469</h3>

3449 3470 

3450Un checkout puede tener commits pero sin ramas: si ejecuta `git init` seguido de `git fetch <url>` y `git checkout FETCH_HEAD`, obtiene un HEAD desconectado sin refs. Claude Code empaqueta su repositorio como un paquete git para cargarlo para una [ultrareview](/docs/es/ultrareview), y no puede empaquetar un repositorio que no tiene ramas u otras refs, por lo que `/code-review ultra` y el subcomando `claude ultrareview` rechazan la revisión antes de que comience la sesión en la nube.3471Un checkout puede tener commits pero no ramas: si ejecutas `git init` seguido de `git fetch <url>` y `git checkout FETCH_HEAD`, obtienes un HEAD desacoplado sin referencias. Claude Code empaqueta tu repositorio como un bundle de git para subirlo para un [ultrareview](/docs/es/ultrareview), y no puede empaquetar un repositorio que no tiene ramas ni otras referencias, así que `/code-review ultra` y el subcomando `claude ultrareview` rechazan la revisión antes de que se inicie la sesión en la nube.

3451 3472 

3452```text theme={null}3473```text theme={null}

3453Your checkout has no branches (detached HEAD only), which cloud review can't bundle. Create one first — `git checkout -b <name>` — then rerun /code-review ultra.3474Your checkout has no branches (detached HEAD only), which cloud review can't bundle. Create one first — `git checkout -b <name>` — then rerun /code-review ultra.

3454```3475```

3455 3476 

3456Antes de v2.1.221, Claude Code intentaba revisar cada archivo rastreado en este checkout, y la carga fallaba.3477Antes de v2.1.221, Claude Code intentaba revisar todos los archivos con seguimiento de este checkout, y la subida fallaba.

3457 3478 

3458**Qué hacer:**3479**Qué hacer:**

3459 3480 

3460* Cree una rama en su commit actual con `git checkout -b <name>`, luego vuelva a ejecutar la revisión3481* Crea una rama en tu commit actual con `git checkout -b <name>` y vuelve a ejecutar la revisión

3461 3482 

3462<h3 id="no-github-account-is-connected-to-your-claude-account">3483<h3 id="no-github-account-is-connected-to-your-claude-account">

3463 Ninguna cuenta de GitHub está conectada a su cuenta de Claude3484 No hay ninguna cuenta de GitHub conectada a tu cuenta de Claude

3464</h3>3485</h3>

3465 3486 

3466Ejecutó `/code-review ultra <PR#>` o `claude ultrareview <PR#>`, y antes de crear la sesión en la nube Claude Code pregunta al servidor si [la cuenta de GitHub conectada a su cuenta de Claude](/docs/es/ultrareview#review-a-pull-request) puede alcanzar el repositorio de la PR. Ninguna cuenta está conectada, o la conexión expiró, por lo que el clon en la nube fallaría y Claude Code rechaza el lanzamiento. Claude Code no gasta una ejecución gratuita ni factura créditos de uso para un lanzamiento rechazado.3487Ejecutaste `/code-review ultra <PR#>` o `claude ultrareview <PR#>`, y antes de crear la sesión en la nube Claude Code pregunta al servidor si [la cuenta de GitHub conectada a tu cuenta de Claude](/docs/es/ultrareview#review-a-pull-request) puede acceder al repositorio del PR. No hay ninguna cuenta conectada, o la conexión caducó, así que el clon en la nube fallaría y Claude Code rechaza el inicio. Claude Code no gasta una ejecución gratuita ni cobra créditos de uso por un inicio rechazado.

3467 3488 

3468```text theme={null}3489```text theme={null}

3469Ultrareview clones <owner>/<repo> in the cloud with the GitHub account connected to your Claude account, and none is connected (or the connection expired). To fix: run /web-setup to reuse your GitHub CLI login, or connect an account at https://claude.ai/connect-github — then re-run /code-review ultra 1234 (allow a minute after connecting).3490Ultrareview clones <owner>/<repo> in the cloud with the GitHub account connected to your Claude account, and none is connected (or the connection expired). To fix: run /web-setup to reuse your GitHub CLI login, or connect an account at https://claude.ai/connect-github — then re-run /code-review ultra 1234 (allow a minute after connecting).

3470```3491```

3471 3492 

3472Cuando [`/web-setup`](/docs/es/web-quickstart#connect-from-your-terminal) no está disponible en su sesión, el mensaje nombra solo el enlace de claude.ai.3493Cuando [`/web-setup`](/docs/es/web-quickstart#connect-from-your-terminal) no está disponible en tu sesión, el mensaje nombra solo el enlace de claude.ai.

3473 3494 

3474**Qué hacer:**3495**Qué hacer:**

3475 3496 

3476* Ejecute `/web-setup` para conectar su inicio de sesión de GitHub CLI a su cuenta de Claude, o conecte una cuenta en [claude.ai/connect-github](https://claude.ai/connect-github)3497* Ejecuta `/web-setup` para conectar tu inicio de sesión de la CLI de GitHub a tu cuenta de Claude, o conecta una cuenta en [claude.ai/connect-github](https://claude.ai/connect-github)

3477* Vuelva a ejecutar la revisión un minuto después de conectar3498* Vuelve a ejecutar la revisión un minuto después de conectarte

3478 3499 

3479Antes de v2.1.248, Claude Code no verificaba esto antes del lanzamiento.3500Antes de v2.1.248, Claude Code no verificaba esto antes del inicio.

3480 3501 

3481<h3 id="your-connected-github-account-cant-see-the-repository">3502<h3 id="your-connected-github-account-cant-see-the-repository">

3482 Su cuenta de GitHub conectada no puede ver el repositorio3503 Tu cuenta de GitHub conectada no puede ver el repositorio

3483</h3>3504</h3>

3484 3505 

3485Ejecutó `/code-review ultra <PR#>` o `claude ultrareview <PR#>`, y [la cuenta de GitHub conectada a su cuenta de Claude](/docs/es/ultrareview#review-a-pull-request) no puede leer el repositorio de la PR, por lo que el clon en la nube fallaría y Claude Code rechaza el lanzamiento. Claude Code no gasta una ejecución gratuita ni factura créditos de uso para un lanzamiento rechazado.3506Ejecutaste `/code-review ultra <PR#>` o `claude ultrareview <PR#>`, y [la cuenta de GitHub conectada a tu cuenta de Claude](/docs/es/ultrareview#review-a-pull-request) no puede leer el repositorio del PR, así que el clon en la nube fallaría y Claude Code rechaza el inicio. Claude Code no gasta una ejecución gratuita ni cobra créditos de uso por un inicio rechazado.

3486 3507 

3487```text theme={null}3508```text theme={null}

3488Your connected GitHub account can't see <owner>/<repo> — usually the Claude GitHub app isn't installed on <owner> or wasn't granted this repo (web-connected accounts need it for private repos), or a different GitHub account is connected. To fix: run /web-setup to reuse your GitHub CLI login, or install the app at https://github.com/apps/claude/installations/new — then re-run /code-review ultra 1234.3509Your connected GitHub account can't see <owner>/<repo> — usually the Claude GitHub app isn't installed on <owner> or wasn't granted this repo (web-connected accounts need it for private repos), or a different GitHub account is connected. To fix: run /web-setup to reuse your GitHub CLI login, or install the app at https://github.com/apps/claude/installations/new — then re-run /code-review ultra 1234.

3489```3510```

3490 3511 

3491Cuando [`/web-setup`](/docs/es/web-quickstart#connect-from-your-terminal) no está disponible en su sesión, el mensaje nombra solo la instalación de la aplicación.3512Cuando [`/web-setup`](/docs/es/web-quickstart#connect-from-your-terminal) no está disponible en tu sesión, el mensaje nombra solo la instalación de la aplicación.

3492 3513 

3493**Qué hacer:**3514**Qué hacer:**

3494 3515 

3495* Si su CLI `gh` local puede leer el repositorio, ejecute `/web-setup` para conectar ese inicio de sesión a su cuenta de Claude3516* Si tu CLI `gh` local puede leer el repositorio, ejecuta `/web-setup` para conectar ese inicio de sesión a tu cuenta de Claude

3496* Vuelva a ejecutar la revisión después del cambio3517* Vuelve a ejecutar la revisión después del cambio

3497 3518 

3498Antes de v2.1.248, Claude Code no verificaba esto antes del lanzamiento.3519Antes de v2.1.248, Claude Code no verificaba esto antes del inicio.

3499 3520 

3500<h3 id="the-github-app-preflight-failed-transiently">3521<h3 id="the-github-app-preflight-failed-transiently">

3501 La verificación previa de la aplicación de GitHub falló transitoriamente3522 La verificación previa de la GitHub App falló de forma transitoria

3502</h3>3523</h3>

3503 3524 

3504Inició una [sesión en la nube](/docs/es/claude-code-on-the-web) desde un repositorio local, y dos pasos fallaron juntos. Claude Code no pudo construir o cargar el paquete de su repositorio. Antes de la carga, verificó si el servicio en la nube puede clonar el repositorio desde GitHub, y en lugar de una respuesta definitiva, esa verificación terminó en un error que un reintento podría aclarar, como un error de red, un tiempo de espera, o un error temporal del servidor. El mensaje completo comienza con lo que detuvo el paquete, por ejemplo `Could not upload repo bundle (<error>)`, y termina con la oración de verificación previa:3525Iniciaste una [sesión en la nube](/docs/es/claude-code-on-the-web) desde un repositorio local, y dos pasos fallaron a la vez. Claude Code no pudo construir ni subir el bundle de tu repositorio. Antes de la subida, verificó si el servicio en la nube puede clonar el repositorio desde GitHub, y en lugar de una respuesta definitiva, esa verificación terminó en un error que un reintento podría resolver, como un error de red, un tiempo de espera agotado o un error temporal del servidor. El mensaje completo comienza con lo que detuvo el bundle, por ejemplo `Could not upload repo bundle (<error>)`, y termina con la oración de la verificación previa:

3505 3526 

3506```text theme={null}3527```text theme={null}

3507Could not upload repo bundle (<error>). The GitHub App preflight failed transiently (network or service hiccup) — retry in a moment to start from GitHub instead3528Could not upload repo bundle (<error>). The GitHub App preflight failed transiently (network or service hiccup) — retry in a moment to start from GitHub instead


3509 3530 

3510**Qué hacer:**3531**Qué hacer:**

3511 3532 

3512* Vuelva a ejecutar el comando después de un momento. Cuando la verificación de GitHub pasa, Claude Code puede iniciar la sesión desde un clon de GitHub, por lo que la carga fallida ya no bloquea el lanzamiento3533* Vuelve a ejecutar el comando después de un momento. Cuando la verificación de GitHub pasa, Claude Code puede iniciar la sesión desde un clon de GitHub, así que la subida fallida ya no bloquea el inicio

3513* Si los reintentos siguen fallando, el inicio del mensaje nombra lo que detuvo la carga. Cuando esa causa es algo que puede corregir, corríjalo para que la sesión pueda iniciarse desde su repositorio local en su lugar3534* Si los reintentos siguen fallando, el inicio del mensaje nombra lo que detuvo la subida. Cuando esa causa es algo que puedes corregir, corrígela para que la sesión pueda iniciarse desde tu repositorio local en su lugar

3514 3535 

3515Antes de v2.1.251, Claude Code terminaba el mensaje con `Please set up GitHub on https://claude.ai/code` incluso cuando la verificación de GitHub falló solo transitoriamente, y el consejo de configuración no puede aclarar una falla transitoria.3536Antes de v2.1.251, Claude Code terminaba el mensaje con `Please set up GitHub on https://claude.ai/code` incluso cuando la verificación de GitHub fallaba solo de forma transitoria, y un consejo de configuración no puede resolver un fallo transitorio.

3516 3537 

3517<h3 id="the-repository-upload-cant-follow-a-git-setting">3538<h3 id="the-repository-upload-cant-follow-a-git-setting">

3518 La carga del repositorio no puede seguir una configuración de git3539 La subida del repositorio no puede seguir un ajuste de git

3519</h3>3540</h3>

3520 3541 

3521Inició una [sesión en la nube que carga su repositorio local](/docs/es/claude-code-on-the-web#send-local-repositories-without-github), o una [ultrareview](/docs/es/ultrareview) de una rama, y la carga no puede seguir una de las configuraciones de git que deciden qué reglas de atributo se aplican a sus archivos. Si la carga continuara y perdiera una regla, un archivo que git transforma antes de almacenarlo, como uno que un filtro limpio cifra, podría llegar a la nube tal como está en el disco. Claude Code rechaza la carga en su lugar, y nada se carga:3542Iniciaste una [sesión en la nube que sube tu repositorio local](/docs/es/claude-code-on-the-web#send-local-repositories-without-github), o un [ultrareview](/docs/es/ultrareview) de una rama, y la subida no puede seguir uno de los ajustes de git que deciden qué reglas de atributos se aplican a tus archivos. Si la subida continuara y se saltara una regla, un archivo que git transforma antes de almacenarlo, como uno que un filtro clean cifra, podría llegar a la nube tal como está en el disco. En su lugar, Claude Code rechaza la subida y no se sube nada:

3522 3543 

3523```text theme={null}3544```text theme={null}

3524Not uploading this working tree: core.ignoreCase (which decides whether .gitattributes patterns match file names regardless of letter case) is set in <file>, and the upload cannot follow that setting, so a file git would change before storing it (to encrypt it, for example) could be uploaded as it is on disk. Move the core.ignoreCase line into this repository's .git/config or directly into your ~/.gitconfig, then retry.3545Not uploading this working tree: core.ignoreCase (which decides whether .gitattributes patterns match file names regardless of letter case) is set in <file>, and the upload cannot follow that setting, so a file git would change before storing it (to encrypt it, for example) could be uploaded as it is on disk. Move the core.ignoreCase line into this repository’s .git/config or directly into your ~/.gitconfig, then retry.

3525```3546```

3526 3547 

3527El mensaje nombra la configuración y dónde está establecida, y termina con la solución para el caso que golpeó. El mismo rechazo aparece para `core.attributesFile` y `attr.tree`, cada uno con su propia solución.3548El mensaje nombra el ajuste y dónde está establecido, y termina con la solución para el caso que encontraste. El mismo rechazo aparece para `core.attributesFile` y `attr.tree`, cada uno con su propia solución.

3528 3549 

3529El mensaje puede nombrar un archivo de configuración que su configuración de git extrae a través de una directiva `include` o `includeIf`, incluso cuando esa condición de directiva no se aplica a este repositorio.3550El mensaje puede nombrar un archivo de configuración que tu configuración de git incorpora mediante una directiva `include` o `includeIf`, incluso cuando la condición de esa directiva no se aplica a este repositorio.

3530 3551 

3531**Qué hacer:**3552**Qué hacer:**

3532 3553 

3533* Aplique la solución en la oración final del mensaje3554* Aplica la solución de la oración final del mensaje

3534 3555 

3535<h3 id="github-isnt-connected-to-your-claude-account">3556<h3 id="github-isnt-connected-to-your-claude-account">

3536 GitHub no está conectado a su cuenta de Claude3557 GitHub no está conectado a tu cuenta de Claude

3537</h3>3558</h3>

3538 3559 

3539Inició una [sesión en la nube](/docs/es/claude-code-on-the-web) desde su repositorio local, por ejemplo con `/autofix-pr`. Ninguna cuenta de GitHub está conectada a su cuenta de Claude, o la conexión expiró, por lo que Claude Code rechaza el lanzamiento:3560Iniciaste una [sesión en la nube](/docs/es/claude-code-on-the-web) desde tu repositorio local, por ejemplo con `/autofix-pr`. No hay ninguna cuenta de GitHub conectada a tu cuenta de Claude, o la conexión caducó, así que Claude Code rechaza el inicio:

3540 3561 

3541```text theme={null}3562```text theme={null}

3542GitHub isn't connected to your Claude account, so this repository can't be cloned in the cloud. Run /web-setup to connect with your GitHub CLI login, or connect on the web at https://claude.ai/connect-github3563GitHub isn't connected to your Claude account, so this repository can't be cloned in the cloud. Run /web-setup to connect with your GitHub CLI login, or connect on the web at https://claude.ai/connect-github

3543```3564```

3544 3565 

3545Cuando crea una rutina con [`/schedule`](/docs/es/routines), el mismo mensaje aparece como una nota de configuración que nombra el repositorio; la nota no bloquea la creación de la rutina.3566Cuando creas una rutina con [`/schedule`](/docs/es/routines), el mismo mensaje aparece como una nota de configuración que nombra el repositorio; la nota no impide crear la rutina.

3546 3567 

3547**Qué hacer:**3568**Qué hacer:**

3548 3569 

3549* Ejecute `/web-setup` para conectar su inicio de sesión de GitHub CLI a su cuenta de Claude, o conecte una cuenta en [claude.ai/connect-github](https://claude.ai/connect-github). Consulte [Opciones de autenticación de GitHub](/docs/es/claude-code-on-the-web#github-authentication-options) para ver cómo difieren los dos.3570* Ejecuta `/web-setup` para conectar tu inicio de sesión de la CLI de GitHub a tu cuenta de Claude, o conecta una cuenta en [claude.ai/connect-github](https://claude.ai/connect-github). Consulta [Opciones de autenticación de GitHub](/docs/es/claude-code-on-the-web#github-authentication-options) para ver en qué se diferencian.

3550* Vuelva a ejecutar el comando un minuto después de conectar3571* Vuelve a ejecutar el comando un minuto después de conectarte

3551 3572 

3552Antes de v2.1.268, Claude Code reportaba esto como una falla temporal de la verificación de la aplicación de GitHub de Claude y sugería reintentar o instalar la aplicación; ninguno conecta una cuenta de GitHub.3573Antes de v2.1.268, Claude Code informaba esto como un fallo temporal de la verificación de la Claude GitHub App y sugería reintentar o instalar la aplicación; ninguna de las dos opciones conecta una cuenta de GitHub.

3553 3574 

3554<h3 id="single-sign-on-authorization-needed">3575<h3 id="single-sign-on-authorization-needed">

3555 Autorización de inicio de sesión único necesaria3576 Se necesita autorización de inicio de sesión único

3556</h3>3577</h3>

3557 3578 

3558Ejecutó [`/install-github-app`](/docs/es/github-actions#quick-setup) y eligió un repositorio cuya organización aplica inicio de sesión único SAML. Antes de la configuración, Claude Code verifica su acceso al repositorio con la CLI de GitHub, y GitHub rechazó esa verificación porque su token `gh` aún no está autorizado para la organización. El asistente muestra la advertencia con los pasos para autorizar:3579Ejecutaste [`/install-github-app`](/docs/es/github-actions#quick-setup) y elegiste un repositorio cuya organización exige el inicio de sesión único SAML. Antes de la configuración, Claude Code verifica tu acceso al repositorio con la CLI de GitHub, y GitHub rechazó esa verificación porque tu token de `gh` todavía no está autorizado para la organización. El asistente muestra la advertencia con los pasos para autorizarlo:

3559 3580 

3560```text theme={null}3581```text theme={null}

3561Single sign-on authorization needed3582Single sign-on authorization needed


3564 3585 

3565**Qué hacer:**3586**Qué hacer:**

3566 3587 

3567* Vuelva a autorizar su inicio de sesión de GitHub CLI con los alcances `repo` y `workflow` ejecutando `gh auth refresh -h github.com -s repo,workflow`, y autorice la organización cuando GitHub solicite inicio de sesión único3588* Vuelve a autorizar tu inicio de sesión de la CLI de GitHub con los alcances `repo` y `workflow` ejecutando `gh auth refresh -h github.com -s repo,workflow`, y autoriza la organización cuando GitHub solicite el inicio de sesión único

3568* Si se autentica con un token de acceso personal en `GH_TOKEN`, abra [github.com/settings/tokens](https://github.com/settings/tokens), seleccione **Configure SSO** en el token, y autorice la organización3589* Si te autenticas con un token de acceso personal en `GH_TOKEN`, abre [github.com/settings/tokens](https://github.com/settings/tokens), selecciona **Configure SSO** en el token y autoriza la organización

3569* Ejecute `/install-github-app` nuevamente3590* Vuelve a ejecutar `/install-github-app`

3570 3591 

3571Antes de v2.1.273, Claude Code mostraba la advertencia `Admin permissions required` para esta condición en su lugar.3592Antes de v2.1.273, Claude Code mostraba la advertencia `Admin permissions required` para esta condición en su lugar.

3572 3593 


3574 No se pudo reanudar la conversación3595 No se pudo reanudar la conversación

3575</h3>3596</h3>

3576 3597 

3577Claude Code no pudo leer o procesar la transcripción guardada para la sesión que seleccionó del [selector `claude --resume`](/docs/es/sessions#use-the-session-picker), por lo que termina el proceso en lugar de continuar en un estado parcialmente cargado. El mensaje incluye el comando para reintentar:3598Claude Code no pudo leer ni procesar la transcripción guardada de la sesión que seleccionaste en el [selector de `claude --resume`](/docs/es/sessions#use-the-session-picker), así que termina el proceso en lugar de continuar en un estado cargado parcialmente. El mensaje incluye el comando para reintentar:

3578 3599 

3579```text theme={null}3600```text theme={null}

3580Failed to resume the conversation.3601Failed to resume the conversation.

3581Run claude --resume <session-id> to retry, or claude to start a new session.3602Run claude --resume <session-id> to retry, or claude to start a new session.

3582```3603```

3583 3604 

3584Claude Code sale con código 1 después de mostrar el mensaje. El selector `/resume` dentro de una sesión en ejecución reporta `Failed to resume conversation` en la conversación en su lugar, y su sesión actual sigue ejecutándose. Antes de v2.1.216, un reintento fallido desde el selector `claude --resume` permanecía en el spinner `Resuming conversation…` indefinidamente en lugar de mostrar este mensaje.3605Claude Code termina con el código 1 después de mostrar el mensaje. El selector de `/resume` dentro de una sesión en ejecución informa `Failed to resume conversation` en la conversación en su lugar, y tu sesión actual sigue ejecutándose. Antes de v2.1.216, una reanudación fallida desde el selector de `claude --resume` se quedaba indefinidamente en el indicador giratorio `Resuming conversation…` en lugar de mostrar este mensaje.

3585 3606 

3586**Qué hacer:**3607**Qué hacer:**

3587 3608 

3588* Ejecute `claude --resume <session-id>` con el ID de sesión del mensaje para reintentar3609* Ejecuta `claude --resume <session-id>` con el ID de sesión del mensaje para reintentar

3589* Si cada reintento falla de la misma manera, ejecute `claude update` y reanude nuevamente. Las versiones anteriores a v2.1.275 fallan en la reanudación cuando la transcripción guardada contiene una entrada que no pueden leer.3610* Si todos los reintentos fallan de la misma forma, ejecuta `claude update` y vuelve a reanudar. Las versiones anteriores a v2.1.275 hacen fallar la reanudación cuando la transcripción guardada contiene una entrada que no pueden leer.

3590* Si el reintento falla nuevamente, ejecute `claude` para iniciar una nueva sesión3611* Si el reintento vuelve a fallar, ejecuta `claude` para iniciar una nueva sesión

3591 3612 

3592<h3 id="no-conversation-found-with-the-session-id">3613<h3 id="no-conversation-found-with-the-session-id">

3593 No se encontró conversación con el ID de sesión3614 No se encontró ninguna conversación con el ID de sesión

3594</h3>3615</h3>

3595 3616 

3596Pasó un ID de sesión a `claude --resume <session-id>` y ninguna transcripción guardada coincidió:3617Pasaste un ID de sesión a `claude --resume <session-id>` y ninguna transcripción guardada coincidió con él:

3597 3618 

3598```text theme={null}3619```text theme={null}

3599No conversation found with session ID: <session-id>3620No conversation found with session ID: <session-id>

3600```3621```

3601 3622 

3602Claude Code sale con código 1 después de mostrar el mensaje. Claude Code [busca el proyecto actual primero, luego cada otro proyecto en esta máquina](/docs/es/sessions#resume-a-session) para el ID. Antes de v2.1.223, la búsqueda se detuvo en el directorio del proyecto actual y sus worktrees de git, por lo que reanude desde el directorio donde la sesión trabajó por última vez.3623Claude Code termina con el código 1 después de mostrar el mensaje. Claude Code [busca el ID primero en el proyecto actual y luego en todos los demás proyectos de esta máquina](/docs/es/sessions#resume-a-session). Antes de v2.1.223, la búsqueda se detenía en el directorio del proyecto actual y sus worktrees de git, así que debías reanudar desde el directorio en el que la sesión trabajó por última vez.

3603 3624 

3604Las causas comunes:3625Causas comunes:

3605 3626 

3606* **ID mal escrito**: para una ejecución no interactiva, el ID es el campo `session_id` de la salida [`--output-format json`](/docs/es/headless#get-structured-output)3627* **ID mal escrito**: para una ejecución no interactiva, el ID es el campo `session_id` de la [salida de `--output-format json`](/docs/es/headless#get-structured-output)

3607* **Transcripción eliminada**: Claude Code elimina transcripciones después del [período de retención](/docs/es/sessions#where-transcripts-are-stored), 30 días de forma predeterminada, siguiendo las [reglas de barrido de retención](/docs/es/claude-directory#cleaned-up-automatically)3628* **Transcripción eliminada**: Claude Code elimina las transcripciones después del [período de retención](/docs/es/sessions#where-transcripts-are-stored), 30 días de forma predeterminada, siguiendo las [reglas de limpieza por retención](/docs/es/claude-directory#cleaned-up-automatically)

3608* **Máquina diferente**: Claude Code almacena transcripciones localmente, por lo que reanude la sesión en la máquina donde se ejecutó3629* **Otra máquina**: Claude Code almacena las transcripciones localmente, así que reanuda la sesión en la máquina donde se ejecutó

3609* **Copias duplicadas**: si copió un directorio de proyecto bajo `~/.claude/projects` para que dos transcripciones lleven el mismo ID, Claude Code reporta este mensaje en lugar de reanudar una copia arbitrariamente3630* **Copias duplicadas**: si copiaste un directorio de proyecto dentro de `~/.claude/projects` de modo que dos transcripciones tienen el mismo ID, Claude Code informa este mensaje en lugar de reanudar una copia de forma arbitraria

3610 3631 

3611**Qué hacer:**3632**Qué hacer:**

3612 3633 

3613* Para una sesión interactiva, abra el [selector de sesión](/docs/es/sessions#use-the-session-picker) con `claude --resume` y presione `Ctrl+A` para ampliarlo a cada proyecto en esta máquina, luego seleccione la sesión3634* Para una sesión interactiva, abre el [selector de sesiones](/docs/es/sessions#use-the-session-picker) con `claude --resume` y presiona `Ctrl+A` para ampliarlo a todos los proyectos de esta máquina, y luego selecciona la sesión

3614* Las sesiones creadas con `claude -p` o el [Agent SDK](/docs/es/agent-sdk/overview) no aparecen en el selector, por lo que vuelva a verificar el ID contra el `session_id` que su ejecución original imprimió3635* Las sesiones creadas con `claude -p` o con el [Agent SDK](/docs/es/agent-sdk/overview) no aparecen en el selector, así que vuelve a comprobar el ID con el `session_id` que imprimió tu ejecución original

3615 3636 

3616<h3 id="windows-reported-an-error-ebadf">3637<h3 id="windows-reported-an-error-ebadf">

3617 Windows reportó un error (EBADF) cuando Claude Code leyó el archivo de transcripción de esta sesión3638 Windows informó un error (EBADF) cuando Claude Code leyó el archivo de transcripción de esta sesión

3618</h3>3639</h3>

3619 3640 

3620Reanudó una sesión en Windows, su archivo de [transcripción](/docs/es/sessions#where-transcripts-are-stored) guardado se abrió normalmente, y la lectura falló con el error del sistema EBADF. El error del sistema no dice por qué la lectura falló, por lo que el mensaje sugiere causas probables y qué intentar:3641Reanudaste una sesión en Windows, su [archivo de transcripción](/docs/es/sessions#where-transcripts-are-stored) guardado se abrió normalmente y luego la lectura falló con el error del sistema EBADF. El error del sistema no dice por qué falló la lectura, así que el mensaje sugiere causas probables y qué intentar:

3621 3642 

3622```text theme={null}3643```text theme={null}

3623Windows reported an error (EBADF) when Claude Code read this session's transcript file, although the file had opened normally. This can happen when other software intercepts file reads — security, encryption or endpoint-management tools, for example. If it keeps happening for this conversation, try excluding the folder that holds Claude Code's session transcripts from such software (the .claude folder in your user profile, unless the app or CLAUDE_CONFIG_DIR points Claude Code elsewhere), or adding Claude Code to its allowed applications, then resume again.3644Windows reported an error (EBADF) when Claude Code read this session's transcript file, although the file had opened normally. This can happen when other software intercepts file reads — security, encryption or endpoint-management tools, for example. If it keeps happening for this conversation, try excluding the folder that holds Claude Code's session transcripts from such software (the .claude folder in your user profile, unless the app or CLAUDE_CONFIG_DIR points Claude Code elsewhere), or adding Claude Code to its allowed applications, then resume again.

3624```3645```

3625 3646 

3626El mensaje sigue la línea de fallo propio del comando, como `Failed to resume session <session-id>`. Un comando `claude --resume` o [`claude -p`](/docs/es/headless) sale con código 1 después de mostrarlo. Después de `/resume` dentro de una sesión, su sesión actual sigue ejecutándose.3647El mensaje aparece después de la propia línea de error del comando, como `Failed to resume session <session-id>`. Un comando `claude --resume` o [`claude -p`](/docs/es/headless) termina con el código 1 después de mostrarlo. Después de `/resume` dentro de una sesión, tu sesión actual sigue ejecutándose.

3627 3648 

3628**Qué hacer:**3649**Qué hacer:**

3629 3650 

3630* Excluya la carpeta que contiene sus transcripciones de sesión del software que escanea o intercepta lecturas de archivos, como herramientas de seguridad, cifrado o gestión de puntos finales. Las transcripciones viven bajo `%USERPROFILE%\.claude\projects` de forma predeterminada, o bajo el directorio que [`CLAUDE_CONFIG_DIR`](/docs/es/env-vars) nombra3651* Excluye la carpeta que contiene las transcripciones de tus sesiones del software que analiza o intercepta lecturas de archivos, como herramientas de seguridad, cifrado o administración de endpoints. Las transcripciones se encuentran en `%USERPROFILE%\.claude\projects` de forma predeterminada, o en el directorio que indique [`CLAUDE_CONFIG_DIR`](/docs/es/env-vars)

3631* Si no puede agregar una exclusión, agregue Claude Code a las aplicaciones permitidas de ese software en su lugar3652* Si no puedes agregar una exclusión, agrega Claude Code a las aplicaciones permitidas de ese software

3632* Reanude la sesión nuevamente3653* Reanuda la sesión de nuevo

3633 3654 

3634Antes de v2.1.282, el fallo vino sin explicación: `claude --resume <session-id>` terminó en `Failed to resume session <session-id>`, y una ejecución `-p` imprimió solo el texto de error del sistema, como `Failed to resume session: EBADF: bad file descriptor, read`.3655Antes de la v2.1.282, el error aparecía sin explicación: `claude --resume <session-id>` terminaba en `Failed to resume session <session-id>`, y una ejecución con `-p` imprimía solo el texto del error del sistema, como `Failed to resume session: EBADF: bad file descriptor, read`.

3635 3656 

3636<h3 id="cannot-switch-renderers-in-this-session">3657<h3 id="cannot-switch-renderers-in-this-session">

3637 No se puede cambiar renderizadores en esta sesión3658 No se pueden cambiar los renderizadores en esta sesión

3638</h3>3659</h3>

3639 3660 

3640Cuando cambia renderizadores, Claude Code reinicia su proceso. Ejecutó [`/tui`](/docs/es/fullscreen#enable-fullscreen-rendering) en una sesión que Claude Code se niega a reiniciar, por lo que no cambia y no guarda nada. Qué mensaje ve le dice la causa:3661Cuando cambias de renderizador, Claude Code reinicia su proceso. Ejecutaste [`/tui`](/docs/es/fullscreen#enable-fullscreen-rendering) en una sesión que Claude Code se niega a reiniciar, así que no cambia y no guarda nada. El mensaje que ves te indica la causa:

3641 3662 

3642* `Cannot switch renderers while work is running in the background`: tiene trabajo en segundo plano ejecutándose que un reinicio abandonaría, como un shell en segundo plano o un subagente. Espere a que el trabajo termine o deténgalo con [`/tasks`](/docs/es/commands), luego ejecute `/tui fullscreen` o `/tui default` nuevamente3663* `Cannot switch renderers while work is running in the background`: tienes trabajo en segundo plano en ejecución que un reinicio abandonaría, como un shell en segundo plano o un subagente. Espera a que el trabajo termine o detenlo con [`/tasks`](/docs/es/commands), y luego ejecuta `/tui fullscreen` o `/tui default` de nuevo

3643* `Cannot switch renderers in this session`: la sesión tiene restricciones que Claude Code no puede pasar al proceso reiniciado. Antes de v2.1.234, Claude Code reiniciaba de todas formas y la sesión relanzada se ejecutaba sin ellas3664* `Cannot switch renderers in this session`: la sesión tiene restricciones que Claude Code no puede pasar al proceso reiniciado. Antes de la v2.1.234, Claude Code reiniciaba de todos modos y la sesión relanzada se ejecutaba sin ellas

3644 3665 

3645En el mensaje de restricciones, la parte entre paréntesis nombra las restricciones que Claude Code encontró:3666En el mensaje de restricciones, la parte entre paréntesis nombra las restricciones que Claude Code encontró:

3646 3667 


3648Cannot switch renderers in this session — it has restrictions a restart can't carry over (permission rules set for this session only). Nothing was changed. Running /tui fullscreen in a session started without them switches every later session too.3669Cannot switch renderers in this session — it has restrictions a restart can't carry over (permission rules set for this session only). Nothing was changed. Running /tui fullscreen in a session started without them switches every later session too.

3649```3670```

3650 3671 

3651Cada razón que el mensaje puede mostrar entre paréntesis:3672Cada motivo que el mensaje puede mostrar entre paréntesis:

3652 3673 

3653* `launch flags: a custom system prompt, a tool allowlist, or restricted settings`: inició la sesión con una bandera que Claude Code no pasa de vuelta al proceso reiniciado. Estas banderas incluyen [`--system-prompt`](/docs/es/cli-reference#cli-flags), `--system-prompt-file`, `--append-system-prompt-file`, una lista de permitidos [`--tools`](/docs/es/cli-reference#cli-flags), [`--setting-sources`](/docs/es/cli-reference#cli-flags), y [`--permission-prompt-tool`](/docs/es/cli-reference#cli-flags)3674* `launch flags: a custom system prompt, a tool allowlist, or restricted settings`: iniciaste la sesión con un flag que Claude Code no vuelve a pasar al proceso reiniciado. Estos flags incluyen [`--system-prompt`](/docs/es/cli-reference#cli-flags), `--system-prompt-file`, `--append-system-prompt-file`, una lista de herramientas permitidas con [`--tools`](/docs/es/cli-reference#cli-flags), [`--setting-sources`](/docs/es/cli-reference#cli-flags) y [`--permission-prompt-tool`](/docs/es/cli-reference#cli-flags)

3654* `permission rules set for this session only`: una [actualización de permiso](/docs/es/hooks#permission-update-entries) de un hook o llamador SDK agregó reglas de denegación o solicitud con el destino `session`. Las reglas de permiso de alcance de sesión no desencadenan el rechazo. Un reinicio las elimina, y Claude Code solicita nuevamente en su lugar3675* `permission rules set for this session only`: una [actualización de permisos](/docs/es/hooks#permission-update-entries) de un hook o de un llamador del SDK agregó reglas deny o ask con el destino `session`. Las reglas allow con alcance de sesión no provocan el rechazo. Un reinicio las descarta, y Claude Code vuelve a pedir permiso en su lugar

3655* `ask-before-running rules with no command-line form`: una actualización de permiso agregó reglas de solicitud junto con las reglas que Claude Code pasa de vuelta como `--allowed-tools` y `--disallowed-tools`. No existe bandera para reglas de solicitud3676* `ask-before-running rules with no command-line form`: una actualización de permisos de un hook o de un llamador del SDK agregó reglas ask junto con las reglas que Claude Code vuelve a pasar como `--allowed-tools` y `--disallowed-tools`. No existe ningún flag para las reglas ask

3656* `permission rules a command line cannot carry intact` y `added directories a command line cannot carry intact`: una actualización de permiso agregó una regla o ruta de directorio a mitad de sesión. La línea de comandos del proceso reiniciado no puede llevar su texto como el mismo valor3677* `permission rules a command line cannot carry intact` y `added directories a command line cannot carry intact`: una actualización de permisos agregó una regla o una ruta de directorio a mitad de la sesión. La línea de comandos del proceso reiniciado no puede transportar su texto como el mismo valor

3657 3678 

3658**Qué hacer:**3679**Qué hacer:**

3659 3680 

3660* En una sesión iniciada sin esas restricciones, ejecute `/tui fullscreen`, o `/tui default` para cambiar de vuelta. Claude Code guarda la [configuración `tui`](/docs/es/settings-reference#tui) allí3681* En una sesión iniciada sin esas restricciones, ejecuta `/tui fullscreen`, o `/tui default` para volver atrás. Claude Code guarda ahí el [ajuste `tui`](/docs/es/settings-reference#tui)

3661 3682 

3662<h3 id="couldnt-open-claude-desktop">3683<h3 id="couldnt-open-claude-desktop">

3663 No se pudo abrir Claude Desktop3684 No se pudo abrir Claude Desktop

3664</h3>3685</h3>

3665 3686 

3666Ejecutó [`/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.3687Ejecutaste [`/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 tu 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 termina con el estado 1.

3667 3688 

3668El 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`:3689El 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 los produjo. En macOS ese comando es `open`, como en este ejemplo; en Windows es `rundll32`:

3669 3690 

3670```text theme={null}3691```text theme={null}

3671Error: 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.3692Error: 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.


3673 3694 

3674**Qué hacer:**3695**Qué hacer:**

3675 3696 

3676* Abra Claude Desktop usted mismo, luego ejecute `/desktop` o `claude --desktop` nuevamente3697* Abre Claude Desktop tú mismo y luego ejecuta `/desktop` o `claude --desktop` de nuevo

3677* 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ón3698* Para leer la salida de error completa del comando que falló, activa el registro de depuración con `/debug` y ejecuta `/desktop` de nuevo, o ejecuta `claude --desktop --debug-file <path>`, y luego revisa el registro de depuración

3678 3699 

3679Antes 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ó.3700Antes de la v2.1.285, el mensaje terminaba con `Open Claude Desktop and run /desktop again.` Antes de la v2.1.275, era `Failed to open Claude Desktop. Please try opening it manually.` y no decía qué había fallado.

3680 3701 

3681<h3 id="terminal-setup-left-your-zed-keymap-unchanged">3702<h3 id="terminal-setup-left-your-zed-keymap-unchanged">

3682 /terminal-setup dejó su mapa de atajos de teclado de Zed sin cambios3703 /terminal-setup dejó tu keymap de Zed sin cambios

3683</h3>3704</h3>

3684 3705 

3685Ejecutó [`/terminal-setup`](/docs/es/terminal-config#enter-multiline-prompts) en Zed, y Claude Code no pudo completar la actualización a su `keymap.json` de Zed, por lo que lo dejó como estaba.3706Ejecutaste [`/terminal-setup`](/docs/es/terminal-config#enter-multiline-prompts) en Zed y Claude Code no pudo completar la actualización de tu `keymap.json` de Zed, así que dejó el archivo como estaba.

3686 3707 

3687Cada mensaje nombra la ruta a su mapa de atajos de teclado y termina con el bloque de atajos de teclado para agregar usted mismo:3708Cada mensaje nombra la ruta a tu keymap y termina con el bloque de atajo de teclado que debes agregar tú mismo:

3688 3709 

3689```text theme={null}3710```text theme={null}

3690Couldn't update your Zed keymap, so it was left unchanged.3711Couldn't update your Zed keymap, so it was left unchanged.


3694 3715 

3695La primera línea del mensaje nombra la causa:3716La primera línea del mensaje nombra la causa:

3696 3717 

3697* `Couldn't read your Zed keymap, so it was left unchanged.`: Claude Code no pudo leer el archivo, por ejemplo debido a permisos de archivo3718* `Couldn't read your Zed keymap, so it was left unchanged.`: Claude Code no pudo leer el archivo, por ejemplo debido a los permisos del archivo

3698* `Your Zed keymap isn't a readable list of keybindings, so it was left unchanged.`: el archivo se leyó bien pero no se analiza como una matriz de bloques de atajos de teclado, incluso con comentarios `//` y comas finales permitidas3719* `Your Zed keymap isn't a readable list of keybindings, so it was left unchanged.`: el archivo se leyó bien, pero no se analiza como un array de bloques de atajos de teclado, incluso permitiendo comentarios `//` y comas finales

3699* `Couldn't back up your Zed keymap; not modifying it.`: Claude Code no pudo copiar el archivo a una copia de seguridad `.bak` junto a él, por lo que no cambió nada3720* `Couldn't back up your Zed keymap; not modifying it.`: Claude Code no pudo copiar el archivo a una copia de seguridad `.bak` junto a él, así que no cambió nada

3700* `Couldn't update your Zed keymap, so it was left unchanged.`: el resultado fusionado no se verificó como un mapa de atajos de teclado válido que lleve el atajo de teclado, por lo que Claude Code lo descartó en lugar de escribir. Un bloque de atajos de teclado con una clave duplicada puede causar esto3721* `Couldn't update your Zed keymap, so it was left unchanged.`: el resultado combinado no se verificó como un keymap válido que contuviera el atajo, así que Claude Code lo descartó en lugar de escribirlo. Un bloque de atajos de teclado con una clave duplicada puede causar esto

3701 3722 

3702**Qué hacer:**3723**Qué hacer:**

3703 3724 

3704* Copie el bloque del mensaje en la matriz de nivel superior en su `keymap.json` en la ruta que nombra el mensaje3725* Copia el bloque del mensaje en el array de nivel superior de tu `keymap.json`, en la ruta que indica el mensaje

3705* Para `isn't a readable list of keybindings`, corrija el error de sintaxis, o haga que el valor de nivel superior del archivo sea una matriz, luego ejecute `/terminal-setup` nuevamente3726* Para `isn't a readable list of keybindings`, corrige el error de sintaxis o haz que el valor de nivel superior del archivo sea un array, y luego ejecuta `/terminal-setup` de nuevo

3706 3727 

3707Antes de v2.1.247, `/terminal-setup` no podía analizar un mapa de atajos de teclado de Zed que usara comentarios `//` o comas finales, y reemplazó el archivo completo con solo su propio atajo de teclado mientras reportaba el atajo de teclado como instalado. Para restaurar un mapa de atajos de teclado que una versión anterior reemplazó, use el archivo de copia de seguridad `.bak` descrito en [Ingrese indicadores de varias líneas](/docs/es/terminal-config#enter-multiline-prompts).3728Antes de la v2.1.247, `/terminal-setup` no podía analizar un keymap de Zed que usara comentarios `//` o comas finales, y reemplazaba el archivo completo solo con su propio atajo mientras informaba que el atajo estaba instalado. Para restaurar un keymap que una versión anterior reemplazó, usa el archivo de copia de seguridad `.bak` descrito en [Ingresar prompts de varias líneas](/docs/es/terminal-config#enter-multiline-prompts).

3708 3729 

3709<h3 id="skill-usage-reports-are-not-available-on-this-connection">3730<h3 id="skill-usage-reports-are-not-available-on-this-connection">

3710 Los reportes de uso de skills no están disponibles en esta conexión3731 Los informes de uso de skills no están disponibles en esta conexión

3711</h3>3732</h3>

3712 3733 

3713Ejecutó [`/skill-doctor`](/docs/es/skills#find-unused-skills) sobre [Remote Control](/docs/es/remote-control), desde su teléfono o navegador. Claude Code no envía el informe de uso de skills sobre Remote Control y responde con este mensaje en su lugar:3734Ejecutaste [`/skill-doctor`](/docs/es/skills#find-unused-skills) a través de [Remote Control](/docs/es/remote-control), desde tu teléfono o navegador. Claude Code no envía el informe de uso de skills a través de Remote Control y responde con este mensaje en su lugar:

3714 3735 

3715```text theme={null}3736```text theme={null}

3716Skill usage reports are not available on this connection.3737Skill usage reports are not available on this connection.


3718 3739 

3719**Qué hacer:**3740**Qué hacer:**

3720 3741 

3721* Ejecute `/skill-doctor` en la terminal en la máquina donde se ejecuta la sesión, o ejecute `claude -p "/skill-doctor"` allí3742* Ejecuta `/skill-doctor` en la terminal de la máquina donde se está ejecutando la sesión, o ejecuta `claude -p "/skill-doctor"` allí

3722 3743 

3723<h3 id="custom-output-styles-cant-be-selected-over-remote-control">3744<h3 id="custom-output-styles-cant-be-selected-over-remote-control">

3724 Los estilos de salida personalizados no se pueden seleccionar sobre Remote Control3745 Los estilos de salida personalizados no se pueden seleccionar a través de Remote Control

3725</h3>3746</h3>

3726 3747 

3727Ejecutó [`/output-style`](/docs/es/output-styles#change-your-output-style) desde la aplicación móvil o web a través de [Remote Control](/docs/es/remote-control), o el comando llegó en un mensaje retransmitido a la sesión. Porque tal turno puede no provenir del propietario de la cuenta, Claude Code enumera y selecciona solo [estilos integrados](/docs/es/output-styles#built-in-output-styles) en él, y agrega este aviso siempre que el comando enumera los estilos o no reconoce el nombre que dio. Un nombre de [estilo personalizado](/docs/es/output-styles#create-a-custom-output-style) obtiene la misma respuesta que un nombre que no existe:3748Ejecutaste [`/output-style`](/docs/es/output-styles#change-your-output-style) desde la aplicación móvil o la web a través de [Remote Control](/docs/es/remote-control), o el comando llegó en un mensaje retransmitido a la sesión. Como un turno así podría no provenir del propietario de la cuenta, Claude Code solo lista y selecciona [estilos integrados](/docs/es/output-styles#built-in-output-styles) en él, y agrega este aviso cada vez que el comando lista los estilos o no reconoce el nombre que indicaste. El nombre de un [estilo personalizado](/docs/es/output-styles#create-a-custom-output-style) recibe la misma respuesta que un nombre que no existe:

3728 3749 

3729```text theme={null}3750```text theme={null}

3730Custom output styles can't be selected over Remote Control or from a relayed message. Select one in the session itself, or pick a built-in style here.3751Custom output styles can't be selected over Remote Control or from a relayed message. Select one in the session itself, or pick a built-in style here.


3732 3753 

3733**Qué hacer:**3754**Qué hacer:**

3734 3755 

3735* Elija un estilo integrado, por ejemplo `/output-style concise`3756* Elige un estilo integrado, por ejemplo `/output-style concise`

3736* Para usar un estilo personalizado, establezca [`outputStyle`](/docs/es/settings-reference#outputstyle) en `.claude/settings.local.json` del proyecto, o ejecute `/output-style <style>` en la terminal de la sesión si tiene una3757* Para usar un estilo personalizado, establece [`outputStyle`](/docs/es/settings-reference#outputstyle) en el `.claude/settings.local.json` del proyecto, o ejecuta `/output-style <style>` en la propia terminal de la sesión, si tiene una

3737 3758 

3738<h3 id="output-styles-are-saved-to-local-settings-which-this-session-doesnt-load">3759<h3 id="output-styles-are-saved-to-local-settings-which-this-session-doesnt-load">

3739 Los estilos de salida se guardan en la configuración local que esta sesión no carga3760 Los estilos de salida se guardan en la configuración local, que esta sesión no carga

3740</h3>3761</h3>

3741 3762 

3742Intentó cambiar [estilos de salida](/docs/es/output-styles) con `/output-style <style>` o `/config outputStyle=<style>` en una sesión cuyas fuentes de configuración excluyen `local`. Los ejemplos son una sesión [Agent SDK](/docs/es/agent-sdk/typescript) cuyo [`settingSources`](/docs/es/agent-sdk/typescript#options) deja fuera `"local"` y una sesión CLI iniciada con un valor [`--setting-sources`](/docs/es/cli-reference#cli-flags) que deja fuera `local`. Ambos comandos guardan el estilo en `.claude/settings.local.json`, un archivo que tal sesión nunca vuelve a leer, por lo que Claude Code se niega en lugar de escribir una configuración que no tendría efecto:3763Intentaste cambiar de [estilo de salida](/docs/es/output-styles) con `/output-style <style>` o `/config outputStyle=<style>` en una sesión cuyas fuentes de configuración excluyen `local`. Algunos ejemplos son una sesión del [Agent SDK](/docs/es/agent-sdk/typescript) cuyo [`settingSources`](/docs/es/agent-sdk/typescript#options) omite `"local"` y una sesión de la CLI iniciada con un valor de [`--setting-sources`](/docs/es/cli-reference#cli-flags) que omite `local`. Ambos comandos guardan el estilo en `.claude/settings.local.json`, un archivo que una sesión así nunca vuelve a leer, por lo que Claude Code se niega en lugar de escribir un ajuste que no tendría ningún efecto:

3743 3764 

3744```text theme={null}3765```text theme={null}

3745Output styles are saved to local settings (.claude/settings.local.json), which this session doesn't load, so the style can't be changed here.3766Output styles are saved to local settings (.claude/settings.local.json), which this session doesn't load, so the style can't be changed here.


3747 3768 

3748**Qué hacer:**3769**Qué hacer:**

3749 3770 

3750* Agregue `local` a las fuentes de configuración de la sesión y cambie nuevamente3771* Agrega `local` a las fuentes de configuración de la sesión y cambia de nuevo

3751* Establezca la clave [`outputStyle`](/docs/es/settings-reference#outputstyle) en un archivo de configuración que la sesión sí carga, como `.claude/settings.json` en el proyecto o `~/.claude/settings.json`. En el SDK de TypeScript, establezca `outputStyle` dentro del objeto `settings` en línea en su lugar; consulte [Activar un estilo de salida](/docs/es/agent-sdk/modifying-system-prompts#activate-an-output-style)3772* Establece la clave [`outputStyle`](/docs/es/settings-reference#outputstyle) en un archivo de configuración que la sesión sí cargue, como `.claude/settings.json` en el proyecto o `~/.claude/settings.json`. En el SDK de TypeScript, establece `outputStyle` dentro del objeto `settings` en línea; consulta [Activar un estilo de salida](/docs/es/agent-sdk/modifying-system-prompts#activate-an-output-style)

3752 3773 

3753<h2 id="plugin-errors">3774<h2 id="plugin-errors">

3754 Errores de plugins3775 Errores de plugins


4476 Errores de sesión en segundo plano4497 Errores de sesión en segundo plano

4477</h2>4498</h2>

4478 4499 

4479Las [sesiones en segundo plano](/docs/es/agent-view) se ejecutan sin su propia terminal interactiva, por lo que los comandos que necesitan una se comportan de manera diferente allí. Estos mensajes aparecen en la transcripción de una sesión en segundo plano, en la terminal que se conecta a una, en la sesión o shell desde la que se envía, o, para las [entradas de protección de worktree](#write-or-command-blocked-because-the-path-cannot-be-safely-resolved) a continuación, en cualquier sesión aislada en un worktree o ejecutando un subagente aislado en worktree; cuando un mensaje es específico de una superficie, su entrada lo indica.4500Las [sesiones en segundo plano](/docs/es/agent-view) se ejecutan sin su propia terminal interactiva, por lo que los comandos que necesitan una se comportan de manera diferente allí. Estos mensajes aparecen en la transcripción de una sesión en segundo plano, en la terminal que se conecta a una, en la sesión o shell desde la que haces el envío, o, para las [entradas de protección de worktree](#write-or-command-blocked-because-the-path-cannot-be-safely-resolved) a continuación, en cualquier sesión aislada en un worktree o que ejecute un subagente aislado en worktree; cuando un mensaje es específico de una superficie, su entrada lo indica.

4480 4501 

4481<h3 id="commands-refused-in-a-background-session">4502<h3 id="commands-refused-in-a-background-session">

4482 Comandos rechazados en una sesión en segundo plano4503 Comandos rechazados en una sesión en segundo plano

4483</h3>4504</h3>

4484 4505 

4485Los 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.4506Los 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 puedas encontrarla, conectarte y ejecutar el comando nuevamente. Mientras una terminal está conectada, estos comandos funcionan normalmente.

4486 4507 

4487Antes 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.4508Antes 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 te indicaba que te conectaras y ejecutaras 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, ejecuta el comando desde una sesión `claude` normal en su lugar, o actualiza. Antes de v2.1.208, abrían su diálogo dentro de la sesión en segundo plano. Solo en v2.1.208, Claude Code también rechazaba el selector `/model` en una sesión en segundo plano, y `/upgrade` imprimía la URL de actualización en lugar de abrir un navegador.

4488 4509 

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

4490 4511 


4494 4515 

4495**Qué hacer:**4516**Qué hacer:**

4496 4517 

4497* Conéctese a la sesión desde agent view y ejecute el comando nuevamente4518* Conéctate a la sesión desde agent view y ejecuta el comando nuevamente

4498* O use la forma que el mensaje nombra, como `/mcp reconnect <server>`, `/mcp enable`, o `/mcp disable`, que funcionan sin conectarse4519* O usa la forma que el mensaje nombra, como `/mcp reconnect <server>`, `/mcp enable` o `/mcp disable`, que funcionan sin conectarse

4499 4520 

4500<h3 id="write-or-command-blocked-because-the-path-cannot-be-safely-resolved">4521<h3 id="write-or-command-blocked-because-the-path-cannot-be-safely-resolved">

4501 Escritura o comando bloqueado porque la ruta no se puede resolver de forma segura4522 Escritura o comando bloqueado porque la ruta no se puede resolver de forma segura

4502</h3>4523</h3>

4503 4524 

4504Claude dirigió un archivo o directorio de trabajo a través de una ortografía que el [protector de aislamiento de worktree](/docs/es/agent-view#how-file-edits-are-isolated) no puede resolver a una ubicación verificable. El protector verifica escrituras y directorios de trabajo de comandos en [cualquier sesión aislada en un worktree](/docs/es/worktrees#how-claude-code-enforces-isolation), interactiva o en segundo plano, y en [subagentes aislados en worktree](/docs/es/worktrees#isolate-subagents-with-worktrees). Resuelve enlaces simbólicos antes de verificar que la operación no llegue al checkout compartido, y cuando la resolución falla, bloquea la operación en lugar de permitir que llegue allí. El mensaje nombra las formas de ruta que rechaza y cómo reintentar:4525Claude se refirió a un archivo o directorio de trabajo mediante una escritura de ruta que el [protector de aislamiento de worktree](/docs/es/agent-view#how-file-edits-are-isolated) no puede resolver a una única ubicación verificable. El protector verifica escrituras y directorios de trabajo de comandos en [cualquier sesión aislada en un worktree](/docs/es/worktrees#how-claude-code-enforces-isolation), interactiva o en segundo plano, y en [subagentes aislados en worktree](/docs/es/worktrees#isolate-subagents-with-worktrees). Resuelve enlaces simbólicos antes de verificar que la operación no llegue al checkout compartido, y cuando la resolución falla, bloquea la operación en lugar de permitir que llegue allí. El mensaje nombra las formas de ruta que rechaza y cómo reintentar:

4505 4526 

4506```text theme={null}4527```text theme={null}

4507This write was blocked because the path is spelled in a form that cannot be safely resolved (for example through a symlink storing a raw dot segment, a network-share or device-namespace shape, or an unreadable ancestor directory). If the file is inside the worktree /path/to/worktree, address it by its direct symlink-free path instead.4528This write was blocked because the path is spelled in a form that cannot be safely resolved (for example through a symlink storing a raw dot segment, a network-share or device-namespace shape, or an unreadable ancestor directory). If the file is inside the worktree /path/to/worktree, address it by its direct symlink-free path instead.

4508```4529```

4509 4530 

4510Un comando bloqueado reporta la misma causa para su directorio de trabajo y termina con `re-run the command from its direct symlink-free path`. Antes de v2.1.217, el protector comparaba ortografías de ruta sin resolver enlaces simbólicos, por lo que estas ortografías no se bloqueaban y una escritura enrutada a través de un enlace simbólico podría llegar al checkout compartido.4531Un comando bloqueado reporta la misma causa para su directorio de trabajo y termina con `re-run the command from its direct symlink-free path`. Antes de v2.1.217, el protector comparaba las escrituras de ruta sin resolver enlaces simbólicos, por lo que estas escrituras no se bloqueaban y una escritura enrutada a través de un enlace simbólico podía llegar al checkout compartido.

4511 4532 

4512**Qué hacer:**4533**Qué hacer:**

4513 4534 

4514* 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.4535* 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 abres con `Ctrl+O`. Un comando bloqueado lo imprime en su salida.

4515* 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 enlace4536* Si el bloqueo se repite en el mismo archivo, la ruta probablemente pasa por un enlace simbólico incluido en un commit cuyo destino contiene `..`, como `docs/current -> ../README.md`; pide a Claude que edite el archivo de destino por su ruta real en lugar de a través del enlace

4516 4537 

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

4518 Escritura o comando bloqueado porque la ruta nombra una ubicación de red4539 Escritura o comando bloqueado porque la ruta nombra una ubicación de red

4519</h3>4540</h3>

4520 4541 

4521Claude dirigió un archivo o directorio de trabajo a través de una ruta que nombra una unidad que no está en su máquina, una compartición UNC como `\\server\share\file` o una ruta de automontaje `/net`, mientras que el checkout de la sesión está en un disco local. El mismo [protector de aislamiento de worktree](#write-or-command-blocked-because-the-path-cannot-be-safely-resolved) no puede verificar que tal ruta se mantenga fuera del checkout compartido, por lo que bloquea la operación. Aislar la sesión en un worktree no levanta el bloqueo. El mensaje nombra la forma de ruta a usar en su lugar:4542Claude se refirió a un archivo o directorio de trabajo mediante una ruta que nombra una unidad que no está en tu máquina, un recurso compartido UNC como `\\server\share\file` o una ruta de automontaje `/net`, mientras que el checkout de la sesión está en un disco local. El mismo [protector de aislamiento de worktree](#write-or-command-blocked-because-the-path-cannot-be-safely-resolved) no puede verificar que tal ruta se mantenga fuera del checkout compartido, por lo que bloquea la operación. Aislar la sesión en un worktree no levanta el bloqueo. El mensaje nombra la forma de ruta a usar en su lugar:

4522 4543 

4523```text theme={null}4544```text theme={null}

4524This write was blocked because the path is network-shaped (a UNC share or /net automount spelling) while this session's checkout is local. Isolating cannot unblock it. If the file is genuinely inside the worktree /path/to/worktree, address it by its local, plainly-spelled path instead.4545This write was blocked because the path is network-shaped (a UNC share or /net automount spelling) while this session's checkout is local. Isolating cannot unblock it. If the file is genuinely inside the worktree /path/to/worktree, address it by its local, plainly-spelled path instead.

4525```4546```

4526 4547 

4527Un comando bloqueado reporta la misma causa para su directorio de trabajo y termina con `re-run the command from its local, plainly-spelled path`. Antes de v2.1.217, el protector comparaba solo texto de ruta, por lo que dirigir un archivo dentro del checkout a través de una ruta UNC o `/net` no se bloqueaba.4548Un comando bloqueado reporta la misma causa para su directorio de trabajo y termina con `re-run the command from its local, plainly-spelled path`. Antes de v2.1.217, el protector comparaba solo el texto de la ruta, por lo que referirse a un archivo dentro del checkout mediante una ruta UNC o `/net` no se bloqueaba.

4528 4549 

4529**Qué hacer:**4550**Qué hacer:**

4530 4551 

4531* Generalmente nada: Claude reintenta con la ortografía local que el mensaje solicita4552* Generalmente nada: Claude reintenta con la escritura local que el mensaje solicita

4532 4553 

4533<h3 id="command-blocked-by-the-worktree-isolation-checks">4554<h3 id="command-blocked-by-the-worktree-isolation-checks">

4534 Comando bloqueado por las verificaciones de aislamiento de worktree4555 Comando bloqueado por las verificaciones de aislamiento de worktree


4539* El comando apunta git al checkout principal.4560* El comando apunta git al checkout principal.

4540* Claude Code no puede verificar a partir del texto del comando que cualquier git que ejecute el comando se mantenga dentro del worktree. Un comando que nunca nombra git aún puede ser rechazado por esta razón, porque expandir una indirección de variable como `${!name}` o ejecutar una sustitución de función Bash como `${ command; }` produce un valor en tiempo de ejecución que en sí mismo puede ser un comando.4561* Claude Code no puede verificar a partir del texto del comando que cualquier git que ejecute el comando se mantenga dentro del worktree. Un comando que nunca nombra git aún puede ser rechazado por esta razón, porque expandir una indirección de variable como `${!name}` o ejecutar una sustitución de función Bash como `${ command; }` produce un valor en tiempo de ejecución que en sí mismo puede ser un comando.

4541 4562 

4542El medio del mensaje nombra lo que no se pudo verificar:4563La parte central del mensaje nombra lo que no se pudo verificar:

4543 4564 

4544```text wrap theme={null}4565```text wrap theme={null}

4545This session is isolated in the worktree /path/to/worktree, but this command evaluates ${!x@P} arithmetically inside a construct too complex to verify, which can run a command hidden in a variable's value. Refusing to run it — a worktree-isolated session's git operations must target its own worktree. Split it into plain, separate commands and run them from /path/to/worktree.4566This session is isolated in the worktree /path/to/worktree, but this command evaluates ${!x@P} arithmetically inside a construct too complex to verify, which can run a command hidden in a variable's value. Refusing to run it — a worktree-isolated session's git operations must target its own worktree. Split it into plain, separate commands and run them from /path/to/worktree.


4548**Qué hacer:**4569**Qué hacer:**

4549 4570 

4550* Generalmente nada: Claude lee el mensaje y reescribe el comando de la manera que su oración final solicita4571* Generalmente nada: Claude lee el mensaje y reescribe el comando de la manera que su oración final solicita

4551* Si un comando que solicitó sigue siendo rechazado, deletree el valor marcado literalmente: reemplace la indirección o sustitución con su valor, y ejecute git como su propio comando simple desde dentro del worktree4572* Si un comando que pediste sigue siendo rechazado, escribe el valor marcado literalmente: reemplaza la indirección o sustitución con su valor, y ejecuta git como su propio comando simple desde dentro del worktree

4552* Para actuar en el checkout principal a propósito, ejecute el comando usted mismo en una terminal fuera de la sesión4573* Para actuar en el checkout principal a propósito, ejecuta el comando tú mismo en una terminal fuera de la sesión

4553 4574 

4554<h3 id="this-session-has-no-saved-transcript">4575<h3 id="this-session-has-no-saved-transcript">

4555 Esta sesión no tiene transcripción guardada4576 Esta sesión no tiene transcripción guardada

4556</h3>4577</h3>

4557 4578 

4558Se conectó a una [sesión en segundo plano](/docs/es/agent-view) detenida que fue enviada a segundo plano desde otra conversación con `←` o `/background` y se detuvo antes de que su primera respuesta terminara. Hasta que esa primera respuesta termine, la conversación aún vive solo en la sesión desde la que fue enviada a segundo plano, por lo que `claude attach` rechaza iniciar la sesión detenida en lugar de comenzar una conversación en blanco bajo el mismo ID de sesión. El mensaje termina con el comando `claude respawn` para esta sesión:4579Te conectaste a una [sesión en segundo plano](/docs/es/agent-view) detenida que fue enviada a segundo plano desde otra conversación con `←` o `/background` y se detuvo antes de que su primera respuesta terminara. Hasta que esa primera respuesta termine, la conversación aún vive solo en la sesión desde la que fue enviada a segundo plano, por lo que `claude attach` se niega a iniciar la sesión detenida en lugar de comenzar una conversación en blanco bajo el mismo ID de sesión. El mensaje termina con el comando `claude respawn` para esta sesión:

4559 4580 

4560```text theme={null}4581```text theme={null}

4561This session has no saved transcript — it was stopped before its first response finished. If it was backgrounded from another conversation, that one is still intact; `claude respawn <id>` starts this one fresh.4582This session has no saved transcript — it was stopped before its first response finished. If it was backgrounded from another conversation, that one is still intact; `claude respawn <id>` starts this one fresh.

4562```4583```

4563 4584 

4564Abrir la fila de la misma sesión en [agent view](/docs/es/agent-view) muestra `Press enter again to restart this session fresh` debajo de la lista en su lugar, y un segundo `Enter` en la fila reinicia la sesión con una conversación vacía. Antes de v2.1.212, abrir la fila mostraba el mensaje de rechazo sin forma de reiniciar desde agent view. Antes de v2.1.211, abrir la sesión detenida iniciaba silenciosamente esa conversación en blanco y podría volver a ejecutar el prompt original de la sesión.4585Abrir la fila de la misma sesión en [agent view](/docs/es/agent-view) muestra `Press enter again to restart this session fresh` debajo de la lista en su lugar, y un segundo `Enter` en la fila reinicia la sesión con una conversación vacía. Antes de v2.1.212, abrir la fila mostraba el mensaje de rechazo sin forma de reiniciar desde agent view. Antes de v2.1.211, abrir la sesión detenida iniciaba silenciosamente esa conversación en blanco y podía volver a ejecutar el prompt original de la sesión.

4565 4586 

4566**Qué hacer:**4587**Qué hacer:**

4567 4588 

4568* La conversación que envió a segundo plano está intacta: reanúdela con [`claude --resume`](/docs/es/sessions) o continúe trabajando en ella4589* La conversación desde la que enviaste a segundo plano está intacta: reanúdala con [`claude --resume`](/docs/es/sessions) o sigue trabajando en ella

4569* Para iniciar la sesión detenida de todas formas, ejecute `claude respawn <id>` con el ID del mensaje, o presione `Enter` dos veces en su fila en agent view4590* Para iniciar la sesión detenida desde cero de todas formas, ejecuta `claude respawn <id>` con el ID del mensaje, o presiona `Enter` dos veces en su fila en agent view

4570* Si la sesión terminó una respuesta y aún ve este rechazo en una versión anterior a v2.1.214, una carpeta ilegible en `~/.claude/projects` podría hacer que el escaneo de transcripción pierda la conversación guardada; actualice a v2.1.214 o posterior, que tolera carpetas ilegibles durante el escaneo4591* Si la sesión sí terminó una respuesta y aún ves este rechazo en una versión anterior a v2.1.214, una carpeta ilegible en `~/.claude/projects` podía hacer que el escaneo de transcripciones no encontrara la conversación guardada; actualiza a v2.1.214 o posterior, que tolera carpetas ilegibles durante el escaneo

4571 4592 

4572<h3 id="this-session-is-running-in-another-terminal">4593<h3 id="this-session-is-running-in-another-terminal">

4573 Esta sesión se está ejecutando en otra terminal4594 Esta sesión se está ejecutando en otra terminal

4574</h3>4595</h3>

4575 4596 

4576Abrió la fila de una sesión detenida en [agent view](/docs/es/agent-view), y su conversación guardada ya está abierta en otro proceso Claude Code activo en esta máquina, por lo que Claude Code rechaza iniciar un segundo proceso que escribiría en la misma transcripción. Qué mensaje ve depende de [qué mantiene la conversación](/docs/es/agent-view#opening-a-session-says-the-conversation-is-already-open):4597Abriste la fila de una sesión detenida en [agent view](/docs/es/agent-view), y su conversación guardada ya está abierta en otro proceso activo de Claude Code en esta máquina, por lo que Claude Code se niega a iniciar un segundo proceso que escribiría en la misma transcripción. El mensaje que ves depende de [qué mantiene la conversación](/docs/es/agent-view#opening-a-session-says-the-conversation-is-already-open):

4577 4598 

4578```text theme={null}4599```text theme={null}

4579Can't open — this session is running in another terminal4600Can't open — this session is running in another terminal

4580This conversation is already open in another running Claude session — use that one, or close it and try again4601This conversation is already open in another running Claude session — use that one, or close it and try again

4581```4602```

4582 4603 

4583* **`running in another terminal`**: una terminal mantiene la conversación, por ejemplo una donde la reanudó con `claude --resume` o `/resume`. La fila también muestra `Open in a terminal`.4604* **`running in another terminal`**: una terminal mantiene la conversación, por ejemplo una donde la reanudaste con `claude --resume` o `/resume`. La fila también muestra `Open in a terminal`.

4584* **`already open in another running Claude session`**: otro proceso Claude Code no interactivo la mantiene, por ejemplo un proceso de [sesión en segundo plano](/docs/es/agent-view#the-supervisor-process) para la misma conversación que aún no ha salido.4605* **`already open in another running Claude session`**: otro proceso no interactivo de Claude Code la mantiene, por ejemplo un proceso de [sesión en segundo plano](/docs/es/agent-view#the-supervisor-process) para la misma conversación que aún no ha salido.

4585 4606 

4586Claude Code guarda una respuesta que escribió al abrir la fila y la envía como el siguiente prompt de la sesión cuando la sesión se inicia nuevamente.4607Claude Code guarda una respuesta que escribiste al abrir la fila y la envía como el siguiente prompt de la sesión la próxima vez que la sesión se inicie.

4587 4608 

4588**Qué hacer:**4609**Qué hacer:**

4589 4610 

4590* Continúe la conversación en el proceso que la tiene abierta, o salga de ese proceso y abra la fila nuevamente4611* Continúa la conversación en el proceso que la tiene abierta, o sal de ese proceso y abre la fila nuevamente

4591 4612 

4592Antes de v2.1.248, solo existía el rechazo `already open in another running Claude session`: una conversación reanudada en una terminal no contaba como abierta, y abrir la fila iniciaba un segundo proceso Claude Code escribiendo en la misma conversación.4613Antes de v2.1.248, solo existía el rechazo `already open in another running Claude session`: una conversación reanudada en una terminal no contaba como abierta, y abrir la fila iniciaba un segundo proceso de Claude Code que escribía en la misma conversación.

4593 4614 

4594<h3 id="this-sessions-saved-conversation-is-no-longer-on-disk">4615<h3 id="this-sessions-saved-conversation-is-no-longer-on-disk">

4595 La conversación guardada de esta sesión ya no está en el disco4616 La conversación guardada de esta sesión ya no está en el disco

4596</h3>4617</h3>

4597 4618 

4598Abrió una [sesión en segundo plano](/docs/es/agent-view) que terminó mientras el servicio en segundo plano estaba apagado, y [la limpieza de transcripción](/docs/es/settings-reference#cleanupperioddays) ha eliminado desde entonces su conversación guardada, por ejemplo después de que la máquina estuvo apagada durante semanas. Abrir tal fila normalmente [reanuda su conversación guardada](/docs/es/agent-view#sessions-show-as-failed-after-shutdown). Sin nada que reanudar, Claude Code rechaza en lugar de volver a ejecutar el prompt original de la sesión sin preguntar:4619Abriste una [sesión en segundo plano](/docs/es/agent-view) que terminó mientras el servicio en segundo plano estaba apagado, y [la limpieza de transcripciones](/docs/es/settings-reference#cleanupperioddays) ha eliminado desde entonces su conversación guardada, por ejemplo después de que la máquina estuvo apagada durante semanas. Abrir una fila así normalmente [reanuda su conversación guardada](/docs/es/agent-view#sessions-show-as-failed-after-shutdown). Sin nada que reanudar, Claude Code se niega en lugar de volver a ejecutar el prompt original de la sesión sin preguntar:

4599 4620 

4600```text theme={null}4621```text theme={null}

4601This session's saved conversation is no longer on disk (it ended while the background service was off, and old transcripts are cleaned up), so there is nothing to resume. `claude rm 7c5dcf5d` deletes the row; `claude respawn 7c5dcf5d` runs its original prompt again instead.4622This session's saved conversation is no longer on disk (it ended while the background service was off, and old transcripts are cleaned up), so there is nothing to resume. `claude rm 7c5dcf5d` deletes the row; `claude respawn 7c5dcf5d` runs its original prompt again instead.


4605 4626 

4606**Qué hacer:**4627**Qué hacer:**

4607 4628 

4608* Ejecute `claude rm <id>` para eliminar la fila. Cuando se aplica uno de los [casos mantenidos](/docs/es/agent-view#what-deleting-a-session-removes), `claude rm` mantiene la fila y el worktree en su lugar y nombra la razón4629* Ejecuta `claude rm <id>` para eliminar la fila. Cuando se aplica uno de los [casos conservados](/docs/es/agent-view#what-deleting-a-session-removes), `claude rm` conserva la fila y el worktree en su lugar e indica la razón

4609* Para ejecutar el prompt original de la sesión nuevamente como una conversación nueva, ejecute `claude respawn <id>`4630* Para ejecutar el prompt original de la sesión nuevamente como una conversación nueva, ejecuta `claude respawn <id>`

4610 4631 

4611Antes de v2.1.248, abrir tal fila volvía a ejecutar el prompt original de la sesión en lugar de rechazar, trayendo una tarea de hace semanas al primer plano.4632Antes de v2.1.248, abrir una fila así volvía a ejecutar el prompt original de la sesión en lugar de rechazarlo, trayendo de vuelta al primer plano una tarea de hace semanas.

4612 4633 

4613<h3 id="worktree-has-commits-that-are-not-pushed-anywhere">4634<h3 id="worktree-has-commits-that-are-not-pushed-anywhere">

4614 Worktree tiene commits que no se han enviado a ningún lugar4635 El worktree tiene commits que no se han enviado a ningún lugar

4615</h3>4636</h3>

4616 4637 

4617Intentó eliminar una [sesión en segundo plano](/docs/es/agent-view#what-deleting-a-session-removes) cuyo worktree contiene commits que Claude Code no puede confirmar que se guardan en otro lugar. Claude Code mantiene el worktree y la fila de sesión en lugar de destruir los commits sin verlos. `claude rm` nombra la rama y los commits no enviados, y dice cómo proceder:4638Intentaste eliminar una [sesión en segundo plano](/docs/es/agent-view#what-deleting-a-session-removes) cuyo worktree contiene commits que Claude Code no puede confirmar que estén guardados en otro lugar. Claude Code conserva el worktree y la fila de la sesión en lugar de destruir los commits sin que los veas. `claude rm` nombra la rama y los commits no enviados, e indica cómo proceder:

4618 4639 

4619```text theme={null}4640```text theme={null}

4620kept 7c5dcf5d — its worktree is still at "/home/you/project/.claude/worktrees/fix-login"4641kept 7c5dcf5d — its worktree is still at “/home/you/project/.claude/worktrees/fix-login”

4621 2 unpushed commits on "claude/fix-login": a1b2c3d "Fix login flow" and 1 more. They exist on no remote, so deleting the worktree would lose them.4642 2 unpushed commits on “claude/fix-login”: a1b2c3d “Fix login flow” and 1 more. They exist on no remote, so deleting the worktree would lose them.

4622 push them and run 'claude rm 7c5dcf5d' again, or discard the worktree and its commits: claude rm 7c5dcf5d --discard-unpushed a1b2c3d000000000000000000000000000000000@0123456789abcdef0123456789abcdef4643 push them and run 'claude rm 7c5dcf5d' again, or discard the worktree and its commits: claude rm 7c5dcf5d --discard-unpushed a1b2c3d000000000000000000000000000000000@0123456789abcdef0123456789abcdef

4623```4644```

4624 4645 

4625Cuando Claude Code no puede resumir los commits, la línea de detalle lee `The worktree has unpushed commits` en su lugar. En [agent view](/docs/es/agent-view), la fila de la sesión muestra `not deleted` con la misma razón.4646Cuando Claude Code no puede resumir los commits, la línea de detalle dice `The worktree has unpushed commits` en su lugar. En [agent view](/docs/es/agent-view), la fila de la sesión muestra `not deleted` con la misma razón.

4626 4647 

4627Los commits en un remoto no bloquean la eliminación. Tampoco los commits en la copia local de la rama predeterminada de su remoto `origin`, siempre que esa rama esté desprotegida en su checkout principal, el directorio del repositorio en sí en lugar de un worktree.4648Los commits en un remoto no bloquean la eliminación. Tampoco los commits en la copia local de la rama predeterminada de tu remoto `origin`, siempre que esa rama esté activa en tu checkout principal, es decir, el propio directorio del repositorio en lugar de un worktree.

4628 4649 

4629**Qué hacer:**4650**Qué hacer:**

4630 4651 

4631* Para mantener los commits, envíe la rama del worktree, o fusionela en la rama predeterminada desprotegida en su checkout principal, luego elimine la sesión nuevamente4652* Para conservar los commits, envía la rama del worktree, o fusiónala en la rama predeterminada activa en tu checkout principal, y luego elimina la sesión nuevamente

4632* Para descartar los commits, ejecute el comando `claude rm <id> --discard-unpushed` que el mensaje imprimió, o presione `Ctrl+X` dos veces en la fila de la sesión en agent view nuevamente. Esto elimina la sesión y el worktree junto con su rama, los commits no enviados, y cualquier cambio no confirmado. Si el worktree ha ganado un commit desde el rechazo, Claude Code lo mantiene nuevamente y muestra el estado actualizado4653* Para descartar los commits, ejecuta el comando `claude rm <id> --discard-unpushed` que imprimió el mensaje, o presiona `Ctrl+X` dos veces nuevamente en la fila de la sesión en agent view. Esto elimina la sesión y el worktree junto con su rama, los commits no enviados y cualquier cambio sin commit. Si el worktree ha ganado un commit desde el rechazo, Claude Code lo conserva nuevamente y muestra el estado actualizado

4633* Cuando el mensaje dice que el worktree también está registrado por otra sesión terminada, eliminar nuevamente no lo descarta: envíe los commits, luego elimine la sesión nuevamente4654* Cuando el mensaje dice que el worktree también está registrado por otra sesión terminada, eliminar nuevamente no lo descarta: envía los commits y luego elimina la sesión nuevamente

4634 4655 

4635Antes de v2.1.268, `claude rm` ponía el resumen de commits en la línea `kept` en sí. Cuando `claude rm` no podía resumir los commits, la línea `kept` leía `worktree has commits that are not pushed anywhere` en lugar del resumen.4656Antes de v2.1.268, `claude rm` ponía el resumen de commits en la propia línea `kept`. Cuando `claude rm` no podía resumir los commits, la línea `kept` decía `worktree has commits that are not pushed anywhere` en lugar del resumen.

4636 4657 

4637Antes de v2.1.260, el mensaje no nombraba la rama o los commits, y eliminar nuevamente se rechazaba de la misma manera: eliminar la sesión sin enviar significaba eliminar el worktree usted mismo con `git worktree remove --force <path>`, luego ejecutar `claude rm <id>` nuevamente.4658Antes de v2.1.260, el mensaje no nombraba la rama ni los commits, y eliminar nuevamente se rechazaba de la misma manera: eliminar la sesión sin enviar los commits significaba eliminar el worktree tú mismo con `git worktree remove --force <path>` y luego ejecutar `claude rm <id>` nuevamente.

4638 4659 

4639Antes de v2.1.248, la rama predeterminada desprotegida en su checkout principal no contaba: una rama que ya había fusionado allí aún activaba este rechazo hasta que sus commits llegaran a un remoto.4660Antes de v2.1.248, la rama predeterminada activa en tu checkout principal no contaba: una rama que ya habías fusionado allí seguía activando este rechazo hasta que sus commits llegaran a un remoto.

4640 4661 

4641<h3 id="terminal-host-process-died">4662<h3 id="terminal-host-process-died">

4642 El proceso host de la terminal murió4663 El proceso host de la terminal murió

4643</h3>4664</h3>

4644 4665 

4645Cada terminal de [sesión en segundo plano](/docs/es/agent-view) se ejecuta en un proceso host bajo el servicio en segundo plano, y ese proceso murió mientras el servicio aún mantenía su conexión, por lo que no se pudo acceder a la sesión.4666La terminal de cada [sesión en segundo plano](/docs/es/agent-view) se ejecuta en un proceso host bajo el servicio en segundo plano, y ese proceso murió mientras el servicio aún mantenía su conexión, por lo que no se pudo acceder a la sesión.

4646 4667 

4647En Linux y WSL, el servicio en segundo plano verifica cada proceso host cada pocos segundos, marca la sesión como fallida cuando el proceso ha salido pero su conexión al servicio nunca se cerró, y muestra la razón en su fila en [agent view](/docs/es/agent-view#read-session-state):4668En Linux y WSL, el servicio en segundo plano verifica cada proceso host cada pocos segundos, marca la sesión como fallida cuando el proceso ha salido pero su conexión con el servicio nunca se cerró, y muestra la razón en su fila en [agent view](/docs/es/agent-view#read-session-state):

4648 4669 

4649```text theme={null}4670```text theme={null}

4650terminal host process died — press Enter to restart4671terminal host process died — press Enter to restart

4651```4672```

4652 4673 

4653Desde 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:4674Desde el shell, `claude attach <id>` reinicia una sesión ya marcada como fallida por un host muerto, y en caso contrario imprime la causa y sale:

4654 4675 

4655```text theme={null}4676```text theme={null}

4656Couldn't attach to <id> — This session's terminal host process died (the conversation is saved) — run `claude attach <id>` again to restart it on a fresh host.4677Couldn't attach to <id> — This session's terminal host process died (the conversation is saved) — run `claude attach <id>` again to restart it on a fresh host.

4657```4678```

4658 4679 

4659La conversación se guarda de cualquier forma.4680La conversación se guarda en cualquier caso.

4660 4681 

4661Una fila que ejecuta un [comando shell](/docs/es/agent-view#run-a-shell-command) en su lugar muestra `terminal host process died — its output is gone; the command was not run again`, y `claude attach` imprime `This command's terminal host process died — its output is gone and the command was not run again`. Claude Code nunca vuelve a ejecutar el comando para usted.4682Una fila que ejecuta un [comando de shell](/docs/es/agent-view#run-a-shell-command) muestra en cambio `terminal host process died — its output is gone; the command was not run again`, y `claude attach` imprime `This command's terminal host process died — its output is gone and the command was not run again`. Claude Code nunca vuelve a ejecutar el comando por ti.

4662 4683 

4663**Qué hacer:**4684**Qué hacer:**

4664 4685 

4665* En agent view, presione `Enter` en la fila fallida; la sesión se reinicia en un nuevo proceso host y la conversación se reanuda4686* En agent view, presiona `Enter` en la fila fallida; la sesión se reinicia en un nuevo proceso host y la conversación se reanuda

4666* Desde el shell, ejecute `claude attach <id>` nuevamente. Claude Code imprime `Session <id>'s terminal host died — restarting it on a fresh one…` y reabre la sesión4687* Desde el shell, ejecuta `claude attach <id>` nuevamente. Claude Code imprime `Session <id>'s terminal host died — restarting it on a fresh one…` y vuelve a abrir la sesión

4667* No puede reiniciar una fila de comando shell de esta manera; envíe el comando nuevamente para volver a ejecutarlo4688* No puedes reiniciar una fila de comando de shell de esta manera; envía el comando nuevamente para volver a ejecutarlo

4668 4689 

4669Antes de v2.1.247, un proceso host muerto podría pasar cada verificación de vivacidad que ejecutaba el servicio en segundo plano, por lo que abrir la sesión mostraba `opening… · esc to cancel` indefinidamente y `claude attach <id>` esperaba sin reportar un error.4690Antes de v2.1.247, un proceso host muerto podía pasar todas las verificaciones de actividad que ejecutaba el servicio en segundo plano, por lo que abrir la sesión mostraba `opening… · esc to cancel` indefinidamente y `claude attach <id>` esperaba sin reportar un error.

4670 4691 

4671<h3 id="session-isnt-responding">4692<h3 id="session-isnt-responding">

4672 La sesión no responde4693 La sesión no responde

4673</h3>4694</h3>

4674 4695 

4675Abrió una [sesión en segundo plano](/docs/es/agent-view) y el servicio en segundo plano aceptó la apertura, pero no llegó salida durante aproximadamente diez segundos, por lo que Claude Code concluye que el proceso que retransmite la terminal de la sesión no puede entregar salida, y termina el intento en lugar de esperar.4696Abriste una [sesión en segundo plano](/docs/es/agent-view) y el servicio en segundo plano aceptó la apertura, pero no llegó ninguna salida durante unos diez segundos, por lo que Claude Code concluye que el proceso que retransmite la terminal de la sesión no puede entregar salida, y termina el intento en lugar de seguir esperando.

4676 4697 

4677En agent view, Claude Code ofrece un reinicio en el pie de página:4698En agent view, Claude Code ofrece un reinicio en el pie de página:

4678 4699 


4686Couldn't attach to <id> — Session isn't responding — `claude stop <id>`, then `claude attach <id>` restarts it (the conversation is saved).4707Couldn't attach to <id> — Session isn't responding — `claude stop <id>`, then `claude attach <id>` restarts it (the conversation is saved).

4687```4708```

4688 4709 

4689Claude Code nunca reinicia una fila que ejecuta un [comando shell](/docs/es/agent-view#run-a-shell-command) para usted, porque un reinicio volvería a ejecutar el comando.4710Claude Code nunca reinicia por ti una fila que ejecuta un [comando de shell](/docs/es/agent-view#run-a-shell-command), porque un reinicio volvería a ejecutar el comando.

4690 4711 

4691**Qué hacer:**4712**Qué hacer:**

4692 4713 

4693* En agent view, presione `Enter` en la misma fila nuevamente. Claude Code detiene el proceso que no responde y reinicia la sesión, y la conversación se reanuda. Nada se detiene sin ese segundo presión4714* En agent view, presiona `Enter` nuevamente en la misma fila. Claude Code detiene el proceso que no responde y reinicia la sesión, y la conversación se reanuda. No se detiene nada sin esa segunda pulsación

4694* Desde el shell, ejecute `claude stop <id>`, luego `claude attach <id>`4715* Desde el shell, ejecuta `claude stop <id>` y luego `claude attach <id>`

4695* Para una fila de comando shell, presione `Ctrl+X` en agent view o ejecute `claude stop <id>` para detenerla; envíe el comando nuevamente para volver a ejecutarlo4716* Para una fila de comando de shell, presiona `Ctrl+X` en agent view o ejecuta `claude stop <id>` para detenerla; envía el comando nuevamente para volver a ejecutarlo

4696 4717 

4697<h3 id="session-was-stopped-while-the-respawn-was-in-flight">4718<h3 id="session-was-stopped-while-the-respawn-was-in-flight">

4698 La sesión se detuvo mientras el respawn estaba en vuelo4719 La sesión se detuvo mientras el respawn estaba en curso

4699</h3>4720</h3>

4700 4721 

4701Abrió una [sesión en segundo plano](/docs/es/agent-view) cuyo proceso no se estaba ejecutando, y mientras Claude Code la estaba reiniciando, otro proceso Claude Code la detuvo, por ejemplo `claude stop` en otra terminal. Claude Code mantiene la sesión detenida:4722Abriste una [sesión en segundo plano](/docs/es/agent-view) cuyo proceso no se estaba ejecutando, y mientras Claude Code la reiniciaba, otro proceso de Claude Code la detuvo, por ejemplo `claude stop` en otra terminal. Claude Code mantiene la sesión detenida:

4702 4723 

4703```text theme={null}4724```text theme={null}

4704Session <id> was stopped while the respawn was in flight4725Session <id> was stopped while the respawn was in flight

4705```4726```

4706 4727 

4707Abrir una sesión que acaba de enviar, mientras su proceso aún se está iniciando, espera al proceso en su lugar. Antes de v2.1.246, abrirla en ese momento podría detenerla y mostrar este mensaje.4728Abrir una sesión que acabas de enviar, mientras su proceso aún se está iniciando, espera al proceso en su lugar. Antes de v2.1.246, abrirla en ese momento podía detenerla y mostrar este mensaje.

4708 4729 

4709**Qué hacer:**4730**Qué hacer:**

4710 4731 

4711* Si no detuvo la sesión, abra su fila nuevamente en agent view o ejecute `claude respawn <id>` para reiniciarla4732* Si no detuviste la sesión, abre su fila nuevamente en agent view o ejecuta `claude respawn <id>` para reiniciarla

4712* Si la detuvo usted mismo, no queda nada por hacer: la sesión permanece detenida4733* Si la detuviste tú mismo, no queda nada por hacer: la sesión permanece detenida

4713 4734 

4714<h3 id="session-agent-no-longer-available">4735<h3 id="session-agent-no-longer-available">

4715 Agente de sesión ya no disponible4736 El agente de la sesión ya no está disponible

4716</h3>4737</h3>

4717 4738 

4718Reanudó una sesión que estaba ejecutando un [agente personalizado](/docs/es/sub-agents#invoke-subagents-explicitly), iniciado con `--agent` o la configuración `agent`, y Claude Code no encontró un agente con ese nombre. Busca primero en el directorio original de la sesión, cuando ha [confiado en ese espacio de trabajo](/docs/es/permissions#project-allow-rules-and-workspace-trust), luego en el directorio desde el que reanuda. La sesión aún se reanuda, pero con las herramientas predeterminadas, por lo que las restricciones de herramientas del agente ya no se aplican:4739Reanudaste una sesión que estaba ejecutando un [agente personalizado](/docs/es/sub-agents#invoke-subagents-explicitly), iniciado con `--agent` o el ajuste `agent`, y Claude Code no encontró un agente con ese nombre. Busca primero en el directorio original de la sesión, cuando has [confiado en ese espacio de trabajo](/docs/es/permissions#project-allow-rules-and-workspace-trust), y luego en el directorio desde el que reanudas. La sesión se reanuda de todos modos, pero con las herramientas predeterminadas, por lo que las restricciones de herramientas del agente ya no se aplican:

4719 4740 

4720```text theme={null}4741```text theme={null}

4721This session was running agent 'code-reviewer', which is no longer available (no agent by that name in /home/you/project). Continuing with the default tools and system prompt — the agent's tool restrictions no longer apply. To restore it, re-create the agent, or resume with an explicit --agent <name>.4742This session was running agent 'code-reviewer', which is no longer available (no agent by that name in /home/you/project). Continuing with the default tools and system prompt — the agent's tool restrictions no longer apply. To restore it, re-create the agent, or resume with an explicit --agent <name>.

4722```4743```

4723 4744 

4724La advertencia nombra solo los directorios que Claude Code buscó, y aparece en la conversación reanudada ya sea que despierte una [sesión en segundo plano](/docs/es/agent-view), ejecute `/resume` o `claude --resume`, o reanude en [modo no interactivo](/docs/es/headless), donde también va a stderr. Las sesiones que usan `--input-format stream-json` no la muestran, porque el Agent SDK proporciona agentes después del inicio.4745La advertencia nombra solo los directorios en los que Claude Code buscó, y aparece en la conversación reanudada ya sea que despiertes una [sesión en segundo plano](/docs/es/agent-view), ejecutes `/resume` o `claude --resume`, o reanudes en [modo no interactivo](/docs/es/headless), donde también va a stderr. Las sesiones que usan `--input-format stream-json` no la muestran, porque el Agent SDK proporciona los agentes después del inicio.

4725 4746 

4726Claude Code no guarda la alternativa en la sesión, por lo que la advertencia se repite en cada reanudación hasta que actúe. El agente `claude` integrado no activa la advertencia, ya que volver a la herramienta predeterminada no cambia nada para él. Antes de v2.1.216, Claude Code continuaba silenciosamente como el agente predeterminado, y la búsqueda cubría solo el directorio desde el que reanudaba, por lo que un agente con alcance de proyecto se perdía en cualquier reanudación desde otro directorio.4747Claude Code no guarda la alternativa en la sesión, por lo que la advertencia se repite en cada reanudación hasta que actúes. El agente integrado `claude` no activa la advertencia, ya que recurrir al conjunto de herramientas predeterminado no cambia nada para él. Antes de v2.1.216, Claude Code continuaba silenciosamente como el agente predeterminado, y la búsqueda cubría solo el directorio desde el que reanudabas, por lo que un agente con alcance de proyecto se perdía en cualquier reanudación desde otro directorio.

4727 4748 

4728**Qué hacer:**4749**Qué hacer:**

4729 4750 

4730* Vuelva a crear el archivo de agente en `.claude/agents/<name>.md` en el proyecto de la sesión, o en `~/.claude/agents/<name>.md` para un agente personal, luego reanude nuevamente4751* Vuelve a crear el archivo del agente en `.claude/agents/<name>.md` en el proyecto de la sesión, o en `~/.claude/agents/<name>.md` para un agente personal, y luego reanuda nuevamente

4731* O reanude con `--agent <name>` nombrando un agente que sí existe, para ejecutar la sesión como ese agente en su lugar4752* O reanuda con `--agent <name>` nombrando un agente que sí exista, para ejecutar la sesión como ese agente en su lugar

4732* Si el agente tiene alcance de proyecto y no ha confiado en el directorio original de la sesión, ejecute Claude Code allí una vez, acepte el diálogo de confianza, luego reanude nuevamente4753* Si el agente tiene alcance de proyecto y no has confiado en el directorio original de la sesión, ejecuta Claude Code allí una vez, acepta el diálogo de confianza y luego reanuda nuevamente

4733 4754 

4734<h3 id="claude_code_process_wrapper-launcher-errors">4755<h3 id="claude_code_process_wrapper-launcher-errors">

4735 Errores del lanzador CLAUDE\_CODE\_PROCESS\_WRAPPER4756 Errores del lanzador CLAUDE\_CODE\_PROCESS\_WRAPPER

4736</h3>4757</h3>

4737 4758 

4738[`CLAUDE_CODE_PROCESS_WRAPPER`](/docs/es/corporate-launcher) está configurado, y su valor no se puede usar, por lo que Claude Code rechaza iniciar el proceso afectado en lugar de ejecutarlo sin el lanzador. Los problemas de configuración se reportan con un mensaje que comienza con el nombre de la variable y establece la razón, por ejemplo:4759[`CLAUDE_CODE_PROCESS_WRAPPER`](/docs/es/corporate-launcher) está configurado y su valor no se puede usar, por lo que Claude Code se niega a iniciar el proceso afectado en lugar de ejecutarlo sin el lanzador. Los problemas de configuración se reportan con un mensaje que comienza con el nombre de la variable e indica la razón, por ejemplo:

4739 4760 

4740```text theme={null}4761```text theme={null}

4741CLAUDE_CODE_PROCESS_WRAPPER: launcher `/opt/corp/launcher` is not an executable regular file4762CLAUDE_CODE_PROCESS_WRAPPER: launcher `/opt/corp/launcher` is not an executable regular file

4742```4763```

4743 4764 

4744Un lanzador que se inicia pero sale sin reemplazarse a sí mismo con Claude Code falla la sesión que estaba iniciando, y la fila de la sesión en agent view reporta que el lanzador `must exec, not daemonize`, seguido de cualquier cosa que el lanzador imprimió. Una sesión que no puede iniciarse o alcanzar el servicio en segundo plano debido al lanzador reporta el problema del lanzador como la razón dentro de `Couldn't reach the background service (...)`.4765Un lanzador que se inicia pero sale sin reemplazarse a sí mismo con Claude Code hace fallar la sesión que estaba iniciando, y la fila de la sesión en agent view reporta que el lanzador `must exec, not daemonize`, seguido de lo que el lanzador haya impreso. Una sesión que no puede iniciarse o comunicarse con el servicio en segundo plano debido al lanzador reporta el problema del lanzador como la razón dentro de `Couldn't reach the background service (...)`.

4745 4766 

4746**Qué hacer:**4767**Qué hacer:**

4747 4768 

4748* Configure la variable a la ruta absoluta de un ejecutable que termine llamando a `exec "$@"`. Vea [el contrato del lanzador](/docs/es/corporate-launcher#the-launcher-contract) para el contrato completo4769* Configura la variable con la ruta absoluta de un ejecutable que termine llamando a `exec "$@"`. Consulta [el contrato del lanzador](/docs/es/corporate-launcher#the-launcher-contract) para ver el contrato completo

4749* Verifique `/status`, que muestra el comando de lanzamiento resuelto en su entrada Self-exec y advierte cuando el servicio en segundo plano en ejecución no coincide con él, o ejecute `claude daemon status` desde un shell4770* Revisa `/status`, que muestra el comando de lanzamiento resuelto en su entrada Self-exec y advierte cuando el servicio en segundo plano en ejecución no coincide con él, o ejecuta `claude daemon status` desde un shell

4750* Después de corregir el valor en el bloque `env` de [configuración](/docs/es/corporate-launcher#set-up-the-launcher), reinicie el servicio en segundo plano con `claude daemon stop --any` para que el siguiente envío inicie uno envuelto4771* Después de corregir el valor en el bloque `env` de la [configuración](/docs/es/corporate-launcher#set-up-the-launcher), reinicia el servicio en segundo plano con `claude daemon stop --any` para que el siguiente envío inicie uno envuelto por el lanzador

4751 4772 

4752<h3 id="eunknown-when-starting-a-background-session">4773<h3 id="eunknown-when-starting-a-background-session">

4753 EUNKNOWN al iniciar una sesión en segundo plano4774 EUNKNOWN al iniciar una sesión en segundo plano

4754</h3>4775</h3>

4755 4776 

4756Windows rechazó iniciar un programa con un código de error que no tiene nombre estándar, por lo que el fallo aparece como `EUNKNOWN`. El disparador habitual es una política de restricción de software, como Group Policy o AppLocker, bloqueando el programa que se está iniciando. El error aparece cuando inicia una [sesión en segundo plano](/docs/es/agent-view) con `/background` o `claude --bg`:4777Windows se negó a iniciar un programa con un código de error que no tiene nombre estándar, por lo que el fallo aparece como `EUNKNOWN`. La causa habitual es una política de restricción de software, como Group Policy o AppLocker, que bloquea el programa que se está iniciando. El error aparece cuando inicias una [sesión en segundo plano](/docs/es/agent-view) con `/background` o `claude --bg`:

4757 4778 

4758```text theme={null}4779```text theme={null}

4759Couldn't reach the background service (spawn background service: EUNKNOWN: unknown error, uv_spawn) — run 'claude daemon status'4780Couldn't reach the background service (spawn background service: EUNKNOWN: unknown error, uv_spawn) — run 'claude daemon status'


4761 4782 

4762En algunas cuentas el mensaje dice `daemon` en lugar de `background service`.4783En algunas cuentas el mensaje dice `daemon` en lugar de `background service`.

4763 4784 

4764En una instalación npm, un `EUNKNOWN` que aparece mientras `npm install -g @anthropic-ai/claude-code` está reemplazando el binario tiene la misma causa que [`EACCES` durante una reinstalación](#eacces-when-starting-a-background-session) y se borra cuando reintenta después de que la instalación termina.4785En una instalación con npm, un `EUNKNOWN` que aparece mientras `npm install -g @anthropic-ai/claude-code` está reemplazando el binario tiene la misma causa que [`EACCES` durante una reinstalación](#eacces-when-starting-a-background-session) y desaparece cuando reintentas después de que la instalación termina.

4765 4786 

4766Claude Code inicia el servicio en segundo plano a través de PowerShell para que el servicio sobreviva al cierre de la terminal, usando PowerShell 7 cuando está instalado y Windows PowerShell 5.1 de lo contrario. Cuando ningún PowerShell puede ejecutarse, Claude Code inicia el servicio directamente en su lugar, por lo que una política que bloquea solo PowerShell no causa este error.4787Claude Code inicia el servicio en segundo plano a través de PowerShell para que el servicio sobreviva al cierre de la terminal, usando PowerShell 7 cuando está instalado y Windows PowerShell 5.1 en caso contrario. Cuando ninguno de los dos PowerShell puede ejecutarse, Claude Code inicia el servicio directamente, por lo que una política que bloquea solo PowerShell no causa este error.

4767 4788 

4768Antes de v2.1.212, Claude Code usaba solo Windows PowerShell 5.1 para iniciar el servicio, por lo que cualquier máquina donde Group Policy bloqueaba PowerShell 5.1 fallaba con `Couldn't start the session — EUNKNOWN: unknown error, uv_spawn`, incluso con PowerShell 7 instalado.4789Antes de v2.1.212, Claude Code usaba solo Windows PowerShell 5.1 para iniciar el servicio, por lo que cualquier máquina donde Group Policy bloqueaba PowerShell 5.1 fallaba con `Couldn't start the session — EUNKNOWN: unknown error, uv_spawn`, incluso con PowerShell 7 instalado.

4769 4790 

4770**Qué hacer:**4791**Qué hacer:**

4771 4792 

4772* Si el mensaje lee `Couldn't start the session`, actualice a v2.1.212 o posterior. En versiones anteriores también puede ejecutar `claude daemon run` en una terminal separada primero, luego iniciar la sesión en segundo plano nuevamente. Ese comando ejecuta el servicio en segundo plano en el primer plano de la terminal, por lo que el servicio dura solo mientras esa terminal permanece abierta.4793* Si el mensaje dice `Couldn't start the session`, actualiza a v2.1.212 o posterior. En versiones anteriores también puedes ejecutar primero `claude daemon run` en una terminal aparte y luego iniciar la sesión en segundo plano nuevamente. Ese comando ejecuta el servicio en segundo plano en primer plano en la terminal, por lo que el servicio dura solo mientras esa terminal permanezca abierta.

4773* Si una instalación npm estaba reemplazando el binario, espere a que termine, luego inicie la sesión en segundo plano nuevamente4794* Si una instalación con npm estaba reemplazando el binario, espera a que termine y luego inicia la sesión en segundo plano nuevamente

4774* Si el error aparece en v2.1.212 o posterior mientras no se ejecuta ninguna instalación npm, pida al administrador de Windows que permita el ejecutable de Claude Code en la política de restricción4795* Si el error aparece en v2.1.212 o posterior sin que se esté ejecutando ninguna instalación con npm, consulta con tu administrador de Windows si una política de restricción bloquea el ejecutable de Claude Code

4775* Si el servicio en segundo plano se detiene cuando cierra la terminal, Claude Code lo inició sin PowerShell. Instale PowerShell 7, o pida al administrador que desbloquee PowerShell, para que el servicio pueda sobrevivir a la terminal.4796* Si el servicio en segundo plano se detiene cuando cierras la terminal, Claude Code lo inició sin PowerShell. Instala PowerShell 7, o pide a tu administrador que desbloquee PowerShell, para que el servicio pueda sobrevivir a la terminal.

4776 4797 

4777<h3 id="eacces-when-starting-a-background-session">4798<h3 id="eacces-when-starting-a-background-session">

4778 EACCES al iniciar una sesión en segundo plano4799 EACCES al iniciar una sesión en segundo plano

4779</h3>4800</h3>

4780 4801 

4781Claude Code no pudo ejecutar su propio binario para iniciar el [servicio en segundo plano](/docs/es/agent-view#the-supervisor-process) que aloja sesiones en segundo plano. En una instalación npm, esto generalmente significa que `npm install -g @anthropic-ai/claude-code` estaba reemplazando el binario en ese momento, ya sea que lo ejecutara o el [actualizador automático](/docs/es/setup#auto-updates) lo hizo. El error aparece cuando abre una sesión desde [agent view](/docs/es/agent-view):4802Claude Code no pudo ejecutar su propio binario para iniciar el [servicio en segundo plano](/docs/es/agent-view#the-supervisor-process) que aloja las sesiones en segundo plano. En una instalación con npm, esto generalmente significa que `npm install -g @anthropic-ai/claude-code` estaba reemplazando el binario en ese momento, ya sea que lo ejecutaras tú o el [actualizador automático](/docs/es/setup#auto-updates). El error aparece cuando abres una sesión desde [agent view](/docs/es/agent-view):

4782 4803 

4783```text theme={null}4804```text theme={null}

4784Couldn't start the background service — spawn background service: EACCES: permission denied, posix_spawn '/usr/local/lib/node_modules/@anthropic-ai/claude-code/bin/claude'4805Couldn't start the background service — spawn background service: EACCES: permission denied, posix_spawn '/usr/local/lib/node_modules/@anthropic-ai/claude-code/bin/claude'

4785```4806```

4786 4807 

4787Cuando inicia una sesión con `/background` o `claude --bg`, la misma razón aparece dentro de `Couldn't reach the background service (...)`. Durante la misma ventana de reinstalación el error puede nombrar otro código en su lugar, como `ENOENT` o `ENOEXEC`, o `EUNKNOWN` o `EPERM` en Windows; un `EUNKNOWN` que persiste en reintentos tiene una [causa diferente](#eunknown-when-starting-a-background-session).4808Cuando inicias una sesión con `/background` o `claude --bg`, la misma razón aparece dentro de `Couldn't reach the background service (...)`. Durante el mismo periodo de reinstalación el error puede nombrar otro código, como `ENOENT` o `ENOEXEC`, o `EUNKNOWN` o `EPERM` en Windows; un `EUNKNOWN` que persiste tras varios reintentos tiene una [causa diferente](#eunknown-when-starting-a-background-session).

4788 4809 

4789En una instalación npm, Claude Code espera a que la reinstalación termine y reintenta por su cuenta: hasta diez segundos, y hasta dos minutos mientras una instalación npm de Claude Code aún se está ejecutando visiblemente en la máquina, lo que cubre otro proceso Claude Code descargando una actualización. Cuando la instalación supera esa espera, el fallo nombra la actualización en lugar del código de error simple:4810En una instalación con npm, Claude Code espera a que la reinstalación termine y reintenta por su cuenta: hasta diez segundos, y hasta dos minutos mientras una instalación de Claude Code con npm siga visiblemente en ejecución en la máquina, lo que cubre el caso de otro proceso de Claude Code que descarga una actualización. Cuando la instalación supera esa espera, el fallo nombra la actualización en lugar del código de error sin más:

4790 4811 

4791```text theme={null}4812```text theme={null}

4792Claude Code is being updated by npm on this machine (still not runnable after 2 min, EACCES) — try again when the update finishes4813Claude Code is being updated by npm on this machine (still not runnable after 2 min, EACCES) — try again when the update finishes

4793```4814```

4794 4815 

4795Antes de v2.1.257, la espera se detuvo a los diez segundos en todos los casos, por lo que este error apareció mientras otro proceso Claude Code aún estaba descargando una actualización. Antes de v2.1.246, Claude Code falló de inmediato, sin esperar.4816Antes de v2.1.257, la espera terminaba a los diez segundos en todos los casos, por lo que este error aparecía mientras otro proceso de Claude Code aún estaba descargando una actualización. Antes de v2.1.246, Claude Code fallaba de inmediato, sin esperar.

4796 4817 

4797**Qué hacer:**4818**Qué hacer:**

4798 4819 

4799* Espere unos segundos, luego abra la sesión o envíe nuevamente. Cuando el mensaje dice que Claude Code se está actualizando, reintente después de que la actualización termine.4820* Espera unos segundos y luego abre la sesión o haz el envío nuevamente. Cuando el mensaje dice que Claude Code se está actualizando, reintenta después de que la actualización termine.

4800* Si el error persiste mientras no se ejecuta ninguna instalación npm, su usuario no puede ejecutar el binario instalado. Verifique sus permisos y los de su directorio, o reinstale Claude Code.4821* Si el error persiste sin que se esté ejecutando ninguna instalación con npm, tu usuario no puede ejecutar el binario instalado. Revisa sus permisos y los de su directorio, o reinstala Claude Code.

4801 4822 

4802<h3 id="background-service-exited-before-it-became-reachable">4823<h3 id="background-service-exited-before-it-became-reachable">

4803 El servicio en segundo plano salió antes de que fuera alcanzable4824 El servicio en segundo plano salió antes de estar disponible

4804</h3>4825</h3>

4805 4826 

4806El proceso que Claude Code inició como el [servicio en segundo plano](/docs/es/agent-view#the-supervisor-process) salió antes de aceptar conexiones, por lo que Claude Code no pudo abrir su sesión. Cuando el servicio imprimió un error antes de salir, la razón entre paréntesis da el código de salida o señal y la primera línea que el servicio imprimió, que nombra lo que lo detuvo:4827El proceso que Claude Code inició como el [servicio en segundo plano](/docs/es/agent-view#the-supervisor-process) salió antes de aceptar conexiones, por lo que Claude Code no pudo abrir tu sesión. Cuando el servicio imprimió un error antes de salir, la razón entre paréntesis indica el código de salida o la señal y la primera línea que imprimió el servicio, que nombra lo que lo detuvo:

4807 4828 

4808```text theme={null}4829```text theme={null}

4809Couldn't reach the background service (background service exited before it became reachable (exit code N): <the service's first error line>) — run 'claude daemon status'4830Couldn't reach the background service (background service exited before it became reachable (exit code N): <the service's first error line>) — run 'claude daemon status'

4810```4831```

4811 4832 

4812Cuando abre una sesión desde [agent view](/docs/es/agent-view), la misma razón sigue a `Couldn't start the background service —`. Cuando el servicio no imprimió nada antes de salir, el mensaje dice `nothing on stderr` en su lugar.4833Cuando abres una sesión desde [agent view](/docs/es/agent-view), la misma razón aparece después de `Couldn't start the background service —`. Cuando el servicio no imprimió nada antes de salir, el mensaje dice `nothing on stderr` en su lugar.

4813 4834 

4814Claude Code reporta el fallo con la línea de error del servicio. Antes de v2.1.246, el fallo aparecía solo después de una espera de 45 segundos, como `background service did not become reachable within 45s`, sin la línea de error del servicio.4835Claude Code reporta el fallo con la línea de error del servicio. Antes de v2.1.246, el fallo aparecía solo después de una espera de 45 segundos, como `background service did not become reachable within 45s`, sin la línea de error del servicio.

4815 4836 

4816Dos razones entrecomilladas tienen causas conocidas:4837Dos razones citadas tienen causas conocidas:

4817 4838 

4818* `Error: claude native binary not installed.`: una instalación npm estaba reemplazando el binario de Claude Code en ese momento, por lo que el servicio ejecutó el marcador de posición de npm en su lugar. Reintente después de que la instalación termine; si la línea persiste sin instalación en ejecución, [complete la instalación npm](/docs/es/troubleshoot-install#native-binary-not-found-after-npm-install). Antes de v2.1.257, una actualización automática de npm en macOS produjo este fallo en cada inicio durante la ventana de instalación.4839* `Error: claude native binary not installed.`: una instalación con npm estaba reemplazando el binario de Claude Code en ese momento, por lo que el servicio ejecutó el marcador de posición de npm en su lugar. Reintenta después de que la instalación termine; si la línea persiste sin ninguna instalación en ejecución, [completa la instalación con npm](/docs/es/troubleshoot-install#native-binary-not-found-after-npm-install). Antes de v2.1.257, una autoactualización con npm en macOS producía este fallo en cada inicio durante el periodo de instalación.

4819* `nothing on stderr` con código de salida 1, en cada inicio, en Windows: `daemon.lock` nombra un proceso que Claude Code no puede señalar ni probar que se ha ido, por lo que cada nuevo servicio concluye que otro mantiene el bloqueo y sale. Un bloqueo cuyo escritor Claude Code puede probar que se ha ido se reemplaza por su cuenta y no produce este fallo. Cuando el fallo se repite en cada inicio, elimine `~/.claude/daemon.lock`, luego abra la sesión o envíe nuevamente. Antes de v2.1.257, tal bloqueo bloqueaba cada inicio hasta que eliminara el archivo.4840* `nothing on stderr` con código de salida 1, en cada inicio, en Windows: `daemon.lock` nombra un proceso al que Claude Code no puede enviar señales ni demostrar que ya no existe, por lo que cada nuevo servicio concluye que otro mantiene el bloqueo y sale. Un bloqueo cuyo escritor Claude Code puede demostrar que ya no existe se reemplaza automáticamente y no produce este fallo. Cuando el fallo se repite en cada inicio, elimina `~/.claude/daemon.lock` y luego abre la sesión o haz el envío nuevamente. Antes de v2.1.257, un bloqueo así impedía cada inicio hasta que eliminaras el archivo.

4820 4841 

4821**Qué hacer:**4842**Qué hacer:**

4822 4843 

4823* Si el mensaje cita una línea, corrija lo que nombra, luego abra la sesión o envíe nuevamente. El siguiente intento inicia el servicio nuevamente4844* Si el mensaje cita una línea, corrige lo que nombra y luego abre la sesión o haz el envío nuevamente. El siguiente intento vuelve a iniciar el servicio

4824* Ejecute `claude daemon status` para verificar si un servicio se está ejecutando ahora4845* Ejecuta `claude daemon status` para verificar si hay un servicio en ejecución ahora

4825 4846 

4826<h3 id="working-directory-no-longer-exists-when-starting-a-background-session">4847<h3 id="working-directory-no-longer-exists-when-starting-a-background-session">

4827 El directorio de trabajo ya no existe al iniciar una sesión en segundo plano4848 El directorio de trabajo ya no existe al iniciar una sesión en segundo plano

4828</h3>4849</h3>

4829 4850 

4830El directorio en el que intentó iniciar una [sesión en segundo plano](/docs/es/agent-view) fue removido mientras la sesión se estaba iniciando. Claude Code no inicia la sesión, y el mensaje nombra el directorio faltante:4851El directorio en el que iniciaste una [sesión en segundo plano](/docs/es/agent-view) se eliminó mientras la sesión se estaba iniciando. Claude Code no inicia la sesión, y el mensaje nombra el directorio faltante:

4831 4852 

4832```text theme={null}4853```text theme={null}

4833Couldn't start a background session (working directory no longer exists or is not accessible: /tmp/demo)4854Couldn't start a background session (working directory no longer exists or is not accessible: /tmp/demo)


4835 4856 

4836Antes de v2.1.257, la sesión parecía iniciarse y luego se mostraba en agent view como una fila fallida con la misma razón.4857Antes de v2.1.257, la sesión parecía iniciarse y luego se mostraba en agent view como una fila fallida con la misma razón.

4837 4858 

4838Antes de v2.1.281, este mensaje también aparecía cuando el directorio ya se había ido antes de que iniciara la sesión. Ese caso reporta [`could not be resolved on disk`](#workspace-not-trusted-when-dispatching-a-background-session).4859Antes de v2.1.281, este mensaje también aparecía cuando el directorio ya no existía antes de que iniciaras la sesión. Ese caso reporta [`could not be resolved on disk`](#workspace-not-trusted-when-dispatching-a-background-session).

4839 4860 

4840**Qué hacer:**4861**Qué hacer:**

4841 4862 

4842* Recree el directorio que el mensaje nombra, o envíe desde un directorio que existe, luego intente nuevamente4863* Vuelve a crear el directorio que nombra el mensaje, o haz el envío desde un directorio que exista, y luego inténtalo de nuevo

4843 4864 

4844<h3 id="workspace-not-trusted-when-dispatching-a-background-session">4865<h3 id="workspace-not-trusted-when-dispatching-a-background-session">

4845 Espacio de trabajo no confiable al enviar una sesión en segundo plano4866 Espacio de trabajo no confiable al enviar una sesión en segundo plano

4846</h3>4867</h3>

4847 4868 

4848Inició o reinició una [sesión en segundo plano](/docs/es/agent-view) en un directorio que no ha [confiado](/docs/es/permissions#project-allow-rules-and-workspace-trust), y el diálogo de confianza del espacio de trabajo no pudo aparecer para preguntarle. Claude Code no inicia la sesión:4869Iniciaste o reiniciaste una [sesión en segundo plano](/docs/es/agent-view) en un directorio en el que no has [confiado](/docs/es/permissions#project-allow-rules-and-workspace-trust), y el diálogo de confianza del espacio de trabajo no pudo aparecer para preguntarte. Claude Code no inicia la sesión:

4849 4870 

4850```text theme={null}4871```text theme={null}

4851Workspace not trusted. Run `claude` in /path/to/project once and accept the trust prompt, then retry.4872Workspace not trusted. Run `claude` in /path/to/project once and accept the trust prompt, then retry.

4852```4873```

4853 4874 

4854Desde una terminal en el directorio de la sesión, el mismo comando muestra el diálogo de confianza en su lugar e inicia la sesión una vez que acepta. Este mensaje aparece donde no puede haber diálogo, como en un script, o cuando reinicia una sesión desde un directorio diferente al suyo.4875Desde una terminal en el propio directorio de la sesión, el mismo comando muestra el diálogo de confianza en su lugar e inicia la sesión una vez que aceptas. Este mensaje aparece donde no puede mostrarse ningún diálogo, como en un script, o cuando reinicias una sesión desde un directorio distinto al suyo.

4855 4876 

4856Dos variantes nombran una causa diferente:4877Dos variantes nombran una causa diferente:

4857 4878 

4858* **`The home directory is trusted one session at a time`**: el directorio de la sesión es su directorio de inicio. Claude Code nunca guarda confianza para el directorio de inicio, por lo que aceptar el diálogo allí en una sesión anterior no cuenta.4879* **`The home directory is trusted one session at a time`**: el directorio de la sesión es tu directorio home. Claude Code nunca guarda la confianza para el directorio home, por lo que haber aceptado el diálogo allí en una sesión anterior no cuenta.

4859* **`<path> could not be resolved on disk`**: Claude Code no pudo encontrar el directorio de la sesión en el disco.4880* **`<path> could not be resolved on disk`**: Claude Code no pudo encontrar el directorio de la sesión en el disco.

4860 4881 

4882Antes de v2.1.286, en Windows, este mensaje también podía aparecer en un directorio en el que ya habías confiado, si su registro de confianza se había guardado con la ruta en mayúsculas y minúsculas diferentes. Actualiza a v2.1.286 o posterior.

4883 

4861**Qué hacer:**4884**Qué hacer:**

4862 4885 

4863* Ejecute `claude` en el directorio que el mensaje nombra y acepte el diálogo de confianza, luego ejecute el comando nuevamente4886* Ejecuta `claude` en el directorio que nombra el mensaje y acepta el diálogo de confianza, y luego ejecuta el comando nuevamente

4864* Para el mensaje del directorio de inicio, ejecute el comando desde una terminal en su directorio de inicio para que el diálogo pueda aparecer, o inicie la sesión desde un directorio de proyecto en su lugar4887* Para el mensaje del directorio home, ejecuta el comando desde una terminal en tu directorio home para que el diálogo pueda aparecer, o inicia la sesión desde un directorio de proyecto en su lugar

4865* Para el mensaje `could not be resolved on disk`, recree el directorio, o inicie una nueva sesión desde un directorio que existe4888* Para el mensaje `could not be resolved on disk`, vuelve a crear el directorio, o inicia una nueva sesión desde un directorio que exista

4866 4889 

4867<h2 id="wrapper-and-ide-errors">4890<h2 id="wrapper-and-ide-errors">

4868 Errores de wrapper e IDE4891 Errores de wrapper e IDE

hooks.md +4 −10

Details

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

732</h3>732</h3>

733 733 

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

735 735 

736El menú muestra los cinco tipos de hook: `command`, `prompt`, `agent`, `http` y `mcp_tool`. Cada hook está etiquetado con un prefijo `[type]` y una fuente que indica dónde fue definido:736Selecciona un hook para ver el texto completo de lo que ejecuta y dónde está definido, como la ruta de su archivo de configuración o el nombre de su plugin.

737 737 

738* `User Settings`: de `~/.claude/settings.json`738Para explorar todos los eventos de hook, incluidos los que no tienen hooks configurados, selecciona `All events` al final de la lista.

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

740* `Local Settings`: de `.claude/settings.local.json`

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

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

743 

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

745 739 

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

747 Deshabilitar o eliminar hooks741 Deshabilitar o eliminar hooks

748</h3>742</h3>

749 743 

750Para eliminar un hook, borra su entrada del archivo de configuración JSON.744Para eliminar un hook definido en un archivo de configuración, borra su entrada de ese archivo.

751 745 

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

hooks-guide.md +12 −9

Details

69 </Step>69 </Step>

70 70 

71 <Step title="Verifica la configuración">71 <Step title="Verifica la configuración">

72 Escribe `/hooks` para abrir el navegador de hooks. Verás una lista de todos los eventos de hook disponibles, con un contador junto a cada evento que tiene hooks configurados. Selecciona `Notification` para confirmar que tu nuevo hook aparece en la lista. Seleccionar el hook muestra sus detalles: el evento, matcher, tipo, archivo de origen y comando.72 Escribe `/hooks` en el prompt de Claude Code para abrir el navegador de hooks. Tu nuevo hook aparece en la lista bajo `Notification`.

73 </Step>73 </Step>

74 74 

75 <Step title="Prueba el hook">75 <Step title="Prueba el hook">


77 </Step>77 </Step>

78</Steps>78</Steps>

79 79 

80<Tip>

81 El menú `/hooks` es de solo lectura. Para añadir, modificar o eliminar hooks, edita tu JSON de configuración directamente o pídele a Claude que haga el cambio.

82</Tip>

83 

84<h2 id="what-you-can-automate">80<h2 id="what-you-can-automate">

85 Qué puedes automatizar81 Qué puedes automatizar

86</h2>82</h2>


97 93 

98Obtén una notificación de escritorio cada vez que Claude termine de trabajar y necesite tu entrada, para que puedas cambiar a otras tareas sin verificar la terminal.94Obtén una notificación de escritorio cada vez que Claude termine de trabajar y necesite tu entrada, para que puedas cambiar a otras tareas sin verificar la terminal.

99 95 

100Este hook usa el evento `Notification`, que Claude Code activa cuando Claude está esperando entrada o permiso. Consulta [cuándo se activa cada tipo de notificación](/docs/es/hooks#notification) para el momento exacto. Cada pestaña a continuación usa el comando de notificación nativo de la plataforma. Añade esto a `~/.claude/settings.json`:96Este hook usa el evento `Notification`, que Claude Code activa cuando Claude está esperando entrada o permiso. Consulta [cuándo se activa cada tipo de notificación](/docs/es/hooks#notification) para el momento exacto.

97 

98Cada pestaña a continuación usa el comando de notificación nativo de la plataforma. Añade esto a `~/.claude/settings.json`:

101 99 

102<Tabs>100<Tabs>

103 <Tab title="macOS">101 <Tab title="macOS">


120 ```118 ```

121 119 

122 <Accordion title="Si no aparece ninguna notificación">120 <Accordion title="Si no aparece ninguna notificación">

123 `osascript` enruta notificaciones a través de la aplicación Script Editor integrada. Si Script Editor no tiene permiso de notificación, el comando falla silenciosamente, y macOS no te pedirá que lo otorgues. Ejecuta esto en Terminal una vez para que Script Editor aparezca en tu configuración de notificaciones:121 `osascript` enruta notificaciones a través de la aplicación Script Editor integrada. Si Script Editor no tiene permiso de notificación, el comando falla silenciosamente, y macOS no te pedirá que lo otorgues.

122 

123 Ejecuta esto en Terminal una vez para que Script Editor aparezca en tu configuración de notificaciones:

124 124 

125 ```bash theme={null}125 ```bash theme={null}

126 osascript -e 'display notification "test"'126 osascript -e 'display notification "test"'


180 ```180 ```

181 181 

182 <Accordion title="Si no aparece ningún diálogo">182 <Accordion title="Si no aparece ningún diálogo">

183 Este comando abre un cuadro de diálogo en lugar de una notificación en la esquina de tu pantalla, por lo que el diálogo puede abrirse detrás de tu ventana de terminal. Prueba el comando directamente en PowerShell primero. Si ejecutas Claude Code dentro de WSL, `powershell.exe` debe estar disponible en tu `PATH` a través de interoperabilidad de Windows.183 Este comando abre un cuadro de diálogo en lugar de una notificación en la esquina de tu pantalla, por lo que el diálogo puede abrirse detrás de tu ventana de terminal. Prueba el comando directamente en PowerShell primero.

184 

185 Si ejecutas Claude Code dentro de WSL, `powershell.exe` debe estar disponible en tu `PATH` a través de interoperabilidad de Windows.

184 </Accordion>186 </Accordion>

185 </Tab>187 </Tab>

186</Tabs>188</Tabs>


212 214 

213`agent_needs_input` para una pregunta de configuración de terminal de un compañero de equipo requiere Claude Code v2.1.248 o posterior.215`agent_needs_input` para una pregunta de configuración de terminal de un compañero de equipo requiere Claude Code v2.1.248 o posterior.

214 216 

215Escribe `/hooks` y selecciona `Notification` para confirmar que el hook está registrado. Para el esquema de evento completo, consulta la [referencia de Notification](/docs/es/hooks#notification).217Escribe `/hooks` en el prompt de Claude Code y confirma que el hook aparece en `Notification`.

216 218 

217<h3 id="auto-format-code-after-edits">219<h3 id="auto-format-code-after-edits">

218 Formatea automáticamente el código después de ediciones220 Formatea automáticamente el código después de ediciones


1055* Las ediciones de archivos normalmente se recogen automáticamente. Si no han aparecido después de unos segundos, el observador de archivos puede haber perdido el cambio: reinicia tu sesión para forzar una recarga.1057* Las ediciones de archivos normalmente se recogen automáticamente. Si no han aparecido después de unos segundos, el observador de archivos puede haber perdido el cambio: reinicia tu sesión para forzar una recarga.

1056* Verifique que su JSON sea válido: las comas finales y comentarios no están permitidos1058* Verifique que su JSON sea válido: las comas finales y comentarios no están permitidos

1057* Confirma que el archivo de configuración está en la ubicación correcta: `.claude/settings.json` para hooks de proyecto, `~/.claude/settings.json` para hooks globales1059* Confirma que el archivo de configuración está en la ubicación correcta: `.claude/settings.json` para hooks de proyecto, `~/.claude/settings.json` para hooks globales

1060* Si el menú muestra `Only hooks from managed settings run here`, tu organización ha establecido [`allowManagedHooksOnly`](/docs/es/settings-reference#allowmanagedhooksonly). Los hooks en tus archivos de configuración de usuario, de proyecto y local no se ejecutan ni aparecen en la lista

1058 1061 

1059<h3 id="stop-hook-hits-the-block-cap">1062<h3 id="stop-hook-hits-the-block-cap">

1060 El hook Stop alcanza el límite de bloqueo1063 El hook Stop alcanza el límite de bloqueo

Details

73 73 

74Transmita respuestas de inferencia. Claude Code lee la transmisión a medida que llega, por lo que si su puerta de enlace almacena en búfer respuestas completas antes de retransmitirlas, Claude Code se detiene.74Transmita respuestas de inferencia. Claude Code lee la transmisión a medida que llega, por lo que si su puerta de enlace almacena en búfer respuestas completas antes de retransmitirlas, Claude Code se detiene.

75 75 

76Entregue la secuencia de eventos completa de cada respuesta sin descartar, duplicar ni reordenar eventos. Cuando un evento hace referencia a un bloque de contenido cuyo `content_block_start` nunca llegó, o a un bloque cuyo `content_block_stop` ya llegó, Claude Code deja de leer la transmisión en ese evento en lugar de aplicarlo, por lo que un `content_block_stop` duplicado no puede ejecutar la misma llamada de herramienta dos veces. [La respuesta anterior puede estar incompleta](/docs/es/errors#the-response-above-may-be-incomplete) describe lo que el usuario ve, bajo las variantes `Part of the response never arrived` y `The response stream was malformed`.76Entrega la secuencia completa de eventos de cada respuesta sin descartar, duplicar ni reordenar eventos. Cuando una barrera de protección (guardrail) de Amazon Bedrock bloquea una respuesta, reenvía sin cambios los eventos que envía, incluso cuando hacen referencia a un bloque de contenido cuyo `content_block_stop` ya llegó. [AWS Guardrails](/docs/es/amazon-bedrock#aws-guardrails) describe cómo termina esa respuesta. Cuando cualquier otro evento hace referencia a un bloque de contenido cuyo `content_block_start` nunca llegó, o a un bloque cuyo `content_block_stop` ya llegó, Claude Code deja de leer el stream en ese evento en lugar de aplicarlo, de modo que un `content_block_stop` duplicado no puede ejecutar la misma llamada a herramienta dos veces. [La respuesta anterior puede estar incompleta](/docs/es/errors#the-response-above-may-be-incomplete) describe lo que ve el usuario, en las variantes `Part of the response never arrived` y `The response stream was malformed`.

77 77 

78Retransmita cada respuesta a través de sus eventos finales `message_delta` y `message_stop` antes de terminar el cuerpo. Un cuerpo que termina después de un `message_delta` que lleva un `stop_reason`, sin bloque de contenido aún abierto y sin evento de bloque de contenido después de ese fotograma, se cuenta como completo incluso cuando falta `message_stop`. Un cuerpo que su puerta de enlace termina limpiamente antes, una vez que ha comenzado un bloque de contenido, se trata igual que una conexión caída: [Reintentos automáticos](/docs/es/errors#automatic-retries) dice cuándo Claude Code vuelve a emitir la solicitud, y [La respuesta anterior puede estar incompleta](/docs/es/errors#the-response-above-may-be-incomplete) cubre lo que mantiene una vez que ha llegado contenido visible. Claude Code mantiene el `stop_reason` que entrega un `message_delta`, por lo que un `message_delta` posterior solo de uso cuyo `delta` tiene `stop_reason: null` o no tiene clave `stop_reason` no lo borra.78Retransmita cada respuesta a través de sus eventos finales `message_delta` y `message_stop` antes de terminar el cuerpo. Un cuerpo que termina después de un `message_delta` que lleva un `stop_reason`, sin bloque de contenido aún abierto y sin evento de bloque de contenido después de ese fotograma, se cuenta como completo incluso cuando falta `message_stop`. Un cuerpo que su puerta de enlace termina limpiamente antes, una vez que ha comenzado un bloque de contenido, se trata igual que una conexión caída: [Reintentos automáticos](/docs/es/errors#automatic-retries) dice cuándo Claude Code vuelve a emitir la solicitud, y [La respuesta anterior puede estar incompleta](/docs/es/errors#the-response-above-may-be-incomplete) cubre lo que mantiene una vez que ha llegado contenido visible. Claude Code mantiene el `stop_reason` que entrega un `message_delta`, por lo que un `message_delta` posterior solo de uso cuyo `delta` tiene `stop_reason: null` o no tiene clave `stop_reason` no lo borra.

79 79 

memory.md +98 −96

Details

41 Archivos CLAUDE.md41 Archivos CLAUDE.md

42</h2>42</h2>

43 43 

44Los archivos CLAUDE.md son archivos markdown que proporcionan a Claude instrucciones persistentes para un proyecto, su flujo de trabajo personal o toda su organización. Usted escribe estos archivos en texto plano; Claude los lee al inicio de cada sesión. Si su repositorio utiliza `AGENTS.md` en su lugar, consulte [AGENTS.md](#agents-md).44Los archivos CLAUDE.md son archivos markdown que proporcionan a Claude instrucciones persistentes para un proyecto, tu flujo de trabajo personal o toda tu organización. Tú escribes estos archivos en texto plano; Claude los lee al inicio de cada sesión. Si tu repositorio utiliza `AGENTS.md` en su lugar, consulta [AGENTS.md](#agents-md).

45 45 

46<h3 id="when-to-add-to-claude-md">46<h3 id="when-to-add-to-claude-md">

47 Cuándo agregar a CLAUDE.md47 Cuándo agregar a CLAUDE.md

48</h3>48</h3>

49 49 

50Trate CLAUDE.md como el lugar donde escribe lo que de otro modo tendría que re-explicar. Agregue contenido cuando:50Trata CLAUDE.md como el lugar donde escribes lo que de otro modo tendrías que volver a explicar. Agrega contenido cuando:

51 51 

52* Claude comete el mismo error una segunda vez52* Claude comete el mismo error una segunda vez

53* Una revisión de código detecta lo que sí llega al PR que Claude debería haber sabido sobre esta base de código53* Una revisión de código detecta algo que Claude debería haber sabido sobre esta base de código

54* Usted escribe la misma corrección o aclaración en el chat que escribió en la sesión anterior54* Escribes en el chat la misma corrección o aclaración que escribiste en la sesión anterior

55* Un nuevo compañero de equipo necesitaría el mismo contexto para ser productivo55* Un nuevo compañero de equipo necesitaría el mismo contexto para ser productivo

56 56 

57Manténgalo en hechos que Claude debe retener en cada sesión: comandos de compilación, convenciones, diseño del proyecto, reglas "siempre haga X". Si una entrada es un procedimiento de varios pasos o solo importa para una parte de la base de código, muévala a un [skill](/docs/es/skills) o a una [regla con alcance de ruta](#organize-rules-with-claude/rules/) en su lugar. La [descripción general de extensiones](/docs/es/features-overview#build-your-setup-over-time) cubre cuándo usar cada mecanismo.57Limítalo a hechos que Claude debe retener en cada sesión: comandos de compilación, convenciones, estructura del proyecto, reglas de "siempre haz X". Si una entrada es un procedimiento de varios pasos o solo importa para una parte de la base de código, muévela a un [skill](/docs/es/skills) o a una [regla con alcance de ruta](#organize-rules-with-claude/rules/) en su lugar. La [descripción general de extensiones](/docs/es/features-overview#build-your-setup-over-time) cubre cuándo usar cada mecanismo.

58 58 

59<h3 id="choose-where-to-put-claude-md-files">59<h3 id="choose-where-to-put-claude-md-files">

60 Elija dónde colocar los archivos CLAUDE.md60 Elige dónde colocar los archivos CLAUDE.md

61</h3>61</h3>

62 62 

63Los archivos CLAUDE.md pueden vivir en varios lugares, cada uno con un alcance diferente. La tabla a continuación los enumera en orden de carga, desde el alcance más amplio hasta el más específico, por lo que una instrucción de proyecto aparece en contexto después de una instrucción de usuario.63Los archivos CLAUDE.md pueden vivir en varios lugares, cada uno con un alcance diferente. La tabla a continuación los enumera en orden de carga, desde el alcance más amplio hasta el más específico, por lo que una instrucción de proyecto aparece en contexto después de una instrucción de usuario.


65| Alcance | Ubicación | Propósito | Ejemplos de casos de uso | Compartido con |65| Alcance | Ubicación | Propósito | Ejemplos de casos de uso | Compartido con |

66| - | - | - | - | - |66| - | - | - | - | - |

67| **Política administrada** | • macOS: `/Library/Application Support/ClaudeCode/CLAUDE.md`<br />• Linux y WSL: `/etc/claude-code/CLAUDE.md`<br />• Windows: `C:\Program Files\ClaudeCode\CLAUDE.md` | Instrucciones de toda la organización administradas por TI/DevOps | Estándares de codificación de la empresa, políticas de seguridad, requisitos de cumplimiento | Todos los usuarios de la organización |67| **Política administrada** | • macOS: `/Library/Application Support/ClaudeCode/CLAUDE.md`<br />• Linux y WSL: `/etc/claude-code/CLAUDE.md`<br />• Windows: `C:\Program Files\ClaudeCode\CLAUDE.md` | Instrucciones de toda la organización administradas por TI/DevOps | Estándares de codificación de la empresa, políticas de seguridad, requisitos de cumplimiento | Todos los usuarios de la organización |

68| **Instrucciones de usuario** | `~/.claude/CLAUDE.md` | Preferencias personales para todos los proyectos | Preferencias de estilo de código, atajos de herramientas personales | Solo usted (todos los proyectos) |68| **Instrucciones de usuario** | `~/.claude/CLAUDE.md` | Preferencias personales para todos los proyectos | Preferencias de estilo de código, atajos de herramientas personales | Solo tú (todos los proyectos) |

69| **Instrucciones de proyecto** | `./CLAUDE.md` o `./.claude/CLAUDE.md`. Consulte [AGENTS.md](#agents-md) para saber cuándo `./AGENTS.md` se carga en su lugar o junto con ellos | Instrucciones compartidas por el equipo para el proyecto | Arquitectura del proyecto, estándares de codificación, flujos de trabajo comunes | Miembros del equipo a través del control de versiones |69| **Instrucciones de proyecto** | `./CLAUDE.md` o `./.claude/CLAUDE.md`. Consulta [AGENTS.md](#agents-md) para saber cuándo `./AGENTS.md` se carga en su lugar o junto con ellos | Instrucciones compartidas por el equipo para el proyecto | Arquitectura del proyecto, estándares de codificación, flujos de trabajo comunes | Miembros del equipo a través del control de versiones |

70| **Instrucciones locales** | `./CLAUDE.local.md` | Preferencias personales específicas del proyecto; agregue a `.gitignore` | Sus URLs de sandbox, datos de prueba preferidos | Solo usted (proyecto actual) |70| **Instrucciones locales** | `./CLAUDE.local.md` | Preferencias personales específicas del proyecto; agrégalo a `.gitignore` | Tus URLs de sandbox, datos de prueba preferidos | Solo tú (proyecto actual) |

71 71 

72Los archivos CLAUDE.md y CLAUDE.local.md en la jerarquía de directorios por encima del directorio de trabajo se cargan al iniciar. Los archivos en subdirectorios se cargan bajo demanda cuando Claude lee archivos en esos directorios. Consulte [Cómo se cargan los archivos CLAUDE.md](#how-claude-md-files-load) para el orden de resolución completo.72Los archivos CLAUDE.md y CLAUDE.local.md en la jerarquía de directorios por encima del directorio de trabajo se cargan al iniciar. Los archivos en subdirectorios se cargan bajo demanda cuando Claude lee archivos en esos directorios. Consulta [Cómo se cargan los archivos CLAUDE.md](#how-claude-md-files-load) para ver el orden de resolución completo.

73 73 

74Para proyectos grandes, puede dividir las instrucciones en archivos específicos de temas utilizando [reglas de proyecto](#organize-rules-with-claude/rules/). Las reglas le permiten limitar el alcance de las instrucciones a tipos de archivo específicos o subdirectorios.74Para proyectos grandes, puedes dividir las instrucciones en archivos específicos por tema utilizando [reglas de proyecto](#organize-rules-with-claude/rules/). Las reglas te permiten limitar las instrucciones a tipos de archivo o subdirectorios específicos.

75 75 

76<h3 id="set-up-a-project-claude-md">76<h3 id="set-up-a-project-claude-md">

77 Configure un CLAUDE.md de proyecto77 Configura un CLAUDE.md de proyecto

78</h3>78</h3>

79 79 

80Un CLAUDE.md de proyecto puede almacenarse en `./CLAUDE.md` o `./.claude/CLAUDE.md`. Cree este archivo y agregue instrucciones que se apliquen a cualquiera que trabaje en el proyecto: comandos de compilación y prueba, estándares de codificación, decisiones arquitectónicas, convenciones de nomenclatura y flujos de trabajo comunes. Estas instrucciones se comparten con su equipo a través del control de versiones, por lo que enfóquese en estándares a nivel de proyecto en lugar de preferencias personales. Para confirmar que el archivo se cargó, ejecute `/context` en una sesión y verifique la lista bajo **Memory files**.80Un CLAUDE.md de proyecto puede almacenarse en `./CLAUDE.md` o `./.claude/CLAUDE.md`. Crea este archivo y agrega instrucciones que se apliquen a cualquiera que trabaje en el proyecto: comandos de compilación y prueba, estándares de codificación, decisiones arquitectónicas, convenciones de nomenclatura y flujos de trabajo comunes. Estas instrucciones se comparten con tu equipo a través del control de versiones, así que enfócate en estándares a nivel de proyecto en lugar de preferencias personales. Para confirmar que el archivo se cargó, ejecuta `/context` en una sesión y revisa la lista bajo **Memory files**.

81 81 

82<Tip>82<Tip>

83 Ejecute `/init` para generar un CLAUDE.md inicial automáticamente. Claude analiza su base de código y crea un archivo con comandos de compilación, instrucciones de prueba y convenciones de proyecto que descubre. Si ya existe un CLAUDE.md, `/init` sugiere mejoras en lugar de sobrescribirlo. Refine desde allí con instrucciones que Claude no descubriría por sí solo.83 Ejecuta `/init` para generar automáticamente un CLAUDE.md inicial. Claude analiza tu base de código y crea un archivo con los comandos de compilación, las instrucciones de prueba y las convenciones del proyecto que descubre. Si ya existe un CLAUDE.md, `/init` sugiere mejoras en lugar de sobrescribirlo. Refínalo a partir de ahí con instrucciones que Claude no descubriría por sí solo.

84 84 

85 Para un flujo interactivo de múltiples fases en su lugar, configure la variable de entorno `CLAUDE_CODE_NEW_INIT` a `1` antes de ejecutar `/init`. Configúrela en su shell o en el bloque `env` de un archivo de configuración, como se muestra en [Establecer variables de entorno](/docs/es/env-vars#set-environment-variables). Con ella configurada, `/init` pregunta qué artefactos configurar: archivos CLAUDE.md, skills y hooks. Luego explora su base de código con un subagente, llena los vacíos mediante preguntas de seguimiento y presenta una propuesta revisable antes de escribir cualquier archivo. La variable solo cambia cómo se ejecuta `/init`, por lo que puede dejarla configurada.85 Para un flujo interactivo de múltiples fases en su lugar, establece la variable de entorno `CLAUDE_CODE_NEW_INIT` en `1` antes de ejecutar `/init`. Configúrala en tu shell o en el bloque `env` de un archivo de configuración, como se muestra en [Establecer variables de entorno](/docs/es/env-vars#set-environment-variables). Con ella configurada, `/init` pregunta qué artefactos configurar: archivos CLAUDE.md, skills y hooks. Luego explora tu base de código con un subagente, llena los vacíos mediante preguntas de seguimiento y presenta una propuesta revisable antes de escribir cualquier archivo. La variable solo cambia cómo se ejecuta `/init`, así que puedes dejarla configurada.

86</Tip>86</Tip>

87 87 

88<h3 id="write-effective-instructions">88<h3 id="write-effective-instructions">

89 Escriba instrucciones efectivas89 Escribe instrucciones efectivas

90</h3>90</h3>

91 91 

92Claude trata los archivos CLAUDE.md como contexto, no como configuración forzada, por lo que la forma en que escribe las instrucciones afecta la confiabilidad con la que Claude las sigue. Escriba instrucciones que sean lo suficientemente concretas para verificar:92Claude trata los archivos CLAUDE.md como contexto, no como configuración forzada, por lo que la forma en que escribes las instrucciones afecta la confiabilidad con la que Claude las sigue. Escribe instrucciones lo suficientemente concretas para poder verificarlas:

93 93 

94* "Usar indentación de 2 espacios" en lugar de "Formatear código correctamente"94* "Usar indentación de 2 espacios" en lugar de "Formatear código correctamente"

95* "Ejecutar `npm test` antes de hacer commit" en lugar de "Probar sus cambios"95* "Ejecutar `npm test` antes de hacer commit" en lugar de "Probar tus cambios"

96* "Los controladores de API viven en `src/api/handlers/`" en lugar de "Mantener los archivos organizados"96* "Los controladores de API viven en `src/api/handlers/`" en lugar de "Mantener los archivos organizados"

97 97 

98Mantenga sus archivos cortos, organizados y consistentes:98Mantén tus archivos cortos, organizados y consistentes:

99 99 

100* **Tamaño**: apunte a menos de 200 líneas por archivo CLAUDE.md. Los archivos más largos consumen más contexto y reducen la adherencia. Mueva las instrucciones que importan solo para parte de la base de código a [reglas con alcance de ruta](#path-specific-rules), que se cargan solo cuando Claude trabaja con archivos coincidentes. Las [importaciones](#import-additional-files) le ayudan a organizar un archivo largo pero no reducen su costo de contexto, porque los archivos importados también se cargan al iniciar.100* **Tamaño**: apunta a menos de 200 líneas por archivo CLAUDE.md. Los archivos más largos consumen más contexto y reducen la adherencia. Mueve las instrucciones que importan solo para parte de la base de código a [reglas con alcance de ruta](#path-specific-rules), que se cargan solo cuando Claude trabaja con archivos coincidentes. Las [importaciones](#import-additional-files) te ayudan a organizar un archivo largo pero no reducen su costo de contexto, porque los archivos importados también se cargan al iniciar.

101* **Estructura**: agrupe las instrucciones relacionadas bajo encabezados y viñetas markdown. Las secciones organizadas son más fáciles de seguir para Claude que los párrafos densos.101* **Estructura**: agrupa las instrucciones relacionadas bajo encabezados y viñetas markdown. Las secciones organizadas son más fáciles de seguir para Claude que los párrafos densos.

102* **Consistencia**: si dos instrucciones se contradicen entre sí, Claude puede elegir una arbitrariamente. Revise sus archivos CLAUDE.md, archivos CLAUDE.md anidados en subdirectorios y [`.claude/rules/`](#organize-rules-with-claude/rules/) periódicamente para eliminar instrucciones obsoletas o conflictivas. Para que Claude las encuentre por usted, [ejecute una auditoría de solicitud](#audit-your-instruction-files).102* **Consistencia**: si dos instrucciones se contradicen entre sí, Claude puede elegir una arbitrariamente. Revisa periódicamente tus archivos CLAUDE.md, los archivos CLAUDE.md anidados en subdirectorios y [`.claude/rules/`](#organize-rules-with-claude/rules/) para eliminar instrucciones obsoletas o conflictivas. Para que Claude las encuentre por ti, [ejecuta una auditoría de prompts](#audit-your-instruction-files).

103 103 

104<h4 id="audit-your-instruction-files">104<h4 id="audit-your-instruction-files">

105 Audite sus archivos de instrucciones105 Audita tus archivos de instrucciones

106</h4>106</h4>

107 107 

108Para que Claude verifique sus archivos de instrucciones en busca de contenido obsoleto o conflictivo, ejecute `/doctor prompt-audit` en una sesión. Claude busca problemas como instrucciones escritas para modelos más antiguos, referencias a archivos o comandos que no existen y archivos que se contradicen entre sí. Obtiene un informe de hallazgos con ediciones propuestas, y nada en sus archivos cambia hasta que le pida a Claude que las aplique.108Para que Claude revise tus archivos de instrucciones en busca de contenido obsoleto o conflictivo, ejecuta `/doctor prompt-audit` en una sesión. Claude busca problemas como instrucciones escritas para modelos más antiguos, referencias a archivos o comandos que no existen y archivos que se contradicen entre sí. Obtienes un informe de hallazgos con ediciones propuestas, y nada en tus archivos cambia hasta que le pidas a Claude que las aplique.

109 109 

110De forma predeterminada, la auditoría cubre sus archivos CLAUDE.md, CLAUDE.local.md y AGENTS.md, más las reglas, skills, comandos, subagentes y estilos de salida bajo `.claude/` y `~/.claude/`. Para auditar un archivo o directorio en su lugar, pase su ruta, por ejemplo `/doctor prompt-audit .claude/skills/deploy`.110De forma predeterminada, la auditoría cubre tus archivos CLAUDE.md, CLAUDE.local.md y AGENTS.md, además de las reglas, skills, comandos, subagentes y estilos de salida bajo `.claude/` y `~/.claude/`. Para auditar un solo archivo o directorio en su lugar, pasa su ruta, por ejemplo `/doctor prompt-audit .claude/skills/deploy`.

111 111 

112La auditoría se ejecuta a través del skill `/claude-api` incluido. No está disponible mientras ese skill está desactivado en [`skillOverrides`](/docs/es/skills#override-skill-visibility-from-settings) o con [`disableBundledSkills`](/docs/es/settings-reference#disablebundledskills). `/doctor prompt-audit` requiere Claude Code v2.1.283 o posterior.112La auditoría se ejecuta a través del skill incluido `/claude-api`. No está disponible mientras ese skill esté desactivado en [`skillOverrides`](/docs/es/skills#override-skill-visibility-from-settings) o con [`disableBundledSkills`](/docs/es/settings-reference#disablebundledskills). `/doctor prompt-audit` requiere Claude Code v2.1.283 o posterior.

113 113 

114<h3 id="import-additional-files">114<h3 id="import-additional-files">

115 Importe archivos adicionales115 Importa archivos adicionales

116</h3>116</h3>

117 117 

118Los archivos CLAUDE.md pueden importar archivos adicionales usando la sintaxis `@path/to/import`. Los archivos importados se expanden y se cargan en contexto al iniciar junto con el CLAUDE.md que los referencia.118Los archivos CLAUDE.md pueden importar archivos adicionales usando la sintaxis `@path/to/import`. Los archivos importados se expanden y se cargan en contexto al iniciar junto con el CLAUDE.md que los referencia.

119 119 

120Se permiten rutas relativas y absolutas. Las rutas relativas se resuelven en relación con el archivo que contiene la importación, no con el directorio de trabajo. Los archivos importados pueden importar recursivamente otros archivos, con una profundidad máxima de cuatro saltos.120Se permiten rutas relativas y absolutas. Las rutas relativas se resuelven en relación con el archivo que contiene la importación, no con el directorio de trabajo. Los archivos importados pueden importar recursivamente otros archivos, con una profundidad máxima de cuatro saltos.

121 121 

122Para importar un archivo cuya ruta contiene espacios, coloque una barra invertida antes de cada espacio. Sin las barras invertidas, la ruta termina en el primer espacio, incluso cuando la importación está en una línea por sí sola. Una ruta envuelta en comillas no se importa en absoluto, con o sin las barras invertidas. Esta importación carga un archivo desde una carpeta llamada `Design Docs`:122Para importar un archivo cuya ruta contiene espacios, coloca una barra invertida antes de cada espacio. Sin las barras invertidas, la ruta termina en el primer espacio, incluso cuando la importación está sola en una línea. Una ruta entre comillas no se importa en absoluto, con o sin las barras invertidas. Esta importación carga un archivo desde una carpeta llamada `Design Docs`:

123 123 

124```text theme={null}124```text theme={null}

125- API conventions @Design\ Docs/api-conventions.md125- API conventions @Design\ Docs/api-conventions.md

126```126```

127 127 

128El análisis de importación omite espacios de código Markdown y bloques de código delimitados. Para mencionar una ruta en su CLAUDE.md sin importarla, envuélvala en backticks: escribir `` `@README` `` mantiene el texto literal, mientras que `@README` fuera de backticks importa el archivo.128El análisis de importaciones omite los fragmentos de código en línea y los bloques de código delimitados de Markdown. Para mencionar una ruta en tu CLAUDE.md sin importarla, envuélvela en backticks: escribir `` `@README` `` mantiene el texto literal, mientras que `@README` fuera de backticks importa el archivo.

129 129 

130Para incluir un README, package.json y una guía de flujo de trabajo, haga referencia a ellos con la sintaxis `@` en cualquier lugar de su CLAUDE.md:130Para incluir un README, package.json y una guía de flujo de trabajo, haz referencia a ellos con la sintaxis `@` en cualquier lugar de tu CLAUDE.md:

131 131 

132```text theme={null}132```text theme={null}

133Consulte @README para obtener una descripción general del proyecto y @package.json para los comandos npm disponibles para este proyecto.133Consulta @README para obtener una descripción general del proyecto y @package.json para los comandos npm disponibles para este proyecto.

134 134 

135# Instrucciones adicionales135# Instrucciones adicionales

136- flujo de trabajo de git @docs/git-instructions.md136- flujo de trabajo de git @docs/git-instructions.md

137```137```

138 138 

139Para preferencias personales privadas por proyecto que no deben verificarse en el control de versiones, cree un `CLAUDE.local.md` en la raíz del proyecto. Se carga junto con `CLAUDE.md` y se trata de la misma manera. Agregue `CLAUDE.local.md` a su `.gitignore` para que no se confirme. Con `CLAUDE_CODE_NEW_INIT=1` configurado, ejecutar `/init` y elegir la opción personal lo hace por usted.139Para preferencias personales privadas por proyecto que no deben subirse al control de versiones, crea un `CLAUDE.local.md` en la raíz del proyecto. Se carga junto con `CLAUDE.md` y se trata de la misma manera. Agrega `CLAUDE.local.md` a tu `.gitignore` para que no se incluya en ningún commit. Con `CLAUDE_CODE_NEW_INIT=1` configurado, ejecutar `/init` y elegir la opción personal lo hace por ti.

140 140 

141Si trabaja en múltiples git worktrees del mismo repositorio, un `CLAUDE.local.md` ignorado por git solo existe en el worktree donde lo creó. Para compartir instrucciones personales entre worktrees, importe un archivo desde su directorio de inicio en su lugar:141Si trabajas en múltiples git worktrees del mismo repositorio, un `CLAUDE.local.md` ignorado por git solo existe en el worktree donde lo creaste. Para compartir instrucciones personales entre worktrees, importa en su lugar un archivo desde tu directorio home:

142 142 

143```text theme={null}143```text theme={null}

144# Preferencias individuales144# Preferencias individuales


146```146```

147 147 

148<Warning>148<Warning>

149 Una importación en un archivo de memoria a nivel de proyecto es externa cuando su ruta se resuelve fuera de su directorio de trabajo, como la importación del directorio de inicio anterior. La primera vez que Claude Code encuentra importaciones externas en un proyecto, muestra un diálogo de aprobación que enumera los archivos. Si rechaza, las importaciones permanecen deshabilitadas y el diálogo no aparece nuevamente.149 Una importación en un archivo de memoria a nivel de proyecto es externa cuando su ruta se resuelve fuera de tu directorio de trabajo, como la importación desde el directorio home anterior. La primera vez que Claude Code encuentra importaciones externas en un proyecto, muestra un diálogo de aprobación que enumera los archivos. Si lo rechazas, las importaciones permanecen deshabilitadas y el diálogo no vuelve a aparecer.

150 150 

151 Claude Code muestra el diálogo para protegerlo de archivos que otras personas confirmen en un proyecto compartido. Los archivos de memoria con alcance de usuario, como `~/.claude/CLAUDE.md` y `~/.claude/rules/`, son archivos que usted escribió. Excepto en sesiones de [Cowork](https://claude.com/product/cowork) en su escritorio, Claude Code carga sus importaciones sin el diálogo y las confía como el resto de su configuración personal.151 Claude Code muestra el diálogo para protegerte de archivos que otras personas suben a un proyecto compartido. Los archivos de memoria con alcance de usuario, como `~/.claude/CLAUDE.md` y `~/.claude/rules/`, son archivos que escribiste tú mismo. Excepto en sesiones de [Cowork](https://claude.com/product/cowork) en tu escritorio, Claude Code carga sus importaciones sin el diálogo y confía en ellas como en el resto de tu configuración personal.

152 152 

153 En sesiones de Cowork en su escritorio, Claude Code omite cualquier importación en un archivo con alcance de usuario que se resuelva a una ruta fuera del directorio de trabajo de la sesión y carga el resto del archivo. En esas sesiones también omite un `~/.claude/CLAUDE.md` que es en sí mismo un enlace simbólico o un enlace duro, y un directorio `~/.claude/rules/` enlazado simbólicamente o un archivo de regla que apunta fuera del directorio de trabajo.153 En sesiones de Cowork en tu escritorio, Claude Code omite cualquier importación en un archivo con alcance de usuario que se resuelva a una ruta fuera del directorio de trabajo de la sesión y carga el resto del archivo. En esas sesiones también omite un `~/.claude/CLAUDE.md` que sea en sí mismo un enlace simbólico o un enlace duro, y un directorio `~/.claude/rules/` o archivo de regla enlazado simbólicamente que apunte fuera del directorio de trabajo.

154</Warning>154</Warning>

155 155 

156<h3 id="how-claude-md-files-load">156<h3 id="how-claude-md-files-load">

157 Cómo se cargan los archivos CLAUDE.md157 Cómo se cargan los archivos CLAUDE.md

158</h3>158</h3>

159 159 

160Claude Code carga `CLAUDE.md` y `CLAUDE.local.md` desde su directorio de trabajo actual y cada directorio por encima de él. Ejecute Claude Code en `foo/bar/` y cargará instrucciones desde `foo/bar/CLAUDE.md`, `foo/CLAUDE.md` y cualquier archivo `CLAUDE.local.md` junto a ellos.160Claude Code carga `CLAUDE.md` y `CLAUDE.local.md` desde tu directorio de trabajo actual y cada directorio por encima de él. Si ejecutas Claude Code en `foo/bar/`, carga instrucciones desde `foo/bar/CLAUDE.md`, `foo/CLAUDE.md` y cualquier archivo `CLAUDE.local.md` junto a ellos.

161 161 

162Todos los archivos descubiertos se concatenan en contexto en lugar de anularse entre sí. En el árbol de directorios, el contenido se ordena desde la raíz del sistema de archivos hasta su directorio de trabajo. Para el ejemplo `foo/bar/`, `foo/CLAUDE.md` aparece en contexto antes de `foo/bar/CLAUDE.md`, por lo que las instrucciones más cercanas a donde lanzó Claude se leen al final. Dentro de cada directorio, `CLAUDE.local.md` se añade después de `CLAUDE.md`, por lo que sus notas personales son lo último que Claude lee en ese nivel.162Todos los archivos descubiertos se concatenan en contexto en lugar de sobrescribirse entre sí. A lo largo del árbol de directorios, el contenido se ordena desde la raíz del sistema de archivos hasta tu directorio de trabajo. En el ejemplo de `foo/bar/`, `foo/CLAUDE.md` aparece en contexto antes que `foo/bar/CLAUDE.md`, por lo que las instrucciones más cercanas a donde iniciaste Claude se leen al final. Dentro de cada directorio, `CLAUDE.local.md` se añade después de `CLAUDE.md`, por lo que tus notas personales son lo último que Claude lee en ese nivel.

163 163 

164Claude también descubre archivos `CLAUDE.md` y `CLAUDE.local.md` en subdirectorios bajo su directorio de trabajo actual. En lugar de cargarlos al iniciar, se incluyen cuando Claude lee archivos en esos subdirectorios.164Claude también descubre archivos `CLAUDE.md` y `CLAUDE.local.md` en subdirectorios bajo tu directorio de trabajo actual. En lugar de cargarse al iniciar, se incluyen cuando Claude lee archivos en esos subdirectorios. Para archivos dentro de un worktree bajo `.claude/worktrees/`, consulta [Aislar subagentes con worktrees](/docs/es/worktrees#isolate-subagents-with-worktrees).

165 165 

166Si trabaja en un monorepo grande donde se recogen archivos CLAUDE.md de otros equipos, use [`claudeMdExcludes`](#exclude-specific-claude-md-files) para omitirlos. Para el diseño completo de archivos CLAUDE.md raíz y por directorio y reglas, consulte [Monorepos y repositorios grandes](/docs/es/large-codebases).166Si trabajas en un monorepo grande donde se recogen archivos CLAUDE.md de otros equipos, usa [`claudeMdExcludes`](#exclude-specific-claude-md-files) para omitirlos. Para ver la estructura completa de archivos CLAUDE.md raíz y por directorio y de las reglas, consulta [Monorepos y repositorios grandes](/docs/es/large-codebases).

167 167 

168Los comentarios HTML a nivel de bloque (`<!-- maintainer notes -->`) en archivos CLAUDE.md se eliminan antes de que el contenido se inyecte en el contexto de Claude. Úselos para dejar notas para los mantenedores humanos sin gastar tokens de contexto en ellas. Los comentarios dentro de bloques de código se conservan. Cuando abre un archivo CLAUDE.md directamente con la herramienta Read, los comentarios permanecen visibles.168Los comentarios HTML a nivel de bloque (`<!-- maintainer notes -->`) en archivos CLAUDE.md se eliminan antes de que el contenido se inyecte en el contexto de Claude. Úsalos para dejar notas a los mantenedores humanos sin gastar tokens de contexto en ellas. Los comentarios dentro de bloques de código se conservan. Cuando abres un archivo CLAUDE.md directamente con la herramienta Read, los comentarios siguen visibles.

169 169 

170<h4 id="load-from-additional-directories">170<h4 id="load-from-additional-directories">

171 Cargue desde directorios adicionales171 Carga desde directorios adicionales

172</h4>172</h4>

173 173 

174La bandera `--add-dir` proporciona a Claude acceso a directorios adicionales fuera de su directorio de trabajo principal. De forma predeterminada, los archivos CLAUDE.md de estos directorios no se cargan.174El flag `--add-dir` le da a Claude acceso a directorios adicionales fuera de tu directorio de trabajo principal. De forma predeterminada, los archivos CLAUDE.md de estos directorios no se cargan.

175 175 

176Para cargar también archivos de memoria desde directorios adicionales, configure la variable de entorno `CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD`:176Para cargar también archivos de memoria desde directorios adicionales, establece la variable de entorno `CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD`:

177 177 

178```bash theme={null}178```bash theme={null}

179CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD=1 claude --add-dir ../shared-config179CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD=1 claude --add-dir ../shared-config

180```180```

181 181 

182La forma en línea configura la variable para ese único lanzamiento en Bash o Zsh. Para mantenerla activada para cada sesión, agréguela al bloque `env` en `~/.claude/settings.json` como se muestra en [Establecer variables de entorno](/docs/es/env-vars#set-environment-variables).182La forma en línea establece la variable solo para ese inicio en Bash o Zsh. Para mantenerla activada en cada sesión, agrégala al bloque `env` en `~/.claude/settings.json` como se muestra en [Establecer variables de entorno](/docs/es/env-vars#set-environment-variables).

183 183 

184Esto carga `CLAUDE.md`, `.claude/CLAUDE.md`, `.claude/rules/*.md` y `CLAUDE.local.md` desde el directorio adicional. `CLAUDE.local.md` se omite si excluye `local` de [`--setting-sources`](/docs/es/cli-reference).184Esto carga `CLAUDE.md`, `.claude/CLAUDE.md`, `.claude/rules/*.md` y `CLAUDE.local.md` desde el directorio adicional. `CLAUDE.local.md` se omite si excluyes `local` de [`--setting-sources`](/docs/es/cli-reference).

185 185 

186<h3 id="organize-rules-with-claude/rules/">186<h3 id="organize-rules-with-claude/rules/">

187 Organice reglas con `.claude/rules/`187 Organiza reglas con `.claude/rules/`

188</h3>188</h3>

189 189 

190Para proyectos más grandes, puede organizar instrucciones en múltiples archivos usando el directorio `.claude/rules/`. Esto mantiene las instrucciones modulares y más fáciles de mantener para los equipos. Las reglas también pueden ser [limitadas a rutas de archivo específicas](#path-specific-rules), por lo que solo se cargan en contexto cuando Claude trabaja con archivos coincidentes, reduciendo el ruido y ahorrando espacio de contexto.190Para proyectos más grandes, puedes organizar las instrucciones en múltiples archivos usando el directorio `.claude/rules/`. Esto mantiene las instrucciones modulares y más fáciles de mantener para los equipos. Las reglas también pueden [limitarse a rutas de archivo específicas](#path-specific-rules), de modo que solo se cargan en contexto cuando Claude trabaja con archivos coincidentes, lo que reduce el ruido y ahorra espacio de contexto.

191 191 

192<Note>192<Note>

193 Las reglas se cargan en contexto cada sesión o cuando se abren archivos coincidentes. Para instrucciones específicas de tareas que no necesitan estar en contexto todo el tiempo, use [skills](/docs/es/skills) en su lugar, que solo se cargan cuando las invoca o cuando Claude determina que son relevantes para su solicitud.193 Las reglas se cargan en contexto en cada sesión o cuando se abren archivos coincidentes. Para instrucciones específicas de tareas que no necesitan estar en contexto todo el tiempo, usa [skills](/docs/es/skills) en su lugar, que solo se cargan cuando los invocas o cuando Claude determina que son relevantes para tu prompt.

194</Note>194</Note>

195 195 

196<h4 id="set-up-rules">196<h4 id="set-up-rules">

197 Configure reglas197 Configura reglas

198</h4>198</h4>

199 199 

200Coloque archivos markdown en el directorio `.claude/rules/` de su proyecto. Cada archivo debe cubrir un tema, con un nombre de archivo descriptivo como `testing.md` o `api-design.md`. Todos los archivos `.md` se descubren recursivamente, por lo que puede organizar reglas en subdirectorios como `frontend/` o `backend/`:200Coloca archivos markdown en el directorio `.claude/rules/` de tu proyecto. Cada archivo debe cubrir un tema, con un nombre de archivo descriptivo como `testing.md` o `api-design.md`. Todos los archivos `.md` se descubren recursivamente, por lo que puedes organizar las reglas en subdirectorios como `frontend/` o `backend/`:

201 201 

202```text theme={null}202```text theme={null}

203your-project/203your-project/


211 211 

212Las reglas sin [frontmatter `paths`](#path-specific-rules) se cargan al iniciar con la misma prioridad que `.claude/CLAUDE.md`.212Las reglas sin [frontmatter `paths`](#path-specific-rules) se cargan al iniciar con la misma prioridad que `.claude/CLAUDE.md`.

213 213 

214Las reglas de proyecto se omiten si excluye `project` de [`--setting-sources`](/docs/es/cli-reference). Antes de v2.1.211, las reglas que se cargan bajo demanda, incluidas las reglas con alcance de ruta y las reglas en directorios `.claude/rules/` anidados, se cargaban incluso cuando `project` estaba excluido.214Las reglas de proyecto se omiten si excluyes `project` de [`--setting-sources`](/docs/es/cli-reference). Antes de v2.1.211, las reglas que se cargan bajo demanda, incluidas las reglas con alcance de ruta y las reglas en directorios `.claude/rules/` anidados, se cargaban incluso cuando `project` estaba excluido.

215 215 

216<h4 id="path-specific-rules">216<h4 id="path-specific-rules">

217 Reglas específicas de ruta217 Reglas específicas de ruta


227 227 

228# Reglas de desarrollo de API228# Reglas de desarrollo de API

229 229 

230- Todos los puntos finales de API deben incluir validación de entrada230- Todos los endpoints de API deben incluir validación de entrada

231- Usar el formato de respuesta de error estándar231- Usar el formato de respuesta de error estándar

232- Incluir comentarios de documentación OpenAPI232- Incluir comentarios de documentación OpenAPI

233```233```

234 234 

235Las reglas sin un campo `paths` se cargan incondicionalmente y se aplican a todos los archivos. Las reglas con alcance de ruta se activan cuando Claude lee archivos que coinciden con el patrón, no en cada uso de herramienta. A partir de v2.1.198, la coincidencia también funciona cuando Claude alcanza un archivo a través de una ruta enlazada simbólicamente al directorio del proyecto, por ejemplo en un checkout enlazado simbólicamente.235Las reglas sin un campo `paths` se cargan incondicionalmente y se aplican a todos los archivos. Las reglas con alcance de ruta se activan cuando Claude lee archivos que coinciden con el patrón, no en cada uso de herramienta. La coincidencia también funciona cuando Claude llega a un archivo a través de una ruta enlazada simbólicamente al directorio del proyecto, por ejemplo en un checkout enlazado simbólicamente.

236 236 

237Use patrones glob en el campo `paths` para hacer coincidir archivos por extensión, directorio o cualquier combinación:237Usa patrones glob en el campo `paths` para hacer coincidir archivos por extensión, directorio o cualquier combinación:

238 238 

239| Patrón | Coincide |239| Patrón | Coincide con |

240| - | - |240| - | - |

241| `**/*.ts` | Todos los archivos TypeScript en cualquier directorio |241| `**/*.ts` | Todos los archivos TypeScript en cualquier directorio |

242| `src/**/*` | Todos los archivos bajo el directorio `src/` |242| `src/**/*` | Todos los archivos bajo el directorio `src/` |

243| `*.md` | Archivos Markdown en la raíz del proyecto |243| `*.md` | Archivos Markdown en la raíz del proyecto |

244| `src/components/*.tsx` | Componentes React en un directorio específico |244| `src/components/*.tsx` | Componentes React en un directorio específico |

245 245 

246Puede especificar múltiples patrones y usar expansión de llaves para hacer coincidir múltiples extensiones en un patrón:246Puedes especificar múltiples patrones y usar expansión de llaves para hacer coincidir múltiples extensiones en un solo patrón:

247 247 

248```markdown theme={null}248```markdown theme={null}

249---249---


254---254---

255```255```

256 256 

257Cada grupo de llaves multiplica el número de patrones expandidos: `src/*.{ts,tsx}` se expande a dos patrones, y `{a,b}/{c,d}/*.{ts,tsx}` a ocho. Para mantener la expansión acotada, la lista `paths` completa de una regla comparte un presupuesto de 1.000 patrones expandidos y 4 MiB, y los patrones sin llaves no cuentan contra él.257Cada grupo de llaves multiplica el número de patrones expandidos: `src/*.{ts,tsx}` se expande a dos patrones, y `{a,b}/{c,d}/*.{ts,tsx}` a ocho. Para mantener la expansión acotada, toda la lista `paths` de una regla comparte un único presupuesto de 1.000 patrones expandidos y 4 MiB, y los patrones sin llaves no cuentan contra él.

258 258 

259Claude Code usa cualquier patrón que excedería el presupuesto sin expandir, y sus llaves literales no coinciden con ningún archivo. Antes de v2.1.217, un valor `paths` con muchos grupos de llaves detenía o bloqueaba la CLI al iniciar.259Claude Code usa sin expandir cualquier patrón que excedería el presupuesto, y sus llaves literales no coinciden con ningún archivo. Antes de v2.1.217, un valor `paths` con muchos grupos de llaves detenía o bloqueaba la CLI al iniciar.

260 260 

261La sintaxis Glob trata `[` como el inicio de una expresión de corchetes como `[abc]`. Un patrón con un `[` que no se puede leer como una expresión de corchetes, como `photos [2024/**`, es inválido: no coincide con nada, y los otros patrones de la regla siguen funcionando. Para hacer coincidir un `[` literal en un nombre de archivo, escápelo como `photos \[2024/**`. Antes de v2.1.207, un patrón inválido hacía que la herramienta Read fallara para cada archivo contra el cual se evaluaba la regla, en lugar de no coincidir con nada.261La sintaxis glob trata `[` como el inicio de una expresión de corchetes como `[abc]`. Un patrón con un `[` que no se puede leer como expresión de corchetes, como `photos [2024/**`, es inválido: no coincide con nada, y los demás patrones de la regla siguen funcionando. Para hacer coincidir un `[` literal en un nombre de archivo, escápalo como `photos \[2024/**`. Antes de v2.1.207, un patrón inválido hacía que la herramienta Read fallara para cada archivo contra el que se evaluaba la regla, en lugar de no coincidir con nada.

262 262 

263<h4 id="rules-frontmatter-reference">263<h4 id="rules-frontmatter-reference">

264 Referencia de frontmatter de reglas264 Referencia de frontmatter de reglas

265</h4>265</h4>

266 266 

267Configure una regla con [frontmatter](/docs/es/glossary#frontmatter) YAML entre marcadores `---` en la parte superior del archivo. `paths` es el único campo que Claude Code lee de una regla; cualquier otro campo se ignora sin un error. Claude Code elimina el frontmatter antes de cargar la regla en contexto.267Configura una regla con [frontmatter](/docs/es/glossary#frontmatter) YAML entre marcadores `---` en la parte superior del archivo. `paths` es el único campo que Claude Code lee de una regla; cualquier otro campo se ignora sin error. Claude Code elimina el frontmatter antes de cargar la regla en contexto.

268 268 

269| Campo | Requerido | Descripción |269| Campo | Requerido | Descripción |

270| :- | :- | :- |270| :- | :- | :- |

271| `paths` | No | Patrones glob que [limitan la regla a archivos coincidentes](#path-specific-rules). Acepta una lista YAML o una cadena separada por comas |271| `paths` | No | Patrones glob que [limitan la regla a los archivos coincidentes](#path-specific-rules). Acepta una lista YAML o una cadena separada por comas |

272 272 

273Si el YAML entre los marcadores no se analiza, Claude Code ignora el frontmatter y carga la regla como si no tuviera `paths`. Ejecute `claude --debug` para ver el error de análisis.273Si el YAML entre los marcadores no se puede analizar, Claude Code ignora el frontmatter y carga la regla como si no tuviera `paths`. Ejecuta `claude --debug` para ver el error de análisis.

274 274 

275<h4 id="share-rules-across-projects-with-symlinks">275<h4 id="share-rules-across-projects-with-symlinks">

276 Comparta reglas entre proyectos con enlaces simbólicos276 Comparte reglas entre proyectos con enlaces simbólicos

277</h4>277</h4>

278 278 

279El directorio `.claude/rules/` admite enlaces simbólicos, por lo que puede mantener un conjunto compartido de reglas y vincularlas en múltiples proyectos. Los enlaces simbólicos circulares se detectan y se manejan correctamente.279El directorio `.claude/rules/` admite enlaces simbólicos, por lo que puedes mantener un conjunto compartido de reglas y enlazarlas en múltiples proyectos. Los enlaces simbólicos circulares se detectan y se manejan correctamente.

280 280 

281Claude Code trata un enlace simbólico cuyo destino está fuera de su directorio de trabajo como una [importación externa](#import-additional-files). Las reglas vinculadas no se cargan hasta que apruebe importaciones externas para el proyecto, y después de eso solo se cargan las que no tienen un [campo `paths`](#path-specific-rules). Claude Code solo solicita esa aprobación cuando un archivo de memoria de proyecto importa un archivo fuera del directorio de trabajo con `@path`, no para enlaces simbólicos solos. Para cargar reglas compartidas sin esa aprobación, manténgalas en [`~/.claude/rules/`](#user-level-rules), donde se aplican a cada proyecto en su máquina.281Claude Code trata un enlace simbólico cuyo destino está fuera de tu directorio de trabajo como una [importación externa](#import-additional-files). Las reglas enlazadas no se cargan hasta que apruebes las importaciones externas para el proyecto, y después de eso solo se cargan las que no tienen un [campo `paths`](#path-specific-rules). Claude Code solo solicita esa aprobación cuando un archivo de memoria de proyecto importa con `@path` un archivo fuera del directorio de trabajo, no por los enlaces simbólicos por sí solos. Para cargar reglas compartidas sin esa aprobación, mantenlas en [`~/.claude/rules/`](#user-level-rules), donde se aplican a cada proyecto en tu máquina.

282 282 

283Este ejemplo vincula tanto un directorio compartido como un archivo individual:283Este ejemplo enlaza tanto un directorio compartido como un archivo individual:

284 284 

285```bash theme={null}285```bash theme={null}

286ln -s ~/shared-claude-rules .claude/rules/shared286ln -s ~/shared-claude-rules .claude/rules/shared

287ln -s ~/company-standards/security.md .claude/rules/security.md287ln -s ~/company-standards/security.md .claude/rules/security.md

288```288```

289 289 

290Si apunta un enlace simbólico `.claude/rules/` o `CLAUDE.md` a una ruta de red como el recurso compartido UNC `\\server\share` o una ruta bajo `/net` o `/Network`, las instrucciones vinculadas no se cargan. Claude Code no sigue el enlace, porque buscar tal ruta puede contactar al host que nombra. Las rutas `\\wsl$` no cuentan como rutas de red.290Si apuntas un enlace simbólico de `.claude/rules/` o `CLAUDE.md` a una ruta de red, como el recurso compartido UNC `\\server\share` o una ruta bajo `/net` o `/Network`, las instrucciones enlazadas no se cargan. Claude Code no sigue el enlace, porque buscar una ruta así puede contactar al host que nombra. Las rutas `\\wsl$` no cuentan como rutas de red.

291 291 

292<h4 id="user-level-rules">292<h4 id="user-level-rules">

293 Reglas a nivel de usuario293 Reglas a nivel de usuario

294</h4>294</h4>

295 295 

296Las reglas personales en `~/.claude/rules/` se aplican a cada proyecto en su máquina. Úselas para preferencias que no son específicas del proyecto:296Las reglas personales en `~/.claude/rules/` se aplican a cada proyecto en tu máquina. Úsalas para preferencias que no son específicas de un proyecto:

297 297 

298```text theme={null}298```text theme={null}

299~/.claude/rules/299~/.claude/rules/

300├── preferences.md # Sus preferencias personales de codificación300├── preferences.md # Tus preferencias personales de codificación

301└── workflows.md # Sus flujos de trabajo preferidos301└── workflows.md # Tus flujos de trabajo preferidos

302```302```

303 303 

304Claude Code carga reglas a nivel de usuario antes que reglas de proyecto, por lo que una regla de proyecto aparece más tarde en el contexto de Claude que una regla de usuario. Ninguno de los dos conjuntos anula al otro: si una regla de usuario y una regla de proyecto entran en conflicto, Claude puede seguir cualquiera de ellas, por lo que mantenga los dos consistentes.304Claude Code carga las reglas a nivel de usuario antes que las reglas de proyecto, por lo que una regla de proyecto aparece más tarde en el contexto de Claude que una regla de usuario. Ningún conjunto sobrescribe al otro: si una regla de usuario y una regla de proyecto entran en conflicto, Claude puede seguir cualquiera de las dos, así que mantén ambas consistentes.

305 305 

306<h3 id="manage-claude-md-for-large-teams">306<h3 id="manage-claude-md-for-large-teams">

307 Administre CLAUDE.md para equipos grandes307 Administra CLAUDE.md para equipos grandes

308</h3>308</h3>

309 309 

310Para organizaciones que implementan Claude Code en equipos, puede centralizar instrucciones y controlar qué archivos CLAUDE.md se cargan.310Para organizaciones que implementan Claude Code en varios equipos, puedes centralizar las instrucciones y controlar qué archivos CLAUDE.md se cargan.

311 311 

312<h4 id="deploy-organization-wide-claude-md">312<h4 id="deploy-organization-wide-claude-md">

313 Implemente CLAUDE.md en toda la organización313 Implementa un CLAUDE.md para toda la organización

314</h4>314</h4>

315 315 

316Las organizaciones pueden implementar un CLAUDE.md administrado centralmente que se aplique a todos los usuarios en una máquina. Este archivo no puede ser excluido por configuraciones individuales.316Las organizaciones pueden implementar un CLAUDE.md administrado centralmente que se aplique a todos los usuarios de una máquina. Este archivo no puede excluirse mediante la configuración individual.

317 317 

318<Steps>318<Steps>

319 <Step title="Cree el archivo en la ubicación de política administrada">319 <Step title="Crea el archivo en la ubicación de política administrada">

320 * macOS: `/Library/Application Support/ClaudeCode/CLAUDE.md`320 * macOS: `/Library/Application Support/ClaudeCode/CLAUDE.md`

321 * Linux y WSL: `/etc/claude-code/CLAUDE.md`321 * Linux y WSL: `/etc/claude-code/CLAUDE.md`

322 * Windows: `C:\Program Files\ClaudeCode\CLAUDE.md`322 * Windows: `C:\Program Files\ClaudeCode\CLAUDE.md`

323 </Step>323 </Step>

324 324 

325 <Step title="Implemente con su sistema de gestión de configuración">325 <Step title="Impleméntalo con tu sistema de gestión de configuración">

326 Use MDM, Group Policy, Ansible o herramientas similares para distribuir el archivo en máquinas de desarrolladores. Consulte [configuración administrada](/docs/es/managed-settings) para otras opciones de configuración de toda la organización.326 Usa MDM, Group Policy, Ansible o herramientas similares para distribuir el archivo en las máquinas de los desarrolladores. Consulta [configuración administrada](/docs/es/managed-settings) para conocer otras opciones de configuración para toda la organización.

327 </Step>327 </Step>

328</Steps>328</Steps>

329 329 

330La clave `claudeMd` le permite poner contenido CLAUDE.md administrado directamente dentro de `managed-settings.json` en lugar de implementar un archivo separado.330La clave `claudeMd` te permite poner contenido de CLAUDE.md administrado directamente dentro de `managed-settings.json` en lugar de implementar un archivo separado.

331 331 

332**Alcance**: cada sesión de Claude Code en la máquina, en cada repositorio. Para orientación específica del repositorio, confirme un CLAUDE.md de proyecto en su lugar.332**Alcance**: cada sesión de Claude Code en la máquina, en cada repositorio. Para orientación específica de un repositorio, haz commit de un CLAUDE.md de proyecto en su lugar.

333 333 

334**Precedencia**: igual que un archivo CLAUDE.md administrado. Se carga antes que CLAUDE.md de usuario y proyecto.334**Precedencia**: la misma que un archivo CLAUDE.md administrado. Se carga antes que los CLAUDE.md de usuario y de proyecto.

335 335 

336**Dónde se respeta**: solo configuración administrada y de política. Configurar `claudeMd` en configuración de usuario, proyecto o local no tiene efecto.336**Dónde se respeta**: solo en la configuración administrada y de política. Establecer `claudeMd` en la configuración de usuario, de proyecto o local no tiene efecto.

337 337 

338El ejemplo a continuación agrega instrucciones de comportamiento directamente en un archivo de configuración administrada:338El ejemplo a continuación agrega instrucciones de comportamiento directamente en un archivo de configuración administrada:

339 339 


343}343}

344```344```

345 345 

346Un CLAUDE.md administrado y [configuración administrada](/docs/es/managed-settings) sirven para propósitos diferentes. Use configuración para aplicación técnica y CLAUDE.md para orientación de comportamiento:346Un CLAUDE.md administrado y la [configuración administrada](/docs/es/managed-settings) sirven para propósitos diferentes. Usa la configuración para la aplicación técnica y CLAUDE.md para la orientación de comportamiento:

347 347 

348| Preocupación | Configurar en |348| Aspecto | Configurar en |

349| :- | :- |349| :- | :- |

350| Bloquear herramientas, comandos o rutas de archivo específicas | Configuración administrada: `permissions.deny` |350| Bloquear herramientas, comandos o rutas de archivo específicos | Configuración administrada: `permissions.deny` |

351| Aplicar aislamiento de sandbox | Configuración administrada: `sandbox.enabled` |351| Aplicar el aislamiento del sandbox | Configuración administrada: `sandbox.enabled` |

352| Variables de entorno y enrutamiento de proveedores de API | Configuración administrada: `env` |352| Variables de entorno y enrutamiento de proveedores de API | Configuración administrada: `env` |

353| Método de inicio de sesión y restricciones de organización | Configuración administrada: `forceLoginMethod`, `forceLoginOrgUUID` |353| Método de inicio de sesión y restricciones de organización | Configuración administrada: `forceLoginMethod`, `forceLoginOrgUUID` |

354| Directrices de estilo de código y calidad | CLAUDE.md administrado |354| Directrices de estilo y calidad de código | CLAUDE.md administrado |

355| Recordatorios de manejo de datos y cumplimiento | CLAUDE.md administrado |355| Recordatorios de manejo de datos y cumplimiento | CLAUDE.md administrado |

356| Instrucciones de comportamiento para Claude | CLAUDE.md administrado |356| Instrucciones de comportamiento para Claude | CLAUDE.md administrado |

357 357 

358Las reglas de configuración se aplican por el cliente independientemente de lo que Claude decida hacer. Las instrucciones CLAUDE.md moldean el comportamiento de Claude pero no son una capa de aplicación forzada.358El cliente aplica las reglas de la configuración independientemente de lo que Claude decida hacer. Las instrucciones de CLAUDE.md moldean el comportamiento de Claude, pero no son una capa de aplicación estricta.

359 359 

360<h4 id="exclude-specific-claude-md-files">360<h4 id="exclude-specific-claude-md-files">

361 Excluya archivos CLAUDE.md específicos361 Excluye archivos CLAUDE.md específicos

362</h4>362</h4>

363 363 

364En monorepos grandes, los archivos CLAUDE.md ancestros pueden contener instrucciones que no son relevantes para su trabajo. La configuración `claudeMdExcludes` le permite omitir archivos específicos por ruta o patrón glob.364En monorepos grandes, los archivos CLAUDE.md de directorios superiores pueden contener instrucciones que no son relevantes para tu trabajo. El ajuste `claudeMdExcludes` te permite omitir archivos específicos por ruta o patrón glob.

365 365 

366Este ejemplo excluye un CLAUDE.md de nivel superior y un directorio de reglas de una carpeta principal. Agréguelo a `.claude/settings.local.json` para que la exclusión permanezca local en su máquina:366Este ejemplo excluye un CLAUDE.md de nivel superior y un directorio de reglas de una carpeta principal. Agrégalo a `.claude/settings.local.json` para que la exclusión se mantenga local en tu máquina:

367 367 

368```json theme={null}368```json theme={null}

369{369{


374}374}

375```375```

376 376 

377Los patrones se comparan contra rutas de archivo absolutas usando sintaxis glob. Puede configurar `claudeMdExcludes` en cualquier [capa de configuración](/docs/es/settings#where-settings-live): usuario, proyecto, local o política administrada. Los arreglos se fusionan entre capas.377Los patrones se comparan con rutas de archivo absolutas usando sintaxis glob. Puedes configurar `claudeMdExcludes` en cualquier [capa de configuración](/docs/es/settings#where-settings-live): usuario, proyecto, local o política administrada. Los arreglos se combinan entre capas.

378 378 

379Para excluir un archivo de reglas que alcanza a través de un [enlace simbólico](#share-rules-across-projects-with-symlinks), ya sea que el archivo o su directorio sea el enlace, escriba el patrón contra cualquiera de las rutas: la ruta del archivo bajo `.claude/rules/` o su destino de enlace. Un patrón que coincida con cualquiera de las rutas excluye el archivo. Antes de v2.1.239, solo un patrón que coincidiera con el destino del enlace excluía el archivo.379Para excluir un archivo de reglas al que llegas a través de un [enlace simbólico](#share-rules-across-projects-with-symlinks), ya sea que el enlace sea el archivo o su directorio, escribe el patrón contra cualquiera de las dos rutas: la ruta del archivo bajo `.claude/rules/` o el destino del enlace. Un patrón que coincida con cualquiera de las dos rutas excluye el archivo. Antes de v2.1.239, solo un patrón que coincidiera con el destino del enlace excluía el archivo.

380 380 

381Los archivos CLAUDE.md de política administrada no pueden ser excluidos. Esto asegura que las instrucciones de toda la organización siempre se apliquen independientemente de la configuración individual.381Los archivos CLAUDE.md de política administrada no pueden excluirse. Esto garantiza que las instrucciones de toda la organización siempre se apliquen, independientemente de la configuración individual.

382 382 

383<h2 id="agents-md">383<h2 id="agents-md">

384 AGENTS.md384 AGENTS.md


538 Habilitar o deshabilitar auto memory538 Habilitar o deshabilitar auto memory

539</h3>539</h3>

540 540 

541Auto memory está habilitado de forma predeterminada. Para alternarlo, abra `/memory` en una sesión y use el botón de alternancia de auto memory, que guarda `autoMemoryEnabled` en la configuración de usuario en `~/.claude/settings.json`. Para desactivarlo en un único proyecto, establezca `autoMemoryEnabled` en la configuración de ese proyecto:541La memoria automática está habilitada de forma predeterminada en las sesiones locales. Fuera de las sesiones de [Claude Tag](https://claude.com/docs/claude-tag/overview), una sesión en un [entorno autoalojado](/docs/es/self-hosted-environments-configuration#how-each-session’s-config-is-assembled) se ejecuta con la memoria automática desactivada de forma predeterminada.

542 

543Para alternarla, abre `/memory` en una sesión y usa el botón de alternancia de la memoria automática, que guarda `autoMemoryEnabled` en tu configuración de usuario en `~/.claude/settings.json`. Para desactivarla en un único proyecto, establece `autoMemoryEnabled` en la configuración de ese proyecto:

542 544 

543```json theme={null}545```json theme={null}

544{546{

Details

26 26 

27`claude plugins` es un alias para `claude plugin`.27`claude plugins` es un alias para `claude plugin`.

28 28 

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

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. `configure` toma solo 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* **Alcances**: `--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">

36 plugin init36 plugin init


70 70 

71* Un valor desconocido de `--with`71* Un valor desconocido de `--with`

72* Un scaffold existente en el destino sin `--force`72* Un scaffold existente en el destino sin `--force`

73* Una configuración gestionada que bloquea plugins de directorio de skills73* Una configuración administrada que bloquea plugins de directorio de skills

74 74 

75<h3 id="plugin-install">75<h3 id="plugin-install">

76 plugin install76 plugin install


82claude plugin install <plugin> [options]82claude plugin install <plugin> [options]

83```83```

84 84 

85La mayoría de los plugins se instalan sin un aviso. Para un plugin cuya entrada de marketplace [ejecuta un comando para instalarlo](/docs/es/plugins/host-marketplace) o [establece un `headersHelper` para su descarga](/docs/es/plugins/host-marketplace#how-users-accept-a-headershelper-command), Claude Code primero imprime el comando y pregunta `Run this command now? [y/N]`.85La mayoría de los plugins se instalan sin una solicitud. Para un plugin cuya entrada de marketplace [ejecuta un comando para instalarlo](/docs/es/plugins/host-marketplace) o [establece un `headersHelper` para su descarga](/docs/es/plugins/host-marketplace#how-users-accept-a-headershelper-command), Claude Code primero imprime el comando y pregunta `Run this command now? [y/N]`.

86 86 

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>` | Alcance 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. 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 |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 la solicitud `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 |

94 94 

95Ejecuta `claude plugin install --help` en tu shell para ver todas las opciones que tu versión soporta.95Ejecuta `claude plugin install --help` en tu shell para ver todas las opciones que tu versión soporta.

96 96 

97Pasa `-y` desde tu propia terminal para aceptar el comando mostrado sin el aviso. Aquí está lo que sucede sin un TTY y cuando Claude ejecuta el comando:97Pasa `-y` desde tu propia terminal para aceptar el comando mostrado sin la solicitud. Aquí está lo que sucede sin un TTY y cuando Claude ejecuta el comando:

98 98 

99* **stdin o stdout no es un TTY, y no pasas ni `-y` ni `--accept-command`**: la instalación se rechaza. La salida dice que el comando solo se mostró, y el código de salida es `1`99* **stdin o stdout no es un TTY, y no pasas ni `-y` ni `--accept-command`**: la instalación se rechaza. La salida dice que el comando solo se mostró, y el código de salida es `1`

100* **Claude ejecuta el comando a través de su herramienta Bash**: `-y` se ignora. Ejecuta el comando desde tu propia terminal en su lugar100* **Claude ejecuta el comando a través de su herramienta Bash**: `-y` se ignora. Ejecuta el comando desde tu propia terminal en su lugar


107 107 

108Claude Code imprime `Successfully installed plugin: formatter@my-marketplace (scope: project)`. Cuando nada nuevo se instala, la salida dice por qué:108Claude Code imprime `Successfully installed plugin: formatter@my-marketplace (scope: project)`. Cuando nada nuevo se instala, la salida dice por qué:

109 109 

110* **Ya instalado en ese ámbito**: la salida es `Plugin "formatter@my-marketplace" is already installed (scope: project)` y el código de salida es `0`110* **Ya instalado en ese alcance**: la salida es `Plugin "formatter@my-marketplace" is already installed (scope: project)` y el código de salida es `0`

111* **Rechazas un aviso de origen de comando**: la salida es `Aborted.` y el código de salida es `1`111* **Rechazas una solicitud de origen de comando**: la salida es `Aborted.` y el código de salida es `1`

112* **Rechazas un aviso de `headersHelper`, o no se puede confirmar sin un TTY**: la salida es `Aborted — the command was not run.` y el código de salida es `1`112* **Rechazas una solicitud de `headersHelper`, o no se puede confirmar sin un TTY**: la salida es `Aborted — the command was not run.` y el código de salida es `1`

113 113 

114<h4 id="plugin-json-result">114<h4 id="plugin-json-result">

115 Formato de resultado JSON115 Formato de resultado JSON


125 125 

126Otros campos, como `pluginId`, `scope` y `failureCode`, aparecen solo cuando aplican.126Otros campos, como `pluginId`, `scope` y `failureCode`, aparecen solo cuando aplican.

127 127 

128La opción `--json` en `plugin uninstall`, `plugin update`, `plugin enable` y `plugin disable` imprime el mismo objeto con los campos propios de ese subcomando.

129 

128Un error de uso, como un `--scope` inválido, no imprime ninguna línea de resultado y sale con `1` con la razón en stderr.130Un error de uso, como un `--scope` inválido, no imprime ninguna línea de resultado y sale con `1` con la razón en stderr.

129 131 

130<h4 id="accept-a-displayed-install-command">132<h4 id="accept-a-displayed-install-command">


143 plugin uninstall145 plugin uninstall

144</h3>146</h3>

145 147 

146Elimina un plugin instalado de un ámbito. `remove` y `rm` son alias para `uninstall`.148Elimina un plugin instalado de un alcance. `remove` y `rm` son alias para `uninstall`.

147 149 

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

149claude plugin uninstall <plugin> [options]151claude plugin uninstall <plugin> [options]


151 153 

152| Bandera | Descripción |154| Bandera | Descripción |

153| :- | :- |155| :- | :- |

154| `-s, --scope <scope>` | Desinstala del ámbito: `user`, `project` o `local`. Por defecto es `user` |156| `-s, --scope <scope>` | Desinstala del alcance: `user`, `project` o `local`. Por defecto es `user` |

155| `--keep-data` | Preserva el directorio de datos persistentes del plugin, `~/.claude/plugins/data/<id>/` |157| `--keep-data` | Preserva el directorio de datos persistentes del plugin, `~/.claude/plugins/data/<id>/` |

156| `--prune` | También elimina [dependencias](/docs/es/plugins/dependencies) auto-instaladas que ningún plugin restante necesita |158| `--prune` | También elimina [dependencias](/docs/es/plugins/dependencies) auto-instaladas que ningún plugin restante necesita |

157| `-y, --yes` | Omite el aviso de confirmación de `--prune`. Requerido con `--prune` cuando stdin o stdout no es un TTY |159| `-y, --yes` | Omite la solicitud de confirmación de `--prune`. Requerido con `--prune` cuando stdin o stdout no es un TTY |

158| `--json` | Imprime el resultado como un objeto JSON en la última línea de stdout, en el [mismo formato que `plugin install --json`](#plugin-json-result). No se puede combinar con `--prune`. Requiere Claude Code v2.1.268 o posterior |160| `--json` | Imprime el resultado como un objeto JSON en la última línea de stdout, en el [mismo formato que `plugin install --json`](#plugin-json-result). No se puede combinar con `--prune`. Requiere Claude Code v2.1.268 o posterior |

159 161 

160Desinstala un plugin del ámbito del proyecto:162Desinstala un plugin del alcance del proyecto:

161 163 

162```bash theme={null}164```bash theme={null}

163claude plugin uninstall formatter@my-marketplace --scope project165claude plugin uninstall formatter@my-marketplace --scope project

164```166```

165 167 

166Claude Code imprime `Successfully uninstalled plugin: formatter (scope: project)`. Cuando el plugin no está instalado en ese ámbito, el comando imprime una línea que comienza con `Failed to uninstall plugin "formatter@my-marketplace":` y sale con `1`.168Claude Code imprime `Successfully uninstalled plugin: formatter (scope: project)`. Cuando el plugin no está instalado en ese alcance, el comando imprime una línea que comienza con `Failed to uninstall plugin "formatter@my-marketplace":` y sale con `1`.

167 169 

168Si la línea de fallo continúa con `"formatter" was not uninstalled:` y nombra un archivo de configuración, Claude Code no pudo confirmar que la configuración del ámbito ya no activa el plugin, por lo que el plugin permanece instalado con todo lo que guardó. Con `--json`, el resultado lleva `failureCode: "settings_still_on"`. Esta verificación de configuración requiere Claude Code v2.1.282 o posterior.170Si la línea de fallo continúa con `"formatter" was not uninstalled:` y nombra un archivo de configuración, Claude Code no pudo confirmar que la configuración del alcance ya no activa el plugin, por lo que el plugin permanece instalado con todo lo que guardó. Con `--json`, el resultado lleva `failureCode: "settings_still_on"`. Esta verificación de configuración requiere Claude Code v2.1.282 o posterior.

169 171 

170<h4 id="what-an-uninstall-deletes-and-keeps">172<h4 id="what-an-uninstall-deletes-and-keeps">

171 Qué elimina y qué conserva una desinstalación173 Qué elimina y qué conserva una desinstalación

172</h4>174</h4>

173 175 

174Cuando desinstales un plugin del último ámbito en el que está instalado, Claude Code también elimina las [opciones y secretos](/docs/es/plugins/manifest-reference#user-configuration) almacenados del plugin y su directorio de datos, `~/.claude/plugins/data/<id>/`. Hay tres excepciones:176Cuando desinstales un plugin del último alcance en el que está instalado, Claude Code también elimina las [opciones y secretos](/docs/es/plugins/manifest-reference#user-configuration) almacenados del plugin y su directorio de datos, `~/.claude/plugins/data/<id>/`. Hay tres excepciones:

175 177 

176* Con `--keep-data`, el directorio de datos permanece178* Con `--keep-data`, el directorio de datos permanece

177* Cuando otro plugin instalado usa la misma carpeta, como uno cuyo ID difiere de este solo en mayúsculas, el directorio de datos permanece179* Cuando otro plugin instalado usa la misma carpeta, como uno cuyo ID difiere de este solo en mayúsculas, el directorio de datos permanece

178* Cuando Claude Code no puede leer la lista de plugins instalados después de eliminar el plugin de ese ámbito, las opciones, secretos y directorio de datos todos permanecen, porque el plugin puede estar aún instalado en otro ámbito. La desinstalación aún tiene éxito. El mensaje lista lo que permaneció y cómo eliminarlo, y con `--json` el resultado lleva `savedKept: "install_records_unreadable"`180* Cuando Claude Code no puede leer la lista de plugins instalados después de eliminar el plugin de ese alcance, las opciones, secretos y directorio de datos todos permanecen, porque el plugin puede estar aún instalado en otro alcance. La desinstalación aún tiene éxito. El mensaje lista lo que permaneció y cómo eliminarlo, y con `--json` el resultado lleva `savedKept: "install_records_unreadable"`

179 181 

180Con `--json`, `keptData` reporta si el directorio permaneció, y `/plugin` muestra `· data preserved` cuando lo hizo. Para un directorio que permanece sin `--keep-data`, este reporte requiere Claude Code v2.1.281 o posterior. El campo `savedKept` requiere Claude Code v2.1.282 o posterior.182Con `--json`, `keptData` reporta si el directorio permaneció, y `/plugin` muestra `· data preserved` cuando lo hizo. Para un directorio que permanece sin `--keep-data`, este reporte requiere Claude Code v2.1.281 o posterior. El campo `savedKept` requiere Claude Code v2.1.282 o posterior.

181 183 


191 193 

192| Bandera | Descripción |194| Bandera | Descripción |

193| :- | :- |195| :- | :- |

194| `-s, --scope <scope>` | Ámbito para habilitar: `user`, `project` o `local`. Se auto-detecta cuando se omite |196| `-s, --scope <scope>` | Alcance para habilitar: `user`, `project` o `local`. Se auto-detecta cuando se omite |

195| `--json` | Imprime el resultado como un objeto JSON en la última línea de stdout, en el [mismo formato que `plugin install --json`](#plugin-json-result). Requiere Claude Code v2.1.268 o posterior |197| `--json` | Imprime el resultado como un objeto JSON en la última línea de stdout, en el [mismo formato que `plugin install --json`](#plugin-json-result). Requiere Claude Code v2.1.268 o posterior |

196 198 

197Sin `--scope`, el comando verifica tus archivos de configuración en el orden local, proyecto, usuario, y usa el primer ámbito que menciona el plugin.199Sin `--scope`, el comando verifica tus archivos de configuración en el orden local, proyecto, usuario, y usa el primer alcance que menciona el plugin.

198 200 

199Si pasas un `--scope` donde el plugin no está declarado, el comando escribe una anulación o falla:201Si pasas un `--scope` donde el plugin no está declarado, el comando escribe una sobrescritura o falla:

200 202 

201* **Un ámbito que [tiene precedencia](/docs/es/plugins/loading) sobre el que lo declara**: Claude Code escribe una anulación en el ámbito que pasaste. Por ejemplo, `claude plugin disable formatter --scope local` desactiva un plugin habilitado en el proyecto solo para ti203* **Un alcance que [tiene precedencia](/docs/es/plugins/loading) sobre el que lo declara**: Claude Code escribe una sobrescritura en el alcance que pasaste. Por ejemplo, `claude plugin disable formatter --scope local` desactiva un plugin habilitado en el proyecto solo para ti

202* **Cualquier otro ámbito**: el comando falla con `Plugin "formatter" is installed at project scope, not user. Use --scope project or omit --scope to auto-detect.`204* **Cualquier otro alcance**: el comando falla con `Plugin "formatter" is installed at project scope, not user. Use --scope project or omit --scope to auto-detect.`

203 205 

204Si el plugin ya está habilitado en el ámbito resuelto, el comando imprime `Plugin "formatter" is already enabled` y sale con `1`. Con `--json`, el resultado tiene `"failureCode": "already_in_goal_state"` y `"alreadyInGoalState": true`, para que un script pueda tratar ese caso como éxito.206Si el plugin ya está habilitado en el alcance resuelto, el comando imprime `Plugin "formatter" is already enabled` y sale con `1`. Con `--json`, el resultado tiene `"failureCode": "already_in_goal_state"` y `"alreadyInGoalState": true`, para que un script pueda tratar ese caso como éxito.

205 207 

206Cuando el plugin declara [dependencias](/docs/es/plugins/dependencies), Claude Code también las habilita. El comando falla en estos casos:208Cuando el plugin declara [dependencias](/docs/es/plugins/dependencies), Claude Code también las habilita. El comando falla en estos casos:

207 209 

208* **Una dependencia no está instalada**: enable falla e imprime el comando `claude plugin install` para cada dependencia faltante210* **Una dependencia no está instalada**: enable falla e imprime el comando `claude plugin install` para cada dependencia faltante

209* **Una dependencia está bloqueada por la política de plugins de tu organización**: enable falla y nombra la dependencia bloqueada211* **Una dependencia está bloqueada por la política de plugins de tu organización**: enable falla y nombra la dependencia bloqueada

210* **Una dependencia está establecida en `false` en un ámbito con mayor precedencia que el ámbito de destino**: enable falla. Habilita la dependencia en ese ámbito, o pasa `--scope` para escribir allí212* **Una dependencia está establecida en `false` en un alcance con mayor precedencia que el alcance de destino**: enable falla. Habilita la dependencia en ese alcance, o pasa `--scope` para escribir allí

211 213 

212Vuelve a habilitar un plugin dondequiera que esté declarado:214Vuelve a habilitar un plugin dondequiera que esté declarado:

213 215 


215claude plugin enable formatter217claude plugin enable formatter

216```218```

217 219 

218Claude Code imprime `Successfully enabled plugin: formatter (scope: project)`, nombrando el ámbito que detectó.220Claude Code imprime `Successfully enabled plugin: formatter (scope: project)`, nombrando el alcance que detectó.

219 221 

220<h3 id="plugin-disable">222<h3 id="plugin-disable">

221 plugin disable223 plugin disable


230| Bandera | Descripción |232| Bandera | Descripción |

231| :- | :- |233| :- | :- |

232| `-a, --all` | Deshabilita cada plugin habilitado. No se puede combinar con un nombre de plugin o `--scope` |234| `-a, --all` | Deshabilita cada plugin habilitado. No se puede combinar con un nombre de plugin o `--scope` |

233| `-s, --scope <scope>` | Ámbito para deshabilitar: `user`, `project` o `local`. Se auto-detecta cuando se omite |235| `-s, --scope <scope>` | Alcance para deshabilitar: `user`, `project` o `local`. Se auto-detecta cuando se omite |

234| `--json` | Imprime el resultado como un objeto JSON en la última línea de stdout, en el [mismo formato que `plugin install --json`](#plugin-json-result). Requiere Claude Code v2.1.268 o posterior |236| `--json` | Imprime el resultado como un objeto JSON en la última línea de stdout, en el [mismo formato que `plugin install --json`](#plugin-json-result). Requiere Claude Code v2.1.268 o posterior |

235 237 

236Sin `--scope`, el ámbito se auto-detecta en el mismo orden local, proyecto, usuario que [`plugin enable`](#plugin-enable).238Sin `--scope`, el alcance se auto-detecta en el mismo orden local, proyecto, usuario que [`plugin enable`](#plugin-enable).

237 239 

238Si no pasas ni un nombre de plugin ni `--all`, Claude Code imprime `Please specify a plugin name or use --all to disable all plugins` y sale con `1`. Deshabilitar un plugin que ya está deshabilitado imprime `Plugin "formatter" is already disabled` y sale con `1`, como [`plugin enable`](#plugin-enable) hace para un plugin ya habilitado.240Si no pasas ni un nombre de plugin ni `--all`, Claude Code imprime `Please specify a plugin name or use --all to disable all plugins` y sale con `1`. Deshabilitar un plugin que ya está deshabilitado imprime `Plugin "formatter" is already disabled` y sale con `1`, como [`plugin enable`](#plugin-enable) hace para un plugin ya habilitado.

239 241 


262 264 

263| Bandera | Descripción |265| Bandera | Descripción |

264| :- | :- |266| :- | :- |

265| `-s, --scope <scope>` | Ámbito a actualizar: `user`, `project`, `local` o `managed`. Se auto-detecta cuando se omite |267| `-s, --scope <scope>` | Alcance a actualizar: `user`, `project`, `local` o `managed`. Se auto-detecta cuando se omite |

266| `-y, --yes` | Acepta un comando de instalación cambiado de un plugin [command-source](/docs/es/plugins/host-marketplace), sin el aviso. Requerido cuando stdin o stdout no es un TTY, a menos que pases `--accept-command`. Requiere Claude Code v2.1.229 o posterior |268| `-y, --yes` | Acepta un comando de instalación cambiado de un plugin [command-source](/docs/es/plugins/host-marketplace), sin la solicitud. Requerido cuando stdin o stdout no es un TTY, a menos que pases `--accept-command`. Requiere Claude Code v2.1.229 o posterior |

267| `--accept-command <sha256>` | Acepta el comando declarado por el marketplace cuyo `sha256` una ejecución anterior de [`--json`](#plugin-json-result) reportó en `shownCommand`, en lugar de `-y`. No se puede combinar con `-y`. Requiere Claude Code v2.1.271 o posterior |269| `--accept-command <sha256>` | Acepta el comando declarado por el marketplace cuyo `sha256` una ejecución anterior de [`--json`](#plugin-json-result) reportó en `shownCommand`, en lugar de `-y`. No se puede combinar con `-y`. Requiere Claude Code v2.1.271 o posterior |

268| `--json` | Imprime el resultado como un objeto JSON en la última línea de stdout, en el [mismo formato que `plugin install --json`](#plugin-json-result). Requiere Claude Code v2.1.268 o posterior |270| `--json` | Imprime el resultado como un objeto JSON en la última línea de stdout, en el [mismo formato que `plugin install --json`](#plugin-json-result). Requiere Claude Code v2.1.268 o posterior |

269 271 

270Si omites `--scope`, el comando actualiza el plugin en el ámbito más específico en el que está instalado para tu proyecto actual, verificando local, proyecto, usuario, luego managed.272Si omites `--scope`, el comando actualiza el plugin en el alcance más específico en el que está instalado para tu proyecto actual, verificando local, proyecto, usuario, luego managed.

271 273 

272Antes de v2.1.281, el comando usaba `user` cuando omitías `--scope`, por lo que actualizar un plugin instalado solo en ámbito de proyecto o local fallaba con `Plugin "<name>" is not installed at scope user`. En esas versiones, pasa `--scope`.274Antes de v2.1.281, el comando usaba `user` cuando omitías `--scope`, por lo que actualizar un plugin instalado solo en alcance de proyecto o local fallaba con `Plugin "<name>" is not installed at scope user`. En esas versiones, pasa `--scope`.

273 275 

274`managed` es el único ámbito que puedes actualizar pero no instalar. Para plugins instalados por administrador, consulta [Gestionar plugins para tu organización](/docs/es/plugins/org).276`managed` es el único alcance que puedes actualizar pero no instalar. Para plugins instalados por administrador, consulta [Gestionar plugins para tu organización](/docs/es/plugins/org).

275 277 

276Actualiza un plugin:278Actualiza un plugin:

277 279 


287 plugin list289 plugin list

288</h3>290</h3>

289 291 

290Lista plugins instalados con su versión, ámbito y estado.292Lista plugins instalados con su versión, alcance y estado.

291 293 

292```bash theme={null}294```bash theme={null}

293claude plugin list [options]295claude plugin list [options]


323| `installPath` | string | Directorio desde el que se carga el plugin |325| `installPath` | string | Directorio desde el que se carga el plugin |

324| `installedAt` | string | Marca de tiempo ISO de la instalación. Solo installs de marketplace |326| `installedAt` | string | Marca de tiempo ISO de la instalación. Solo installs de marketplace |

325| `lastUpdated` | string | Marca de tiempo ISO de la última actualización. Solo installs de marketplace |327| `lastUpdated` | string | Marca de tiempo ISO de la última actualización. Solo installs de marketplace |

326| `projectPath` | string | Proyecto al que pertenece la instalación. Solo ámbito `project` y `local` |328| `projectPath` | string | Proyecto al que pertenece la instalación. Solo alcance `project` y `local` |

327| `mcpServers` | object | Las definiciones de servidor MCP del plugin, cuando un plugin instalado de marketplace tiene alguno |329| `mcpServers` | object | Las definiciones de servidor MCP del plugin, cuando un plugin instalado de marketplace tiene alguno |

328| `errors` | array of strings | Errores de carga, cuando el plugin falló al cargar |330| `errors` | array of strings | Errores de carga, cuando el plugin falló al cargar |

329| `notes` | array of strings | Advertencias de autoría para un plugin que cargó y funciona |331| `notes` | array of strings | Advertencias de autoría para un plugin que cargó y funciona |


417 419 

418| Bandera | Descripción |420| Bandera | Descripción |

419| :- | :- |421| :- | :- |

420| `-s, --scope <scope>` | Prune en ámbito: `user`, `project` o `local`. Por defecto es `user` |422| `-s, --scope <scope>` | Prune en alcance: `user`, `project` o `local`. Por defecto es `user` |

421| `--dry-run` | Lista lo que se eliminaría sin eliminarlo |423| `--dry-run` | Lista lo que se eliminaría sin eliminarlo |

422| `-y, --yes` | Omite el aviso de confirmación. Requerido cuando stdin o stdout no es un TTY |424| `-y, --yes` | Omite la solicitud de confirmación. Requerido cuando stdin o stdout no es un TTY |

423 425 

424Previsualiza lo que un prune eliminaría:426Previsualiza lo que un prune eliminaría:

425 427 


429 431 

430Claude Code lista las dependencias huérfanas y termina con `(dry run — nothing removed)`. Sin nada a eliminar, imprime una línea que comienza con `Nothing to prune`.432Claude Code lista las dependencias huérfanas y termina con `(dry run — nothing removed)`. Sin nada a eliminar, imprime una línea que comienza con `Nothing to prune`.

431 433 

432Sin `--dry-run`, el comando elimina las dependencias huérfanas solo después de que confirmes en el aviso o pases `-y`.434Sin `--dry-run`, el comando elimina las dependencias huérfanas solo después de que confirmes en la solicitud o pases `-y`.

433 435 

434El código de salida es `0` sin importar lo que respondas en el aviso.436El código de salida es `0` sin importar lo que respondas en la solicitud.

435 437 

436Lo que `prune` hace depende de si una terminal está adjunta y si pasas `-y`:438Lo que `prune` hace depende de si una terminal está adjunta y si pasas `-y`:

437 439 


469| Opción | Descripción | Por defecto |471| Opción | Descripción | Por defecto |

470| :- | :- | :- |472| :- | :- | :- |

471| `--runs <n>` | Ejecuciones por caso en cada [arm](/docs/es/plugin-evals#compare-against-a-no-plugin-baseline) | El `runs` de cada caso, si no 3 |473| `--runs <n>` | Ejecuciones por caso en cada [arm](/docs/es/plugin-evals#compare-against-a-no-plugin-baseline) | El `runs` de cada caso, si no 3 |

472| `-j, --concurrency <n>` | Sesiones de agente a ejecutar a la vez, 1 a 8. Comparten tu límite de velocidad | `1` |474| `-j, --concurrency <n>` | Sesiones de agente a ejecutar a la vez, 1 a 8. Comparten tu rate limit | `1` |

473| `--model <model>` | Modelo para el agente bajo prueba | El `model` de cada caso, si no `ANTHROPIC_MODEL` si está establecido, si no el predeterminado de Claude Code |475| `--model <model>` | Modelo para el agente bajo prueba | El `model` de cada caso, si no `ANTHROPIC_MODEL` si está establecido, si no el predeterminado de Claude Code |

474| `--judge-model <model>` | Modelo para calificadores `llm` y `baseline` | Un modelo pequeño rápido |476| `--judge-model <model>` | Modelo para calificadores `llm` y `baseline` | Un modelo pequeño rápido |

475| `--ablation <mode>` | `none` o `with-without`. Consulta [Comparar contra una línea base sin plugin](/docs/es/plugin-evals#compare-against-a-no-plugin-baseline) | Decidido por caso, como esa sección describe |477| `--ablation <mode>` | `none` o `with-without`. Consulta [Puntuar contra la línea base sin plugin](/docs/es/plugin-evals#compare-against-a-no-plugin-baseline) | Decidido por caso, como esa sección describe |

476| `--threshold <0..1>` | Sale con 1 si algún caso puntúa por debajo de esto | `1.0` |478| `--threshold <0..1>` | Sale con 1 si algún caso puntúa por debajo de esto | `1.0` |

477| `--max-cost-usd <usd>` | Detente antes de la próxima ejecución una vez que el gasto alcance esto, sale con 2, e informa resultados parciales | Sin límite |479| `--max-cost-usd <usd>` | Detente antes de la próxima ejecución una vez que el gasto alcance esto, sale con 2, e informa resultados parciales | Sin límite |

478| `--allow-tools <tools...>` | Otorga herramientas más allá del conjunto de solo lectura, como `Bash`, `Write`, `Edit` o `"mcp__plugin_<plugin>_<server>__*"`. Consulta [Otorgar herramientas](/docs/es/plugin-evals#grant-tools) | |480| `--allow-tools <tools...>` | Otorga herramientas más allá del conjunto de solo lectura, como `Bash`, `Write`, `Edit` o `"mcp__plugin_<plugin>_<server>__*"`. Consulta [Otorgar herramientas](/docs/es/plugin-evals#grant-tools) | |

479| `--scaffold` | Ejecuta el [`scaffold_script`](/docs/es/plugin-evals#add-setup-or-history-with-case-yaml) de cada caso | Apagado |481| `--scaffold` | Ejecuta el [`scaffold_script`](/docs/es/plugin-evals#add-setup-or-history-with-case-yaml) de cada caso | Apagado |

480| `--trust-plugin` | Omite el aviso de confianza de primera ejecución, para CI. Consulta [Qué puede acceder una ejecución](/docs/es/plugin-evals#security) | Apagado |482| `--trust-plugin` | Omite la solicitud de confianza de primera ejecución, para CI. Consulta [Qué puede acceder una ejecución](/docs/es/plugin-evals#security) | Apagado |

481| `--mocks <mode>` | `record` u `off`. Consulta [Simular servidores MCP](/docs/es/plugin-evals#mock-mcp-servers) | `record` |483| `--mocks <mode>` | `record` u `off`. Consulta [Simular servidores MCP](/docs/es/plugin-evals#mock-mcp-servers) | `record` |

482| `--eval-dir <dir>` | Directorio debajo del plugin que contiene los casos | El `experimental.evals` del manifiesto, si no `evals` |484| `--eval-dir <dir>` | Directorio debajo del plugin que contiene los casos | El `experimental.evals` del manifiesto, si no `evals` |

483| `--json [path]` | Imprime el [documento de resultado](/docs/es/plugin-evals#json-result) a stdout, o escríbelo en una ruta `.json` | |485| `--json [path]` | Imprime el [documento de resultado](/docs/es/plugin-evals#json-result) a stdout, o escríbelo en una ruta `.json` | |


569* La etiqueta ya existe571* La etiqueta ya existe

570* El árbol de trabajo está sucio572* El árbol de trabajo está sucio

571 573 

574<h3 id="plugin-test">

575 plugin test

576</h3>

577 

578Ejecuta las pruebas de un [mod](/docs/es/plugins/mods/overview), un plugin cuyo código registra manejadores de eventos. El comando no necesita sesión, inicio de sesión ni red. Para saber cómo escribir una prueba, consulta [Probar un mod](/docs/es/plugins/mods/test).

579 

580```bash theme={null}

581claude plugin test [directory]

582```

583 

584El `[directory]` es el directorio del mod, por defecto el directorio actual. El comando ejecuta cada archivo bajo él cuyo nombre termina en `.test.ts` o `.test.tsx`, y sale con estado 1 cuando una prueba falla.

585 

586Ejecuta las pruebas de un mod en `./first-mod`:

587 

588```bash theme={null}

589claude plugin test ./first-mod

590```

591 

572<h3 id="plugin-validate">592<h3 id="plugin-validate">

573 plugin validate593 plugin validate

574</h3>594</h3>


613 633 

614* **Un `SKILL.md` en la raíz del plugin**: cuando ejecutas `claude plugin validate` contra un directorio de plugin, Claude Code no verifica un `SKILL.md` en la raíz del plugin634* **Un `SKILL.md` en la raíz del plugin**: cuando ejecutas `claude plugin validate` contra un directorio de plugin, Claude Code no verifica un `SKILL.md` en la raíz del plugin

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

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

617 637 

618<h4 id="output-and-exit-codes">638<h4 id="output-and-exit-codes">

619 Salida y códigos de salida639 Salida y códigos de salida


794 /plugin en una sesión814 /plugin en una sesión

795</h2>815</h2>

796 816 

797Dentro de una sesión interactiva, `/plugin` abre el panel de plugins. Cada subcomando abre el panel en una pestaña, ejecuta una acción allí, o imprime un resultado en línea. `/plugins` y `/marketplace` son alias para `/plugin`.817Dentro de una sesión interactiva, `/plugin` abre el panel de plugins. Cada subcomando abre el panel en una pestaña, ejecuta una acción allí o imprime un resultado en línea. `/plugins` y `/marketplace` son alias de `/plugin`.

798 818 

799Solo puedes ejecutar estos comandos en una sesión de terminal interactiva. En una ejecución no interactiva como `claude -p`, Claude Code responde que `/plugin` no está disponible en este entorno.819Solo puedes ejecutar estos comandos en una sesión interactiva de la terminal. En una ejecución no interactiva como `claude -p`, Claude Code responde que `/plugin` no está disponible en este entorno.

800 820 

801Para qué superficies tienen `/plugin`, cómo instalar sin él, y qué muestra cada pestaña del panel, consulta [Instalar y gestionar plugins](/docs/es/plugins/install).821Para saber qué superficies tienen `/plugin`, cómo instalar sin él y qué muestra cada pestaña del panel, consulta [Instalar y administrar plugins](/docs/es/plugins/install).

802 822 

803Un `<plugin>` es un `name` de plugin o `name@marketplace`.823Un `<plugin>` es un `name` de plugin o `name@marketplace`.

804 824 

805La tabla a continuación lista cada forma de sesión. Los subcomandos de shell `init`, `update`, `details`, `prune`, `eval` y `eval init` no tienen forma de sesión.825La siguiente tabla enumera todas las formas en sesión. Los subcomandos del shell `init`, `update`, `details`, `prune`, `eval`, `eval init` y `test` no tienen forma en sesión.

806 826 

807| Comando | Alias | Qué hace |827| Comando | Alias | Qué hace |

808| :- | :- | :- |828| :- | :- | :- |

809| `/plugin` | | Abre el panel en la pestaña **Discover**. Cualquier primera palabra no reconocida después de `/plugin` hace lo mismo |829| `/plugin` | | Abre el panel en la pestaña **Discover**. Cualquier primera palabra no reconocida después de `/plugin` hace lo mismo |

810| `/plugin help` | `/plugin --help`, `/plugin -h` | Muestra la lista de uso de subcomandos de `/plugin` |830| `/plugin help` | `/plugin --help`, `/plugin -h` | Muestra la lista de uso de los subcomandos de `/plugin` |

811| `/plugin list [--enabled\|--disabled]` | `ls` | Imprime tus plugins instalados de marketplace en línea, con versión, ámbito y estado. Una bandera de filtro muestra solo ese estado. Un plugin cuyo estado de habilitación aún no se ha aplicado está marcado como `— run /reload-plugins to apply`. Requiere Claude Code v2.1.163 o posterior |831| `/plugin list [--enabled\|--disabled]` | `ls` | Imprime en línea tus plugins instalados desde marketplaces, con versión, alcance y estado. Un flag de filtro muestra solo ese estado. Un plugin cuyo estado de habilitación aún no se ha aplicado se marca con `— run /reload-plugins to apply`. Requiere Claude Code v2.1.163 o posterior |

812| `/plugin install` | `i` | Abre la pestaña **Discover** |832| `/plugin install` | `i` | Abre la pestaña **Discover** |

813| `/plugin install <plugin>` | `i` | Abre los detalles del plugin en la pestaña **Discover**. Con `name@marketplace`, los abre en la lista de ese marketplace |833| `/plugin install <plugin>` | `i` | Abre los detalles del plugin en la pestaña **Discover**. Con `name@marketplace`, los abre en la lista de ese marketplace |

814| `/plugin install <source>` | `i` | Reporta un error de [marketplace no encontrado](/docs/es/plugins/troubleshooting#marketplace-not-found) e instala nada cuando el destino es una ruta, URL, u `owner/repo`, incluso una fuente que ya has añadido. Para instalar desde una fuente, consulta [Añadir un marketplace e instalar en un comando](/docs/es/plugins/install#add-a-marketplace-and-install-in-one-command) |834| `/plugin install <source>` | `i` | Informa un error de [marketplace no encontrado](/docs/es/plugins/troubleshooting#marketplace-not-found) y no instala nada cuando el destino es una ruta, una URL u `owner/repo`, incluso si es un origen que ya agregaste. Para instalar desde un origen, consulta [Agregar un marketplace e instalar con un solo comando](/docs/es/plugins/install#add-a-marketplace-and-install-in-one-command) |

815| `/plugin install <plugin> --marketplace <source>` | `i` | Añade el marketplace en `<source>` cuando aún no lo has añadido, pidiéndote que confirmes primero, luego abre los detalles del plugin. Consulta [Añadir un marketplace e instalar en un comando](/docs/es/plugins/install#add-a-marketplace-and-install-in-one-command). Requiere Claude Code v2.1.275 o posterior |835| `/plugin install <plugin> --marketplace <source>` | `i` | Agrega el marketplace en `<source>` cuando aún no lo has agregado, pidiéndote confirmación primero, y luego abre los detalles del plugin. Consulta [Agregar un marketplace e instalar con un solo comando](/docs/es/plugins/install#add-a-marketplace-and-install-in-one-command). Requiere Claude Code v2.1.275 o posterior |

816| `/plugin manage` | | Abre la pestaña **Installed** |836| `/plugin manage` | | Abre la pestaña **Installed** |

817| `/plugin stats` | | Abre la pestaña **Stats**, en sesiones donde [`/skill-doctor`](/docs/es/skills#find-unused-skills) está disponible. En cualquier otro lugar abre el panel en la pestaña **Discover** |837| `/plugin stats` | | Abre la pestaña **Stats**, en las sesiones donde [`/skill-doctor`](/docs/es/skills#find-unused-skills) está disponible. En cualquier otro caso, abre el panel en la pestaña **Discover** |

818| `/plugin enable <plugin>` | | Abre la pestaña **Installed** en el plugin y lo habilita |838| `/plugin enable <plugin>` | | Abre la pestaña **Installed** en el plugin y lo habilita |

819| `/plugin disable <plugin>` | | Abre la pestaña **Installed** en el plugin y lo deshabilita |839| `/plugin disable <plugin>` | | Abre la pestaña **Installed** en el plugin y lo deshabilita |

820| `/plugin uninstall <plugin>` | | Abre la pestaña **Installed** en el plugin y lo desinstala |840| `/plugin uninstall <plugin>` | | Abre la pestaña **Installed** en el plugin y lo desinstala |

821| `/plugin configure <plugin>` | `config` | Abre el diálogo [`userConfig`](/docs/es/plugins/manifest-reference) del plugin, o reporta que el plugin no declara ninguno. Requiere Claude Code v2.1.147 o posterior |841| `/plugin configure <plugin>` | `config` | Abre el diálogo [`userConfig`](/docs/es/plugins/manifest-reference) del plugin, o informa que el plugin no declara ninguno. Requiere Claude Code v2.1.147 o posterior |

822| `/plugin validate <path>` | | Imprime el mismo informe que `claude plugin validate`, en línea |842| `/plugin validate <path>` | | Imprime en línea el mismo informe que `claude plugin validate` |

823| `/plugin tag [path] [--push] [--dry-run] [--force]` | | Crea la etiqueta de versión como `claude plugin tag` hace. Acepta `--push`, `--dry-run` y `--force` o `-f`; con cualquier otra bandera o un argumento extra, Claude Code imprime el uso en su lugar |843| `/plugin tag [path] [--push] [--dry-run] [--force]` | | Crea la etiqueta de versión como lo hace `claude plugin tag`. Acepta `--push`, `--dry-run` y `--force` o `-f`; con cualquier otro flag o un argumento adicional, Claude Code imprime el uso en su lugar |

824| `/plugin marketplace` | `market` | No hace nada visible. Pasa `add`, `list`, `update` o `remove` |844| `/plugin marketplace` | `market` | No hace nada visible. Pasa `add`, `list`, `update` o `remove` |

825| `/plugin marketplace add [source]` | `market add` | Con una fuente, la añade e informa el resultado. Sin una, abre la entrada **Add marketplace** |845| `/plugin marketplace add [source]` | `market add` | Con un origen, lo agrega e informa el resultado. Sin uno, abre el campo **Add marketplace** |

826| `/plugin marketplace list` | `market list` | Imprime tus nombres de marketplace en línea |846| `/plugin marketplace list` | `market list` | Imprime en línea los nombres de tus marketplaces |

827| `/plugin marketplace update [name]` | `market update` | Abre la pestaña **Marketplaces**. Con un nombre, actualiza ese marketplace allí |847| `/plugin marketplace update [name]` | `market update` | Abre la pestaña **Marketplaces**. Con un nombre, actualiza ese marketplace allí |

828| `/plugin marketplace remove [name]` | `market remove`, `market rm`, `marketplace rm` | Abre la pestaña **Marketplaces**. Con un nombre, elimina ese marketplace allí |848| `/plugin marketplace remove [name]` | `market remove`, `market rm`, `marketplace rm` | Abre la pestaña **Marketplaces**. Con un nombre, elimina ese marketplace allí |

829 849 

830Si nombras un plugin que no está instalado en el proyecto actual en `/plugin enable`, `disable`, `uninstall` o `configure`, Claude Code imprime `Plugin "<plugin>" is not installed in this project` en su lugar de actuar.850Si en `/plugin enable`, `disable`, `uninstall` o `configure` indicas un plugin que no está instalado en el proyecto actual, Claude Code imprime `Plugin "<plugin>" is not installed in this project` en lugar de actuar.

831 851 

832<h2 id="reload-plugins">852<h2 id="reload-plugins">

833 /reload-plugins853 /reload-plugins

plugins/loading.md +20 −14

Details

244 Cuándo se ejecuta la instalación de dependencias244 Cuándo se ejecuta la instalación de dependencias

245</h4>245</h4>

246 246 

247Claude Code ejecuta la instalación dentro del directorio de versión copiada cada vez que crea uno:247Claude Code instala las dependencias en el directorio de versión copiada cada vez que crea uno:

248 248 

249* Cuando instala un plugin249* Cuando instala un plugin

250* Cuando Claude Code actualiza un plugin a una nueva versión250* Cuando Claude Code actualiza un plugin a una nueva versión


252 252 

253Para un plugin de ruta relativa [cargado en lugar](#in-place-and-copied-plugins) desde un mercado de directorio local, Claude Code no instala las dependencias en el directorio de origen. Instálelas allí usted mismo, o desde un hook en [`${CLAUDE_PLUGIN_DATA}`](/docs/es/plugins/components#path-variables-and-persistent-data).253Para un plugin de ruta relativa [cargado en lugar](#in-place-and-copied-plugins) desde un mercado de directorio local, Claude Code no instala las dependencias en el directorio de origen. Instálelas allí usted mismo, o desde un hook en [`${CLAUDE_PLUGIN_DATA}`](/docs/es/plugins/components#path-variables-and-persistent-data).

254 254 

255La instalación se ejecuta solo cuando el directorio raíz del plugin contiene tanto un `package.json` como un archivo de bloqueo compatible. El archivo de bloqueo decide qué comando ejecuta Claude Code:255La instalación se ejecuta solo cuando el directorio raíz del plugin contiene tanto un `package.json` como un archivo de bloqueo compatible.

256 256 

257| Archivo de bloqueo | Comando |257El archivo de bloqueo decide qué administrador de paquetes ejecuta Claude Code:

258 

259| Archivo de bloqueo | Administrador de paquetes |

258| :- | :- |260| :- | :- |

259| `bun.lock` o `bun.lockb` | `bun install --frozen-lockfile --ignore-scripts` |261| `bun.lock` | Bun |

260| `npm-shrinkwrap.json` o `package-lock.json` | `npm ci --ignore-scripts` |262| `npm-shrinkwrap.json` o `package-lock.json` | npm |

261 263 

262Si un plugin contiene más de uno de estos archivos de bloqueo, Claude Code usa la primera coincidencia, verificando en orden: `bun.lock`, `bun.lockb`, `npm-shrinkwrap.json`, `package-lock.json`.264Si un plugin contiene más de uno de estos archivos de bloqueo, Claude Code usa la primera coincidencia, verificando en orden: `bun.lock`, `npm-shrinkwrap.json`, `package-lock.json`.

263 265 

264Claude Code omite la instalación para archivos de bloqueo de Yarn y pnpm y para un `bunfig.toml` junto al archivo de bloqueo de Bun:266Claude Code omite la instalación en estos casos de archivo de bloqueo:

265 267 

266* Si su plugin tiene solo un `yarn.lock` o `pnpm-lock.yaml`, reemplácelo con un archivo de bloqueo npm268* **`bun.lockb`**: el archivo de bloqueo binario de Bun no se puede verificar. Incluye en su lugar un `bun.lock` de texto o un archivo de bloqueo npm

267* Si un `bunfig.toml` está en el mismo directorio que el archivo de bloqueo de Bun, elimine el `bunfig.toml`, o reemplace el archivo de bloqueo de Bun con un archivo de bloqueo npm269* **`yarn.lock` o `pnpm-lock.yaml`**: reemplázalo con un archivo de bloqueo npm

270* **Un archivo de bloqueo en un formato que Claude Code no lee**: un archivo de bloqueo npm necesita un `lockfileVersion` de `2` o `3`, que escribe npm 7 o posterior, y un `bun.lock` necesita un `lockfileVersion` no mayor que `2`

268 271 

269Incluya un archivo de bloqueo npm para llegar a la mayoría de los usuarios. Claude Code ejecuta el administrador de paquetes del archivo de bloqueo coincidente desde el PATH del usuario y no intenta el otro archivo de bloqueo en su lugar si falta ese administrador de paquetes.272Incluya un archivo de bloqueo npm para llegar a la mayoría de los usuarios. Claude Code ejecuta el administrador de paquetes del archivo de bloqueo coincidente desde el PATH del usuario y no intenta el otro archivo de bloqueo en su lugar si falta ese administrador de paquetes.

270 273 


276 279 

277Claude Code limita esta instalación de dependencias para que ningún código del plugin o sus paquetes se ejecute durante ella, y limita cuánto tiempo puede ejecutarse:280Claude Code limita esta instalación de dependencias para que ningún código del plugin o sus paquetes se ejecute durante ella, y limita cuánto tiempo puede ejecutarse:

278 281 

279* **Resolución congelada**: Bun y npm instalan exactamente lo que el archivo de bloqueo fija, y fallan en lugar de re-resolver versiones cuando `package.json` y el archivo de bloqueo no coinciden282* **Solo paquetes del registro**: cada dependencia debe ser un paquete del registro fijado en el archivo de bloqueo a una versión exacta. Un plugin con una dependencia de git, GitHub, carpeta, espacio de trabajo o enlazada no recibe instalación.

283* **Descargas `https`**: un enlace de descarga en el archivo de bloqueo debe usar `https`, a menos que apunte al registro npm predeterminado del propio usuario que instala.

284* **Una carpeta de instalación separada**: el administrador de paquetes se ejecuta en una carpeta propia que contiene solo una copia de la lista de dependencias verificada, por lo que npm y Bun no leen el `.npmrc`, `.env` ni `bunfig.toml` del plugin. Cuando la instalación tiene éxito, Claude Code mueve el `node_modules` resultante al plugin.

285* **Resolución congelada**: la instalación usa exactamente las versiones que fija el archivo de bloqueo, y Claude Code la omite cuando `package.json` y el archivo de bloqueo no enumeran las mismas dependencias

280* **Sin scripts de ciclo de vida**: `--ignore-scripts` evita que se ejecuten scripts `preinstall`, `install` y `postinstall`, por lo que las dependencias que construyen módulos nativos en esos scripts se descargan pero no se compilan durante esta instalación286* **Sin scripts de ciclo de vida**: `--ignore-scripts` evita que se ejecuten scripts `preinstall`, `install` y `postinstall`, por lo que las dependencias que construyen módulos nativos en esos scripts se descargan pero no se compilan durante esta instalación

287* **Sin sobrescrituras ni parches**: un plugin cuyo `package.json` establece `overrides` de npm no recibe instalación desde un archivo de bloqueo npm, y un plugin que establece `patchedDependencies` de Bun no recibe instalación desde `bun.lock`

281* **Tiempo de espera de 60 segundos**: Claude Code detiene una instalación que se ejecuta más tiempo y la trata como fallida288* **Tiempo de espera de 60 segundos**: Claude Code detiene una instalación que se ejecuta más tiempo y la trata como fallida

282 289 

283Claude Code obtiene un plugin de fuente npm antes de esta instalación de dependencias, y ninguno de los scripts de instalación propios del paquete se ejecuta durante la obtención. Consulte [fuente de plugin npm](/docs/es/plugins/marketplace-reference#npm-plugin-source).290Claude Code obtiene un plugin de fuente npm antes de esta instalación de dependencias, y ninguno de los scripts de instalación propios del paquete se ejecuta durante la obtención. Consulte [fuente de plugin npm](/docs/es/plugins/marketplace-reference#npm-plugin-source).


290 Cuándo falla o se omite la instalación de dependencias297 Cuándo falla o se omite la instalación de dependencias

291</h4>298</h4>

292 299 

293Una instalación fallida u omitida nunca bloquea el plugin, y cada caso deja un signo diferente:300Una instalación fallida u omitida nunca bloquea el plugin, que entonces se carga sin las dependencias. Cada caso deja un signo diferente:

294 301 

295* Una instalación fallida, u omitida debido a un archivo de bloqueo de Yarn o pnpm o un `bunfig.toml`, aparece como una advertencia en la salida `claude --debug`302* Una instalación fallida, u omitida debido a su archivo de bloqueo o a uno de los [límites en la instalación](#limits-on-the-dependency-install), aparece en la salida de `claude --debug` como una línea `Plugin dependency install warning` que indica el motivo

296* Un plugin con un `package.json` y sin archivo de bloqueo se omite sin una entrada de registro303* Un plugin con un `package.json` y sin archivo de bloqueo se omite sin una entrada de registro

297* Una instalación que agota el tiempo de espera puede dejar un árbol `node_modules` parcial en la copia en caché

298 304 

299Cuando la instalación automática no puede proporcionar una dependencia, instálela desde un hook en el [directorio de datos persistentes](/docs/es/plugins/components#path-variables-and-persistent-data). Eso incluye paquetes que necesitan sus scripts de ciclo de vida para construir, dependencias de Python, y plugins bloqueados con Yarn o pnpm.305Cuando la instalación automática no puede proporcionar una dependencia, instálala desde un hook en el [directorio de datos persistentes](/docs/es/plugins/components#path-variables-and-persistent-data). Eso incluye paquetes que necesitan sus scripts de ciclo de vida para compilarse, dependencias de Python, plugins bloqueados con Yarn o pnpm, y dependencias que no son paquetes del registro, como las dependencias de git.

300 306 

301<h2 id="versions-and-updates">307<h2 id="versions-and-updates">

302 Versiones y actualizaciones308 Versiones y actualizaciones

Details

155| `github` | `repo`, `ref`, `sha` | Repositorio de GitHub en forma `owner/repo` |155| `github` | `repo`, `ref`, `sha` | Repositorio de GitHub en forma `owner/repo` |

156| `url` | `url`, `ref`, `sha` | Cualquier repositorio git por URL |156| `url` | `url`, `ref`, `sha` | Cualquier repositorio git por URL |

157| `git-subdir` | `url`, `path`, `ref`, `sha` | Un subdirectorio de un repositorio git, obtenido con un clon parcial disperso |157| `git-subdir` | `url`, `path`, `ref`, `sha` | Un subdirectorio de un repositorio git, obtenido con un clon parcial disperso |

158| `npm` | `package`, `version`, `registry` | Paquete npm, obtenido con su cliente npm y desempaquetado sin ejecutar scripts de instalación |158| `npm` | `package`, `version`, `registry` | Paquete del registro npm o enlace a un tarball, obtenido con tu cliente npm y desempaquetado sin ejecutar scripts de instalación |

159| `archive` | `url`, `sha256` | Archivo Zip sobre HTTPS. Requiere Claude Code v2.1.224 o posterior |159| `archive` | `url`, `sha256` | Archivo Zip sobre HTTPS. Requiere Claude Code v2.1.224 o posterior |

160| `command` | `command`, `timeout`, `mode` | Directorio impreso por un comando que Claude Code ejecuta en la máquina del usuario. Requiere Claude Code v2.1.229 o posterior |160| `command` | `command`, `timeout`, `mode` | Directorio impreso por un comando que Claude Code ejecuta en la máquina del usuario. Requiere Claude Code v2.1.229 o posterior |

161 161 


258 258 

259Una fuente `npm` toma estos campos:259Una fuente `npm` toma estos campos:

260 260 

261* `package`: un nombre de paquete, o un nombre con alcance como `@your-org/formatter`261* `package`: un nombre de paquete del registro como `@your-org/formatter`, un nombre con una versión añadida como `@your-org/formatter@2.0.0`, o un enlace `https` al archivo tarball del paquete

262* `version`: una versión o rango262* `version`: una versión, un rango semver o un dist-tag, que se usa cuando `package` es un nombre de paquete sin versión añadida. Omítelo para obtener `latest`

263* `registry`: una URL de registro para un paquete que no está en el registro predeterminado263* `registry`: una URL de registro para un paquete que no está en el registro predeterminado

264 264 

265Claude Code obtiene el paquete con su cliente npm. Los scripts de instalación del paquete, como `preinstall` o `postinstall`, nunca se ejecutan, y sus dependencias no se instalan durante la obtención. Si el paquete tiene un archivo de bloqueo compatible junto a su `package.json`, Claude Code instala esas [dependencias de paquetes Node.js](/docs/es/plugins/loading#node-js-package-dependencies) en un paso separado, también con scripts deshabilitados.265Claude Code obtiene el paquete con su cliente npm. Los scripts de instalación del paquete, como `preinstall` o `postinstall`, nunca se ejecutan, y sus dependencias no se instalan durante la obtención. Si el paquete tiene un archivo de bloqueo compatible junto a su `package.json`, Claude Code instala esas [dependencias de paquetes Node.js](/docs/es/plugins/loading#node-js-package-dependencies) en un paso separado, también con scripts deshabilitados.

266 266 

267Claude Code verifica el valor de `package` antes de obtener nada. Un valor rechazado hace fallar la instalación con un mensaje que nombra el valor y el motivo. Los valores rechazados incluyen:

268 

269* **Una dirección git, una carpeta o ruta `file:`, o un alias `npm:`**: usa una [fuente `github`, `url` o `git-subdir`](#plugin-sources) para un repositorio git, una ruta relativa para una carpeta en el marketplace y el nombre propio del paquete para un alias

270* **Un enlace a un tarball en github.com, gist.github.com, gitlab.com, bitbucket.org o git.sr.ht**: se rechaza incluso cuando el enlace es una descarga de release de GitHub, a menos que sea un enlace al registro npm de GitLab bajo `gitlab.com/api/v4/`

271* **Un enlace a un tarball sobre `http`**: se rechaza a menos que apunte al registro npm predeterminado del propio usuario que instala

272 

273La URL de `registry` debe usar `https` a menos que sea el registro npm predeterminado del propio usuario que instala. Con cualquier otro registro `http`, la instalación falla antes de que npm lo contacte.

274 

267```json theme={null}275```json theme={null}

268{276{

269 "name": "formatter",277 "name": "formatter",

Details

167 167 

168Un usuario cuyo mod no se cargó encuentra la razón en su registro de depuración. [Mensajes de rechazo](/docs/es/plugins/mods/troubleshoot#refusal-messages) enumera las líneas para `allowManagedHooksOnly` y `disableAllHooks`, y [Mensajes del guard integrado](/docs/es/plugins/mods/troubleshoot#messages-from-the-built-in-guard) tiene la línea para `allowManagedModsOnly`.168Un usuario cuyo mod no se cargó encuentra la razón en su registro de depuración. [Mensajes de rechazo](/docs/es/plugins/mods/troubleshoot#refusal-messages) enumera las líneas para `allowManagedHooksOnly` y `disableAllHooks`, y [Mensajes del guard integrado](/docs/es/plugins/mods/troubleshoot#messages-from-the-built-in-guard) tiene la línea para `allowManagedModsOnly`.

169 169 

170<h3 id="allow-only-your-organization’s-mods">

171 Permitir solo los mods de tu organización

172</h3>

173 

174Para ejecutar los mods de tu organización y bloquear los que traen los usuarios, implementa los ajustes de la fila **Solo los mods de tu organización** de la [tabla de políticas](#choose-how-much-to-allow), además de `disableSideloadFlags`. Con este `managed-settings.json` completo, Claude Code rechaza los mods propios de los usuarios, por lo que ninguno de sus hooks se ejecuta, y tu mod de políticas se ejecuta antes que los demás mods:

175 

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

177{

178 "extraKnownMarketplaces": {

179 "acme-tools": {

180 "source": { "source": "directory", "path": "/opt/acme/claude-plugins" }

181 }

182 },

183 "enabledPlugins": { "acme-guard@acme-tools": true },

184 "prependPlugins": ["acme-guard@acme-tools", "sec-default@builtin"],

185 "pluginConfigs": {

186 "cc-plugin-sec-default@builtin": {

187 "options": { "allowManagedModsOnly": true }

188 }

189 },

190 "disableSideloadFlags": true

191}

192```

193 

194Cada grupo de claves cumple una función:

195 

196* **`extraKnownMarketplaces`, `enabledPlugins` y `prependPlugins`**: instalan tu mod para que cuente como tuyo, y lo ejecutan primero con el guard después de él. [Instalar los mods de tu organización y establecer el orden](#install-your-organizations-mods) cubre el directorio al que apuntan estas claves.

197* **`pluginConfigs`**: establece la opción `allowManagedModsOnly` del guard, de modo que Claude Code rechaza los mods propios de los usuarios. Sus hooks de configuración, líneas de estado y `/goal` siguen funcionando.

198* **`disableSideloadFlags`**: consulta [`disableSideloadFlags`](/docs/es/settings-reference#disablesideloadflags) para ver los flags que rechaza al inicio

199 

200Para confirmar la política en una máquina de prueba, inicia en tu shell una sesión con `claude --debug` y lee el registro de depuración:

201 

202* **Tu mod**: su línea `hooks module` tiene `tier prepend`

203* **Un mod que instaló el usuario**: una línea dice `refused by cc-plugin-sec-default: mods are limited to your organization's by policy (allowManagedModsOnly)`. Una línea anterior indica que el módulo de hooks de ese mod se cargó (`loaded`), así que busca el rechazo.

204* **Un directorio de plugins**: `claude --plugin-dir ./any-mod` termina con un mensaje que comienza con `--plugin-dir is disabled by your organization's managed settings (disableSideloadFlags)`

205 

206Para limitar también qué marketplaces pueden agregar los usuarios, combina este archivo con tus [restricciones de marketplace](/docs/es/plugins/org#restrict-what-users-can-install).

207 

208<h3 id="apply-your-plugin-controls-to-mods">

209 Aplicar tus controles de plugins a los mods

210</h3>

211 

212Un mod es un plugin, por lo que las formas en que [administras los plugins de tu organización](/docs/es/plugins/org) también se aplican a un plugin que contiene un mod:

213 

214* **Ver qué plugins se cargan en toda tu flota**: [Auditar y revisar](/docs/es/plugins/org#audit-and-review)

215* **Decidir cuándo puede actualizarse un plugin que revisaste**: [Establecer la política de actualización](/docs/es/plugins/org#set-update-policy)

216* **Dar a un grupo una política diferente, como un piloto**: [Planificar lo que la configuración administrada no puede imponer](/docs/es/plugins/org#plan-for-what-managed-settings-can’t-enforce)

217* **Comprobar qué apps y tipos de sesión aplican las claves de plugins**: [Cuándo aplica cada superficie las claves de plugins](/docs/es/plugins/org#when-each-surface-applies-the-plugin-keys)

218* **Configurar CI y contenedores**: [Preparar contenedores y CI](/docs/es/plugins/org#seed-containers-and-ci)

219* **Ofrecer mods que tus usuarios pueden instalar**: [Alojar un marketplace](/docs/es/plugins/host-marketplace). Un mod que Claude Code copia desde una fuente de GitHub, git, URL o npm cuenta como de un usuario, no como de [tu organización](#install-your-organizations-mods).

220 

170<h3 id="set-options-on-the-built-in-guard">221<h3 id="set-options-on-the-built-in-guard">

171 Establezca opciones en el guard integrado222 Establezca opciones en el guard integrado

172</h3>223</h3>

Details

190 190 

191Mantén la espera dentro de una llamada de API de mods como `$.ui.ask`, porque ese tiempo no cuenta contra el [límite de tiempo de 10 segundos](/docs/es/plugins/mods/reference#limits) del hook. El tiempo dedicado a esperar una promesa propia sí cuenta. Claude Code omite un hook que agota el tiempo, por lo que el comando retenido se ejecutaría.191Mantén la espera dentro de una llamada de API de mods como `$.ui.ask`, porque ese tiempo no cuenta contra el [límite de tiempo de 10 segundos](/docs/es/plugins/mods/reference#limits) del hook. El tiempo dedicado a esperar una promesa propia sí cuenta. Claude Code omite un hook que agota el tiempo, por lo que el comando retenido se ejecutaría.

192 192 

193<h4 id="approve-or-refuse-a-tool-call-before-the-user-is-asked">

194 Aprobar o rechazar una llamada a herramienta antes de preguntarle al usuario

195</h4>

196 

197Para decidir si una llamada a herramienta puede ejecutarse, maneja [`tool.check`](/docs/es/plugins/mods/reference#tools), el evento en el que Claude Code toma esa decisión. Se dispara después de que las reglas de permisos y los hooks de configuración han decidido, y `next(e)` se resuelve a su decisión: `allow`, `ask` o `deny`. Tu hook devuelve esa decisión u otra diferente. `e.input` contiene los argumentos de la herramienta, como `command` para Bash.

198 

199Para un comando o una ruta fijos, usa una [regla de permisos](/docs/es/permissions#permission-rule-syntax) como `Bash(npm test)`, que no requiere código. Maneja `tool.check` cuando la decisión dependa de lo que sea cierto en ese momento, como la rama actual de Git o un valor que otro hook registró.

200 

201Este hook rechaza `git push` mientras la rama actual es `main`:

202 

203```javascript theme={null}

204on('tool.check', { tool: 'Bash' }, async ($, e, next) => {

205 // Lo que decidieron las reglas de permisos y los hooks de configuración: 'allow', 'ask' o 'deny'

206 const decided = await next(e)

207 if (!e.input.command.includes('git push')) return decided

208 const branch = await $.process.run(['git', 'branch', '--show-current'])

209 if (branch.stdout.trim() !== 'main') return decided

210 return { decision: 'deny', reason: 'Push from a branch other than main' }

211})

212```

213 

214En `main`, el hook devuelve `deny`, incluso cuando una regla permite `git push`. En otra rama, y para otros comandos, la llamada obtiene la decisión que obtendría sin el mod.

215 

216El hook compara el texto del comando, así que trátalo como un recordatorio para Claude. Para bloquear los pushes a `main` para todos, protege la rama en tu host de Git.

217 

218Un hook puede devolver cualquiera de las tres decisiones, por lo que también puede aprobar una llamada que bloqueó un hook `PreToolUse` fuera de la configuración administrada. [Extender permisos con hooks](/docs/es/permissions#extend-permissions-with-hooks) indica qué decisiones prevalecen sobre un mod.

219 

193<h3 id="rewrite-or-add-to-a-prompt">220<h3 id="rewrite-or-add-to-a-prompt">

194 Reescribir o añadir a una indicación221 Reescribir o añadir a una indicación

195</h3>222</h3>


301* **Hooks `PreToolUse` de configuración administrada**: se ejecutan antes que el hook `tool.call` del primer mod, y un bloqueo de uno de ellos es final, por lo que ningún mod ve la llamada.328* **Hooks `PreToolUse` de configuración administrada**: se ejecutan antes que el hook `tool.call` del primer mod, y un bloqueo de uno de ellos es final, por lo que ningún mod ve la llamada.

302* **Hooks `PreToolUse` de cada otro archivo de configuración y de `hooks/hooks.json` de plugins**: se ejecutan después de que el último mod llama a `next`, como parte del comportamiento propio de Claude Code. Un mod que responde `tool.call` sin llamar a `next` los mantiene de ejecutarse, y un mod que llama a `next` ve su decisión en el resultado que devuelve.329* **Hooks `PreToolUse` de cada otro archivo de configuración y de `hooks/hooks.json` de plugins**: se ejecutan después de que el último mod llama a `next`, como parte del comportamiento propio de Claude Code. Un mod que responde `tool.call` sin llamar a `next` los mantiene de ejecutarse, y un mod que llama a `next` ve su decisión en el resultado que devuelve.

303 330 

304[`tool.check`](/docs/es/plugins/mods/reference#tools) es el evento donde Claude Code decide si una llamada de herramienta puede ejecutarse. Se dispara después de esos hooks y las reglas de permisos han decidido, y `next(e)` se resuelve a su decisión. Un hook en `tool.check` puede devolver una decisión diferente, como `{ decision: 'allow' }`, por lo que puede aprobar una llamada que un hook en el segundo grupo bloqueó. [Extender permisos con hooks](/docs/es/permissions#extend-permissions-with-hooks) enumera qué decisiones se mantienen sobre un mod.331[`tool.check`](#approve-or-refuse-a-tool-call-before-the-user-is-asked) se dispara después de que esos hooks y las reglas de permisos han decidido, por lo que un hook en él puede aprobar una llamada que un hook del segundo grupo bloqueó.

305 332 

306<h3 id="handle-a-hook-that-fails">333<h3 id="handle-a-hook-that-fails">

307 Manejar un hook que falla334 Manejar un hook que falla

Details

407 ```407 ```

408 408 

409 ```text theme={null}409 ```text theme={null}

410 Note: Type a note and press Enter ⏎ add410 Note: Type a note and press Enter

411 ```411 ```

412 </Tab>412 </Tab>

413</Tabs>413</Tabs>

414 414 

415Esta tabla enumera cada elemento:415La [galería de interfaces](/docs/es/plugins/mods/gallery) tiene ejemplos y capturas de pantalla de la mayoría de los elementos. Esta tabla enumera cada elemento:

416 416 

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

418| :- | :- | :- |418| :- | :- | :- |

Details

72* **Actuar sin pedirle**: aprobar una llamada de herramienta antes de que se le pregunte72* **Actuar sin pedirle**: aprobar una llamada de herramienta antes de que se le pregunte

73* **Gastar su uso**: llamar a un modelo en su plan o clave API73* **Gastar su uso**: llamar a un modelo en su plan o clave API

74 74 

75Los mods no se ejecutan en un sandbox. Si activas el [sandboxing](/docs/es/sandboxing), el sandbox aísla los comandos de Bash que ejecuta Claude, y un proceso que inicia un mod se ejecuta fuera de él.

76 

75Un mod que aprueba llamadas de herramientas puede aprobar una que una regla `ask` solicitaría, o que uno de sus propios hooks `PreToolUse` bloqueó. [Extender permisos con hooks](/docs/es/permissions#extend-permissions-with-hooks) enumera lo que tal mod puede aprobar, incluido cuándo puede aprobar una llamada que una regla `deny` rechaza.77Un mod que aprueba llamadas de herramientas puede aprobar una que una regla `ask` solicitaría, o que uno de sus propios hooks `PreToolUse` bloqueó. [Extender permisos con hooks](/docs/es/permissions#extend-permissions-with-hooks) enumera lo que tal mod puede aprobar, incluido cuándo puede aprobar una llamada que una regla `deny` rechaza.

76 78 

77Un mod puede cambiar el estilo de gran parte de la interfaz de Claude Code, pero no el mensaje de permiso. No puede cambiar lo que un mensaje le muestra.79Un mod puede cambiar el estilo de gran parte de la interfaz de Claude Code, pero no el mensaje de permiso. No puede cambiar lo que un mensaje le muestra.


102 104 

103Si usa Claude Code a través de una organización, un administrador también puede limitar qué mods se cargan. Los administradores comienzan en [Evitar que los mods instalados por el usuario se carguen](/docs/es/plugins/mods/admin#stop-user-installed-mods-from-loading).105Si usa Claude Code a través de una organización, un administrador también puede limitar qué mods se cargan. Los administradores comienzan en [Evitar que los mods instalados por el usuario se carguen](/docs/es/plugins/mods/admin#stop-user-installed-mods-from-loading).

104 106 

107`disableAllHooks` y el `allowManagedModsOnly` de tu organización detienen un mod y dejan el resto de su plugin en su lugar: el plugin sigue instalado, y sus skills, comandos, agentes y servidores MCP se cargan. Otros ajustes y flags llegan más lejos. [`disableAllHooks`](/docs/es/settings-reference#disableallhooks) y [Qué se ejecuta con `allowManagedHooksOnly`](/docs/es/settings-reference#what-runs-under-allowmanagedhooksonly) enumeran lo que cada uno le hace a un plugin y a sus hooks de configuración.

108 

105Para saber si los mods pueden cargarse para usted, vea [Verificar si los mods pueden cargarse](/docs/es/plugins/mods/troubleshoot#check-whether-mods-can-load).109Para saber si los mods pueden cargarse para usted, vea [Verificar si los mods pueden cargarse](/docs/es/plugins/mods/troubleshoot#check-whether-mods-can-load).

106 110 

107<Note>111<Note>

Details

56 56 

57Lee la razón después de los dos puntos. La sección [refusal messages](#refusal-messages) enumera cada una. Si el registro no tiene tal línea, trabaja a través de las otras entradas en este grupo.57Lee la razón después de los dos puntos. La sección [refusal messages](#refusal-messages) enumera cada una. Si el registro no tiene tal línea, trabaja a través de las otras entradas en este grupo.

58 58 

59Algunos ajustes detienen un mod y dejan funcionando el resto de su plugin. [Activar o desactivar mods](/docs/es/plugins/mods/overview#turn-mods-on-or-off) indica cuáles son.

60 

59<h3 id="a-claude-p-run-prints-hooks-module-not-loaded">61<h3 id="a-claude-p-run-prints-hooks-module-not-loaded">

60 Una ejecución `claude -p` imprime `hooks module not loaded`62 Una ejecución `claude -p` imprime `hooks module not loaded`

61</h3>63</h3>

Details

37 37 

38Las [reglas de permisos](/docs/es/permissions) y [sandbox](/docs/es/sandboxing) de Claude Code cubren las llamadas a herramientas que hace Claude, no el código que ejecuta un plugin por sí solo:38Las [reglas de permisos](/docs/es/permissions) y [sandbox](/docs/es/sandboxing) de Claude Code cubren las llamadas a herramientas que hace Claude, no el código que ejecuta un plugin por sí solo:

39 39 

40* **Hooks y procesos de servidor**: los hooks de comando ejecutan comandos de shell con tus permisos de usuario completos. Claude Code ejecuta hooks y servidores MCP fuera del sandbox.40* **Hooks y procesos de servidor**: los hooks de comando ejecutan comandos de shell con tus permisos de usuario completos. Claude Code ejecuta fuera del sandbox los hooks, los servidores MCP y los procesos que inicia un [mod](/docs/es/plugins/mods/overview#what-a-mod-can-reach).

41* **Llamadas a herramientas de Claude**: una llamada a una de las herramientas MCP del plugin, y un comando Bash que ejecuta un ejecutable del `bin/` del plugin, son llamadas a herramientas, así que tus reglas de permisos se aplican a ellas. Para ver qué puede hacer un mod en una llamada a herramienta, consulta [Decide whether to trust a mod](/docs/es/plugins/mods/overview#decide-whether-to-trust-a-mod).41* **Llamadas a herramientas de Claude**: una llamada a una de las herramientas MCP del plugin, y un comando Bash que ejecuta un ejecutable del `bin/` del plugin, son llamadas a herramientas, así que tus reglas de permisos se aplican a ellas. Para ver qué puede hacer un mod en una llamada a herramienta, consulta [Decide whether to trust a mod](/docs/es/plugins/mods/overview#decide-whether-to-trust-a-mod).

42 42 

43Instalar un plugin también lo habilita, a menos que su manifiesto o entrada de marketplace establezca [`defaultEnabled: false`](/docs/es/plugins/install#choose-an-install-scope) y no lo hayas habilitado tú mismo.43Instalar un plugin también lo habilita, a menos que su manifiesto o entrada de marketplace establezca [`defaultEnabled: false`](/docs/es/plugins/install#choose-an-install-scope) y no lo hayas habilitado tú mismo.

Details

460* **Usted publica el plugin**: recompute el resumen del archivo exacto que sirve la URL y actualice el `sha256` en la entrada del mercado. Use `shasum -a 256 my-plugin.zip`, o `Get-FileHash -Algorithm SHA256 my-plugin.zip` en PowerShell460* **Usted publica el plugin**: recompute el resumen del archivo exacto que sirve la URL y actualice el `sha256` en la entrada del mercado. Use `shasum -a 256 my-plugin.zip`, o `Get-FileHash -Algorithm SHA256 my-plugin.zip` en PowerShell

461* **Usted instala el plugin**: ejecute `/plugin marketplace update <name>` en una sesión para actualizar el catálogo en caso de que la entrada haya sido corregida, luego reintente la instalación. Si los resúmenes aún no coinciden después de la actualización, pida al propietario del mercado qué archivo fijaron antes de instalar461* **Usted instala el plugin**: ejecute `/plugin marketplace update <name>` en una sesión para actualizar el catálogo en caso de que la entrada haya sido corregida, luego reintente la instalación. Si los resúmenes aún no coinciden después de la actualización, pida al propietario del mercado qué archivo fijaron antes de instalar

462 462 

463<h3 id="an-npm-plugin-source-must-name-a-registry-package">

464 `An npm plugin source must name a registry package`

465</h3>

466 

467Un plugin cuya entrada en el marketplace usa una [fuente `npm`](/docs/es/plugins/marketplace-reference#npm-plugin-source) no se pudo instalar, actualizar o cargar, y el mensaje incluye esta oración. Claude Code revisó el valor `package` de la entrada antes de obtener nada y lo rechazó. El mensaje indica el valor y el motivo:

468 

469```text theme={null}

470"github:acme/formatter" was not installed: it is not an http or https link. An npm plugin source must name a registry package (name or name@version) or link to a tarball file. For a plugin in a git repository, use a "github", "url" or "git-subdir" source.

471```

472 

473El propietario del marketplace tiene que cambiar la entrada:

474 

475* **Si eres tú**: cambia `package` a un valor que acepte la [referencia de la fuente de plugins npm](/docs/es/plugins/marketplace-reference#npm-plugin-source), o cambia la entrada a una fuente `github`, `url` o `git-subdir`

476* **Si no eres tú**: informa el mensaje al propietario del marketplace

477 

463<h3 id="marketplace-is-registered-from-an-untrusted-source">478<h3 id="marketplace-is-registered-from-an-untrusted-source">

464 `Marketplace "<name>" is registered from an untrusted source`479 `Marketplace "<name>" is registered from an untrusted source`

465</h3>480</h3>

Details

220 220 

221Estos comandos funcionan durante aproximadamente cuatro horas después de que el servidor se detuvo. Después de eso, ejecute `claude remote-control` para iniciar una nueva sesión. Si archivó una sesión mientras tanto, `--continue` y `--session-id` la desarchivan en Claude Code v2.1.228 o posterior.221Estos comandos funcionan durante aproximadamente cuatro horas después de que el servidor se detuvo. Después de eso, ejecute `claude remote-control` para iniciar una nueva sesión. Si archivó una sesión mientras tanto, `--continue` y `--session-id` la desarchivan en Claude Code v2.1.228 o posterior.

222 222 

223Para traer de vuelta una sesión que inició con `claude --remote-control` o `/remote-control`, reanude la conversación con `claude --continue` o `claude --resume`. Si Remote Control no se reconecta, consulte [No se pudo reconectar a su sesión de Remote Control](#couldnt-reconnect-to-your-remote-control-session).223Para traer de vuelta una sesión que iniciaste con `claude --remote-control` o `/remote-control`, reanuda la conversación con `claude --continue` o `claude --resume`. Para conocer el modo de permisos con el que comienza la conversación reanudada, consulta [modo de permisos al reanudar](/docs/es/sessions#permission-mode-on-resume). Si Remote Control no se reconecta, consulta [No se pudo reconectar a tu sesión de Remote Control](#couldnt-reconnect-to-your-remote-control-session).

224 224 

225Si reanuda la conversación en una segunda terminal mientras la primera aún tiene Remote Control activado, Claude Code imprime un aviso `Remote Control not started here` en la segunda terminal y deja Remote Control desactivado allí en lugar de tomar la sesión de la primera. Ejecute `/remote-control` en la segunda terminal para mover Remote Control a ella.225Si reanuda la conversación en una segunda terminal mientras la primera aún tiene Remote Control activado, Claude Code imprime un aviso `Remote Control not started here` en la segunda terminal y deja Remote Control desactivado allí en lugar de tomar la sesión de la primera. Ejecute `/remote-control` en la segunda terminal para mover Remote Control a ella.

226 226 

Details

107 107 

108* Su directorio de proyecto.108* Su directorio de proyecto.

109* Las rutas de configuración de Claude Code `~/.claude` y `~/.claude.json`.109* Las rutas de configuración de Claude Code `~/.claude` y `~/.claude.json`.

110* `/tmp`, donde Claude Code escribe archivos de tiempo de ejecución.110* El directorio donde Claude Code escribe los archivos de tiempo de ejecución. A menos que establezcas [`CLAUDE_CODE_TMPDIR`](/docs/es/env-vars), ese directorio es:

111 * **Linux y WSL2**: `/tmp`

112 * **macOS**: `/private/tmp`. `/tmp` es un enlace simbólico a ese directorio, y Seatbelt verifica la ruta resuelta.

111 113 

112Permita los dominios de red que su sesión necesita:114Permita los dominios de red que su sesión necesita:

113 115 

sandboxing.md +10 −9

Details

767 Limitaciones767 Limitaciones

768</h2>768</h2>

769 769 

770El sandboxing reduce el riesgo pero no es un límite de aislamiento completo. Revise las limitaciones a continuación antes de confiar en él como un control de seguridad duro.770El sandboxing reduce el riesgo pero no es un límite de aislamiento completo. Revisa las limitaciones a continuación antes de confiar en él como un control de seguridad duro.

771 771 

772<h3 id="security-limitations">772<h3 id="security-limitations">

773 Limitaciones de seguridad773 Limitaciones de seguridad

774</h3>774</h3>

775 775 

776* **Filtrado de red**: el sandbox restringe los dominios a los que se permite que se conecten los procesos. De forma predeterminada, el proxy integrado no termina ni inspecciona TLS en el tráfico saliente, por lo que el contenido de las conexiones cifradas no se examina. La configuración experimental [`network.tlsTerminate`](/docs/es/settings-reference#sandbox-network-tlsterminate) termina TLS en el proxy para [sustitución de credenciales `mask`](#mask-credentials) pero no añade filtrado de contenido. Usted es responsable de asegurarse de que solo se permitan dominios confiables en su política.776* **Filtrado de red**: el sandbox restringe los dominios a los que se permite que se conecten los procesos. De forma predeterminada, el proxy integrado no termina ni inspecciona TLS en el tráfico saliente, por lo que el contenido de las conexiones cifradas no se examina. El ajuste experimental [`network.tlsTerminate`](/docs/es/settings-reference#sandbox-network-tlsterminate) termina TLS en el proxy para [sustitución de credenciales `mask`](#mask-credentials) pero no añade filtrado de contenido. Eres responsable de asegurarte de que solo se permitan dominios confiables en tu política.

777 777 

778<Warning>778<Warning>

779 Permitir dominios amplios como `github.com` puede crear caminos para exfiltración de datos. Porque el proxy toma su decisión de permitir del nombre de host suministrado por el cliente sin inspeccionar TLS, el código que se ejecuta dentro del sandbox puede potencialmente usar [domain fronting](https://en.wikipedia.org/wiki/Domain_fronting) u técnicas similares para alcanzar hosts fuera de la lista de permitidos. Si su modelo de amenaza requiere garantías más fuertes, configure un [proxy personalizado](#custom-proxy-configuration) que termine TLS e inspeccione tráfico, e instale su certificado CA dentro del sandbox. El aislamiento de red consciente de TLS más fuerte es un área activa de desarrollo.779 Permitir dominios amplios como `github.com` puede crear caminos para exfiltración de datos. Porque el proxy toma su decisión de permitir del nombre de host suministrado por el cliente sin inspeccionar TLS, el código que se ejecuta dentro del sandbox puede potencialmente usar [domain fronting](https://en.wikipedia.org/wiki/Domain_fronting) o técnicas similares para alcanzar hosts fuera de la lista de permitidos. Si tu modelo de amenaza requiere garantías más fuertes, configura un [proxy personalizado](#custom-proxy-configuration) que termine TLS e inspeccione tráfico, e instala su certificado CA dentro del sandbox. El aislamiento de red consciente de TLS más fuerte es un área activa de desarrollo.

780</Warning>780</Warning>

781 781 

782* **Escalada de privilegios a través de sockets Unix**: la configuración `allowUnixSockets` puede otorgar inadvertidamente acceso a servicios del sistema que podrían llevar a omisiones del sandbox. Por ejemplo, permitir acceso a `/var/run/docker.sock` efectivamente otorga acceso al sistema host a través del socket de Docker. Considere cuidadosamente cualquier socket Unix que permita a través del sandbox.782* **Escalada de privilegios a través de sockets Unix**: la configuración `allowUnixSockets` puede otorgar inadvertidamente acceso a servicios del sistema que podrían llevar a omisiones del sandbox. Por ejemplo, permitir acceso a `/var/run/docker.sock` efectivamente otorga acceso al sistema host a través del socket de Docker. Considera cuidadosamente cualquier socket Unix que permitas a través del sandbox.

783* **Escalada de permisos del sistema de archivos**: los permisos de escritura del sistema de archivos demasiado amplios pueden permitir ataques de escalada de privilegios. Permitir escrituras en directorios que contienen ejecutables en `$PATH`, directorios de configuración del sistema o archivos de configuración de shell del usuario como `.bashrc` o `.zshrc` puede llevar a ejecución de código en diferentes contextos de seguridad cuando otros usuarios o procesos del sistema acceden a estos archivos.783* **Escalada de permisos del sistema de archivos**: los permisos de escritura del sistema de archivos demasiado amplios pueden permitir ataques de escalada de privilegios. Permitir escrituras en directorios que contienen ejecutables en `$PATH`, directorios de configuración del sistema o archivos de configuración de shell del usuario como `.bashrc` o `.zshrc` puede llevar a ejecución de código en diferentes contextos de seguridad cuando otros usuarios o procesos del sistema acceden a estos archivos.

784* **Fortaleza del sandbox de Linux**: la implementación de Linux proporciona un fuerte aislamiento del sistema de archivos y la red pero incluye un modo `enableWeakerNestedSandbox` que le permite funcionar dentro de entornos Docker sin espacios de nombres privilegiados, o en hosts Linux donde los espacios de nombres de usuario sin privilegios están deshabilitados por sysctl. Esta opción debilita considerablemente la seguridad y solo debe usarse cuando se aplica aislamiento adicional de otra manera.784* **Fortaleza del sandbox de Linux**: la implementación de Linux proporciona un fuerte aislamiento del sistema de archivos y la red pero incluye un modo `enableWeakerNestedSandbox` que le permite funcionar dentro de entornos Docker sin espacios de nombres privilegiados, o en hosts Linux donde los espacios de nombres de usuario sin privilegios están deshabilitados por sysctl. Esta opción debilita considerablemente la seguridad y solo debe usarse cuando se aplica aislamiento adicional de otra manera.

785* **Apple Events en macOS**: el sandbox de macOS bloquea Apple Events de forma predeterminada. La configuración `allowAppleEvents` levanta esta restricción para que herramientas como `open` y `osascript` funcionen, pero elimina el aislamiento de ejecución de código: los comandos aislados pueden lanzar otras aplicaciones sin aislar sin solicitud del usuario, y pueden enviar comandos AppleScript a aplicaciones en ejecución, sujeto al aviso de consentimiento de automatización por aplicación de macOS (TCC). Solo se honra desde configuración de usuario, administrada o CLI. La configuración del proyecto no puede habilitarla.785* **Apple Events en macOS**: el sandbox de macOS bloquea Apple Events de forma predeterminada. El ajuste `allowAppleEvents` levanta esta restricción para que herramientas como `open` y `osascript` funcionen, pero elimina el aislamiento de ejecución de código: los comandos aislados pueden lanzar otras aplicaciones sin aislar sin solicitud del usuario, y pueden enviar comandos AppleScript a aplicaciones en ejecución, sujeto a la solicitud de consentimiento de automatización por aplicación de macOS (TCC). Solo se honra desde configuración de usuario, administrada o CLI. La configuración del proyecto no puede habilitarlo.

786 786 

787<h3 id="platform-and-tool-compatibility">787<h3 id="platform-and-tool-compatibility">

788 Compatibilidad de plataforma y herramienta788 Compatibilidad de plataforma y herramienta


798 798 

799El sandbox aísla subprocesos Bash. Otras herramientas operan bajo límites diferentes:799El sandbox aísla subprocesos Bash. Otras herramientas operan bajo límites diferentes:

800 800 

801* **Herramientas de archivo integradas**: Read, Edit y Write usan el sistema de permisos directamente en lugar de ejecutarse a través del sandbox. Consulte [permisos](/docs/es/permissions).801* **Herramientas de archivo integradas**: Read, Edit y Write usan el sistema de permisos directamente en lugar de ejecutarse a través del sandbox. Consulta [permisos](/docs/es/permissions).

802* **Uso de computadora**: cuando Claude abre aplicaciones y controla su pantalla, se ejecuta en su escritorio real en lugar de en un entorno aislado. Las solicitudes de permiso por aplicación controlan cada aplicación. Consulte [uso de computadora en CLI](/docs/es/computer-use) o [uso de computadora en Desktop](/docs/es/desktop#let-claude-use-your-computer).802* **Uso de computadora**: cuando Claude abre aplicaciones y controla tu pantalla, se ejecuta en tu escritorio real en lugar de en un entorno aislado. Las solicitudes de permiso por aplicación controlan cada aplicación. Consulta [uso de computadora en CLI](/docs/es/computer-use) o [uso de computadora en Desktop](/docs/es/desktop#let-claude-use-your-computer).

803* **Variables de entorno**: los comandos Bash aislados heredan el entorno del proceso padre de forma predeterminada, incluidas las credenciales establecidas allí. Use [`sandbox.credentials`](#protect-credentials) para desactivar o enmascarar variables específicas para comandos aislados, o establezca [`CLAUDE_CODE_SUBPROCESS_ENV_SCRUB`](/docs/es/env-vars) para eliminar credenciales de todos los subprocesos.803* **Variables de entorno**: los comandos Bash aislados heredan el entorno del proceso padre de forma predeterminada, incluidas las credenciales establecidas allí. Usa [`sandbox.credentials`](#protect-credentials) para desactivar o enmascarar variables específicas para comandos aislados, o establece [`CLAUDE_CODE_SUBPROCESS_ENV_SCRUB`](/docs/es/env-vars) para eliminar credenciales de todos los subprocesos.

804* **Subagentes**: los [subagentes](/docs/es/sub-agents) se ejecutan en el mismo proceso que la sesión padre y usan la misma configuración de sandbox. Los comandos Bash dentro de un subagente están aislados cuando el sandboxing está habilitado en la sesión padre.804* **Subagentes**: los [subagentes](/docs/es/sub-agents) se ejecutan en el mismo proceso que la sesión padre y usan la misma configuración de sandbox. Los comandos Bash dentro de un subagente están aislados cuando el sandboxing está habilitado en la sesión padre.

805* **Mods**: un [mod](/docs/es/plugins/mods/overview) es un plugin que ejecuta su propio código dentro de Claude Code, y un proceso que inicia un mod se ejecuta fuera del sandbox. Consulta [Qué puede alcanzar un mod](/docs/es/plugins/mods/overview#what-a-mod-can-reach).

805 806 

806<Warning>807<Warning>

807 El sandboxing efectivo requiere tanto aislamiento del sistema de archivos como de la red. Sin aislamiento de red, un agente comprometido podría exfiltrar archivos sensibles como claves SSH. Sin aislamiento del sistema de archivos, ya sea por una política permisiva o por [deshabilitar la capa del sistema de archivos](#disable-filesystem-isolation), un agente comprometido podría instalar una puerta trasera en recursos del sistema para obtener acceso a la red. Cuando amplíe los valores predeterminados, verifique que una ruta `allowWrite`, una entrada `allowedDomains` amplia o una excepción `excludedCommands` no deshaga una restricción en el otro lado.808 El sandboxing efectivo requiere tanto aislamiento del sistema de archivos como de la red. Sin aislamiento de red, un agente comprometido podría exfiltrar archivos sensibles como claves SSH. Sin aislamiento del sistema de archivos, ya sea por una política permisiva o por [deshabilitar la capa del sistema de archivos](#disable-filesystem-isolation), un agente comprometido podría instalar una puerta trasera en recursos del sistema para obtener acceso a la red. Cuando amplíes los valores predeterminados, verifica que una ruta `allowWrite`, una entrada `allowedDomains` amplia o una excepción `excludedCommands` no deshaga una restricción en el otro lado.

808</Warning>809</Warning>

809 810 

810<h2 id="see-also">811<h2 id="see-also">

Details

61 61 

62No cierre ni reutilice el descriptor de archivo 3 en el contenedor. Redirigir stdout y stderr del hijo está bien.62No cierre ni reutilice el descriptor de archivo 3 en el contenedor. Redirigir stdout y stderr del hijo está bien.

63 63 

64<h3 id="pass-the-system-prompt-flags-through">

65 Transmitir los flags del prompt del sistema

66</h3>

67 

68El prompt del sistema y el prompt del sistema anexado que el plano de control de Anthropic envía para una sesión llegan a tu contenedor como rutas de archivo, no como texto en línea. El ejecutor escribe cada prompt en un archivo en el directorio de configuración de la sesión, `CLAUDE_CONFIG_DIR`, y pasa su ruta en los argumentos que recibe tu contenedor, como [`--system-prompt-file <path>` o `--append-system-prompt-file <path>`](/docs/es/cli-reference#system-prompt-flags).

69 

70Los ejecutores en Claude Code v2.1.281 o posterior entregan los prompts como archivos. Antes de v2.1.281, el ejecutor los pasaba como `--system-prompt <text>` y `--append-system-prompt <text>`.

71 

72En tu script contenedor o [hook `command`](#command), maneja estos flags de la siguiente manera:

73 

74* **Transmítelos**: termina el contenedor con `exec "$CLAUDE_RUNNER_CLAUDE_BIN" "$@"`, que reenvía los flags de archivo junto con todos los demás argumentos. No los descartes ni los reescribas. Si una sesión pierde un flag de archivo de prompt, se ejecuta sin las instrucciones que el plano de control envió para ella.

75* **En un ejecutor con v2.1.281 o posterior, un flag de archivo que agregues reemplaza el del servidor, nunca se suma a él**: cada flag de archivo de prompt toma un único valor y Claude Code conserva la última aparición, por lo que si agregas `--append-system-prompt-file <path>` después de `"$@"`, el contenido de tu archivo reemplaza las instrucciones anexadas del servidor. Para agregar instrucciones además de las del servidor, colócalas en el `CLAUDE.md` de la imagen del ejecutor, que el ejecutor [incorpora en la configuración a nivel de usuario de cada sesión](#how-each-session’s-config-is-assembled).

76 

64<h3 id="provision-credentials-scoped-to-the-session-creator">77<h3 id="provision-credentials-scoped-to-the-session-creator">

65 Aprovisionar credenciales limitadas al creador de la sesión78 Aprovisionar credenciales limitadas al creador de la sesión

66</h3>79</h3>


447* **Quién los autor**: el plano de control puebla los scripts desde constantes fijas en su propia implementación, nunca desde entrada por sesión o de terceros.460* **Quién los autor**: el plano de control puebla los scripts desde constantes fijas en su propia implementación, nunca desde entrada por sesión o de terceros.

448* **Qué aún los rige**: los hooks entregados a través de `--settings` entran en la configuración de hook ordinaria fusionada, no en el nivel administrado, por lo que su configuración administrada aún se aplica. `disableAllHooks` los deshabilita, y no están entre las categorías que [`allowManagedHooksOnly`](/docs/es/settings-reference#allowmanagedhooksonly) mantiene cargadas.461* **Qué aún los rige**: los hooks entregados a través de `--settings` entran en la configuración de hook ordinaria fusionada, no en el nivel administrado, por lo que su configuración administrada aún se aplica. `disableAllHooks` los deshabilita, y no están entre las categorías que [`allowManagedHooksOnly`](/docs/es/settings-reference#allowmanagedhooksonly) mantiene cargadas.

449 462 

463Fuera de las sesiones de [Claude Tag](https://claude.com/docs/claude-tag/overview), una sesión en un entorno autohospedado se ejecuta con la [memoria automática](/docs/es/memory#auto-memory) desactivada de forma predeterminada. Para instrucciones que deban mantenerse entre sesiones, usa el `CLAUDE.md` de tu imagen del ejecutor o del repositorio.

464 

465La instantánea del `~/.claude/` del host que toma el ejecutor excluye el directorio `projects/`. La ubicación de almacenamiento predeterminada de la memoria automática está dentro de ese directorio. Si colocas archivos de memoria allí, el ejecutor no los copia a las sesiones, y no activan la memoria automática.

466 

450<h3 id="repository-committed-permission-rules">467<h3 id="repository-committed-permission-rules">

451 Reglas de permiso confirmadas en el repositorio468 Reglas de permiso confirmadas en el repositorio

452</h3>469</h3>

Details

1958* Una sustitución de comando, un subshell o un bloque de flujo de control como `if` o `for`1958* Una sustitución de comando, un subshell o un bloque de flujo de control como `if` o `for`

1959* Una redirección, como `docker build . > build.log`, que no sea una que solo duplique un descriptor de archivo, como `2>&1` hace1959* Una redirección, como `docker build . > build.log`, que no sea una que solo duplique un descriptor de archivo, como `2>&1` hace

1960* Un nombre de comando que proviene de una variable1960* Un nombre de comando que proviene de una variable

1961* Un `git clone`, `git init`, `git worktree add`, `git worktree move` o `git bundle create` con un argumento de ruta que es absoluto, comienza con `~` o contiene un segmento `..`

1961 1962 

1962Por ejemplo, `cd build && docker compose up` permanece en sandbox bajo una entrada `docker *`, y agregar una entrada `cd` no cambia eso.1963Por ejemplo, `cd build && docker compose up` permanece en el sandbox con una entrada `docker *`, y agregar una entrada `cd` no cambia eso. Con una entrada `git *`, `git clone <url> vendor/lib` se ejecuta fuera del sandbox, pero `git clone <url> ~/tools` permanece en el sandbox. Un clon escribe todo un árbol de archivos, posiblemente ejecutables, dondequiera que apunte su ruta de destino.

1963 1964 

1964Los comandos excluidos aún pasan por el flujo de permiso regular. La exclusión es una conveniencia, no un límite de seguridad: prefiera [`filesystem.allowWrite`](#sandbox-filesystem-allowwrite) cuando una herramienta solo necesita escribir en algún lugar específico. Claude Code fusiona entradas en todos los ámbitos de configuración que carga la sesión, y no hay un bloqueo solo administrado para esta lista, así que mantenga una lista administrada estrecha.1965Los comandos excluidos aún pasan por el flujo de permiso regular. La exclusión es una conveniencia, no un límite de seguridad: prefiera [`filesystem.allowWrite`](#sandbox-filesystem-allowwrite) cuando una herramienta solo necesita escribir en algún lugar específico. Claude Code fusiona entradas en todos los ámbitos de configuración que carga la sesión, y no hay un bloqueo solo administrado para esta lista, así que mantenga una lista administrada estrecha.

1965 1966 


4261 Hooks y automatización4262 Hooks y automatización

4262</h2>4263</h2>

4263 4264 

4264Registre hooks, restrinja qué hooks se ejecutan y controle flujos de trabajo. Para eventos y cargas útiles de hooks, consulte la [referencia de hooks](/docs/es/hooks).4265Registra hooks, restringe qué hooks se ejecutan y controla flujos de trabajo. Para eventos y cargas útiles de hooks, consulta la [referencia de hooks](/docs/es/hooks).

4265 4266 

4266<h3 id="allowedhttphookurls">4267<h3 id="allowedhttphookurls">

4267 `allowedHttpHookUrls`4268 `allowedHttpHookUrls`

4268</h3>4269</h3>

4269 4270 

4270Limite qué URLs pueden dirigirse a los [hooks HTTP](/docs/es/hooks#http-hook-fields). Cuando define esta clave, Claude Code ejecuta un hook HTTP solo si su URL coincide con uno de los patrones y bloquea el resto sin ejecutarlos; una matriz vacía bloquea cada hook HTTP.4271Limita qué URLs pueden dirigirse a los [hooks HTTP](/docs/es/hooks#http-hook-fields). Cuando defines esta clave, Claude Code ejecuta un hook HTTP solo si su URL coincide con uno de los patrones y bloquea el resto sin ejecutarlos; una matriz vacía bloquea cada hook HTTP.

4271 4272 

4272* **Alcance**: [`Any file`](#scopes). Las matrices se fusionan en los archivos de configuración.4273* **Alcance**: [`Any file`](#scopes). Las matrices se fusionan en los archivos de configuración.

4273* **Tipo**: matriz de patrones de URL, con `*` como comodín4274* **Tipo**: matriz de patrones de URL, con `*` como comodín


4287 `allowManagedHooksOnly`4288 `allowManagedHooksOnly`

4288</h3>4289</h3>

4289 4290 

4290Restrinja la ejecución de hooks solo a los hooks que implementa su organización.4291Restringe la ejecución de hooks solo a los hooks que implementa tu organización.

4291 4292 

4292* **Alcance**: [`Managed`](#scopes)4293* **Alcance**: [`Managed`](#scopes)

4293* **Tipo**: Booleano4294* **Tipo**: Booleano

4294 * `true`: solo se ejecutan hooks administrados, más hooks del Agent SDK y hooks de plugins que su configuración administrada fuerza a habilitar. Consulte [Qué se ejecuta bajo `allowManagedHooksOnly`](#what-runs-under-allowmanagedhooksonly)4295 * `true`: solo se ejecutan hooks administrados, más hooks del Agent SDK y hooks de plugins que tu configuración administrada fuerza a habilitar. Consulta [Qué se ejecuta bajo `allowManagedHooksOnly`](#what-runs-under-allowmanagedhooksonly)

4295 * `false`: se ejecutan hooks de todos los alcances de configuración y plugins4296 * `false`: se ejecutan hooks de todos los alcances de configuración y plugins

4296* **Predeterminado**: no establecido, por lo que se ejecutan hooks de todos los alcances de configuración y plugins4297* **Predeterminado**: no establecido, por lo que se ejecutan hooks de todos los alcances de configuración y plugins

4297 4298 


4305 Qué se ejecuta bajo `allowManagedHooksOnly`4306 Qué se ejecuta bajo `allowManagedHooksOnly`

4306</h4>4307</h4>

4307 4308 

4308Cuando lo establece en `true`, Claude Code cambia qué hooks y comandos similares a hooks se cargan:4309Cuando lo estableces en `true`, Claude Code cambia qué hooks y comandos similares a hooks se cargan:

4309 4310 

4310* **Se ejecutan hooks administrados y SDK**: hooks de configuración administrada y hooks que el [Agent SDK](/docs/es/agent-sdk/overview) registra en proceso4311* **Se ejecutan hooks administrados y SDK**: hooks de configuración administrada y hooks que el [Agent SDK](/docs/es/agent-sdk/overview) registra en proceso

4311* **Se ejecutan hooks de plugins forzados a habilitarse**: hooks de plugins que su configuración administrada fuerza a habilitar a través de [`enabledPlugins`](#enabledplugins). Claude Code coincide con el ID completo `plugin@marketplace`, por lo que un plugin con el mismo nombre de un marketplace diferente permanece bloqueado. Esto le permite distribuir hooks verificados a través de un marketplace de organización mientras bloquea todo lo demás. Un [mod](/docs/es/plugins/mods/overview) en tal plugin se carga solo cuando [cuenta como el de su organización](/docs/es/plugins/mods/admin#install-your-organizations-mods)4312* **Se ejecutan hooks de plugins forzados a habilitarse**: hooks de plugins que tu configuración administrada fuerza a habilitar a través de [`enabledPlugins`](#enabledplugins). Claude Code coincide con el ID completo `plugin@marketplace`, por lo que un plugin con el mismo nombre de un marketplace diferente permanece bloqueado. Esto te permite distribuir hooks verificados a través de un marketplace de organización mientras bloqueas todo lo demás. Un [mod](/docs/es/plugins/mods/overview) en tal plugin se carga solo cuando [cuenta como el de tu organización](/docs/es/plugins/mods/admin#install-your-organizations-mods)

4312* **Todo lo demás está bloqueado**: hooks de usuario, proyecto y locales, hooks y mods de otros plugins instalados, y hooks declarados en frontmatter de agente. [Los mods integrados en Claude Code](/docs/es/plugins/mods/overview#mods-built-into-claude-code) continúan ejecutándose. Para bloquear solo los mods de los usuarios, establezca [`allowManagedModsOnly`](/docs/es/plugins/mods/admin#set-options-on-the-built-in-guard) en su lugar.4313* **Todo lo demás está bloqueado**: hooks de usuario, proyecto y locales, hooks y mods de otros plugins instalados, y hooks declarados en frontmatter de agente. [Los mods integrados en Claude Code](/docs/es/plugins/mods/overview#mods-built-into-claude-code) continúan ejecutándose. Para bloquear solo los mods de los usuarios, establece [`allowManagedModsOnly`](/docs/es/plugins/mods/admin#set-options-on-the-built-in-guard) en su lugar.

4313* **Los plugins con origen de comando están deshabilitados**: Claude Code también deshabilita plugins con un [origen `command`](/docs/es/plugins/marketplace-reference#command-plugin-source), incluidos plugins forzados a habilitarse en `enabledPlugins` administrado, a menos que establezca [`disableCommandPluginSources`](#disablecommandpluginsources) explícitamente en `false`4314* **Los plugins con origen de comando están deshabilitados**: Claude Code también deshabilita plugins con un [origen `command`](/docs/es/plugins/marketplace-reference#command-plugin-source), incluidos plugins forzados a habilitarse en `enabledPlugins` administrado, a menos que establezcas [`disableCommandPluginSources`](#disablecommandpluginsources) explícitamente en `false`

4314* **Los comandos `headersHelper` del marketplace están bloqueados**: Claude Code también bloquea los comandos [`headersHelper`](/docs/es/plugins/host-marketplace#authenticate-archive-downloads) del marketplace a menos que [`disableCommandPluginSources`](#disablecommandpluginsources) esté explícitamente establecido en `false`, excepto para un marketplace que la configuración administrada declara. Requiere Claude Code v2.1.238 o posterior4315* **Los comandos `headersHelper` del marketplace están bloqueados**: Claude Code también bloquea los comandos [`headersHelper`](/docs/es/plugins/host-marketplace#authenticate-archive-downloads) del marketplace a menos que [`disableCommandPluginSources`](#disablecommandpluginsources) esté explícitamente establecido en `false`, excepto para un marketplace que la configuración administrada declara. Requiere Claude Code v2.1.238 o posterior

4315* **La línea de estado y la sugerencia de archivo se reducen a configuración administrada**: Claude Code lee [`statusLine`](/docs/es/statusline), [`fileSuggestion`](#filesuggestion) y [`subagentStatusLine`](/docs/es/statusline#subagent-status-lines) solo de configuración administrada, siguiendo las [puertas de línea de estado y sugerencia de archivo](#status-line-and-file-suggestion-gates)4316* **La línea de estado y la sugerencia de archivo se reducen a configuración administrada**: Claude Code lee [`statusLine`](/docs/es/statusline), [`fileSuggestion`](#filesuggestion) y [`subagentStatusLine`](/docs/es/statusline#subagent-status-lines) solo de configuración administrada, siguiendo las [puertas de línea de estado y sugerencia de archivo](#status-line-and-file-suggestion-gates)

4316 4317 


4320 `disableAllHooks`4321 `disableAllHooks`

4321</h3>4322</h3>

4322 4323 

4323Desactive [hooks](/docs/es/hooks#disable-or-remove-hooks), cualquier [línea de estado](/docs/es/statusline) personalizada y cualquier comando personalizado de [sugerencia de archivo](#filesuggestion). Úselo para desactivar todos estos temporalmente sin eliminarlos de su configuración.4324Desactiva [hooks](/docs/es/hooks#disable-or-remove-hooks), cualquier [línea de estado](/docs/es/statusline) personalizada y cualquier comando personalizado de [sugerencia de archivo](#filesuggestion). Úsalo para desactivar todos estos temporalmente sin eliminarlos de tu configuración.

4324 4325 

4325* **Alcance**: [`Any file`](#scopes). Solo la configuración administrada puede deshabilitar hooks administrados.4326* **Alcance**: [`Any file`](#scopes). Solo la configuración administrada puede deshabilitar hooks administrados.

4326* **Tipo**: Booleano4327* **Tipo**: Booleano


4339* **En configuración administrada**: Claude Code deshabilita cada hook configurado, incluidos los administrados, y continúa ejecutando los hooks que el [Agent SDK](/docs/es/agent-sdk/overview) registra en proceso4340* **En configuración administrada**: Claude Code deshabilita cada hook configurado, incluidos los administrados, y continúa ejecutando los hooks que el [Agent SDK](/docs/es/agent-sdk/overview) registra en proceso

4340* **En cualquier otro archivo de configuración**: Claude Code deshabilita hooks de usuario, proyecto, locales y de plugins; los hooks administrados, hooks del Agent SDK y hooks de plugins forzados a habilitarse en [`enabledPlugins`](#enabledplugins) administrado continúan ejecutándose4341* **En cualquier otro archivo de configuración**: Claude Code deshabilita hooks de usuario, proyecto, locales y de plugins; los hooks administrados, hooks del Agent SDK y hooks de plugins forzados a habilitarse en [`enabledPlugins`](#enabledplugins) administrado continúan ejecutándose

4341 4342 

4343La clave también detiene los [mods](/docs/es/plugins/mods/overview), que son plugins cuyo código registra hooks:

4344 

4345* **En configuración administrada**: se detienen los mods de cada plugin instalado, incluidos los de tu organización

4346* **En cualquier otro archivo de configuración**: se detienen los mods que instalaste, y [los mods de tu organización](/docs/es/plugins/mods/admin#install-your-organizations-mods) continúan ejecutándose

4347 

4348Los mods integrados en Claude Code continúan ejecutándose en ambos casos. Cada uno tiene [su propio interruptor](/docs/es/plugins/mods/overview#mods-built-into-claude-code).

4349 

4342Mantener los hooks del Agent SDK ejecutándose cuando la configuración administrada establece esta clave requiere Claude Code v2.1.242 o posterior.4350Mantener los hooks del Agent SDK ejecutándose cuando la configuración administrada establece esta clave requiere Claude Code v2.1.242 o posterior.

4343 4351 

4344El comando [`/goal`](/docs/es/goal) no puede ejecutarse mientras los hooks están deshabilitados, y el menú `/hooks` muestra un aviso en lugar de sus hooks.4352El comando [`/goal`](/docs/es/goal) no puede ejecutarse mientras los hooks están deshabilitados, y el menú `/hooks` muestra un aviso en lugar de tus hooks.

4345 4353 

4346<h4 id="status-line-and-file-suggestion-gates">4354<h4 id="status-line-and-file-suggestion-gates">

4347 Puertas de línea de estado y sugerencia de archivo4355 Puertas de línea de estado y sugerencia de archivo


4350Claude Code toma dos decisiones para `statusLine`, `fileSuggestion` y `subagentStatusLine`, en este orden:4358Claude Code toma dos decisiones para `statusLine`, `fileSuggestion` y `subagentStatusLine`, en este orden:

4351 4359 

4352* **Desactivado completamente**: cuando la configuración administrada establece `disableAllHooks`, o cuando la carpeta no es de confianza bajo la misma [regla de confianza del espacio de trabajo que los hooks en archivos de configuración](/docs/es/permissions#what-runs-before-you-trust-a-folder)4360* **Desactivado completamente**: cuando la configuración administrada establece `disableAllHooks`, o cuando la carpeta no es de confianza bajo la misma [regla de confianza del espacio de trabajo que los hooks en archivos de configuración](/docs/es/permissions#what-runs-before-you-trust-a-folder)

4353* **Reducido a configuración administrada**: cuando [`allowManagedHooksOnly`](#allowmanagedhooksonly) está establecido, cuando `disableAllHooks` es `true` fuera de la configuración administrada después de que se aplica la [precedencia de configuración](/docs/es/hooks#disable-or-remove-hooks), o cuando inicia Claude Code con `--safe-mode`4361* **Reducido a configuración administrada**: cuando [`allowManagedHooksOnly`](#allowmanagedhooksonly) está establecido, cuando `disableAllHooks` es `true` fuera de la configuración administrada después de que se aplica la [precedencia de configuración](/docs/es/hooks#disable-or-remove-hooks), o cuando inicias Claude Code con `--safe-mode`

4354 4362 

4355Bajo reducción, Claude Code ejecuta un valor administrado si uno está implementado. De lo contrario, omite su valor sin advertencia: la línea de estado está deshabilitada y el autocompletado `@` vuelve a la sugerencia de archivo integrada.4363Bajo reducción, Claude Code ejecuta un valor administrado si uno está implementado. De lo contrario, omite tu valor sin advertencia: la línea de estado está deshabilitada y el autocompletado `@` vuelve a la sugerencia de archivo integrada.

4356 4364 

4357<h3 id="disableworkflows">4365<h3 id="disableworkflows">

4358 `disableWorkflows`4366 `disableWorkflows`

4359</h3>4367</h3>

4360 4368 

4361Desactive [flujos de trabajo dinámicos](/docs/es/workflows#turn-workflows-off) y los comandos de flujo de trabajo incluidos para todos los que alcanza su configuración, como una organización a través de configuración administrada. Para activar o desactivar flujos de trabajo solo para usted, use [`enableWorkflows`](#enableworkflows) en su lugar, que el interruptor **Dynamic workflows** en `/config` escribe en su configuración de usuario.4369Desactiva [flujos de trabajo dinámicos](/docs/es/workflows#turn-workflows-off) y los comandos de flujo de trabajo incluidos para todos los que alcanza tu configuración, como una organización a través de configuración administrada. Para activar o desactivar flujos de trabajo solo para ti, usa [`enableWorkflows`](#enableworkflows) en su lugar, que el interruptor **Dynamic workflows** en `/config` escribe en tu configuración de usuario.

4362 4370 

4363* **Alcance**: [`Any file`](#scopes)4371* **Alcance**: [`Any file`](#scopes)

4364* **Tipo**: Booleano4372* **Tipo**: Booleano

4365 * `true`: Claude Code desactiva flujos de trabajo dinámicos y los comandos de flujo de trabajo incluidos para todos los que alcanza su configuración4373 * `true`: Claude Code desactiva flujos de trabajo dinámicos y los comandos de flujo de trabajo incluidos para todos los que alcanza tu configuración

4366 * `false`: lo mismo que no establecido; si los flujos de trabajo están activados entonces sigue [`enableWorkflows`](#enableworkflows) y el predeterminado de su plan4374 * `false`: lo mismo que no establecido; si los flujos de trabajo están activados entonces sigue [`enableWorkflows`](#enableworkflows) y el predeterminado de tu plan

4367* **Predeterminado**: `false`4375* **Predeterminado**: `false`

4368* **Anulaciones por sesión**: [`CLAUDE_CODE_DISABLE_WORKFLOWS`](/docs/es/env-vars) desactiva flujos de trabajo para una sesión; cualquiera de los dos que los desactive, el otro no puede volver a activarlos4376* **Sobrescrituras por sesión**: [`CLAUDE_CODE_DISABLE_WORKFLOWS`](/docs/es/env-vars) desactiva flujos de trabajo para una sesión; cualquiera de los dos que los desactive, el otro no puede volver a activarlos

4369 4377 

4370```json settings.json theme={null}4378```json settings.json theme={null}

4371{4379{


4377 `enableWorkflows`4385 `enableWorkflows`

4378</h3>4386</h3>

4379 4387 

4380Active o desactive [flujos de trabajo dinámicos](/docs/es/workflows) para usted cuando el predeterminado de su plan no sea lo que desea. Aparece en `/config` como **Dynamic workflows**, que escribe esta clave en su configuración de usuario y la elimina nuevamente cuando alterna al predeterminado de su plan. Para desactivar flujos de trabajo para todos desde la configuración administrada, use [`disableWorkflows`](#disableworkflows) en su lugar.4388Activa o desactiva [flujos de trabajo dinámicos](/docs/es/workflows) para ti cuando el predeterminado de tu plan no sea lo que deseas. Aparece en `/config` como **Dynamic workflows**, que escribe esta clave en tu configuración de usuario y la elimina nuevamente cuando alternas al predeterminado de tu plan. Para desactivar flujos de trabajo para todos desde la configuración administrada, usa [`disableWorkflows`](#disableworkflows) en su lugar.

4381 4389 

4382* **Alcance**: [`Any file`](#scopes)4390* **Alcance**: [`Any file`](#scopes)

4383* **Tipo**: Booleano4391* **Tipo**: Booleano

4384 * `true`: Claude Code activa flujos de trabajo dinámicos para usted4392 * `true`: Claude Code activa flujos de trabajo dinámicos para ti

4385 * `false`: Claude Code desactiva flujos de trabajo dinámicos para usted4393 * `false`: Claude Code desactiva flujos de trabajo dinámicos para ti

4386* **Predeterminado**: no establecido, por lo que los flujos de trabajo están activados a menos que esté en el plan Pro, donde están desactivados4394* **Predeterminado**: no establecido, por lo que los flujos de trabajo están activados a menos que estés en el plan Pro, donde están desactivados

4387* **Anulaciones por sesión**: [`CLAUDE_CODE_DISABLE_WORKFLOWS`](/docs/es/env-vars) desactiva flujos de trabajo para una sesión, y `true` aquí no puede volver a activarlos mientras esté establecido4395* **Sobrescrituras por sesión**: [`CLAUDE_CODE_DISABLE_WORKFLOWS`](/docs/es/env-vars) desactiva flujos de trabajo para una sesión, y `true` aquí no puede volver a activarlos mientras esté establecido

4388 4396 

4389```json settings.json theme={null}4397```json settings.json theme={null}

4390{4398{


4392}4400}

4393```4401```

4394 4402 

4395[`disableWorkflows`](#disableworkflows) y la política de flujos de trabajo de su organización también tienen precedencia: `enableWorkflows: true` no puede volver a activar flujos de trabajo mientras alguna fuente los desactiva. Claude Code oculta la fila `/config` mientras una fuente que no sea su configuración de usuario establece `enableWorkflows`, o establece `disableWorkflows` en `true`.4403[`disableWorkflows`](#disableworkflows) y la política de flujos de trabajo de tu organización también tienen precedencia: `enableWorkflows: true` no puede volver a activar flujos de trabajo mientras alguna fuente los desactiva. Claude Code oculta la fila `/config` mientras una fuente que no sea tu configuración de usuario establece `enableWorkflows`, o establece `disableWorkflows` en `true`.

4396 4404 

4397<h3 id="hooks">4405<h3 id="hooks">

4398 `hooks`4406 `hooks`

4399</h3>4407</h3>

4400 4408 

4401Ejecute sus propios comandos, prompts, agentes, solicitudes HTTP o herramientas MCP como [hooks](/docs/es/hooks) en puntos del ciclo de vida de Claude Code, como antes de una llamada de herramienta o cuando comienza una sesión; la [referencia de hooks](/docs/es/hooks#hook-events) enumera cada evento, su carga útil y sus códigos de salida. Cada evento se asigna a una lista de grupos de coincidencia, y cada grupo enumera los controladores a ejecutar cuando se aplica la coincidencia.4409Ejecuta tus propios comandos, prompts, agentes, solicitudes HTTP o herramientas MCP como [hooks](/docs/es/hooks) en puntos del ciclo de vida de Claude Code, como antes de una llamada a herramienta o cuando comienza una sesión; la [referencia de hooks](/docs/es/hooks#hook-events) enumera cada evento, su payload y sus códigos de salida. Cada evento se asigna a una lista de grupos de matchers, y cada grupo enumera los controladores a ejecutar cuando se aplica el matcher.

4402 4410 

4403* **Alcance**: [`Any file`](#scopes). Los hooks se fusionan en archivos en lugar de reemplazarse entre sí, y los hooks de configuración administrada no se pueden eliminar de otros archivos.4411* **Alcance**: [`Any file`](#scopes). Los hooks se combinan entre archivos en lugar de reemplazarse entre sí, y los hooks de configuración administrada no se pueden eliminar desde otros archivos.

4404* **Tipo**: objeto codificado por [evento de hook](/docs/es/hooks#hook-events); cada valor es una matriz de grupos `{ "matcher", "hooks" }` cuyas entradas `hooks` tienen un `type` de `"command"`, `"prompt"`, `"agent"`, `"http"` o `"mcp_tool"`4412* **Tipo**: objeto codificado por [evento de hook](/docs/es/hooks#hook-events); cada valor es una matriz de grupos `{ "matcher", "hooks" }` cuyas entradas `hooks` tienen un `type` de `"command"`, `"prompt"`, `"agent"`, `"http"` o `"mcp_tool"`

4405* **Predeterminado**: no establecido, por lo que no se ejecutan hooks4413* **Predeterminado**: no establecido, por lo que no se ejecutan hooks

4406 4414 

4407Este ejemplo ejecuta un script antes de cada llamada de herramienta Bash:4415Este ejemplo ejecuta un script antes de cada llamada a la herramienta Bash:

4408 4416 

4409```json settings.json theme={null}4417```json settings.json theme={null}

4410{4418{


4421}4429}

4422```4430```

4423 4431 

4424Para cada evento, patrón de coincidencia y campo de controlador, consulte la [referencia de hooks](/docs/es/hooks#configuration). Para desactivar hooks, consulte [`disableAllHooks`](#disableallhooks); para limitar hooks a los que implementa su organización, consulte [`allowManagedHooksOnly`](#allowmanagedhooksonly).4432Para cada evento, patrón de matcher y campo de controlador, consulta la [referencia de hooks](/docs/es/hooks#configuration). Para desactivar hooks, consulta [`disableAllHooks`](#disableallhooks); para limitar hooks a los que implementa tu organización, consulta [`allowManagedHooksOnly`](#allowmanagedhooksonly).

4425 4433 

4426<h3 id="httphookallowedenvvars">4434<h3 id="httphookallowedenvvars">

4427 `httpHookAllowedEnvVars`4435 `httpHookAllowedEnvVars`

4428</h3>4436</h3>

4429 4437 

4430Un [hook HTTP](/docs/es/hooks#http-hook-fields) puede poner el valor de una variable de entorno en un encabezado de solicitud, por ejemplo un encabezado `Authorization: Bearer $HOOK_TOKEN`, pero solo para variables que el hook enumera en su propio `allowedEnvVars`. Esta clave establece un límite externo en esa lista para cada hook HTTP: un hook puede usar una variable solo si tanto su propio `allowedEnvVars` como esta clave la nombran. Úselo para evitar que un hook lea un secreto que no debería, incluso cuando la definición del hook lo solicita.4438Un [hook HTTP](/docs/es/hooks#http-hook-fields) puede poner el valor de una variable de entorno en un encabezado de solicitud, por ejemplo un encabezado `Authorization: Bearer $HOOK_TOKEN`, pero solo para variables que el hook enumera en su propio `allowedEnvVars`. Esta clave establece un límite externo en esa lista para cada hook HTTP: un hook puede usar una variable solo si tanto su propio `allowedEnvVars` como esta clave la nombran. Úsala para evitar que un hook lea un secreto que no debería, incluso cuando la definición del hook lo solicita.

4431 4439 

4432* **Alcance**: [`Any file`](#scopes). Las matrices se fusionan en los archivos de configuración.4440* **Alcance**: [`Any file`](#scopes). Las matrices se fusionan en los archivos de configuración.

4433* **Tipo**: matriz de nombres de variables de entorno4441* **Tipo**: matriz de nombres de variables de entorno


4447 `workflowKeywordTriggerEnabled`4455 `workflowKeywordTriggerEnabled`

4448</h3>4456</h3>

4449 4457 

4450Elija si escribir la palabra clave `ultracode` en un prompt activa un [flujo de trabajo dinámico](/docs/es/workflows#ask-for-a-workflow-in-your-prompt). Establézcalo en `false` para escribir la palabra sin activar uno.4458Elige si escribir la palabra clave `ultracode` en un prompt activa un [flujo de trabajo dinámico](/docs/es/workflows#ask-for-a-workflow-in-your-prompt). Establécelo en `false` para escribir la palabra sin activar uno.

4451 4459 

4452* **Alcance**: [`Any file`](#scopes). Aparece en `/config` como **Ultracode keyword trigger**.4460* **Alcance**: [`Any file`](#scopes). Aparece en `/config` como **Ultracode keyword trigger**.

4453* **Tipo**: Booleano4461* **Tipo**: Booleano

4454 * `true`: escribir `ultracode` en un prompt activa un flujo de trabajo dinámico4462 * `true`: escribir `ultracode` en un prompt activa un flujo de trabajo dinámico

4455 * `false`: puede escribir la palabra sin activar uno4463 * `false`: puedes escribir la palabra sin activar uno

4456* **Predeterminado**: `true`4464* **Predeterminado**: `true`

4457 4465 

4458```json settings.json theme={null}4466```json settings.json theme={null}


4461}4469}

4462```4470```

4463 4471 

4464La configuración de esfuerzo `ultracode`, `/workflows` y los comandos de flujo de trabajo guardados no se ven afectados.4472El ajuste de esfuerzo `ultracode`, `/workflows` y los comandos de flujo de trabajo guardados no se ven afectados.

4465 4473 

4466<h3 id="workflowsizeguideline">4474<h3 id="workflowsizeguideline">

4467 `workflowSizeGuideline`4475 `workflowSizeGuideline`

4468</h3>4476</h3>

4469 4477 

4470Establezca el [recuento de agentes al que Claude apunta](/docs/es/workflows#set-a-size-guideline) en los flujos de trabajo dinámicos que escribe. Claude Code envía el valor a Claude como consejo, no como un límite impuesto: `"small"` solicita menos de 5 agentes, `"medium"` menos de 10 y `"large"` menos de 50. Elija `"small"` cuando desee limitar lo que gasta un flujo de trabajo. Requiere Claude Code v2.1.219 o posterior.4478Establece el [recuento de agentes al que Claude apunta](/docs/es/workflows#set-a-size-guideline) en los flujos de trabajo dinámicos que escribe. Claude Code envía el valor a Claude como consejo, no como un límite impuesto: `"small"` solicita menos de 5 agentes, `"medium"` menos de 10 y `"large"` menos de 50. Elige `"small"` cuando desees limitar lo que gasta un flujo de trabajo. Requiere Claude Code v2.1.219 o posterior.

4471 4479 

4472* **Alcance**: [`Any file`](#scopes). Un valor allí tiene precedencia sobre la opción **Dynamic workflow size** en `/config`, que Claude Code almacena en `~/.claude.json`, y Claude Code oculta esa fila mientras un archivo de configuración establece la clave.4480* **Alcance**: [`Any file`](#scopes). Un valor allí tiene precedencia sobre la opción **Dynamic workflow size** en `/config`, que Claude Code almacena en `~/.claude.json`, y Claude Code oculta esa fila mientras un archivo de configuración establece la clave.

4473* **Tipo**: cadena, una de:4481* **Tipo**: cadena, una de:


4475 * `"small"`: Claude apunta a menos de 5 agentes4483 * `"small"`: Claude apunta a menos de 5 agentes

4476 * `"medium"`: Claude apunta a menos de 10 agentes4484 * `"medium"`: Claude apunta a menos de 10 agentes

4477 * `"large"`: Claude apunta a menos de 50 agentes4485 * `"large"`: Claude apunta a menos de 50 agentes

4478* **Predeterminado**: `"medium"`, o `"small"` cuando está conectado en un plan Pro con Claude Code v2.1.271 o posterior4486* **Predeterminado**: `"medium"`, o `"small"` cuando has iniciado sesión en un plan Pro con Claude Code v2.1.271 o posterior

4479 4487 

4480```json settings.json theme={null}4488```json settings.json theme={null}

4481{4489{


4483}4491}

4484```4492```

4485 4493 

4486Requiere Claude Code v2.1.219 o posterior; en v2.1.202 a v2.1.218, establezca la directriz en `/config` en su lugar.4494Requiere Claude Code v2.1.219 o posterior; en v2.1.202 a v2.1.218, establece la directriz en `/config` en su lugar.

4487 4495 

4488<span id="plugin-configuration" />4496<span id="plugin-configuration" />

4489 4497 


5924 Autenticación y proveedores5932 Autenticación y proveedores

5925</h2>5933</h2>

5926 5934 

5927Proporcione credenciales a través de scripts auxiliares y, para organizaciones, fuerce un método de inicio de sesión u organización. Consulte [Autenticación](/docs/es/authentication).5935Proporciona credenciales a través de scripts auxiliares y, para organizaciones, fuerza un método de inicio de sesión u organización. Consulta [Autenticación](/docs/es/authentication).

5928 5936 

5929<h3 id="allowedproviders">5937<h3 id="allowedproviders">

5930 `allowedProviders`5938 `allowedProviders`

5931</h3>5939</h3>

5932 5940 

5933Liste los servicios a través de los cuales una máquina puede acceder a Claude, como la API de Anthropic, Amazon Bedrock, o una puerta de enlace LLM. Una sesión en un proveedor que no está listado se rechaza al inicio, al iniciar sesión, y cuando contacta a continuación con la API, por lo que cambiar a un proveedor no listado a mitad de sesión también se rechaza. El [mensaje de rechazo](/docs/es/errors#managed-settings-dont-allow-this-api-provider) nombra lo que seleccionó el proveedor y los pasos para continuar. Requiere Claude Code v2.1.285 o posterior.5941Enumera los servicios a través de los cuales una máquina puede acceder a Claude, como la API de Anthropic, Amazon Bedrock o un gateway de LLM. Una sesión en un proveedor que no está en la lista se rechaza al inicio, al iniciar sesión y la próxima vez que contacta 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) indica qué seleccionó el proveedor y los pasos para continuar. Requiere Claude Code v2.1.285 o posterior.

5934 5942 

5935* **Scope**: [`Managed`](#scopes). Una lista que las fuentes de administrador propias de la máquina establecen, las políticas MDM y los archivos de configuración administrada, sigue aplicándose cuando la configuración administrada por servidor también entrega una: una sesión puede entonces usar solo los proveedores en ambas listas, por lo que una lista administrada por servidor puede reducir lo que la máquina permite pero nunca ampliarlo. Cuál `allowedProviders` de la fuente de la máquina cuenta sigue [cómo Claude Code combina fuentes administradas](/docs/es/managed-settings#how-claude-code-combines-managed-sources). Una lista entregada solo a través de configuración administrada por servidor llega solo a las sesiones que [obtienen configuración administrada por servidor](/docs/es/server-managed-settings#platform-availability).5943* **Scope**: [`Managed`](#scopes). Una lista que establecen las fuentes de administrador propias de la máquina, 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 que figuran en ambas listas, por lo que una lista administrada por servidor puede reducir lo que la máquina permite pero nunca ampliarlo. Qué `allowedProviders` de las fuentes de la máquina cuenta sigue [cómo Claude Code combina las fuentes administradas](/docs/es/managed-settings#how-claude-code-combines-managed-sources). Una lista entregada solo a través de la configuración administrada por servidor llega únicamente a las sesiones que [obtienen la configuración administrada por servidor](/docs/es/server-managed-settings#platform-availability).

5936* **Type**: matriz de strings, cada uno de:5944* **Type**: matriz de strings, cada uno de:

5937 * `"anthropic"`: la API de Anthropic en el host propio de Anthropic, a través de un inicio de sesión de claude.ai o Console o una clave de API. Emparéjelo con [`forceLoginMethod`](#forceloginmethod) o [`forceLoginOrgUUID`](#forceloginorguuid) para también restringir el inicio de sesión5945 * `"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. Combínalo con [`forceLoginMethod`](#forceloginmethod) o [`forceLoginOrgUUID`](#forceloginorguuid) para restringir también el inicio de sesión

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

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

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

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

5942 * `"mantle"`: el punto de conexión [Mantle](/docs/es/amazon-bedrock#use-the-mantle-endpoint) de Amazon Bedrock. Una sesión que [ejecuta Mantle junto con la API de Invoke](/docs/es/amazon-bedrock#run-mantle-alongside-the-invoke-api) usa ambos proveedores, por lo que liste `"bedrock"` y `"mantle"` juntos para ella5950 * `"mantle"`: el [endpoint 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, así que incluye `"bedrock"` y `"mantle"` juntos para ella

5943 * `"customEndpoint"`: la API de Anthropic o la API de un proveedor en la nube enviada a otro host, como una [puerta de enlace LLM](/docs/es/llm-gateway) nombrada por `ANTHROPIC_BASE_URL`, una variable `ANTHROPIC_*_BASE_URL` del proveedor, o un valor `ANTHROPIC_FOUNDRY_RESOURCE` que no es un nombre de recurso simple. Claude Code lo admite solo para el valor exacto que un bloque [`env`](#env) administrado fija5951 * `"customEndpoint"`: la API de Anthropic o la API de un proveedor en la nube enviada a otro host, como un [gateway de LLM](/docs/es/llm-gateway) indicado por `ANTHROPIC_BASE_URL`, la variable `ANTHROPIC_*_BASE_URL` de un proveedor, o un valor de `ANTHROPIC_FOUNDRY_RESOURCE` que no es un simple nombre de recurso. Claude Code lo admite solo para el valor exacto que fija un bloque [`env`](#env) administrado

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

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

5946 5954 

5947```json managed-settings.json theme={null}5955```json managed-settings.json theme={null}


5950}5958}

5951```5959```

5952 5960 

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

5954 5962 

5955Una entrada que Claude Code no reconoce como un nombre de proveedor se descarta y se informa, y el resto de la lista se mantiene aplicada. Con una lista vacía, o una cuya cada entrada no es reconocida, Claude Code rechaza cada proveedor y no inicia en la máquina.5963Una entrada que Claude Code no reconoce como nombre de proveedor se descarta y se informa, y el resto de la lista se sigue aplicando. Con una lista vacía, o una en la que ninguna entrada se reconoce, Claude Code rechaza todos los proveedores y no se inicia en la máquina.

5956 5964 

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

5958 Puntos de conexión que necesitan un fijo en `env` administrado5966 Endpoints que necesitan un valor fijado en `env` administrado

5959</h4>5967</h4>

5960 5968 

5961Un fijo es el valor de una variable de punto de conexión establecido en un bloque [`env`](#env) administrado. Cuando una sesión envía el tráfico de un proveedor a algún lugar que no sea el servicio propio de ese proveedor, Claude Code lo admite solo si el valor de la sesión es el mismo que el fijo. Estos puntos de conexión necesitan uno:5969Un valor fijado es el valor de una variable de endpoint establecido en un bloque [`env`](#env) administrado. Cuando una sesión envía el tráfico de un proveedor a algún lugar distinto del servicio propio de ese proveedor, Claude Code lo admite solo si el valor de la sesión coincide con el valor fijado. Estos endpoints necesitan uno:

5962 5970 

5963* **Sesiones `"customEndpoint"`**: la variable que nombra el host, como `ANTHROPIC_BASE_URL`5971* **Sesiones `"customEndpoint"`**: la variable que indica el host, como `ANTHROPIC_BASE_URL`

5964* **Amazon Bedrock**: las variables `AWS_ENDPOINT_URL`, `AWS_ENDPOINT_URL_BEDROCK`, y `AWS_ENDPOINT_URL_BEDROCK_RUNTIME` del SDK de AWS cuando apuntan fuera del servicio propio de Bedrock. La sesión permanece bajo `"bedrock"` en lugar de `"customEndpoint"`5972* **Amazon Bedrock**: las variables `AWS_ENDPOINT_URL`, `AWS_ENDPOINT_URL_BEDROCK` y `AWS_ENDPOINT_URL_BEDROCK_RUNTIME` del SDK de AWS cuando apuntan fuera del servicio propio de Bedrock. La sesión permanece bajo `"bedrock"` en lugar de `"customEndpoint"`

5965* **URL de inicio de sesión de una puerta de enlace**: la sesión permanece bajo `"gateway"`, y [`forceLoginGatewayUrl`](#forcelogingatewayurl) también cuenta como el fijo5973* **La URL de un inicio de sesión de gateway**: la sesión permanece bajo `"gateway"`, y [`forceLoginGatewayUrl`](#forcelogingatewayurl) también cuenta como valor fijado

5966 5974 

5967Cuáles bloques `env` cuentan como fijos depende de dónde se establezca la lista:5975Qué bloques `env` cuentan como valores fijados depende de dónde se establezca la lista:

5968 5976 

5969* **Una fuente de administrador en la máquina establece una lista**: solo los bloques `env` de las fuentes de administrador propias de la máquina cuentan5977* **Una fuente de administrador en la máquina establece una lista**: solo cuentan los bloques `env` de las fuentes de administrador propias de la máquina

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

5971 5979 

5972La lista no juzga las variables de credencial y tenencia de un proveedor en la nube o la ruta de red, como `HTTPS_PROXY` y la configuración de certificados. Establezca esos para la flota en el bloque `env` administrado.5980La lista no evalúa las variables de credenciales y tenencia de un proveedor en la nube ni la ruta de red, como `HTTPS_PROXY` y la configuración de certificados. Establécelas para toda la flota en el bloque `env` administrado.

5973 5981 

5974<h3 id="apikeyhelper">5982<h3 id="apikeyhelper">

5975 `apiKeyHelper`5983 `apiKeyHelper`

5976</h3>5984</h3>

5977 5985 

5978Ejecute su propio comando para producir la credencial que Claude Code envía con solicitudes de modelo. Claude Code ejecuta el comando a través del shell del sistema, `/bin/sh` en macOS y Linux y `cmd` en Windows, y envía su salida como encabezados `X-Api-Key` y `Authorization: Bearer`. Úselo para credenciales dinámicas o rotativas, como tokens de corta duración obtenidos de un almacén.5986Ejecuta tu propio comando para producir la credencial que Claude Code envía con las solicitudes al modelo. Claude Code ejecuta el comando a través del shell del sistema, `/bin/sh` en macOS y Linux y `cmd` en Windows, y envía su salida como encabezados `X-Api-Key` y `Authorization: Bearer`. Úsalo para credenciales dinámicas o rotativas, como tokens de corta duración obtenidos de un almacén.

5979 5987 

5980* **Scope**: [`Any file`](#scopes)5988* **Scope**: [`Any file`](#scopes)

5981* **Type**: string, una línea de comando del shell5989* **Type**: string, una línea de comando del shell


5989 5997 

5990Claude Code almacena en caché el valor y vuelve a ejecutar el comando en estos casos:5998Claude Code almacena en caché el valor y vuelve a ejecutar el comando en estos casos:

5991 5999 

5992* Después de la duración del caché, cinco minutos por defecto o el intervalo que establezca con [`CLAUDE_CODE_API_KEY_HELPER_TTL_MS`](/docs/es/env-vars).6000* Después de la duración de la caché, cinco minutos por defecto o el intervalo que establezcas con [`CLAUDE_CODE_API_KEY_HELPER_TTL_MS`](/docs/es/env-vars).

5993* Cuando una solicitud a la API de Anthropic, directamente o a través de una [puerta de enlace LLM](/docs/es/llm-gateway), falla con `401` o `403`.6001* Cuando una solicitud a la API de Anthropic, directamente o a través de un [gateway de LLM](/docs/es/llm-gateway), falla con `401` o `403`.

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

5995 6003 

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

5997 6005 

5998En sesiones interactivas, cuando el comando proviene de la configuración del proyecto o local, Claude Code no lo ejecuta hasta que acepte el mensaje de confianza del espacio de trabajo. Consulte [Gestión de credenciales](/docs/es/authentication#credential-management).6006En sesiones interactivas, cuando el comando proviene de la configuración del proyecto o local, Claude Code no lo ejecuta hasta que aceptes la solicitud de confianza del espacio de trabajo. Consulta [Gestión de credenciales](/docs/es/authentication#credential-management).

5999 6007 

6000<h3 id="awsauthrefresh">6008<h3 id="awsauthrefresh">

6001 `awsAuthRefresh`6009 `awsAuthRefresh`

6002</h3>6010</h3>

6003 6011 

6004Ejecute su propio comando, como `aws sso login`, para actualizar las credenciales en su directorio `.aws` cuando las que Claude Code tiene para [Amazon Bedrock](/docs/es/amazon-bedrock) dejen de funcionar. Claude Code verifica las credenciales actuales contra STS primero y ejecuta el comando solo cuando esa verificación falla, luego lee el directorio `.aws` actualizado.6012Ejecuta tu propio comando, como `aws sso login`, para actualizar las credenciales de tu directorio `.aws` cuando las que Claude Code tiene para [Amazon Bedrock](/docs/es/amazon-bedrock) dejen de funcionar. Claude Code verifica primero las credenciales actuales contra STS y ejecuta el comando solo cuando esa verificación falla; luego lee el directorio `.aws` actualizado.

6013 

6014Cuando la verificación falla al mismo tiempo en varios procesos de Claude Code que usan el mismo comando y las mismas credenciales, como terminales o ventanas del IDE separadas, un proceso ejecuta el comando y los demás esperan a esa ejecución en lugar de iniciar la suya. Un proceso que ha esperado 60 segundos con una solicitud pendiente ejecuta el comando por sí mismo. Para desactivar esto, establece [`CLAUDE_CODE_DISABLE_AUTH_REFRESH_LOCK`](/docs/es/env-vars) en `1`.

6005 6015 

6006* **Scope**: [`Any file`](#scopes)6016* **Scope**: [`Any file`](#scopes)

6007* **Type**: string, una línea de comando del shell6017* **Type**: string, una línea de comando del shell

6008* **Default**: sin establecer, por lo que Claude Code no actualiza las credenciales de AWS para usted6018* **Default**: sin establecer, por lo que Claude Code no actualiza las credenciales de AWS por ti

6009 6019 

6010```json settings.json theme={null}6020```json settings.json theme={null}

6011{6021{


6013}6023}

6014```6024```

6015 6025 

6016Use esta clave cuando su flujo de actualización escriba en `.aws`; use [`awsCredentialExport`](#awscredentialexport) cuando imprima credenciales en su lugar. Consulte [configuración avanzada de credenciales](/docs/es/amazon-bedrock#advanced-credential-configuration).6026Usa esta clave cuando tu flujo de actualización escriba en `.aws`; usa [`awsCredentialExport`](#awscredentialexport) cuando, en cambio, imprima las credenciales. Consulta [configuración avanzada de credenciales](/docs/es/amazon-bedrock#advanced-credential-configuration).

6017 6027 

6018<h3 id="awscredentialexport">6028<h3 id="awscredentialexport">

6019 `awsCredentialExport`6029 `awsCredentialExport`

6020</h3>6030</h3>

6021 6031 

6022Ejecute su propio comando que imprima credenciales de AWS como JSON, para que Claude Code pueda llamar a [Amazon Bedrock](/docs/es/amazon-bedrock) con credenciales que no viven en su directorio `.aws`. Claude Code acepta la forma de salida de `aws sts` y la forma plana de `aws configure export-credentials`, y limita las credenciales a su propio cliente de Bedrock, por lo que los comandos del shell que Claude ejecuta aún ven sus credenciales ambientales.6032Ejecuta tu propio comando que imprima credenciales de AWS como JSON, para que Claude Code pueda llamar a [Amazon Bedrock](/docs/es/amazon-bedrock) con credenciales que no están en tu directorio `.aws`. Claude Code acepta el formato de salida de `aws sts` y el formato plano de `aws configure export-credentials`, y limita las credenciales a su propio cliente de Bedrock, por lo que los comandos del shell que ejecuta Claude siguen viendo tus credenciales del entorno.

6023 6033 

6024* **Scope**: [`Any file`](#scopes)6034* **Scope**: [`Any file`](#scopes)

6025* **Type**: string, una línea de comando del shell6035* **Type**: string, una línea de comando del shell

6026* **Default**: sin establecer, por lo que Claude Code usa la cadena de credenciales de AWS ambiental6036* **Default**: sin establecer, por lo que Claude Code usa la cadena de credenciales de AWS del entorno

6027 6037 

6028```json settings.json theme={null}6038```json settings.json theme={null}

6029{6039{


6031}6041}

6032```6042```

6033 6043 

6034A diferencia de [`awsAuthRefresh`](#awsauthrefresh), Claude Code siempre ejecuta este comando cuando está establecido, sin verificar primero las credenciales ambientales. Consulte [configuración avanzada de credenciales](/docs/es/amazon-bedrock#advanced-credential-configuration).6044A diferencia de [`awsAuthRefresh`](#awsauthrefresh), Claude Code siempre ejecuta este comando cuando está establecido, sin verificar primero las credenciales del entorno. Consulta [configuración avanzada de credenciales](/docs/es/amazon-bedrock#advanced-credential-configuration).

6035 6045 

6036<h3 id="forceloginmethod">6046<h3 id="forceloginmethod">

6037 `forceLoginMethod`6047 `forceLoginMethod`

6038</h3>6048</h3>

6039 6049 

6040Restrinja qué tipo de cuenta pueden usar las personas para iniciar sesión. Establezca `"claudeai"` para permitir solo cuentas de claude.ai, `"console"` para permitir solo cuentas de Claude Console, o `"gateway"` para enviar a las personas a una [puerta de enlace en la nube](/docs/es/claude-apps-gateway) en lugar de un inicio de sesión de primera parte. Los administradores lo establecen en la configuración administrada y lo emparejan con [`forceLoginOrgUUID`](#forceloginorguuid) para mantener los inicios de sesión de claude.ai de los desarrolladores dentro de una organización. Si lo establece en `"claudeai"` o `"console"` en cualquier archivo de configuración, Claude Code también deja de ofrecer el [inicio de sesión sin clave de Console](/docs/es/authentication#sign-in-without-an-api-key) en las sesiones a las que se aplica ese archivo.6050Restringe el tipo de cuenta con el que las personas pueden iniciar sesión. Establece `"claudeai"` para permitir solo cuentas de claude.ai, `"console"` para permitir solo cuentas de Claude Console, o `"gateway"` para enviar a las personas a un [cloud gateway](/docs/es/claude-apps-gateway) en lugar de un inicio de sesión propio de Anthropic. Los administradores lo establecen en la configuración administrada y lo combinan con [`forceLoginOrgUUID`](#forceloginorguuid) para mantener los inicios de sesión de claude.ai de los desarrolladores dentro de una organización. Si lo estableces en `"claudeai"` o `"console"` en cualquier archivo de configuración, Claude Code también deja de ofrecer el [inicio de sesión en Console sin clave](/docs/es/authentication#sign-in-without-an-api-key) en las sesiones a las que se aplica ese archivo.

6041 6051 

6042* **Scope**: [`Any file`](#scopes). Claude Code respeta `"gateway"` solo desde una fuente administrada en la máquina: `managed-settings.json`, la lista de propiedades de macOS o el registro HKLM de Windows, o un auxiliar de política. Trata `"gateway"` como sin establecer en la configuración de usuario, proyecto, local, HKCU y administrada por servidor, la misma regla que [`forceLoginGatewayUrl`](#forcelogingatewayurl).6052* **Scope**: [`Any file`](#scopes). Claude Code respeta `"gateway"` solo desde una fuente administrada en la máquina: `managed-settings.json`, el plist de macOS o el registro HKLM de Windows, o un auxiliar de políticas. Trata `"gateway"` como sin establecer en la configuración de usuario, de proyecto, local, HKCU y administrada por servidor, la misma regla que [`forceLoginGatewayUrl`](#forcelogingatewayurl).

6043* **Type**: string, uno de:6053* **Type**: string, uno de:

6044 * `"claudeai"`: solo las cuentas de claude.ai pueden iniciar sesión6054 * `"claudeai"`: solo las cuentas de claude.ai pueden iniciar sesión

6045 * `"console"`: solo las cuentas de Claude Console pueden iniciar sesión6055 * `"console"`: solo las cuentas de Claude Console pueden iniciar sesión

6046 * `"gateway"`: Claude Code envía a las personas a una puerta de enlace en la nube en lugar de un inicio de sesión de primera parte6056 * `"gateway"`: Claude Code envía a las personas a un cloud gateway en lugar de un inicio de sesión propio de Anthropic

6047* **Default**: sin establecer, por lo que las personas eligen un método de inicio de sesión6057* **Default**: sin establecer, por lo que las personas eligen un método de inicio de sesión

6048 6058 

6049```json settings.json theme={null}6059```json settings.json theme={null}


6052}6062}

6053```6063```

6054 6064 

6055Cada ruta de inicio de sesión de primera parte aplica la restricción, incluida la [extensión de VS Code](/docs/es/vs-code), el SDK del Agente, `claude setup-token`, e `/install-github-app`, excepto la pantalla de inicio de sesión interactivo del terminal, a la que se accede mediante `/login` u onboarding de primera ejecución, que preselecciona el método sin aplicarlo. Antes de v2.1.212, solo los inicios de sesión del terminal lo aplicaban. Consulte [Restringir el inicio de sesión a su organización](/docs/es/authentication#restrict-login-to-your-organization) para ver cómo se manejan cada ruta de inicio de sesión, credenciales ambientales y proveedores de terceros.6065Todas las vías de inicio de sesión propias de Anthropic aplican la restricción, incluidas la [extensión de VS Code](/docs/es/vs-code), el Agent SDK, `claude setup-token` e `/install-github-app`, excepto la pantalla de inicio de sesión interactiva de la terminal, a la que se llega con `/login` o con la configuración inicial de la primera ejecución, que preselecciona el método sin imponerlo. Antes de v2.1.212, solo los inicios de sesión de la terminal lo aplicaban. Consulta [Restringir el inicio de sesión a tu organización](/docs/es/authentication#restrict-login-to-your-organization) para ver cómo se manejan cada vía de inicio de sesión, las credenciales del entorno y los proveedores de terceros.

6056 6066 

6057Cuando una fuente administrada en la máquina establece `"gateway"`, Claude Code no usa un inicio de sesión restante, clave de API o credencial de `apiKeyHelper`. Consulte [La política del administrador requiere un inicio de sesión de puerta de enlace en la nube](/docs/es/errors#administrator-policy-requires-a-cloud-gateway-sign-in) para el mensaje que produce cada uno. Si selecciona un proveedor en la nube a través de `CLAUDE_CODE_USE_BEDROCK` o una variable de entorno similar, la sesión no necesita el inicio de sesión de la puerta de enlace. Antes de v2.1.261, Claude Code usaba un inicio de sesión restante en estas máquinas.6067Cuando una fuente administrada en la máquina establece `"gateway"`, Claude Code no usa un inicio de sesión previo que haya quedado, una clave de API ni una credencial de `apiKeyHelper`. Consulta [La política del administrador requiere un inicio de sesión en Cloud gateway](/docs/es/errors#administrator-policy-requires-a-cloud-gateway-sign-in) para ver el mensaje que produce cada uno. Si seleccionas un proveedor en la nube mediante `CLAUDE_CODE_USE_BEDROCK` o una variable de entorno similar, la sesión no necesita el inicio de sesión en el gateway. Antes de v2.1.261, Claude Code usaba un inicio de sesión previo que hubiera quedado en estas máquinas.

6058 6068 

6059<h3 id="forcelogingatewayurl">6069<h3 id="forcelogingatewayurl">

6060 `forceLoginGatewayUrl`6070 `forceLoginGatewayUrl`

6061</h3>6071</h3>

6062 6072 

6063Establezca la URL de la puerta de enlace a la que se conecta la pantalla `/login` de puerta de enlace en la nube, para que las personas lleguen a su [puerta de enlace en la nube](/docs/es/claude-apps-gateway) sin escribir su dirección. La pantalla no tiene un campo de URL: con esta clave establecida, muestra la URL de su puerta de enlace y se conecta cuando la persona presiona Intro; sin ella, les dice que se comuniquen con su administrador de TI.6073Establece la URL del gateway a la que se conecta la pantalla Cloud gateway de `/login`, para que las personas lleguen a tu [cloud gateway](/docs/es/claude-apps-gateway) sin escribir su dirección. La pantalla no tiene un campo de URL: con esta clave establecida, muestra la URL de tu gateway y se conecta cuando la persona presiona Intro; sin ella, le indica que se comunique con su administrador de TI.

6064 6074 

6065Cualquiera de estas dos claves o `forceLoginMethod: "gateway"` hace que la máquina sea solo de puerta de enlace, excepto para sesiones que seleccionen un proveedor en la nube con `CLAUDE_CODE_USE_*`. `/login` entonces se abre en la pantalla de puerta de enlace en la nube sin un selector de método de inicio de sesión. Consulte [La política del administrador requiere un inicio de sesión de puerta de enlace en la nube](/docs/es/errors#administrator-policy-requires-a-cloud-gateway-sign-in) para ver qué sucede con un inicio de sesión de primera parte restante o una clave de API. Establezca ambas claves para que la pantalla se conecte en lugar de mostrar un error.6075Esta clave o `forceLoginMethod: "gateway"` hace que la máquina sea solo de gateway, excepto para las sesiones que seleccionen un proveedor en la nube con `CLAUDE_CODE_USE_*`. `/login` entonces se abre en la pantalla Cloud gateway sin selector de método de inicio de sesión. Consulta [La política del administrador requiere un inicio de sesión en Cloud gateway](/docs/es/errors#administrator-policy-requires-a-cloud-gateway-sign-in) para ver qué sucede con un inicio de sesión propio de Anthropic que haya quedado o con una clave de API. Establece ambas claves para que la pantalla se conecte en lugar de mostrar un error.

6066 6076 

6067* **Scope**: [`Managed`](#scopes). Lea solo desde una fuente en la máquina: `managed-settings.json`, la lista de propiedades de macOS o el registro HKLM de Windows, o un auxiliar de política. Claude Code lo ignora en la configuración de HKCU y administrada por servidor.6077* **Scope**: [`Managed`](#scopes). Se lee solo desde una fuente en la máquina: `managed-settings.json`, el plist de macOS o el registro HKLM de Windows, o un auxiliar de políticas. Claude Code lo ignora en la configuración HKCU y en la administrada por servidor.

6068* **Type**: string, una URL completa incluyendo el esquema6078* **Type**: string, una URL completa que incluya el esquema

6069* **Default**: sin establecer, por lo que la pantalla de puerta de enlace en la nube muestra un error indicando a las personas que se comuniquen con su administrador de TI6079* **Default**: sin establecer, por lo que la pantalla Cloud gateway muestra un error que indica a las personas que se comuniquen con su administrador de TI

6070 6080 

6071```json managed-settings.json theme={null}6081```json managed-settings.json theme={null}

6072{6082{


6074}6084}

6075```6085```

6076 6086 

6077Si el valor no es una URL válida, la pantalla de inicio de sesión lo informa, y el resto del archivo de configuración administrada aún se aplica. Consulte [Establecer la URL de la puerta de enlace](/docs/es/claude-apps-gateway#set-the-gateway-url).6087Si el valor no es una URL válida, la pantalla de inicio de sesión lo informa, y el resto del archivo de configuración administrada sigue aplicándose. Consulta [Establecer la URL del gateway](/docs/es/claude-apps-gateway#set-the-gateway-url).

6078 6088 

6079<h3 id="forceloginorguuid">6089<h3 id="forceloginorguuid">

6080 `forceLoginOrgUUID`6090 `forceLoginOrgUUID`

6081</h3>6091</h3>

6082 6092 

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

6084 6094 

6085* **Scope**: [`Any file`](#scopes). Solo una fuente administrada aplica la restricción; un UUID único en cualquier otro archivo de configuración preselecciona la organización durante el inicio de sesión sin restringirlo.6095* **Scope**: [`Any file`](#scopes). Solo una fuente administrada impone la restricción; un único UUID en cualquier otro archivo de configuración preselecciona la organización durante el inicio de sesión sin restringirla.

6086* **Type**: string, un UUID, o matriz de strings, varios UUIDs6096* **Type**: string, un UUID, o matriz de strings, varios UUID

6087* **Default**: sin establecer, por lo que cualquier organización puede iniciar sesión6097* **Default**: sin establecer, por lo que cualquier organización puede iniciar sesión

6088 6098 

6089Este ejemplo acepta inicios de sesión de cualquiera de dos organizaciones sin preseleccionar una:6099Este ejemplo acepta inicios de sesión de cualquiera de dos organizaciones sin preseleccionar ninguna:

6090 6100 

6091```json managed-settings.json theme={null}6101```json managed-settings.json theme={null}

6092{6102{


6094}6104}

6095```6105```

6096 6106 

6097Si una fuente administrada establece una matriz vacía, o un valor que Claude Code no puede analizar, Claude Code bloquea cada inicio de sesión con un mensaje de configuración incorrecta.6107Si una fuente administrada establece una matriz vacía, o un valor que Claude Code no puede analizar, Claude Code bloquea todos los inicios de sesión con un mensaje de configuración incorrecta.

6098 6108 

6099Consulte [Restringir el inicio de sesión a su organización](/docs/es/authentication#restrict-login-to-your-organization) para ver cómo Claude Code trata los inicios de sesión de Claude Console, las otras rutas de inicio de sesión y las credenciales ambientales.6109Consulta [Restringir el inicio de sesión a tu organización](/docs/es/authentication#restrict-login-to-your-organization) para ver cómo trata Claude Code los inicios de sesión de Claude Console, las demás vías de inicio de sesión y las credenciales del entorno.

6100 6110 

6101<h3 id="gatewayinternalnetworks">6111<h3 id="gatewayinternalnetworks">

6102 `gatewayInternalNetworks`6112 `gatewayInternalNetworks`

6103</h3>6113</h3>

6104 6114 

6105Declare los bloques de IPv4 públicos desde los que su organización numera su red interna, para que `/login` acepte una [puerta de enlace en la nube](/docs/es/claude-apps-gateway) allí. Requiere Claude Code v2.1.268 o posterior.6115Declara los bloques IPv4 públicos a partir de los cuales tu organización numera su red interna, para que `/login` acepte un [cloud gateway](/docs/es/claude-apps-gateway) en ellos. Requiere Claude Code v2.1.268 o posterior.

6106 6116 

6107Sin esta clave, `/login` se conecta a cualquier puerta de enlace en una dirección privada y nada más. Con ella, `/login` también acepta una puerta de enlace dentro de un bloque listado, solo sobre una conexión directa. La dirección propia de la máquina en esa conexión también debe estar dentro del mismo bloque.6117Sin esta clave, `/login` se conecta a cualquier gateway en una dirección privada y a nada más. Con ella, `/login` también acepta un gateway dentro de un bloque de la lista, solo a través de una conexión directa. La dirección propia de la máquina en esa conexión también debe estar dentro del mismo bloque.

6108 6118 

6109* **Scope**: [`Managed`](#scopes). Lea solo desde una fuente en la máquina: `managed-settings.json`, la lista de propiedades de macOS o el registro HKLM de Windows, o un auxiliar de política. Claude Code lo ignora en la configuración de HKCU y administrada por servidor.6119* **Scope**: [`Managed`](#scopes). Se lee solo desde una fuente en la máquina: `managed-settings.json`, el plist de macOS o el registro HKLM de Windows, o un auxiliar de políticas. Claude Code lo ignora en la configuración HKCU y en la administrada por servidor.

6110* **Type**: matriz de strings, como máximo cuatro bloques CIDR de IPv4, cada uno `/8` a `/32`, sin superponerse entre sí, y ninguno superponiéndose con espacio privado.6120* **Type**: matriz de strings, como máximo cuatro bloques CIDR IPv4, cada uno de `/8` a `/32`, sin superponerse entre sí y sin que ninguno se superponga con el espacio privado.

6111* **Default**: sin establecer, por lo que `/login` acepta solo puertas de enlace en direcciones privadas6121* **Default**: sin establecer, por lo que `/login` acepta solo gateways en direcciones privadas

6112 6122 

6113```json managed-settings.json theme={null}6123```json managed-settings.json theme={null}

6114{6124{


6116}6126}

6117```6127```

6118 6128 

6119Reemplace el rango de documentación en el ejemplo con su propio bloque. Claude Code rechaza los rangos de documentación, los rangos que los clientes de VPN y NAT64 usan localmente, y el espacio reservado desde el que ninguna red está numerada, como multidifusión.6129Reemplaza el rango de documentación del ejemplo por tu propio bloque. Claude Code rechaza los rangos de documentación, los rangos que los clientes de VPN y NAT64 usan localmente y el espacio reservado a partir del cual no se numera ninguna red, como el de multidifusión.

6120 6130 

6121Si una entrada es inválida, o el valor no es una lista de strings, `/login` nombra el problema y rechaza cada nuevo inicio de sesión de puerta de enlace en la máquina hasta que corrija el valor. Los inicios de sesión existentes siguen funcionando. Consulte [Permitir una puerta de enlace en espacio de dirección pública que posee](/docs/es/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own) para las reglas completas y lo que ven los desarrolladores.6131Si una entrada no es válida, o el valor no es una lista de strings, `/login` indica el problema y rechaza todo nuevo inicio de sesión en un gateway en la máquina hasta que corrijas el valor. Los inicios de sesión existentes siguen funcionando. Consulta [Permitir un gateway en espacio de direcciones públicas de tu propiedad](/docs/es/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own) para ver las reglas completas y lo que ven los desarrolladores.

6122 6132 

6123<h3 id="gcpauthrefresh">6133<h3 id="gcpauthrefresh">

6124 `gcpAuthRefresh`6134 `gcpAuthRefresh`

6125</h3>6135</h3>

6126 6136 

6127Ejecute su propio comando para actualizar las Credenciales Predeterminadas de Aplicación de Google Cloud cuando Claude Code encuentre que han expirado o no se pueden cargar, para que las solicitudes de [Plataforma de Agente de Google Cloud](/docs/es/google-vertex-ai) sigan funcionando sin que tenga que volver a autenticarse manualmente.6137Ejecuta tu propio comando para actualizar las Application Default Credentials de Google Cloud cuando Claude Code detecte que han expirado o no se pueden cargar, para que las solicitudes a [Agent Platform de Google Cloud](/docs/es/google-vertex-ai) sigan funcionando sin que tengas que volver a autenticarte manualmente.

6138 

6139Cuando varios procesos de Claude Code que usan el mismo comando y las mismas credenciales, como terminales o ventanas del IDE separadas, detectan al mismo tiempo que han expirado, un proceso ejecuta el comando y los demás esperan a esa ejecución en lugar de iniciar la suya. Un proceso que ha esperado 60 segundos con una solicitud pendiente ejecuta el comando por sí mismo. Para desactivar esto, establece [`CLAUDE_CODE_DISABLE_AUTH_REFRESH_LOCK`](/docs/es/env-vars) en `1`.

6128 6140 

6129* **Scope**: [`Any file`](#scopes)6141* **Scope**: [`Any file`](#scopes)

6130* **Type**: string, una línea de comando del shell6142* **Type**: string, una línea de comando del shell

6131* **Default**: sin establecer, por lo que el error de credencial de Claude Code le dice que ejecute `gcloud auth application-default login` usted mismo6143* **Default**: sin establecer, por lo que el error de credenciales de Claude Code te indica que ejecutes `gcloud auth application-default login` tú mismo

6132 6144 

6133```json settings.json theme={null}6145```json settings.json theme={null}

6134{6146{


6136}6148}

6137```6149```

6138 6150 

6139Consulte [configuración avanzada de credenciales](/docs/es/google-vertex-ai#advanced-credential-configuration).6151Consulta [configuración avanzada de credenciales](/docs/es/google-vertex-ai#advanced-credential-configuration).

6140 6152 

6141<h3 id="otelheadershelper">6153<h3 id="otelheadershelper">

6142 `otelHeadersHelper`6154 `otelHeadersHelper`

6143</h3>6155</h3>

6144 6156 

6145Ejecute su propio comando para generar los encabezados que Claude Code envía con exportaciones de OpenTelemetry, para backends cuyos tokens rotan. Claude Code lo ejecuta al inicio y periódicamente después, y espera un objeto JSON de valores de encabezado de string en stdout.6157Ejecuta tu propio comando para generar los encabezados que Claude Code envía con las exportaciones de OpenTelemetry, para backends cuyos tokens rotan. Claude Code lo ejecuta al inicio y periódicamente después, y espera un objeto JSON de valores de encabezado de tipo string en stdout.

6146 6158 

6147* **Scope**: [`Any file`](#scopes)6159* **Scope**: [`Any file`](#scopes)

6148* **Type**: string, una ruta ejecutable o una línea de comando del shell6160* **Type**: string, una ruta de ejecutable o una línea de comando del shell

6149* **Default**: sin establecer, por lo que Claude Code no agrega encabezados generados por auxiliar6161* **Default**: sin establecer, por lo que Claude Code no agrega encabezados generados por un auxiliar

6150 6162 

6151```json settings.json theme={null}6163```json settings.json theme={null}

6152{6164{


6154}6166}

6155```6167```

6156 6168 

6157Establezca el intervalo de actualización con [`CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS`](/docs/es/env-vars). Consulte [Encabezados dinámicos](/docs/es/monitoring-usage#dynamic-headers) para los requisitos del script y qué sucede cuando el auxiliar falla.6169Establece el intervalo de actualización con [`CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS`](/docs/es/env-vars). Consulta [Encabezados dinámicos](/docs/es/monitoring-usage#dynamic-headers) para ver los requisitos del script y qué sucede cuando el auxiliar falla.

6158 6170 

6159<h2 id="updates-and-versioning">6171<h2 id="updates-and-versioning">

6160 Actualizaciones y versiones6172 Actualizaciones y versiones

Details

22| `curl: (23)` o `curl: (56) Failure writing output to destination` | [Verifique la conectividad o use un instalador alternativo](#curl-56-failure-writing-output-to-destination) |22| `curl: (23)` o `curl: (56) Failure writing output to destination` | [Verifique la conectividad o use un instalador alternativo](#curl-56-failure-writing-output-to-destination) |

23| `Killed` durante la instalación en Linux, o `Installation was killed before it could finish (exit code 137)` | [Libere memoria o agregue espacio de intercambio](#install-killed-on-low-memory-linux-servers) |23| `Killed` durante la instalación en Linux, o `Installation was killed before it could finish (exit code 137)` | [Libere memoria o agregue espacio de intercambio](#install-killed-on-low-memory-linux-servers) |

24| `Raw mode is not supported` durante la instalación | [Vuelva a ejecutar el instalador](#raw-mode-is-not-supported-during-install) |24| `Raw mode is not supported` durante la instalación | [Vuelva a ejecutar el instalador](#raw-mode-is-not-supported-during-install) |

25| `EACCES: permission denied` durante la instalación | [Corrige los permisos del directorio de instalación](#permission-errors-during-installation) |

25| `TLS connect error` o `SSL/TLS secure channel` | [Actualice los certificados CA](#tls-or-ssl-connection-errors) |26| `TLS connect error` o `SSL/TLS secure channel` | [Actualice los certificados CA](#tls-or-ssl-connection-errors) |

26| `Failed to fetch version` o no puede alcanzar el servidor de descarga | [Verifique la configuración de red y proxy](#check-network-connectivity) |27| `Failed to fetch version` o no puede alcanzar el servidor de descarga | [Verifique la configuración de red y proxy](#check-network-connectivity) |

27| `irm is not recognized` o `The token '&&' is not a valid statement separator` | [Use el comando correcto para su shell](#wrong-install-command-on-windows) |28| `irm is not recognized` o `The token '&&' is not a valid statement separator` | [Use el comando correcto para su shell](#wrong-install-command-on-windows) |


295 Verifique permisos de directorio296 Verifique permisos de directorio

296</h3>297</h3>

297 298 

298El instalador necesita acceso de escritura a `~/.local/bin/` y `~/.claude/` en macOS y Linux. En Windows la ubicación de instalación está bajo `%USERPROFILE%`, que es escribible por su usuario de forma predeterminada, por lo que esta sección rara vez se aplica allí.299Una instalación que falla por permisos indica la ruta que no pudo crear o en la que no pudo escribir. En Windows, la instalación escribe dentro de `%USERPROFILE%`, en el que tu usuario puede escribir de forma predeterminada, por lo que esta sección rara vez se aplica allí.

300 

301En macOS y Linux, la instalación escribe en estas ubicaciones:

302 

303* `~/.claude/downloads/`: donde el comando de instalación coloca el binario descargado

304* `~/.local/bin/`: el iniciador `claude`

305* `~/.local/share/claude/`: cada versión que descarga

306* `~/.local/state/claude/`: sus archivos de bloqueo

307* `~/.cache/claude/`: descargas preparadas

308* [`~/.claude.json`](/docs/es/claude-directory): tu archivo de configuración global, donde el instalador registra el método de instalación

309 

310Si estableces `XDG_DATA_HOME`, `XDG_STATE_HOME` o `XDG_CACHE_HOME`, la instalación los usa en lugar de `~/.local/share`, `~/.local/state` y `~/.cache`. Si estableces [`CLAUDE_CONFIG_DIR`](/docs/es/env-vars), el archivo de configuración global se ubica en ese directorio en lugar de tu directorio home.

299 311 

300Verifique si los directorios son escribibles:312Verifique si los directorios son escribibles:

301 313 


995Estas secciones abordan fallos de inicio de sesión, errores de OAuth y problemas de tokens.1007Estas secciones abordan fallos de inicio de sesión, errores de OAuth y problemas de tokens.

996 1008 

997<h3 id="reset-your-login">1009<h3 id="reset-your-login">

998 Reinicie su inicio de sesión1010 Reinicia tu inicio de sesión

999</h3>1011</h3>

1000 1012 

1001Cuando el inicio de sesión falla y la causa no es obvia, una reautenticación limpia resuelve la mayoría de los casos:1013Cuando el inicio de sesión falla y la causa no es obvia, una reautenticación limpia resuelve la mayoría de los casos:

1002 1014 

10031. Ejecute `/logout` para cerrar sesión completamente10151. Ejecuta `/logout` para cerrar sesión completamente

10042. Cierre Claude Code10162. Cierra Claude Code

10053. Reinicie con `claude` y complete el proceso de autenticación nuevamente10173. Reinicia con `claude` y completa el proceso de autenticación nuevamente

1006 1018 

1007Si el navegador no se abre automáticamente durante el inicio de sesión, presione `c` para copiar la URL de OAuth a su portapapeles, luego péguelo en un navegador manualmente. Esto también funciona cuando la URL se envuelve en varias líneas en una terminal estrecha o SSH y no se puede hacer clic directamente.1019Si el navegador no se abre automáticamente durante el inicio de sesión, presiona `c` para copiar la URL de OAuth a tu portapapeles y luego pégala en un navegador manualmente. Esto también funciona cuando la URL se divide en varias líneas en una terminal estrecha o SSH y no se puede hacer clic en ella directamente.

1008 1020 

1009<h3 id="oauth-error-invalid-code">1021<h3 id="oauth-error-invalid-code">

1010 Error de OAuth: Código inválido1022 Error de OAuth: Código inválido

1011</h3>1023</h3>

1012 1024 

1013Si ve `OAuth error: Invalid code. Please make sure the full code was copied`, el código de inicio de sesión expiró o fue truncado durante la copia y pegado.1025Si ves `OAuth error: Invalid code. Please make sure the full code was copied`, el código de inicio de sesión expiró o se truncó al copiarlo y pegarlo.

1014 1026 

1015**Soluciones:**1027**Soluciones:**

1016 1028 

1017* Presione Intro para reintentar y complete el inicio de sesión rápidamente después de que se abra el navegador1029* Presiona Intro para reintentar y completa el inicio de sesión rápidamente después de que se abra el navegador

1018* Escriba `c` para copiar la URL completa si el navegador no se abre automáticamente1030* Escribe `c` para copiar la URL completa si el navegador no se abre automáticamente

1019* Si usa una sesión remota/SSH, el navegador puede abrirse en la máquina incorrecta. Copie la URL mostrada en la terminal y ábrala en su navegador local en su lugar.1031* Si usas una sesión remota/SSH, el navegador puede abrirse en la máquina incorrecta. Copia la URL que se muestra en la terminal y ábrela en tu navegador local.

1020 1032 

1021<h3 id="403-forbidden-after-login">1033<h3 id="403-forbidden-after-login">

1022 403 Forbidden después del inicio de sesión1034 403 Forbidden después del inicio de sesión

1023</h3>1035</h3>

1024 1036 

1025Si ve `API Error: 403 Request not allowed` después de iniciar sesión:1037Si ves `API Error: 403 Request not allowed` después de iniciar sesión:

1026 1038 

1027* **Usuarios de Claude Pro/Max**: verifique que su suscripción esté activa en [claude.ai/settings](https://claude.ai/settings)1039* **Usuarios de Claude Pro/Max**: verifica que tu suscripción esté activa en [claude.ai/settings](https://claude.ai/settings)

1028* **Usuarios de Anthropic Console**: confirme que su cuenta tiene el rol "Claude Code" o "Developer". Los administradores asignan esto en Anthropic Console bajo Settings → Members.1040* **Usuarios de Anthropic Console**: confirma que tu cuenta tiene el rol "Claude Code" o "Developer". Los administradores lo asignan en Anthropic Console, en Settings → Members.

1029* **Detrás de un proxy**: los proxies corporativos pueden interferir con las solicitudes de API. Consulte [configuración de red](/docs/es/network-config) para la configuración de proxy.1041* **Detrás de un proxy**: los proxies corporativos pueden interferir con las solicitudes de API. Consulta [configuración de red](/docs/es/network-config) para la configuración del proxy.

1030 1042 

1031<h3 id="claude-code-access-has-not-been-granted-for-this-account">1043<h3 id="claude-code-access-has-not-been-granted-for-this-account">

1032 Claude Code access has not been granted for this account1044 Claude Code access has not been granted for this account

1033</h3>1045</h3>

1034 1046 

1035Si la página de inicio de sesión muestra `Authorization failed` con el mensaje `Claude Code access has not been granted for this account. Contact your administrator.` después de que inicie sesión desde Claude Code, su organización Claude Enterprise ha establecido su rol en Custom y ninguno de los [custom roles](https://support.claude.com/en/articles/13930452) asignados a sus grupos otorga acceso a Claude Code. En el rol Custom, obtiene acceso solo de esos roles personalizados, por lo que nada que cambie en Claude Code resuelve este error.1047Si la página de inicio de sesión muestra `Authorization failed` con el mensaje `Claude Code access has not been granted for this account. Contact your administrator.` después de que inicias sesión desde Claude Code, tu organización de Claude Enterprise ha establecido tu rol en Custom y ninguno de los [custom roles](https://support.claude.com/en/articles/13930452) asignados a tus grupos otorga acceso a Claude Code. Con el rol Custom, obtienes acceso solo a través de esos roles personalizados, por lo que nada que cambies en Claude Code resuelve este error.

1036 1048 

1037Para obtener acceso:1049Para obtener acceso:

1038 1050 

10391. Pida a un Owner de su organización Claude que asigne un rol personalizado que otorgue acceso a Claude Code a uno de sus grupos, o que cambie su rol de Custom a un rol estándar como User. Los Owners administran roles en la [configuración de roles](https://claude.ai/admin-settings/roles) de la organización.10511. Pide a un Owner de tu organización de Claude que asigne a uno de tus grupos un rol personalizado que otorgue acceso a Claude Code, o que cambie tu rol de Custom a un rol estándar como User. Los Owners administran los roles en la [configuración de roles](https://claude.ai/admin-settings/roles) de la organización.

10402. Después de que el Owner realice el cambio, ejecute `claude` e inicie sesión nuevamente.10522. Después de que el Owner realice el cambio, ejecuta `claude` e inicia sesión nuevamente.

1041 1053 

1042<h3 id="this-organization-has-been-disabled-with-an-active-subscription">1054<h3 id="this-organization-has-been-disabled-with-an-active-subscription">

1043 Esta organización ha sido deshabilitada con una suscripción activa1055 Esta organización ha sido deshabilitada con una suscripción activa

1044</h3>1056</h3>

1045 1057 

1046Si ve `API Error: 400 ... "This organization has been disabled"` a pesar de tener una suscripción activa de Claude, una variable de entorno `ANTHROPIC_API_KEY` está anulando su suscripción. Esto comúnmente ocurre cuando una clave API antigua de un empleador anterior o proyecto anterior aún está configurada en su perfil de shell.1058Si ves `API Error: 400 ... "This organization has been disabled"` a pesar de tener una suscripción activa de Claude, una variable de entorno `ANTHROPIC_API_KEY` está anulando tu suscripción. Esto suele ocurrir cuando una clave de API antigua de un empleador o proyecto anterior sigue configurada en tu perfil de shell.

1047 1059 

1048Cuando `ANTHROPIC_API_KEY` está presente y lo ha aprobado, Claude Code usa esa clave en lugar de las credenciales de OAuth de su suscripción. En modo no interactivo con la bandera `-p`, la clave siempre se usa cuando está presente. Consulte [precedencia de autenticación](/docs/es/authentication#authentication-precedence) para el orden de resolución completo.1060Cuando `ANTHROPIC_API_KEY` está presente y la has aprobado, Claude Code usa esa clave en lugar de las credenciales de OAuth de tu suscripción. En modo no interactivo con el flag `-p`, la clave siempre se usa cuando está presente. Consulta [precedencia de autenticación](/docs/es/authentication#authentication-precedence) para ver el orden de resolución completo.

1049 1061 

1050Para usar su suscripción en su lugar, desestablezca la variable de entorno y elimínela de su perfil de shell:1062Para usar tu suscripción en su lugar, quita la definición de la variable de entorno y elimínala de tu perfil de shell:

1051 1063 

1052<Tabs>1064<Tabs>

1053 <Tab title="macOS/Linux">1065 <Tab title="macOS/Linux">


1065 </Tab>1077 </Tab>

1066</Tabs>1078</Tabs>

1067 1079 

1068Verifique `~/.zshrc`, `~/.bashrc`, o `~/.profile` para líneas `export ANTHROPIC_API_KEY=...` y elimínelas para hacer el cambio permanente. En Windows, verifique su perfil de PowerShell en `$PROFILE` y sus variables de entorno de usuario para `ANTHROPIC_API_KEY`. Ejecute `/status` dentro de Claude Code para confirmar qué método de autenticación está activo.1080Revisa `~/.zshrc`, `~/.bashrc` o `~/.profile` en busca de líneas `export ANTHROPIC_API_KEY=...` y elimínalas para que el cambio sea permanente. En Windows, revisa tu perfil de PowerShell en `$PROFILE` y tus variables de entorno de usuario en busca de `ANTHROPIC_API_KEY`. Ejecuta `/status` dentro de Claude Code para confirmar qué método de autenticación está activo.

1069 1081 

1070<h3 id="oauth-login-fails-in-wsl2-ssh-or-containers">1082<h3 id="oauth-login-fails-in-wsl2-ssh-or-containers">

1071 El inicio de sesión de OAuth falla en WSL2, SSH o contenedores1083 El inicio de sesión de OAuth falla en WSL2, SSH o contenedores

1072</h3>1084</h3>

1073 1085 

1074Cuando Claude Code se ejecuta en WSL2, en una máquina remota a través de SSH, o dentro de un contenedor, el navegador generalmente se abre en un host diferente y su redirección no puede alcanzar el servidor de devolución de llamada local de Claude Code. Después de que inicie sesión, el navegador muestra un código de inicio de sesión en lugar de redirigirse automáticamente. Pegue ese código en la terminal en el indicador `Paste code here if prompted` para completar el inicio de sesión.1086Cuando Claude Code se ejecuta en WSL2, en una máquina remota a través de SSH o dentro de un contenedor, el navegador generalmente se abre en un host diferente y su redirección no puede alcanzar el servidor de devolución de llamada local de Claude Code. Después de que inicias sesión, el navegador muestra un código de inicio de sesión en lugar de redirigir automáticamente. Pega ese código en la terminal, en el prompt `Paste code here if prompted`, para completar el inicio de sesión.

1075 1087 

1076Si el navegador no se abre en absoluto desde WSL2, establezca la variable de entorno `BROWSER` en la ruta de su navegador de Windows:1088Si el navegador no se abre en absoluto desde WSL2, establece la variable de entorno `BROWSER` en la ruta de tu navegador de Windows:

1077 1089 

1078```bash theme={null}1090```bash theme={null}

1079export BROWSER="/mnt/c/Program Files/Google/Chrome/Application/chrome.exe"1091export BROWSER="/mnt/c/Program Files/Google/Chrome/Application/chrome.exe"

1080claude1092claude

1081```1093```

1082 1094 

1083Alternativamente, presione `c` en el indicador de inicio de sesión interactivo para copiar la URL de OAuth, o copie la URL que `claude auth login` imprime, y ábrala en un navegador en su máquina local.1095Alternativamente, presiona `c` en el prompt de inicio de sesión interactivo para copiar la URL de OAuth, o copia la URL que imprime `claude auth login`, y ábrela en un navegador en tu máquina local.

1084 1096 

1085Si pegar el código en el indicador interactivo no hace nada, el enlace de pegado de su terminal probablemente no está llegando al campo de entrada. Intente el atajo de pegado alternativo de su terminal, a menudo clic derecho o Shift+Insert en Windows Terminal, o use `claude auth login` en su lugar, que lee el código pegado desde la entrada estándar:1097Si pegar el código en el prompt interactivo no hace nada, probablemente el atajo de pegado de tu terminal no está llegando al campo de entrada. Prueba el atajo de pegado alternativo de tu terminal, a menudo clic derecho o Shift+Insert en Windows Terminal, o usa `claude auth login` en su lugar, que lee el código pegado desde la entrada estándar:

1086 1098 

1087```bash theme={null}1099```bash theme={null}

1088claude auth login1100claude auth login

1089```1101```

1090 1102 

1091Esta alternativa también se aplica en Windows nativo o cualquier terminal donde pegar en el indicador interactivo falla.1103Esta alternativa también se aplica en Windows nativo o en cualquier terminal donde pegar en el prompt interactivo falle.

1092 1104 

1093<h3 id="not-logged-in-or-token-expired">1105<h3 id="not-logged-in-or-token-expired">

1094 No ha iniciado sesión o el token ha expirado1106 No has iniciado sesión o el token ha expirado

1095</h3>1107</h3>

1096 1108 

1097Si Claude Code le solicita que inicie sesión nuevamente después de una sesión, su token de OAuth puede haber expirado.1109Si Claude Code te pide que inicies sesión nuevamente después de una sesión, es posible que tu token de OAuth haya expirado.

1110 

1111Ejecuta `/login` para volver a autenticarte. Si esto ocurre con frecuencia, verifica que el reloj de tu sistema sea preciso, ya que la validación de tokens depende de marcas de tiempo correctas.

1098 1112 

1099Ejecute `/login` para reautenticarse. Si esto ocurre frecuentemente, verifique que su reloj del sistema sea preciso, ya que la validación de tokens depende de marcas de tiempo correctas.1113Las sesiones paralelas en una máquina comparten un inicio de sesión guardado y coordinan su renovación para que solo un proceso actualice el token a la vez. Para saber qué hacen las demás sesiones después de que vuelves a iniciar sesión en una de ellas, consulta [No has iniciado sesión](/docs/es/errors#not-logged-in).

1100 1114 

1101Las sesiones paralelas en una máquina comparten un inicio de sesión guardado y coordinan su renovación para que solo un proceso actualice el token a la vez. Antes de v2.1.211, despertar la máquina del sueño podría causar que dos sesiones se renovaran con el mismo token, lo que revocaba el inicio de sesión guardado e indicaba a cada sesión abierta que iniciara sesión nuevamente de una vez.1115Antes de v2.1.211, reactivar la máquina desde la suspensión podía hacer que dos sesiones se renovaran con el mismo token, lo que revocaba el inicio de sesión guardado y pedía a todas las sesiones abiertas que iniciaran sesión nuevamente a la vez.

1102 1116 

1103En macOS, Claude Code guarda credenciales en el Keychain de inicio de sesión. Cuando el Keychain rechaza la escritura, como cuando está bloqueado en una sesión SSH o su contraseña está fuera de sincronización con su contraseña de cuenta, Claude Code guarda su inicio de sesión en el archivo de texto plano `~/.claude/.credentials.json` en su lugar. Un inicio de sesión de Console que crea una clave API falla hasta que el Keychain sea escribible nuevamente.1117En macOS, Claude Code guarda las credenciales en el Keychain de inicio de sesión. Cuando el Keychain rechaza la escritura, por ejemplo cuando está bloqueado en una sesión SSH o su contraseña no está sincronizada con la contraseña de tu cuenta, Claude Code guarda tu inicio de sesión en el archivo de texto plano `~/.claude/.credentials.json` en su lugar. Un inicio de sesión de Console que crea una clave de API falla hasta que el Keychain vuelva a admitir escritura.

1104 1118 

1105Para hacer que el Keychain sea escribible nuevamente y mover su inicio de sesión de vuelta al Keychain cifrado:1119Para que el Keychain vuelva a admitir escritura y mover tu inicio de sesión de vuelta al Keychain cifrado:

1106 1120 

1107<Steps>1121<Steps>

1108 <Step title="Verifique el acceso a Keychain">1122 <Step title="Verifica el acceso a Keychain">

1109 Ejecute `claude doctor` para verificar el acceso a Keychain. Cuando el Keychain rechaza escrituras, el informe enumera una advertencia que comienza con `macOS Keychain is not writable`, seguida de una corrección sugerida. Cuando el informe no enumera ninguna advertencia de Keychain, el Keychain es escribible y puede pasar al último paso.1123 Ejecuta `claude doctor` para verificar el acceso a Keychain. Cuando el Keychain rechaza escrituras, el informe muestra una advertencia que comienza con `macOS Keychain is not writable`, seguida de una corrección sugerida. Cuando el informe no muestra ninguna advertencia de Keychain, el Keychain admite escritura y puedes pasar al último paso.

1110 </Step>1124 </Step>

1111 1125 

1112 <Step title="Desbloquee el Keychain">1126 <Step title="Desbloquea el Keychain">

1113 ```bash theme={null}1127 ```bash theme={null}

1114 security unlock-keychain ~/Library/Keychains/login.keychain-db1128 security unlock-keychain ~/Library/Keychains/login.keychain-db

1115 ```1129 ```

1116 1130 

1117 Ingrese su contraseña de Keychain cuando el comando la solicite, luego ejecute `claude doctor` nuevamente. Cuando el desbloqueo funcionó, el informe ya no enumera la advertencia de Keychain.1131 Ingresa tu contraseña de Keychain cuando el comando la solicite y luego ejecuta `claude doctor` nuevamente. Si el desbloqueo funcionó, el informe ya no muestra la advertencia de Keychain.

1118 </Step>1132 </Step>

1119 1133 

1120 <Step title="Resincronice la contraseña de Keychain si desbloquear no ayuda">1134 <Step title="Resincroniza la contraseña de Keychain si desbloquearlo no ayuda">

1121 Abra Keychain Access, seleccione el keychain `login`, y elija **Edit > Change Password for Keychain "login"** para resincronizarlo con su contraseña de cuenta. Luego ejecute `claude doctor` nuevamente. Continúe al siguiente paso una vez que el informe ya no enumere la advertencia de Keychain.1135 Abre Keychain Access, selecciona el keychain `login` y elige **Edit > Change Password for Keychain "login"** para resincronizarlo con la contraseña de tu cuenta. Luego ejecuta `claude doctor` nuevamente. Continúa con el siguiente paso cuando el informe ya no muestre la advertencia de Keychain.

1122 </Step>1136 </Step>

1123 1137 

1124 <Step title="Cierre sesión e inicie sesión nuevamente">1138 <Step title="Cierra sesión y vuelve a iniciarla">

1125 Una vez que el Keychain sea escribible nuevamente, Claude Code mueve las credenciales de vuelta la próxima vez que escribe una credencial. Para forzarlo ahora, ejecute `/logout` y luego `/login`. Cerrar sesión elimina todas las credenciales almacenadas, incluido el contenido del archivo de texto plano, los inicios de sesión guardados del servidor MCP y los valores sensibles del plugin, así que espere reautorizar servidores MCP e ingresar nuevamente los secretos del plugin después. Iniciar sesión nuevamente almacena su inicio de sesión en el Keychain.1139 Una vez que el Keychain vuelva a admitir escritura, Claude Code mueve las credenciales de vuelta la próxima vez que escriba una credencial. Para forzarlo ahora, ejecuta `/logout` y luego `/login`. Cerrar sesión elimina todas las credenciales almacenadas, incluido el contenido del archivo de texto plano, los inicios de sesión guardados de servidores MCP y los valores sensibles de plugins, así que después tendrás que volver a autorizar los servidores MCP e ingresar nuevamente los secretos de los plugins. Al iniciar sesión de nuevo, tu inicio de sesión se almacena en el Keychain.

1126 </Step>1140 </Step>

1127</Steps>1141</Steps>

1128 1142 


1130 Las credenciales de Bedrock, Agent Platform o Foundry no se cargan1144 Las credenciales de Bedrock, Agent Platform o Foundry no se cargan

1131</h3>1145</h3>

1132 1146 

1133Si configuró Claude Code para usar un proveedor en la nube y ve `Could not load credentials from any providers` en Amazon Bedrock, `Could not load the default credentials` en Google Cloud's Agent Platform, o `ChainedTokenCredential authentication failed` en Microsoft Foundry, su CLI del proveedor en la nube probablemente no está autenticado en el shell actual.1147Si configuraste Claude Code para usar un proveedor en la nube y ves `Could not load credentials from any providers` en Amazon Bedrock, `Could not load the default credentials` en Google Cloud's Agent Platform, o `ChainedTokenCredential authentication failed` en Microsoft Foundry, probablemente la CLI de tu proveedor en la nube no está autenticada en el shell actual.

1134 1148 

1135Para Amazon Bedrock, confirme que sus credenciales de AWS son válidas:1149Para Amazon Bedrock, confirma que tus credenciales de AWS son válidas:

1136 1150 

1137```bash theme={null}1151```bash theme={null}

1138aws sts get-caller-identity1152aws sts get-caller-identity

1139```1153```

1140 1154 

1141Para Google Cloud's Agent Platform, confirme que `ANTHROPIC_VERTEX_PROJECT_ID` y `CLOUD_ML_REGION` están configurados en su shell, luego establezca credenciales predeterminadas de aplicación:1155Para Google Cloud's Agent Platform, confirma que `ANTHROPIC_VERTEX_PROJECT_ID` y `CLOUD_ML_REGION` están configuradas en tu shell y luego establece las credenciales predeterminadas de aplicación:

1142 1156 

1143```bash theme={null}1157```bash theme={null}

1144gcloud auth application-default login1158gcloud auth application-default login

1145```1159```

1146 1160 

1147Para Microsoft Foundry, confirme que `ANTHROPIC_FOUNDRY_API_KEY` está configurado, o inicie sesión con la CLI de Azure para que la cadena de credenciales predeterminada pueda encontrar su cuenta:1161Para Microsoft Foundry, confirma que `ANTHROPIC_FOUNDRY_API_KEY` está configurada, o inicia sesión con la CLI de Azure para que la cadena de credenciales predeterminada pueda encontrar tu cuenta:

1148 1162 

1149```bash theme={null}1163```bash theme={null}

1150az login1164az login

1151```1165```

1152 1166 

1153Si las credenciales funcionan en su terminal pero no en la extensión de VS Code o JetBrains, el proceso del IDE probablemente no heredó su entorno de shell. Establezca las variables de entorno del proveedor en la configuración propia del IDE, o inicie el IDE desde una terminal donde ya estén exportadas.1167Si las credenciales funcionan en tu terminal pero no en la extensión de VS Code o JetBrains, probablemente el proceso del IDE no heredó el entorno de tu shell. Establece las variables de entorno del proveedor en la configuración propia del IDE, o inicia el IDE desde una terminal donde ya estén exportadas.

1154 1168 

1155Consulte [Amazon Bedrock](/docs/es/amazon-bedrock), [Google Cloud's Agent Platform](/docs/es/google-vertex-ai), o [Microsoft Foundry](/docs/es/microsoft-foundry) para la configuración completa del proveedor.1169Consulta [Amazon Bedrock](/docs/es/amazon-bedrock), [Google Cloud's Agent Platform](/docs/es/google-vertex-ai) o [Microsoft Foundry](/docs/es/microsoft-foundry) para la configuración completa del proveedor.

1156 1170 

1157<h2 id="still-stuck">1171<h2 id="still-stuck">

1158 Aún atrapado1172 Aún atrapado

Details

803. Mueva el trabajo de archivo grande a un [subagente](/docs/es/sub-agents) para que se ejecute en una ventana de contexto separada803. Mueva el trabajo de archivo grande a un [subagente](/docs/es/sub-agents) para que se ejecute en una ventana de contexto separada

814. Ejecute `/clear` si la conversación anterior ya no es necesaria814. Ejecute `/clear` si la conversación anterior ya no es necesaria

82 82 

83Si el error vuelve a aparecer después de un `/clear`, ejecuta [`/context`](/docs/es/debug-your-config) y compara la fila `Messages` con las filas que están encima de ella:

84 

85* **`Messages` es la fila más grande**: un archivo o salida de herramienta en la nueva conversación está rellenando la ventana, así que repite los pasos 1 a 3

86* **Las demás filas juntas son más grandes**: lo que se carga al inicio de la sesión deja muy poco espacio para trabajar, así que [reduce lo que se carga al inicio](/docs/es/errors#prompt-is-too-long)

87 

83<h3 id="command-hangs-or-freezes">88<h3 id="command-hangs-or-freezes">

84 El comando se cuelga o congela89 El comando se cuelga o congela

85</h3>90</h3>

worktrees.md +2 −0

Details

131 131 

132Los worktrees de subagentes utilizan la misma [rama base](#choose-the-base-branch) que `--worktree`, por lo que se ramifican desde la rama predeterminada de su repositorio a menos que `worktree.baseRef` esté configurado en `"head"`.132Los worktrees de subagentes utilizan la misma [rama base](#choose-the-base-branch) que `--worktree`, por lo que se ramifican desde la rama predeterminada de su repositorio a menos que `worktree.baseRef` esté configurado en `"head"`.

133 133 

134Un subagente en su propio worktree toma los archivos de instrucciones con los que [inicia](/docs/es/sub-agents#what-loads-at-startup) de tu conversación principal, no de su worktree. Cuando ese worktree está en la ubicación predeterminada bajo `.claude/worktrees/`, el subagente tampoco carga el archivo `CLAUDE.md` ni el directorio `.claude/rules/` de la raíz del worktree mientras lee archivos allí, aunque sean distintos en la rama del worktree.

135 

134<h3 id="clean-up-subagent-and-background-session-worktrees">136<h3 id="clean-up-subagent-and-background-session-worktrees">

135 Limpie worktrees de subagentes y sesiones en segundo plano137 Limpie worktrees de subagentes y sesiones en segundo plano

136</h3>138</h3>